Question

Infos sys:. 6 Installation drupal, avec des tonnes de modules ... trop à la liste

le problème: seul un certain type de contenu ne sera pas charger le fichier de modèle correctement. certains noeuds qui seraient affichés sur ces pages à partir de vues font au balisage. ils sont le seul contenu qui est chargé. le fichier modèle que ce contenu retombe sur est le nœud-event.tpl

l'objectif: à la charge en page team.tpl.php

suggestions de modèles sont chargés de deux façons en template.php par prétraiter via

mytheme_preprocess_page(&$vars, $hook)

converti de _phptemplate_variables () dans une installation 5 drupal.

Méthode 1:

if (module_exists('path')) {
  $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
  if ($alias != $_GET['q']) {
    $template_filename = 'page';
    foreach (explode('/', $alias) as $path_part) {
      $template_filename = $template_filename . '-' . $path_part;
      $vars['template_files'][] = $template_filename;
    }
  }
}

Méthode 2:

if ($vars['node']->og_groups['0'] || preg_match('/fdl\//',$vars['node']->path) || (preg_match('/og\/manage/',$alias) || preg_match('/og\/invite/',$alias) || preg_match('/og\/users/',$alias)) || (preg_match('/node\/add/',$alias) && $_GET['gids'] != '') || $vars['node']->og_description || (arg(0) == 'user' && is_numeric(arg(1)))) { 
  $vars['template_files'][] = 'page-team';

}

La page équipe est la TPL qui manque, et je pense qu'il peut y avoir une erreur avec mon code ci-dessus (méthode 2).

je tente de charger ce modèle pour toutes les pages avec le premier argument de chemin « FDL » si site.com/fdl et tous les enfants de Fdl.

Je sais qu'il ya beaucoup de possibilités. mais j'ai le sentiment que l'erreur est ici. Merci pour toute aide que vous pouvez offrir.

Était-ce utile?

La solution 4

i a trouvé une fonction de lien désapprouvée dans le modèle. la mise à jour des paramètres tout fixe.

Autres conseils

Eh bien, tu as fait vider le cache? Parce que lorsqu'ils traitent des thèmes, des thèmes généralement les prises drupal nouvellement ajoutés et les modèles après le cache de compensation.

Et si vous n'êtes pas sûr de votre reg. Exp., Je crois que vous pouvez simplement écrire ceci:


if(strpos(drupal_get_path_alias($_GET['q']),'fdl')===0){
    $vars['template_files'][] = 'page-team';
}

effacer le cache.

est ce que j'ai dans mon template.php:


function frontend_preprocess_page(&$vars){
  if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
      $vars['template_files'][] = 'page-dummy';
  }
}

frontend est le nom de mon thème. J'ai un fichier en page dummy.tpl.php dans le dossier thématique. Pour voir que cela fonctionne, j'ai ajouté « ça marche » juste après la balise body. Puis cache effacé. Maintenant, je vais à la page « mydomain.com/dummy_tests/1 » et voir que cela fonctionne.

Si vous rencontrez des problèmes, essayez de vérifier la sortie de drupal_get_path_alias ($ _ GET [ 'q']). Il suffit de faire


print drupal_get_path_alias($_GET['q']);

à l'intérieur de la fonction de preprocess_page (). Et si elle commence vraiment avec tout « FDL » devrait fonctionner. Ceci est un exemple de travail, de sorte que vous essayez juste de jouer et comprendre pourquoi cela ne fonctionne pas pour vous.

BTW, essayez de supprimer le modèle de nœud et laisser seulement le modèle de page. Je ne sais pas pourquoi, mais peut-être quelque chose ne va pas et les dégâts eux drupal.

J'ai essayé d'ajouter des modèles personnalisés dans les deux fonctions page_preprocess et node_preprocess. Et il a travaillé à la fois pour les modèles de page et nœud pour moi.


function frontend_preprocess_page(&$vars){
  if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
      $vars['template_files'][] = 'page-dummy';
  }
}

function frontend_preprocess_node(&$vars){
  if(strpos(drupal_get_path_alias($_GET['q']),'dummy_tests')===0){
      $vars['template_files'][] = 'node-dummy';
  }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top