Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] In page.tpl.php gezielt einzelne Seiten ansprechen

Eingetragen von benraaa@drupal.org (3)
am 07.04.2009 - 15:45 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hallo Community,

kennt jemand einen Weg, wie ich in der page.tpl.php mittels Variablen eine gezielte Seite bestimmen kann?

Ausgangslage:

Ich habe in meinem Theme Regionen, in denen auf manchen Seiten von Views erzeugte Blöcke ausgegeben werden sollen. Views und Blöcke sind dazu entsprechend eingestellt. Auf allen übrigen Seiten sollen diese Blöcke und der sie umgebende Quellcode nicht erscheinen.

Vereinfachter Beispiel-Code:

<?php if (($portlinks || $portrechts) && !$is_admin): ?>
<div id="portallinks"><?php print $portlinks ?></div>
<div id="portalrechts"><?php print $portrechts ?></div>
<?php endif; ?>

Das Problem:

Ohne !$is_admin spuckt Drupal mir die Blöcke in der Blöcke-Übersichtsseite als gelbe Layout-Darstellung aus und überschreibt damit die reguläre Inhaltsausgabe, so dass ich die tabellarische Blöcke-Ansicht nicht mehr zu sehen bekomme. Mit der Angabe !$is_admin - wie oben im Beispiel-Code - bekommen meine Redakteure, die auch erweiterte Admin-Zugriffe haben, die Blöcke und die Views auf den vorgesehenen Seiten nicht mehr angezeigt, wenn sie angemeldet sind.

Wunschlösung:

Gibt es eine Möglichkeit, anstelle von !$is_admin gezielt die Seite admin/build/block anzusprechen und nur auf dieser den Code nicht auszugeben?

Für alle Fälle: Drupal ist 6.10, Views ist 6.x-2.3.

Danke schon mal und Grüße,

benraaa

‹ [gelöst] css. hexcodes bei Bildergalerie umfärben... Hilfe gesucht! [gelöst] Aktive Menüpunkte bei selbst erstellten Menüs ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

arg

Eingetragen von stBorchert (6003)
am 07.04.2009 - 16:52 Uhr

Moin!
Mit der Funktion arg() kannst Du den aktuellen Pfad bestimmen.
Das sollte Dir (glaube ich zumindest) weiterhelfen.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn du Blöcke nur einem

Eingetragen von Tobias Bähr (4019)
am 07.04.2009 - 17:28 Uhr

Wenn du Blöcke nur einem bestimmten Pfad / php Bedingung ausgeben willst. Tuest du das , indem du diesen Block bearbeitest unten bei Seitenspezifische Sichtbarkeitseinstellung dies eingibst.

Und in der Blöckeverwaltungseite sind die Bereiche mit der gelben Bezeichnung eine Region, in der man ein Block verschieben/ausgeben kann.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank!

Eingetragen von benraaa@drupal.org (3)
am 07.04.2009 - 22:21 Uhr

Das war es, was ich gesucht habe. Danke, Stefan. Bin zwar auf die arg() Funktion schon einige Male gestoßen, hielt sie aber immer für eine komplexere Geschichte, die nichts mit meinem Problem zu tun habe. Ich bin kein php-Meister und kann mir immer nur aus Beispielen meine Schnipsel nachbasteln, deshalb ist mein Ergebnis jetzt sicher auch zu umständlich, aber es erfüllt genau den Zweck:

<?php if (arg(0) != 'admin' && arg(1) != 'build' && arg(2) != 'block'): ?>

@Spartacus: danke auch für die Tipps, auch wenn mir das schon klar war. Mein Problem war auch der Code, der sich in der page.tpl.php um die Region, in der der Block ausgegeben werden soll, befindet. Insofern würde hier die Sichtbarkeitseinstellung des Blocks nicht helfen. Trotzdem danke.

Im Übrigen: ich bin, wie wohl so einige, ein Ex-Joomla-Nutzer, der schrottgenervt zu Drupal gewechselt ist. Und ich bin begeistert von den Möglichkeiten, die ich endlich habe.

Grüße,

benraaa

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was willst du mit diesem

Eingetragen von Tobias Bähr (4019)
am 07.04.2009 - 22:52 Uhr

Was willst du mit diesem Code erreichen? Sehe grad den Sinn nicht?

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da du gefragt hast, nochmal

Eingetragen von benraaa@drupal.org (3)
am 08.04.2009 - 12:16 Uhr

Da du gefragt hast, nochmal ein etwas ausführlicher Erklärungsversuch. Ich habe ein 3-spaltiges Grundlayout. In der mittleren Spalte wird der Inhalt ausgegeben. Auf manchen Portalseiten (Übersichtsseiten der Rubriken) soll diese Spalte aber noch einmal in 2 Spalten unterteilt werden, in denen jeweils links und rechts die angerissenen Artikel gelistet sind. Die Redakteure können mittels CCK-gestalteter Checkbox in ihren Artikeln einstellen, ob der Artikel links oder rechts gelistet werden soll. Das heißt: ich habe Seiten, in denen dort, wo sonst der Content angezeigt wird, dieser nicht angezeigt werden darf, sondern die beiden Spalten, die jeweils einen eigenen Block enthalten. Beide Blöcke werden über ein View ausgegeben.

Die page.tpl.php sieht nun in etwa so aus (vereinfachte Darstellung):

<?php if ($portlinks || $portrechts): ?>
  <?php if (arg(0) != 'admin' && arg(1) != 'build' && arg(2) != 'block'): ?>
    <div id="portallinks">
      <?php print $portlinks ?>
    </div>
    <div id="portalrechts">
      <?php print $portrechts ?>
    </div>
  <?php endif; ?>
<?php endif; ?>

<?php if (!$portlinks || !$portrechts || $is_admin): ?>
  <?php print $content; ?>
<?php endif; ?>

Das Problem war, dass mir die erste If-Abfrage, die auf den Seiten, auf denen die Blöcke erscheinen sollen, die Spalten erzeugen soll, auf der Blöckeverwaltungseite in die Quere kommt, weil die Blöcke dort exemplarisch in den Regionen anagezeigt werden. Deshalb kommt die zweite If-Abfrage nicht mehr zum Zug. Die wäre aber nötig, um die Blöcke verwalten zu können. Ohne $content wird eben nichts angezeigt. Durch die Abfrage mit den Argumenten konnte ich das jetzt umgehen.

Ich kann mir vorstellen, dass mein Ziel - zwei Spezial-Blöcke auf manchen Seiten in zwei Spalten ausgeben zu lassen - anders zu lösen ist. Womöglich tatsächlich über die php-basierte Sichtbarkeits-Einstellung direkt in den Blöcken. Ich werde das später mal testen. Im Moment bin ich mit dem Ergebnis zufrieden. Und da ich noch immer mehr in HTML/CSS denke als in PHP, gehe ich die Sachen gewohnheitsbedingt auch von dieser Seite her an. In einem CMS sicher nicht immer die effizienteste Methode, aber der Rest ergibt sich eben erst nach und nach.

Gruß,

benraaa

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 10 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 10 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 35 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association