it-swarm-eu.dev

Taxonomie menu s vlastní cestou pro termíny taxonomie

Snažím se vytvořit taxonomické menu pomocí modul Menu taxonomie s vlastní cestou pro termíny taxonomie. Místo/taxonomy/term/tid chci/proj /! Tid (nebo nakonec/proj /! Term-name, ale uspokojím se s tím, co mohu získat). Mám menu taxonomie v pořádku, když nechám výchozí nastavení "cesta typu menu", což ponechá jako/taxonomy/term/tid. Kdykoli se však pokusím použít možnost „cesta slovní zásoby“, všechny výrazy nabídky zmizí. Pokusil jsem se postupovat podle pokynů dokumentace zde .

Mám názor s Taxonomy: ID termínu (s hloubkou) a Taxonomie: Argumenty modifikátoru hloubky ID termínu a zobrazení stránky s cestou nastavenou na proj /%. Snažil jsem se navíc vytvořit alias URL na proj a proj /%, ale zdálo se, že to nijak nezměnilo. Ale v zásadě pokaždé, když nastavím typ cesty nabídky na „cesta slovní zásoby“ („vlastní cesta“ v dokumentaci), položky nabídky zmizí. Podmínky jsou stále k dispozici a mohu navigovat do/proj /%, ale neexistují žádné položky nabídky.

Jakákoli pomoc s tím, jak mít vlastní cestu k slovníku při zachování položek nabídky, by byla velmi oceněna.

4
Jay

Pokud chcete změnit cesty termínů taxonomie pro termíny taxonomie implementované vaším modulem, můžete implementovat hook_term_path () , což je háček, který umožňuje modulu změnit cesty taxonomických termínů.

Funkce, která vrací cesty taxonomických termínů, je následující:

    function taxonomy_term_path($term) {
      $vocabulary = taxonomy_vocabulary_load($term->vid);
      if ($vocabulary->module != 'taxonomy' && $path = module_invoke($vocabulary->module, 'term_path', $term)) {
        return $path;
      }
     return 'taxonomy/term/' . $term->did;
  }

Implementace tohoto háku by také pomohla upravit cestu libovolných slovníků, pokud by pole $vocabulary->module se změní na zkrácený název vytvořeného modulu.

Případně můžete napsat custom_url_rewrite_outbound () a custom_url_rewrite_inbound () , které umožňuje přepsat zobrazené URL do "vnějšího" světa a převést URL na použitou od Drupalu.
Příklad uvedený v dokumentaci by měl objasnit, jak tyto funkce používat.

function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  global $user;

  // Change all article/x requests to node/x
  if (preg_match('|^article(/.*)|', $path, $matches)) {
    $result = 'node' . $matches[1];
  }
  // Redirect a path called 'e' to the user's profile edit page.
  if ($path == 'e') {
    $result = 'user/' . $user->uid . '/edit';
  }
}

function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
  global $user;

  // Change all 'node' to 'article'.
  if (preg_match('|^node(/.*)|', $path, $matches)) {
    $path = 'article' . $matches[1];
  }
  // Create a path called 'e' which lands the user on her profile edit page.
  if ($path == 'user/' . $user->uid . '/edit') {
    $path = 'e';
  }
}

V ostatních případech můžete použít modul, jako je Pathauto, nebo Zobrazení termínů Přepsat cest , který umožňuje přepsat cesty taxonomických termínů v pohledech.
Další moduly, které by mohly pomoci, jsou přesměrování cesty a přesměrování taxonomie ; Stránka projektu pro Zobrazení termínu Přepsat cestu navrhuje alternativu Taxonomy Views Integrator .

3
kiamlaluno

Zkuste použít Pathauto . Použil jsem to ve spojení s Taxonomy Menu s skvělými výsledky.

0
tim.plunkett

Možná budete chtít zkusit http://drupal.org/project/tvi S tím bych měl úspěch při přejímání termínovaných stránek. Zejména s displeji příloh.

Ten tvrdí totéž: http://drupal.org/project/views_tpo

0
doublejosh