Benytte page-front.tpl.php ved læsning af blog indlæg

Hej med jer. jeg har 2 templates: page-front.tpl.php og page.tpl.php

Min blog bliver vist på forsiden, dog vil jeg gerne have at når man læser det enkelte indlæg fra bloggen, at den også benytter page-front.tpl.php (ingen venstre menu og mere plads til at læse) desværre gør den brug af page.tpl.php.

har kigget på http://drupal.org/node/223440 og http://www.lullabot.com/articles/hacking_phptemplate men kan ikke få det til at virke.

Nogle der har et fif?

kimms billede

For hver blok du ikke vil have vist kan du i blokkens egenskaber sætte, at den skal vises på alle sider, undtagen [sti-på-den-side-den-ikke-skal-vises]. Det er forklaret ret præcist i hjælpeteksten under den boks, hvor man skal indsætte stien.

willowwillows billede

Tror ikke lige det er det jeg søger.

Det er når man klikker ind på det enkelte blog indlæg og læser den fulde node for indlægget, at jeg vil have den til at bruge det samme udenomliggende design som page-front.tpl.php, istedet for page.tpl.php.

Du kan ikke få Drupal theming system til at bruge page-front-tpl.php, den vil kun blive brugt til forsiden. Ellers skal du override Drupals template vælger system, hvilket er en noget kompleks opgave.

Istedet er det meget letter som kimm skriver at styre hvornår indholdet i den sidebar bliver vist. Det skulle være ret enkelt at skjule indholdet i den alle blog indlæg sider. Hvis det theme er skruet fornuftigt sammen, vil sidebaren forsvinde hvis der ikke er noget indhold i den og det vil løse dit problem.

Alternativt kan du lave en kopi at page-front og prøve at navngive den, så Drupal vil bruge den på dine blog sider.

Du kan også tage fat i en preprocess funktion i dit theme, og styre din sidebar den vej igennem.

beltoftes billede

Du burde kunne gøre det rimelig simpelt i template.php filen i dit tema. Prøv noget i denne retning:

<?php
/**
* Override or insert PHPTemplate variables into the templates.
*/
function phptemplate_preprocess_page(&$vars) {
  if (
arg(0) == 'blog' || (isset($vars['node']->type) && $vars['node']->type == 'blog')) {
   
$suggestions[] ='page-front';
  }
  if (
is_array($suggestions)) {
   
$vars['template_files'] = array_merge($vars['template_files'], $suggestions);
  }
}
?>
willowwillows billede

Den har jeg prøvet men den kalder bare hele blog listen og ikke blog indlægget. Men det blev til i page.tpl.php

<?php
if ($node->type!='blog'):
?>
Udskriv venstre side
<?php
else:
?>
Udelad venstre side og giv mere plads til blog indlæg
<?php
endif;
?>

Takker for svar :-)

beltoftes billede

Lyder mystisk da "(isset($vars['node']->type) && $vars['node']->type == 'blog')" netop fanger dine blog noder.