Related issue in the issue-queue of FLSM module: http://drupal.org/node/316055

Comments

mariusooms’s picture

Hi irakli,

I noticed this is marked as critical, but the maintainer of that module might rebuild the whole code. I just wanted to chime in to show there is another way to so status messages. It requires a bit more configuration and a few more modules, but it can be done. The site below is actually not just statuses, but micro-blogging as a whole.

I have set up a test site here: http://druplr.ywamnation.com. Login: Batman / Pass: marvel

The idea is to use a simple content type setup with a hidden title field. Than using the from block module display the form anywhere and redirect to that page upon submission. The downside is that each set status is a node. The advantages are that you can track statuses from friends, ala facebook. You can also mark statuses as favorites using flags.

It is a good alternative, which I implement on one other site I'm developing. It is not out of the box, but can be equally powerful if not more.

Just wanted to share another solution.

Regards,

Marius

PS. The reason it is so unique and why I tried to create something like this is because Friendlist is the ONLY module that can currently filter by relationship to show only the nodes of friends.

bensemmel’s picture

Hi,

as the heartbeat module already integrates with friendlist, you should have a look at it. It provides a submodule called "shouts" which can be used in a similar way as the fb-like status

See http://drupal.org/node/365649

Hope that helps.

Regards,
Ben

icecreamyou’s picture

@irakli: I'm glad you're looking into this, but I think it would be a good idea to wait until the 2.x branch, since I'm expecting to rewrite much of the module to have a cleaner API for better integration. If you happen to produce a patch for the 1.x branch I will certainly commit it, but it may not be worth the effort for now.

@mariusooms: I specifically designed FBS not to use nodes because on an even moderately large site of, say, 50K regular users, if each one is posting two status updates a day, that's 100K nodes added to the DB every day. That's way too much overhead for the node table, especially assuming you have other content types like most social networks would. Your solution would certainly work for small-scale operations, but it's unrealistic as you look at a larger user base.

Also, FBS 2.x will probably integrate with Views, which by definition adds the same FriendList integration that your solution would have in relation to nodes.

@bensemmel: I have contacted the Heartbeat developers to try to get them to retire the Shout module and cooperate on building the new FBS 2.x branch, since FBS is more mature, more feature-rich, and at least 3 times as popular as the entire Heartbeat module.

mariusooms’s picture

Hi IceCreamYou,

Thanks for keeping us up-to-date/in-the-loop, Views integration would be awesome. It solves most issues out of the box. I agree with the node overhead...I also use activity stream, which creates nodes for each stream item. I believe that module suffers equally with the overhead as well, even though it takes a great approach on feeds, I wish it would its own table data.

In any case, looking forward for FBS 2.x

Thanks,

Marius

mariusooms’s picture

Priority: Critical » Normal
Status: Active » Postponed

Postponing this one. We should wait to see how FBS evolves to 2.x as it looks like 1.x will be abandoned soon after.

http://drupal.org/node/316055

Regards,

Marius

irakli’s picture

IceCreamYou,

thank you.

icecreamyou’s picture

No problem--since there is now Views integration in FBSS I think this issue should be solved, but I won't set it to fixed until someone can test with FL and confirm. Cheers

irakli’s picture

Priority: Normal » Critical
Status: Postponed » Needs work

Making it active again and increasing priority.

Thank you

mercmobily’s picture

Hi,

THis was made critical two months ago... Irakli, did you get a chance to test this and see if this issue is now a non-issue?

Thanks,

Merc.

icecreamyou’s picture

Status: Needs work » Fixed

I'm 99.99% sure FBSS/FL integration works. FBSS/Views integration has been stable for well over a month now, and obviously FL has Views integration, so there's no reason they shouldn't work together. If anyone has a problem it seems like more of a case for the FBSS support queue, so marking this as fixed.

bensemmel’s picture

Status: Fixed » Active

Sorry for setting this active again,

I agree that both modules are relatively stable and are well integrated with views 2. But this doesn't mean automatically that they work together in terms of using views.

