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

Frage zum Preprocess

Eingetragen von iterator (31)
am 17.01.2010 - 22:45 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hi zusammen,
ich hänge da gerade an einer Stelle fest und komme nicht weiter:

<?php

function mymodule_theme() {
 
$theme['mymodule_output'] = array(
   
'arguments' => array('account' => NULL, 'active' => NULL),
   
'template' => 'mymodule_output',
  );
 
  return
$theme;
}
?>

<?php
function mymodule_preprocess_output(&$variables) {
 
$user = $variables['account'];
}
?>

<?php
// Aufruf
theme('mymodule_output', $account);
?>

Soweit funktioniert alles. Beim Aufruf der theme()-Funktion übergebe ich ein Userobjekt ($account), welches dann in der preprocess-Funktion in $variables vorhanden ist. Wie man im hook_theme sieht, will ich aber ein weiteres Argument an die preprocess-Funktion übergeben.
<?php
// Aufruf
theme('mymodule_output', $account, $active);
?>

Das funktioniert allerdings nicht, bzw. ich verstehe nicht ganz, wie ich an die Variable $active in der preprocess-Funktion rankomme. Hab ich da einen Denkfehler oder kann man nur ein einziges Argument übergeben?

‹ Newsbar [gelöst] Wie kann man einem "Feld" einen eigenen CSS-Container zuweisen? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

hook_theme

Eingetragen von stBorchert (6003)
am 17.01.2010 - 23:52 Uhr

Hallo.
Also auf den ersten und zweiten Blick sieht der von Dir gepostete Code eigentlich korrekt aus.
Nach Deiner Implementierung von hook_theme() müsste das Array $variables in der preprocess Funktion auch den Schlüssel "active" enthalten und im Template somit auch die Variable $active verfügbar sein.
Schau mal in book.module. Dort ist ein Beispiel mit 3 Argumenten.

Ich hab gerade nochmal in die Implementierung von theme() geschaut. Dort werden (so ca. in der Mitte) die Variablen aus der Definition in hook_theme() durchlaufen und geschaut, ob ein entsprechendes Argument der theme-Funktion übergeben wurde.
Wenn ja, wird es dem Array $variables hinzugefügt und dann an die preprocess-Funktion weitergereicht.
Vielleicht kannst Du an der Stelle mal eine Debug-Ausgabe machen um zu sehen, was da so ankommt und ob Deine Variablen korrekt behandelt werden.
Die entsprechende Stelle im Code ist diese hier:

<?php
     
foreach ($info['arguments'] as $name => $default) {
       
$variables[$name] = isset($args[$count]) ? $args[$count] : $default;
       
$count++;
      }
?>

Hattest Du eventuell erst nur ein Argument in hook_theme() angegeben und das dann später erweitert?
Leere doch nochmal den Theme-Cache, vielleicht hilft das ja.

hth,

 Stefan

--
Sei nett zu Deinem Themer!

  • Anmelden oder Registrieren um Kommentare zu schreiben

iterator schrieb Hi

Eingetragen von bspellmeyer (37)
am 19.01.2010 - 20:44 Uhr
iterator schrieb

Hi zusammen,
ich hänge da gerade an einer Stelle fest und komme nicht weiter:

<?php

function mymodule_theme() {
 
$theme['mymodule_output'] = array(
   
'arguments' => array('account' => NULL, 'active' => NULL),
   
'template' => 'mymodule_output',
  );
 
  return
$theme;
}
?>

<?php
function mymodule_preprocess_output(&$variables) {
 
$user = $variables['account'];
}
?>

Ich vermute, deine Preprocess-Funktion ist einfach nur falsch benannt. Da deine Theme-Funktion mymodule_output heisst, sollte die Preprocess-Funktion mymodule_preprocess_mymodule_output() heissen. Mag aber auch sein, dass ich da völlig falsch liege ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nebenbei bemerkt: Das

Eingetragen von bspellmeyer (37)
am 19.01.2010 - 20:46 Uhr

Nebenbei bemerkt: Das Devel-Modul und das darin enthaltene Theme Developer Module zeigt dir sehr schön an, welche Preprocess-Funktionen für ein Seitenelement verfügbar sind.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sehe Dir mal das Forummodul

Eingetragen von quiptime (4972)
am 19.01.2010 - 22:14 Uhr

Sehe Dir mal das Forummodul an. Da kan man exemplarisch die Sache mit den Themes studieren.

------------------------
Quiptime Group

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 4 Tagen 15 Stunden
  • Guckst du hier: step by step
    vor 4 Tagen 4 Stunden
  • Guckst du hier: step by step
    vor 4 Tagen 4 Stunden
  • Ich habe ja keine Angst vor
    vor 1 Woche 6 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 1 Tag
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 3 Tagen
  • Du hast die "Trusted host
    vor 2 Wochen 3 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 2 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 4 Wochen 6 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 9 Wochen 1 Tag

Statistik

Beiträge im Forum: 250284
Registrierte User: 20498

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 19 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