Override di html.tpl e page.tpl per una determinata vista

5 contenuti / 0 new
Ultimo contenuto
Override di html.tpl e page.tpl per una determinata vista

Ciao
gestisco vari siti dove periodicamente devo inserire dei banner a rotazione che linkano ad altri siti
Attualmente per ogni sito creo un contenuto banner con
- immagine pubblicitaria di un evento
- link al sito che contiene la descrizione dell'evento
per la visualizzazione dei banner ho creato un blocco tramite una vista e la rotazione delle immagini avviene tramite slideshow.

Mi piacerebbe centralizzare la gestione dei banner in un unico sito e, tramite iframe, importare il risultato della vista negli altri siti

nel sitoprincipale.com ho creato la vista (banner) di tipo pagina (http://www.sitoprincipale.com/banner) e negli altri siti ho importato il risultato tramite iframe

Quello che non riesco a fare e visualizzare in http://www.sitoprincipale.com/banner solo lo slideshow senza intestazione e pie d ipagina del sito.

Ho provato a creare views-view--banner--page.tpl.php ma in ogni caso non riesco a visualizzare solamente il contenuto.

Come posso fare l'override di html.tpl e page.tpl per una determinata vista ?

Grazie

Drupal Version:

Ciao Scorpio26,
basta inserire nel template.php del tema del tuo sito principale la seguente funzione di preprocess

<?php
/**
 * Implements hook_preprocess_hook()
 */
function MYTHEME_preprocess_page(&$variables) {
  if (
current_path() === 'path/pagina/slideshow') {
   
$variables['theme_hook_suggestions'][] = 'page__iframe';
  }
}
?>

e creare nella cartella templates del tema del tuo sito principale il template page--iframe.tpl.php in cui stampi solo gli elementi della pagina che ti interessa mostrare nell'iframe es:

<?php print render($page['content']); ?>

In alternativa puoi utilizzare moduli pensati appositamente per l'embed dei contenuti come ad esempio Web Widgets

buon lavoro

Grazie willzyx
Siccome utilizzo il tema zircon ho dovuto modificare la funzione
function zircon_preprocess_page(&$vars)
inserendo

if (current_path() === 'banner') {
$vars['theme_hook_suggestions'][] = 'page__iframe';
}

Tutto funziona :-)
occorre ricordarsi di cancellare la cache.
Grazie Mille

Qualche informazione utile in più per chi volesse utilizzare questa modalità.
I banner che ho utilizzato hanno dimensioni 200x283.

il tipo di contenuto banner ha come campi
- titolo
- immagine
- link (Titolo del link nessuno; Max length of title field: 128)

Questo è il codice che ho inserito nei blocchi dei vari siti

<div class="rtecenter">
<iframe allowfullscreen="" frameborder="0" height="300" scrolling="no" src="http://www.sitoprincipale.org/it/banner" style="overflow:hidden" width="200"></iframe></div>

Ho utilizzato altezza 300 perchè visualizzo anche in contatore delle slide.
Importante style="overflow:hidden" per evitare la comparsa delle barre di scorrimento.

Se può servire questa è la vista

