Inhalt erscheint nur nach dem löschen vom Cache
am 05.10.2010 - 13:20 Uhr in
Ich hab mir einen Page-View erstellt der mir Inhalte filtert. Das funktioniert in der Vorschau auch richtig gut aber wenn ich auf den entsprechenden Link klicke bekomme ich einfach eine Seite ohne Inhalt zu sehen. Keine blank page oder sowas... der Rahmen der Seite (inkl. Navi) ist vorhanden. Wenn ich dann den Chache leere zeigt Drupal mir Inhalt an. Aber sobald ich die Seite reloade ist der Inhalt wieder weg.
Ich vermute das es mit dem Inhaltstyp zu tun hat. Ich habe für diesen einige Felder via CCK definiert und ihm eine eigene .tpl Datei gegeben. Das Problem ist denke ich irgendwo hier begründet weil ich die $content
nicht ausgeben sondern mir mit den CCK-Felder ein eigenes Layout zusammen baue. Der User hat nämlich an diesem Inhaltstyp 3 Radiobuttons die es Ihm ermöglichen zwischen unterschdiedlichen Darstellungen des Inhalts zu wählen.
Hier ist mal der Inhalt des node-gallery.tpl.php:
<?php
// Global
$page = 0;
$lastopen = false;
// Layout 0
if ($node->field_gallery_layout[0]['value'] == '0') {
$max = 12; //Anzahl der Bilder pro Seite
$big = array(2, 9); // Wann große Bilder anzeigen - Hier ist das 2 und das 9 Bild groß
$space = array(0, 3, 5, 7, 10); // Wann Abstaende einbinden class=m20 - Hier bekommen Bild 0,3,5,7,10 die Klasse m20
$open = array(0, 3, 9); // Wann div oeffnen
$close = array(2,8); // Wann div schliessen
}
// Layout 1
if ($node->field_gallery_layout[0]['value'] == '1') {
$max = 9;
$big = array(0, 3, 6);
$space = array(1, 4, 7);
$open = array(0, 3, 6);
$close = array(2, 5);
}
// Layout 2
if ($node->field_gallery_layout[0]['value'] == '2') {
$max = 9;
$big = array(0, 5, 6);
$space = array(1, 3, 7);
$open = array(0, 3, 6);
$close = array(2, 5);
}
function checkIdInArray($id, $arr, $offset){
foreach($arr as $k=>$v){
if( $v+$offset == $id ) return true;
}
return false;
}
?>
<div class="grid carousel clearfix">
<ul>
<li>
<?php foreach ($node->field_thumbnail as $id => $thumb): ?>
<?php if($id > 0 && $id % $max == 0):?>
<?php $page = $page+1; ?>
<?php endif; ?>
<?php $offset = $page*$max; ?>
<?php if (checkIdInArray($id,$space,$offset)):?>
<?php $conf = array('class'=>'m20');?>
<?php else:?>
<?php $conf = '';?>
<?php endif; ?>
<?php
if (checkIdInArray($id,$big,$offset)) {
$img = theme('imagecache', 'thumbnail_300x300', $thumb['filepath'], '', '', $conf);
}
else {
$img = theme('imagecache', 'thumbnail_140x140', $thumb['filepath'], '', '', $conf);
}
?>
<?php if( $id > 0 && $id%$max == 0):?>
</div>
</li>
<li>
<?php endif ?>
<?php
if( checkIdInArray($id, $open, $offset)) {
print '<div class="col c300">';
$lastopen = true;
}
?>
<?php print $img; ?>
<?php if (checkIdInArray($id,$close,$offset)):?>
</div>
<?php $lastopen=false; ?>
<?php endif ?>
<?php endforeach; ?>
<?php if($lastopen):?></div><?php endif; ?>
</li>
</ul>
<div class="page-nav clearfix"><a href="#" class="prev btn disabled">PREV</a> <div id="pagination"></div> <a href="#" class="next btn">NEXT</a></div>
</div>
Hier passiert eigentlich nichts anderes als das mittels eines fest definierten Arryas bestimmte Thumbnails groß oder klein Dargestellt werden und in entsprechendes Markup gepackt werden. Zu sehen ist das ganze hier: http://www.michael-dannenmann.de/artists.php
.
Vermutlich ist das ein völlig falscher Ansatz und diese ganze Logik hätte in die template.php gemusst, oder? Herrje, hoffe auf Hilfe.
Danke,
Steffen
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 6 Stunden 55 Minuten
vor 7 Stunden 52 Minuten
vor 9 Stunden 36 Minuten
vor 23 Stunden 23 Minuten
vor 1 Tag 2 Stunden
vor 1 Tag 2 Stunden
vor 1 Tag 4 Stunden
vor 1 Tag 4 Stunden
vor 1 Tag 4 Stunden
vor 1 Tag 5 Stunden