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

Frage zum Preprocess

Eingetragen von iterator (31)
am 17.01.2010 - 21: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 - 22: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 - 19: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 - 19: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 - 21: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

  • 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 3 Tagen
  • Hey danke
    vor 1 Woche 3 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 2 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 6 Tagen
  • In der entsprechenden View
    vor 2 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 6 Tagen
  • gelöst
    vor 5 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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