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

[Gelöst] Variablen, mytheme_preprocess und der Wahnsinn im Allgemeinen

Eingetragen von Runach (12)
am 28.08.2009 - 15:46 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hoi,

ich bin mit meinem ersten Theme jetzt schon recht weit und dachte mir auch, dass mir jetzt nichts Schlimmes mehr passieren koennte. Na ja, man soll halt nicht so viel denken. Es kam natuerlich wieder alles ganz anders als gedacht, und jetzt stehe ich da und verstehe gar nichts mehr...

Ich habe unter anderem einen View als Block, der auf der Startseite gezeigt wird. Funktioniert soweit auch bestens. Dieser Block wird auch entsprechend anders formatiert dargestellt, was ich ueber das Anlegen einer entsprechenden node-views-mtb.tpl.php erreicht habe. Jetzt kommt aber der Punkt, der einfach fehlschlaegt, und wo ich gerne eure Hilfe haette.

In diesem node-view-mtb.tpl.php moechte ich auf eine Variable zugreifen, die ausserhalb generiert und verwaltet werden soll. Nun dachte ich, dass ich die Variable folgendermassen anlegen kann:

function meintheme_preprocess(&$variables, $hook){
  $variables['neueVariable'] = 10;
}

Das funktioniert auch insofern, als dass ein print $neueVariable in node-view-mtb.tpl.php eine 10 ausgibt. Beim nun folgenden Step versage ich gaenzlich. Ich moechte die Variable manipulieren und in folgenden Nodes dann entprechend manipuliert ausgeben. Daher dachte ich, dass mein Freund meintheme_preprocess_node() waere, ich also per folgendem Code ans Ziel kaeme:

function meintheme_preprocess_node(&$variables){
  $variables['neueVariable'] = $variables['neueVariable'] * 2;
}

Ich haette ja jetzt gedacht, dass der erste Node den Wert 20 hat, der zweite den Wert 40, der dritte den Wert 80, tbc. Stattdessen haben alle Nodes den Wert 20. Im Gegensatz zu meiner Theorie wird entweder meintheme_preprocess_node () nicht ein Mal pro angezeigtem Node aufgerufen, oder aber die Variable wird nicht aktualisiert. Wo ist mein Denkfehler, oder bin ich mit den preprocess Funktionen eh komplett auf dem Irrweg?

Ich wuerde mich sehr ueber Hilfe freuen!

‹ Wie Views Block themen? Div nicht Link mit active-trail ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

meintheme_preproces wird für jeden Node neu ausgeführt.

Eingetragen von traxer (1009)
am 01.09.2009 - 11:50 Uhr

meintheme_preprocess wir jedes mal aufgerufen wenn die Funktion theme aufgerufen wird. Also für den ersten Node des Views, für den zweiten und für alle weiteren. Jedes mal wird $variables['neueVariable'] auf den Wert 10 gesetzt. In meintheme_preprocess_node wird die 10 dann mit 2 multipliziert, was dabei rauskommt siehst du ja.

Werfe meintheme_preprocess weg und verwende

<?php

function meintheme_preprocess_node(&$variables){
  static
$neueVariable = 10;
 
$neueVariable *= 2;
 
$variables['neueVariable'] = $neueVariable;
}

?>

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

[geloest] Variablenuebergabe innerhalb des Themes

Eingetragen von Runach (12)
am 01.09.2009 - 12:54 Uhr

Vielen vielen Dank! Mein Fehler war einfach nur das static ausgelassen zu haben. Der Rest war mir dann noch am gleichen WE klar, nur wegen des fehlenden static habe ich mir natuerlich die Variable jedes Mal neu initialisiert...

Ich habe es jetzt ueber die meintheme_preprocess(&$variables, $hook) geloest, da ich als hook nicht nur node, sondern auch page brauchte. Jetzt laeuft alles so wie erwartet! In der template.php werden die entsprechenden neuen Variablen bei mir verwaltet, in der node.tpl.php ergaenzt, geaendert und in der page.tpl.php angezeigt. Perfekt!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 23 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Tagen 15 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 8 Wochen 14 Stunden
  • Update: jetzt gibt's ein
    vor 8 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 3 Tagen
  • In der entsprechenden View
    vor 9 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» 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 26 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