2016-09-05 3 views
0

Я пишу плагин в elgg, чтобы изменить вкладку по умолчанию elgg members на популярный, а не newest в списке участников. Но есть проблема. Когда я устанавливаю вкладку по умолчанию popular, то вкладка newest больше не работает. вот мой start.php файл:Изменить вкладку участников по умолчанию на популярный в 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; 
} 

ответ

0

Благодаря iionly в elgg community, в this discussion Проблема решается с помощью с помощью крюков членов:

<?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; 
} 
Смежные вопросы