In my thinking, I would create a fbss view and then would simple choose a filter to only show statuses of a certain relationship. As the Fbss view is based on the fbss tables this filter is not available. So I tried to add a relationship in views which has something to do with friendlist. But still no luck.

Probably I'm missing something here. Can you give me a hint how to create a view with the statuses of my friends?

Regards,

Ben

PS: I didn't changed the queue because I'm not sure at all which module should have the lead here

icecreamyou’s picture

I tried it. While it should in theory be possible, it appears that the unusual setup of Views integration in FL is producing problems, namely because FL doesn't use the {user} table like I expected it to. I would think that all that would be needed here (to fix this in the code) would be a relationship from the UID column of the {facebook_status} table to the requester and requestee column in whatever FL table is relevant, but I'm not sure. I'm quite confused by the FL Views integration actually, and I won't have any time to look into it for at least the next several weeks most likely.

mercmobily’s picture

Hi,

"I tried it. While it should in theory be possible, it appears that the unusual setup of Views integration in FL is producing problems,"

There is nothing unusual in the way FriendList integrates with Views... But I don't think this is possible "a relationship from the UID column of the {facebook_status} table to the requester and requestee column in whatever FL table is relevant"

Ideas welcome. I need to fix a few important bugs in FL, then some important bugs in Drigg, and *then* will start looking at feature requests...

Merc.

icecreamyou’s picture

FL's Views integration is unusual in the sense that, by not having any relationship to the {users} table, almost all integration with FL through Views must be explicitly written. This is a consequence of having two users in the equation (something that FBSS also has to deal with, making things even more confusing) - however, I've tested Flag Friend integration with FBSS and that works fine without any additional code to specifically support FF, so I know this kind of thing can be done. I'm not criticizing your design decision, but it just means that FL/FBSS integration will be more complicated than I expected it to be.

I'm not sure that what I suggested is possible either, so we'll have to wait and see until someone gets a chance to investigate deeper.

dummas_324324_32’s picture

Hi,

when I create a view which should show me the status of a friend it only shown n/a.

But when I execute this mysql-query in phpmyadmin it shows me the status..

whats wrong??

Here is my query.



SELECT friendlist_relations.rid AS rid,
   users_friendlist_relations.name AS users_friendlist_relations_name,
   users_friendlist_relations.uid AS users_friendlist_relations_uid,
   users_friendlist_relations__facebook_status.status AS users_friendlist_relations__facebook_status_status
 FROM friendlist_relations friendlist_relations 
 LEFT JOIN users users_friendlist_relations ON friendlist_relations.requestee_id = users_friendlist_relations.uid
 LEFT JOIN users users_friendlist_relations_1 ON friendlist_relations.requester_id = users_friendlist_relations_1.uid
 INNER JOIN friendlist_statuses friendlist_statuses ON friendlist_relations.rid = friendlist_statuses.rid
 LEFT JOIN users users_friendlist_statuses ON friendlist_statuses.requestee_id = users_friendlist_statuses.uid
 LEFT JOIN users users_friendlist_statuses_1 ON friendlist_statuses.requester_id = users_friendlist_statuses_1.uid
 LEFT JOIN friendlist_relation_types friendlist_relation_types ON friendlist_relations.rtid = friendlist_relation_types.rtid
 INNER JOIN facebook_status users_friendlist_relations__facebook_status ON users_friendlist_relations.uid = users_friendlist_relations__facebook_status.uid
 WHERE (friendlist_relation_types.active <> 0) AND (friendlist_statuses.status in ('TW_BOTH')) AND (users_friendlist_relations_1.uid = 1)


icecreamyou’s picture

mathias2711, will you export your View and attach it here?

dummas_324324_32’s picture

hi,

this is my view