$view = new view();
$view->name = 'banner';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'banner';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'banner';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'altro';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Applica';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Ripristina';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Ordina per';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Disc';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['style_plugin'] = 'slideshow';
$handler->display->display_options['style_options']['slideshow_type'] = 'views_slideshow_cycle';
$handler->display->display_options['style_options']['slideshow_skin'] = 'default';
$handler->display->display_options['style_options']['skin_info'] = array(
  'class' => 'default',
  'name' => 'Predefinito',
  'module' => 'views_slideshow',
  'path' => '',
  'stylesheets' => array(),
);
$handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['weight'] = '1';
$handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['type'] = 'views_slideshow_pager_fields';
$handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['views_slideshow_pager_fields_fields'] = array(
  'title' => 0,
  'field_link_banner' => 0,
  'field_immagine' => 0,
);
$handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['weight'] = '1';
$handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['type'] = 'views_slideshow_controls_text';
$handler->display->display_options['style_options']['widgets']['top']['views_slideshow_slide_counter']['weight'] = '1';
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['weight'] = '1';
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['type'] = 'views_slideshow_pager_fields';
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['views_slideshow_pager_fields_fields'] = array(
  'title' => 0,
  'field_link_banner' => 0,
  'field_immagine' => 0,
);
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_controls']['weight'] = '1';
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_controls']['type'] = 'views_slideshow_controls_text';
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_slide_counter']['enable'] = 1;
$handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_slide_counter']['weight'] = '1';
$handler->display->display_options['style_options']['views_slideshow_cycle']['effect'] = 'scrollHorz';
$handler->display->display_options['style_options']['views_slideshow_cycle']['timeout'] = '5000';
$handler->display->display_options['style_options']['views_slideshow_cycle']['speed'] = '700';
$handler->display->display_options['style_options']['views_slideshow_cycle']['delay'] = '0';
$handler->display->display_options['style_options']['views_slideshow_cycle']['start_paused'] = 0;
$handler->display->display_options['style_options']['views_slideshow_cycle']['remember_slide_days'] = '1';
$handler->display->display_options['style_options']['views_slideshow_cycle']['items_per_slide'] = '1';
$handler->display->display_options['style_options']['views_slideshow_cycle']['wait_for_image_load_timeout'] = '3000';
$handler->display->display_options['style_options']['views_slideshow_cycle']['cleartype'] = 0;
$handler->display->display_options['style_options']['views_slideshow_cycle']['cleartypenobg'] = 0;
$handler->display->display_options['row_plugin'] = 'fields';
/* Campo: Contenuto: Titolo */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['exclude'] = TRUE;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
/* Campo: Contenuto: Link al sito */
$handler->display->display_options['fields']['field_link_banner']['id'] = 'field_link_banner';
$handler->display->display_options['fields']['field_link_banner']['table'] = 'field_data_field_link_banner';
$handler->display->display_options['fields']['field_link_banner']['field'] = 'field_link_banner';
$handler->display->display_options['fields']['field_link_banner']['label'] = '';
$handler->display->display_options['fields']['field_link_banner']['exclude'] = TRUE;
$handler->display->display_options['fields']['field_link_banner']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_link_banner']['click_sort_column'] = 'url';
/* Campo: Contenuto: Immagine */
$handler->display->display_options['fields']['field_immagine']['id'] = 'field_immagine';
$handler->display->display_options['fields']['field_immagine']['table'] = 'field_data_field_immagine';
$handler->display->display_options['fields']['field_immagine']['field'] = 'field_immagine';
$handler->display->display_options['fields']['field_immagine']['label'] = '';
$handler->display->display_options['fields']['field_immagine']['alter']['make_link'] = TRUE;
$handler->display->display_options['fields']['field_immagine']['alter']['path'] = '[field_link_banner] ';
$handler->display->display_options['fields']['field_immagine']['alter']['target'] = '_blank';
$handler->display->display_options['fields']['field_immagine']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_immagine']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_immagine']['settings'] = array(
  'image_style' => '',
  'image_link' => '',
);
/* Criterio di ordinamento: Contenuto: Data di inserimento */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Criterio del filtro: Contenuto: Pubblicato */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Criterio del filtro: Contenuto: Tipo */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'banner' => 'banner',
);
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'banner';

Per precisione sites/all/themes/zircon/inc/preprocess_functions.inc

function zircon_preprocess_page(&$vars) {
  global $theme_key;
  $current_skin = theme_get_setting('skin');
  if (isset($_COOKIE['nucleus_skin'])) {
    $current_skin = $_COOKIE['nucleus_skin'];
  }
  $vars['page']['show_skins_menu'] = $show_skins_menu = theme_get_setting('show_skins_menu');
  if($show_skins_menu) {
    $skins = nucleus_get_predefined_param('skins', array("default" => t("Default Style")));
    $current_skin = theme_get_setting('skin');
    if (isset($_COOKIE['nucleus_skin'])) {
      $current_skin = $_COOKIE['nucleus_skin'];
    }
$str = array();
    $str[] = '<div id="change_skin_menu_wrapper" class="change-skin-menu-wrapper wrapper">';
    $str[] = '<div class="container">';
    $str[] = '<ul class="change-skin-menu">';
foreach ($skins as $skin => $skin_title) {
  $li_class = ($skin == $current_skin ? ($skin . ' active') : $skin);
  $str[] = '<li class="' . $li_class . '"><a href="#change-skin/' . $skin . '" class="change-skin-button color-' . $skin . '">' . $skin_title . '</a></li>';
}
$str[] = '</ul></div></div>';
$vars['page']['show_skins_menu'] = implode("", $str);
  }
/*** codice per la gestione dei banner ***/
    if (current_path() === 'banner') {
       $vars['theme_hook_suggestions'][] = 'page__iframe';
    }
/*** END codice per la gestione dei banner ***/ 
  $default_logo = theme_get_setting("default_logo");
  $toggle_logo = theme_get_setting("toggle_logo");
  if (!empty($current_skin) && $current_skin != 'default'  && $default_logo && $toggle_logo) {
    $vars['logo'] = file_create_url(drupal_get_path('theme', $theme_key)) . "/skins/" . $current_skin . "/logo.png";
  }
  drupal_add_js('
(function ($) {
  if (Drupal.Nucleus == undefined) {
Drupal.Nucleus = {};
  }
  Drupal.behaviors.skinMenuAction = {
attach: function (context) {
  jQuery(".change-skin-button").click(function() {
parts = this.href.split("/");
style = parts[parts.length - 1];
jQuery.cookie("nucleus_skin", style, {path: "' . base_path() . '"});
window.location.reload();
return false;
  });
}
  }
})(jQuery);
  ', 'inline');
}

sites/all/themes/zircon/tpl/page--iframe.tpl.php

<?php print render($page['content']); ?>