2016-05-30 1 views
0

J'essaie d'ajouter des fonctionnalités dans un nouvel onglet que j'ai ajouté sur mon mod personnalisé/myplugin/views/default/page/layouts/content.php et de supprimer certains éléments en fonction de leurs tags de l'activité principale.Ajouter une nouvelle fonction à 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, 
    ), 
     ); 

L'onglet apparaît déjà dans ma page d'activité, mais je ne sais pas où je peux ajouter ma nouvelle fonction de ne charger que certains éléments qui a le tag « anime ».

Mes questions sont les suivantes:

Où puis-je ajouter le code pour cela: example.com/activity/anime

Où puis-je modifier la requête de ce (il montre tout sauf éléments avec la balise "anime"): example.com/activity/all

Ai-je besoin d'ajouter un filtre pour y parvenir? Où dois-je l'ajouter ou quel fichier devrais-je remplacer si c'est le cas?

Cordialement.

Répondre

0

Il y a deux façons dont vous pouvez aller à ce sujet:

  1. Utilisez un gestionnaire de page personnalisé et l'utilisation comme l'URL de votre nouvel onglet, par exemple 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. Utilisez le crochet route de détourner le parcours 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 
        } 
    }