page.tpl.php: Bestimmte Code Zeile soll nur bei 3 Inhaltstypen erscheinen, was in IF Schleife?
am 28.09.2008 - 20:39 Uhr in
Hallo,
ich möchte in meiner page.tpl.php eine bestimmte Zeile Code einfügen, die nur bei 3 bestimmten Inhaltstypen aufgerufen werden soll. Sprich ich möchte eine IF Schleife schreiben, weiß aber nicht auf was ich diese beziehen muss.
<?php if (?????) { ?>Hier kommt der Code/Text rein<?php } ?>
Da wo die Fragezeichen stehen müsste dann die zu prüfende Variable, etc stehen. Was müsste hier genau rein, um die Inhaltstypen zu prüfen?
Wisst ihr was ich meine?
Sicherlich wäre die Sache auch über 3 page-???.tpl.php zu lösen, allerdings fände ich das recht umständlich für lediglich eine Zeile Mehrcode.
Würde mich freuen, wenn mir jemand bei der Sache weiterhelfen kann.
Danke schonmal und viele Grüße
Florian
- Anmelden oder Registrieren um Kommentare zu schreiben
<?phpif (arg(0) == 'node' &&
am 28.09.2008 - 20:44 Uhr
<?php
if (arg(0) == 'node' && is_numeric(arg(1)) {
$node = node_load(arg(1));
if (in_array($node->type, array('page', 'story', 'test'))) {
print "drupal ist der ganze wahnsinn";
}
}?>
Vom Prinzip gehts einfach so
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
hallo dereine, danke für
am 29.09.2008 - 08:32 Uhr
hallo dereine,
danke für deine antwort.
also dein code führt zu folgenden fehler: Parse error: syntax error, unexpected '{' in xxx\yazio\page.tpl.php on line 25
allerdings führt:
<?php
if (in_array($node->type, array('xxx', 'xx', 'x'))) {
print "drupal ist der ganze wahnsinn";
}
?>
zum gewünschten ergebnis...klär mich mal auf? :D
grüße
florian
kann ich den obigen code von
am 30.09.2008 - 09:40 Uhr
kann ich den obigen code von mir nun bedenkenlos verwenden? er funktioniert ja bisher einwandfrei...
wflorian schrieb kann ich
am 30.09.2008 - 10:17 Uhr
kann ich den obigen code von mir nun bedenkenlos verwenden? er funktioniert ja bisher einwandfrei...
Ja auf alle Fälle.
Wobei in der page.tpl.php müsste $node schon vorhanden sein und es sollte
<?php
if (in_array($node->type, array('page', 'story', 'test'))) {
print "drupal ist der ganze wahnsinn";
}
?>
reichen, wie du geschrieben hast.
---
Viele Grüße,
Kars-T
Arbeit: comm-press
Hobbies: Tower Defense HQ, plamo.de, Blog
Hallo Kars-T. Danke für
am 30.09.2008 - 10:32 Uhr
Hallo Kars-T.
Danke für deine Antwort.
Super. Das freut mich! ;)
Grüße
Florian
"page.tpl.php" kennt das Nodeobject nicht.
am 30.09.2008 - 10:39 Uhr
Wobei in der page.tpl.php müsste $node schon vorhanden sein und es sollte
In der "page.tpl.php" ist das Nodeobject ($node) nicht verfuegbar.
Es muss also in Abhaengigkeit der URL geladen werden.
<?php
/* auf URL-Schema /node/x pruefen */
if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == '' ) {
/* Nodeobject laden */
$mynode = node_load(arg(1));
/* auf gewuenschte Nodetypes pruefen */
if ( $mynode->type == 'page' || $mynode->type == 'story' || $mynode->type == 'test' ) {
print "Drupal treibt Dich in den Wahnsinn.";
}
}
?>
Das
arg(2) == ''
soll sicherstellen das der Code nur bei URL's nach dem Schema example.com/node/x ausgefuehrt wird.-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
quiptime
am 30.09.2008 - 10:59 Uhr
Wobei in der page.tpl.php müsste $node schon vorhanden sein und es sollte
In der "page.tpl.php" ist das Nodeobject ($node) nicht verfuegbar.
Ist es doch ;)
Sonst könnte ich das hier nicht verwenden und das Bild im Kopf der Seite verändern.
<?php
// aus der page.tpl.php
if($node->field_head[0]['filepath']){
$image = '/files/imagecache/Resize_675x137/'.$node->field_head[0]['filepath'];
}else{
$image = base_path().path_to_theme().'/images/'.'motiv-standard.jpg';
}
?>
Ich lade nicht $node von Hand.
http://www.clipper-aviation.de/
http://www.clipper-aviation.de/rundfluege/rundflug-ueber-hamburg-mit-dem...
---
Viele Grüße,
Kars-T
Arbeit: comm-press
Hobbies: Tower Defense HQ, plamo.de, Blog
"page.tpl.php" kennt kein Nodeobject
am 30.09.2008 - 11:23 Uhr
Eben frisch mit D6 getestet. In der "page.tpl.php" ein
<?php
print 'Nodetype: '.$node->type;
?>
eingefuegt. Resultat: Keine Nodetype-Info.
Zu sehen auf http://drupal6.quiptime.com/
Edit
Bei der Anzeige einer Teaserliste, wie auf einer Startseite beispielsweise: Welche Node des Nodeobjectes soll denn verfuegbar sein wenn 10 Node-Teaser angezeigt werden?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
quiptime schrieb Bei der
am 30.09.2008 - 11:51 Uhr
Bei der Anzeige einer Teaserliste, wie auf einer Startseite beispielsweise: Welche Node des Nodeobjectes soll denn verfuegbar sein wenn 10 Node-Teaser angezeigt werden?
Klar, aber damit gibst du dir ja eigentlich schon die Antwort:
Wenn du einen Node aufrufst, dann hast du auch ein $node sofort zur Verfügung. Wenn der Kontext um viele Nodes geht, dann hast du auch keins :)
wenn ich so ein Print in die page.tpl.php setze sehe ich auf Views und Panels Seiten nichts, aber auf "normalen" Seiten gibt es halt was aus.
---
Viele Grüße,
Kars-T
Arbeit: comm-press
Hobbies: Tower Defense HQ, plamo.de, Blog