2016-09-05 3 views
0

J'écris un plugin dans elgg pour changer l'onglet par défaut de elgg members à populaire au lieu de newest dans la liste des membres. Mais il y a un problème. Comme j'ai mis l'onglet par défaut à popular alors l'onglet newest ne fonctionne plus. voici mon fichier start.php:Modifier l'onglet par défaut des membres à populaire dans elgg

<?php 
elgg_register_event_handler('init', 'system', 'plug_test_init'); 

function plug_test_init(){ 

    elgg_unregister_page_handler('members'); 
    elgg_register_page_handler('members', 'set_popular_as_default'); 

} 
function set_popular_as_default($page) { 
    if (empty($page[0])) { 
     $page[0] = 'popular'; 
    } 
    if ($page[0] == 'search') { 
     echo elgg_view_resource('members/search'); 
    } else { 
     echo elgg_view_resource('members/index', [ 
      'page' => $page[0], 
     ]); 
    } 
    return true; 
} 

Répondre

0

Merci à iionly à elgg community, en this discussion Le problème résolu par un crochet à l'aide des membres:

<?php 
elgg_register_event_handler('init', 'system', 'plug_test_init'); 

function plug_test_init(){ 
    elgg_unregister_plugin_hook_handler('members:config', 'tabs', "members_nav_newest"); 
    elgg_register_plugin_hook_handler('members:config', 'tabs', "my_members_nav_newest"); 
    elgg_unregister_page_handler('members'); 
    elgg_register_page_handler('members', 'set_popular_as_default'); 

} 
function set_popular_as_default($page) { 
    if (empty($page[0])) { 
     $page[0] = 'popular'; 
    } 
    if ($page[0] == 'search') { 
     echo elgg_view_resource('members/search'); 
    } else { 
     echo elgg_view_resource('members/index', [ 
      'page' => $page[0], 
     ]); 
    } 
    return true; 
} 
function my_members_nav_newest($hook, $type, $returnvalue, $params) { 
     $returnvalue['newest'] = array(
      'title' => elgg_echo('sort:newest'), 
      'url' => "members/newest", 
     ); 
    return $returnvalue; 
}