2016-05-30 98 views
0

我正在嘗試在我自定義的mod/myplugin/views/default/page/layouts/content.php中添加的新選項卡中添加功能,並根據它們的標記從中刪除一些元素主要活動。向Elgg River添加一個新功能

$tabs = array(
    'all' => array(
     'text' => elgg_echo('all'), 
     'href' => (isset($vars['all_link'])) ? $vars['all_link'] : "$context/all", 
     'selected' => ($filter_context == 'all'), 
     'priority' => 200, 
    ), 
    'mine' => array(
     'text' => elgg_echo('mine'), 
     'href' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "$context/owner/$username", 
     'selected' => ($filter_context == 'mine'), 
     'priority' => 300, 
    ), 
    'anime' => array(
     'text' => elgg_echo('Anime'), 
     'href' => (isset($vars['anime_link'])) ? $vars['anime_link'] : "$context/anime", 
     'selected' => ($filter_context == 'anime'), 
     'priority' => 500, 
    ), 
     ); 

的標籤似乎已經成爲我的活動頁面,但我不知道我在哪裏可以加我的新功能加載具有「動漫」的標籤只有某些項目。

所以我的問題是:

我在哪裏可以添加代碼如下: example.com/activity/anime

我在哪裏可以編輯該查詢(所以它顯示的一切,但項目與「動漫」標籤): example.com/activity/all

我需要添加一個過濾器來實現這個嗎?我應該在哪裏添加它,或者如果是這種情況,我應該覆蓋哪個文件?

問候。

回答

0

有兩種方法,你可以去了解它:

  1. 使用自定義頁面處理程序和URL中使用你的新標籤,例如anime/activity

    elgg_register_page_handler('anime', 'anime_page_handler'); 
    
    function anime_page_handler($segments) { 
    
        $page = array_shift($segments); 
    
        switch ($page) { 
         case 'activity': 
    
          // render a page using elgg_view_resource() 
          // or generate your list here and pass it into elgg_view_layout() then 
          // then pass the layout into elgg_view_page() 
          return true; 
        } 
    
        return false; 
    } 
    
  2. 使用route鉤劫持路線activity/anime

    elgg_register_plugin_hook_handler('route', 'activity', 'anime_router'); 
    
    function anime_router($hook, $type, $return, $params) { 
    
        $identifier = elgg_extract('identifier', $return); 
        $segments = elgg_extract('segments', $return); 
    
        if ($identifier == 'activity' && $segments[0] == 'anime') { 
         // render your page 
    
         return false; // terminate further routing by returning false 
        } 
    }