¿Cómo puedo crear una personalizada page.tpl.php para una vista específica?

No estoy hablando de estilo de la propia vista, sólo la página en la que la vista se procesa.

Gracias.

@Keith Morgan – Es página.

  • El enfoque depende de qué tipo de visualización de la vista que está trabajando. Es la página o bloque, por ejemplo?

8 Comentarios

  1. 5

    Puede crear un archivo de plantilla para el tema casi cualquier aspecto de las vistas de la salida. En el caso de que desee crear una plantilla personalizada para su visualización de la página.

    En el diseñador de vistas, haga clic en el Tema de enlace en Configuración Básica. Podrás ver algunos de plantilla de nomenclatura de archivos de opciones dependiendo de si desea tema de la vista completa (por ejemplo, views-view–example–page.tpl.php), cada fila (por ejemplo, views-view-fields–example–page.tpl.php) y así sucesivamente.

    Copia de la correspondiente plantilla que desea personalizar de /sites/all/modules/views/tema para su tema y personalizar como quieras.

    Una vez que creas tu plantilla personalizada de archivos, usted puede ir de nuevo a la vista diseñador Tema enlace para asegurarse de que está siendo utilizado. La plantilla debe estar en negrita.

    Espero que esto ayude.

    • No es el OP preguntando acerca de la tematización de la página cuando está activada la vista y no la propia vista? Cuando usted tiene una vista con una visualización de la página, la parte más alta de la plantilla es aún derivados de views-view.tpl.php, que no incluye los elementos de la página. Esto todavía se pone a macerar en cualquiera que sea la plantilla de la página está activa.
  2. 7

    Por Allartk la solución

    En Drupal 7 template.php:

    function <theme>_preprocess_page(&$variables) {
        if (($views_page = views_get_page_view()) && $views_page->name === "galleries") {
          $variables['theme_hook_suggestions'][] = 'page__views__galleries';
        }
    }

    A continuación, en el directorio de temas, crear la page–views–galleries.tpl.php archivo.
    Borrar caché de drupal y la plantilla de trabajo.
    He utilizado ‘galerías’ como ejemplo y vistas nombre.

    • No hay necesidad para ello, sólo tiene que utilizar drupal 7 is page--path-to-view.tpl.php
    • la ventaja de Amir del enfoque es que se puede explícitamente ver que la plantilla contiene un punto de vista, si la convención de nomenclatura de las preocupaciones que usted (tal y como hemos page–node-mynode.tpl.php por ejemplo). Me gusta combinar similar a la anterior con la utilización de la vista del nombre de la máquina, de modo que, por ejemplo, si mi punto de vista existe aquí/ahí/myview, puedo tener page–view–myview.tpl.php en lugar de la estándar page–here–there–myview.tpl.php
  3. 2

    Tenido un problema similar, lo que fue subsanado por poner una .tpl.php en mi tema de la carpeta de plantillas. La convención de nomenclatura para una página de visualización de vistas en drupal 7 es page–path-to-view.tpl.php

  4. 2

    En un drupal 7 tema he añadido una plantilla sugerencia en template.php:

    function sovon_preprocess_page(&$variables) {   
    if(views_get_page_view())   {
        $variables['theme_hook_suggestions'][] = 'page__view';      
    }
    }

    Ver http://api.drupalize.me/api/drupal/function/views_get_page_view/7 y http://drupal.org/node/223440#custom-suggestions para obtener más información.

    • Me gustó la sencillez de su respuesta, pero pensé que había que construir sobre ella. También me doy cuenta de que hace más de dos años de edad, pero esto puede ayudar. Así, lo que hice fue cambiar el interior de la función a esto: if($view = views_get_page_view()) { $variables[‘theme_hook_suggestions’][] = ‘página-vista-‘.$ver->nombre; } Lo que hace es agarra el nombre de la vista y busca los archivos de plantilla con el prefijo de «página vista» y su nombre de vista. De esta manera se puede extender esto sin tener que escribir un caso de declaración para cada vista.
  5. 1

    Asumiendo un punto de vista de una página, puede utilizar los resultados de page_manager_get_current_page() en su preprocesar para determinar si su vista está activa, tomar los pasos apropiados (tachuela en las clases de cuerpo, agregar una plantilla de sugerencia, etc).

  6. 1

    utilizando sillygwailo sugerencia conseguí este trabajo, para mí muy bien:

    function YOUR-THEME-NAME_preprocess_page(&$vars) {
    
     //allow template suggestions based on url paths.  
     $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q'])); 
     if ($alias != $_GET['q']) { $suggestions = array();
     $template_filename = 'page'; 
     foreach (explode('/', $alias) as $path_part) {
     $template_filename = $template_filename . '-' . $path_part; 
     $suggestions[] = $template_filename;
     } 
     $alias_array = explode('/', $alias);
     $variables['template_files'] = $suggestions; 

    Si tu punto de vista es en http://www.example.com/photos , crear un page-photos.tpl.php en el directorio de temas y drupal va a utilizar como plantilla.

  7. 0

    Si que comprueba la respuesta no funciona(porque no para mí) usted puede crear una página–(urlname).tpl.php y luego el estilo de su tema que usted desee. A continuación, puede importar su vista en una de varias maneras …

           print render($page['content']);  

    o

    $view = views_get_view(‘viewname’);
    print $view->execute_display(‘default’, $args);

    $args es simplemente una matriz y puede estar en blanco..que puede dejarlo fuera totalmente

Dejar respuesta

Please enter your comment!
Please enter your name here