$view = new view;
$view->name = '_test_4';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'friendlist_relations';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Standards', 'default');
$handler->override_option('relationships', array(
  'requestee_id' => array(
    'label' => 'Requestee',
    'required' => 0,
    'id' => 'requestee_id',
    'table' => 'friendlist_relations',
    'field' => 'requestee_id',
    'relationship' => 'none',
  ),
  'requester_id' => array(
    'label' => 'Requester',
    'required' => 0,
    'id' => 'requester_id',
    'table' => 'friendlist_relations',
    'field' => 'requester_id',
    'relationship' => 'none',
  ),
));
$handler->override_option('fields', array(
  'name' => array(
    'label' => 'Name',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'target' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'empty' => '',
    'hide_empty' => 0,
    'empty_zero' => 0,
    'link_to_user' => 1,
    'overwrite_anonymous' => 0,
    'anonymous_text' => '',
    'exclude' => 0,
    'id' => 'name',
    'table' => 'users',
    'field' => 'name',
    'relationship' => 'requestee_id',
  ),
  'status' => array(
    'label' => 'Status text',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'target' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'empty' => '',
    'hide_empty' => 0,
    'empty_zero' => 0,
    'exclude' => 0,
    'id' => 'status',
    'table' => 'facebook_status',
    'field' => 'status',
    'relationship' => 'requestee_id',
  ),
));
$handler->override_option('arguments', array(
  'uid' => array(
    'default_action' => 'default',
    'style_plugin' => 'default_summary',
    'style_options' => array(),
    'wildcard' => 'all',
    'wildcard_substitution' => 'Alle',
    'title' => '',
    'breadcrumb' => '',
    'default_argument_type' => 'current_user',
    'default_argument' => '',
    'validate_type' => 'none',
    'validate_fail' => 'not found',
    'break_phrase' => 0,
    'not' => 0,
    'id' => 'uid',
    'table' => 'users',
    'field' => 'uid',
    'relationship' => 'requester_id',
    'validate_user_argument_type' => 'uid',
    'validate_user_roles' => array(
      '2' => 0,
      '10' => 0,
      '12' => 0,
      '11' => 0,
      '14' => 0,
      '13' => 0,
    ),
    'default_options_div_prefix' => '',
    'default_argument_user' => 0,
    'default_argument_fixed' => '',
    'default_argument_php' => '',
    'validate_argument_node_type' => array(
      'ad' => 0,
      'diskussion' => 0,
      'gruppen' => 0,
      'page' => 0,
      'photo' => 0,
      'profile' => 0,
      'story' => 0,
      'termin' => 0,
      'topthemen' => 0,
      'treffpunkte' => 0,
    ),
    'validate_argument_node_access' => 0,
    'validate_argument_nid_type' => 'nid',
    'validate_argument_vocabulary' => array(
      '4' => 0,
      '2' => 0,
      '1' => 0,
      '7' => 0,
    ),
    'validate_argument_type' => 'tid',
    'validate_argument_transform' => 0,
    'validate_user_restrict_roles' => 0,
    'validate_argument_node_flag_name' => '*relationship*',
    'validate_argument_node_flag_test' => 'flaggable',
    'validate_argument_node_flag_id_type' => 'id',
    'validate_argument_user_flag_name' => '*relationship*',
    'validate_argument_user_flag_test' => 'flaggable',
    'validate_argument_user_flag_id_type' => 'id',
    'validate_argument_is_member' => 0,
    'validate_argument_php' => '',
  ),
));
$handler->override_option('filters', array(
  'active' => array(
    'operator' => '=',
    'value' => '1',
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'active',
    'table' => 'friendlist_relation_types',
    'field' => 'active',
    'relationship' => 'none',
  ),
  'status' => array(
    'operator' => 'in',
    'value' => array(
      'TW_BOTH' => 'TW_BOTH',
    ),
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'status',
    'table' => 'friendlist_statuses',
    'field' => 'status',
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('cache', array(
  'type' => 'none',
));

icecreamyou’s picture

Yeah, that's weird, I get the same result. Oddly the status ID works but the status text doesn't. Not sure why that is.

dummas_324324_32’s picture

I`ve fixed the problem by using the flag friend module for friends ;-)