Pregunta

Información de sys:. 6 instalación de Drupal, con toneladas de módulos ... demasiados a la lista

el problema: sólo un determinado tipo de contenido no cargarlo del archivo de plantilla correctamente. algunos nodos que se muestran en estas páginas a través de puntos de vista están haciendo a la marca. que son el único contenido que se carga. el archivo de plantilla que este contenido cae de nuevo en el nodo es-event.tpl

El objetivo: carga de la página-team.tpl.php

sugerencias plantilla se cargan de dos formas en template.php través de preprocesamiento a través de

mytheme_preprocess_page(&$vars, $hook)

convierte de _phptemplate_variables () en una 5 instalación drupal.

método 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étodo 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';

}

page-equipo es el TPL que falta, y sospecho que puede haber un error con mi código anterior (método 2).

Estoy intentando cargar esta plantilla para todas las páginas con el primer argumento de la ruta de "FDL", por lo site.com/fdl y todos los hijos de FDL.

Sé que hay un montón de posibilidades. pero tengo la sensación de que el error está aquí. gracias por cualquier ayuda que pueda ofrecer.

¿Fue útil?

Solución 4

He encontrado una función de enlace en desuso en la plantilla. la actualización de los parámetros fijados todo.

Otros consejos

Bueno, que hizo borrar la memoria caché? Porque cuando se trata de temas, Drupal coge generalmente temas y plantillas después de caché de compensación recién agregado.

Y si usted no está seguro acerca de su reg. Exp., Creo que simplemente hay que escribir esto:


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

Y borrar la memoria caché.

Esto es lo que tengo en mi template.php:


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

interfaz de usuario es el nombre de mi tema. Tengo un archivo de página-dummy.tpl.php dentro de la carpeta de temas. Para ver que funciona he añadido "Funciona" justo después de la etiqueta del cuerpo. Luego se aclaró caché. Ahora voy a la página "mydomain.com/dummy_tests/1" y ver que funciona.

Si usted está teniendo problemas, tratar de comprobar la salida de drupal_get_path_alias ($ _ GET [ 'q']). Sólo hacer


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

derecha dentro de la función preprocess_page (). Y si realmente comienza con "FDL" todo debería funcionar. Este es un ejemplo de trabajo, por lo que acaba de tratar de jugar y entender por qué no funciona para usted.

Por cierto, intente quitar la plantilla de nodo y dejar sólo la plantilla de página. No sé por qué, pero puede ser algo está mal y el desorden les Drupal.

He intentado añadir plantillas personalizadas tanto en page_preprocess y funciones node_preprocess. Y funcionó tanto para las plantillas de página y de nodo para mí.


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';
  }
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top