phpelgg

code not working in elgg?


    $widget = $vars['entity'];                            
    $container = $widget->getContainerEntity();                         
    $options = eligo_get_display_entities_options($widget);

This Is The Main Line Code That Is Not Work In My owner_block.php file. and I don't know how to write that lines code in proper format

elgg.2.2.1\mod\owner_followers_counter\views\default\profile\owner_block.php

this code is not working in file name owner_block.php where I have inserted owner_followers_counter plugin. When I insert this code in my owner_block.php file, it's output is display most liked the post, but there is two line does not work properly, and I don't know how to format that.

where two lines are not working starting at $container = $widget->getContainerEntity();

                 $widget = $vars['entity'];                            
                 $container = $widget->getContainerEntity();    // problem here                     
                 $options =eligo_get_display_entities_options($widget); // and, problem is here

                $options['annotation_names'] = array('likes');

                if (elgg_instanceof($container, 'user') && $widget->my_likes !== 0) {
                  $options['annotation_owner_guids'] = $container->guid;
                }

                if (!elgg_instanceof($container, 'user') && !elgg_instanceof($container, 'group')) {
                  unset($options['container_guids']);
                }


                if ($widget->eligo_sortby == 'mostliked') {
                  $dbprefix = elgg_get_config('dbprefix');
                  $likes_metastring = get_metastring_id('likes');
                  $options['selects'] = array("(SELECT count(distinct l.id) FROM {$dbprefix}annotations l WHERE l.name_id = $likes_metastring AND l.entity_guid = e.guid) AS likes");

                  $options['order_by'] = 'likes ASC';
                  if ($widget->eligo_sortby_dir == 'desc') {
                    $options['order_by'] = 'likes DESC';
                  }
                }

                $content = elgg_list_entities_from_annotations($options);

Solution

  • **Ok, I Will Get Answer**
    
    $user = elgg_get_page_owner_entity();
    $user_guid = $user->guid;
    
    $options['annotation_names'] = array('likes');
    $options['annotation_owner_guids'] = $user_guid;
    
    $dbprefix = elgg_get_config('dbprefix');
    $likes_metastring = elgg_get_metastring_id('likes');
    $options['selects'] = array("(SELECT count(distinct l.id) FROM {$dbprefix}annotations l WHERE l.name_id = $likes_metastring AND l.entity_guid = e.guid) AS likes");
    $options['order_by'] = 'likes DESC';
    
    $content = elgg_list_entities_from_annotations($options);