Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Mysteriöses Problem mit theme() tpl.php laden

Eingetragen von s1x (3)
am 18.02.2012 - 14:35 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x oder neuer

Einen angehehmen Samstag Nachmittag,

dies hier ist mein erster Eintrag, ich bin wirklich verzweifelt.
Ich versuche seit Stunden heute (als auch gestern) ein tpl file einzuladen und anzuzeigen.

Komischerweiße funktioniert das bei genau einem Punkt nichtmehr, und ich kann definitiv nicht dahhinter steigen wieso. Ich habe alles möglich probiert, rumgedoktort.
Von PHP Errors (die es nicht gibt), Cache leeren, Theme wechseln... hat alles nichts geholfen.

Ich poste hier mal den Code um das ganze zu verdeutlichen:

<?php
function file_stats_eu() { return file_stats("stats_eu").theme('spacer').theme('entry_footer'); }
?>

<?php

     $items
['file/stats/eu'] = array(
       
'page callback' => 'file_stats_eu',
       
'access arguments' => array('access file_numbers content'),
       
'type' => MENU_CALLBACK
   
);

?>

Die Funktion file_stats ist mit dem return Wert

<?php

function file_stats($theme)
{
//[.....]
return theme('stats_eu', $values);
}
?>
ausgestattet.
Komische hierbei, er ladet das template stats_eu.tpl.php nicht ein. Sobald ich aber ein existierendes template nehme (also was von anderen benutz wird) funktioniert es einwandfrei.
Egal was für ein neuen Dateinahmen ich nehme, ich mag einfach nicht funktionieren. Nehme ich ein existierendes, funktioniert es.

Hat irgendjmd eine Idee? Den Cache leere ich immer nach dem Uploaden der neuen Datein.
Vielen herzlichen Dank!

Mit freundlichen Grüßen,
s1x

‹ Ist Drupal etwas für mich !!!!!!! [gelöst]Mehrere Instanzen eines Formulars ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Woher soll Drupal etwas über

Eingetragen von wla (9461)
am 18.02.2012 - 18:11 Uhr

Woher soll Drupal etwas über theme('stats_eu', $values) wissen? Das sieht mir nach einer von Dir verfaßten Funktion aus, die Du aber scheinbar nicht über hook_theme definiert hast. Außerdem, wenn Du schon eine eigene Funktion schreibst, warum dann ein Template-File und nicht eine Theme-Funktion namens theme_stats_eu. Die Theme Funktion wäre etwas performanter, aber auch die muß über hook_theme angemeldet werden.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, erstmal vielen Dank

Eingetragen von s1x (3)
am 18.02.2012 - 18:28 Uhr

Hallo,

erstmal vielen Dank für deine Antwort.

Die Funktion theme() ist keine von mir selber geschrieben Funktion. Sie befindet sich bei mir in includes/theme.inc . Dort wird definitv jedes theme angemeldet (registry).
Das komische an der Sache ist, ich habe ja schonmal genau gleiches benutzt, auch die theme funktion mit einem neuen template, in der selben Datei, und dort hat es funktioniert.

ich verstehe nicht wieso er das neue template nicht annehmen will und nur ein weiße inhaltsseite anzeigt (footer wird korrekt ausgelesen!). Das ist für mich ein Mysterium.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, theme() ist eine

Eingetragen von wla (9461)
am 18.02.2012 - 20:56 Uhr

Ja, theme() ist eine Core-Drupal Funktion. Die kann aber mit Deinem Argument 'stats_eu' standardmäßig nicht anfangen (wieso auch). Daraus wird üblicherweise die Funktion theme_stats_eu, die dann gesucht wird. Hast Du die irgendwo definiert? Das heißt, hast Du in einem Modul
mittels der Implementation von hook_theme diese Funktion bei Drupal registriert? Vermutlich nicht, denn Du willst ja mit einem Template-File arbeiten. Hast Du denn das von Dir eingestellte Template auch in die Template-Suggestions eingetragen?
Sieh Dir bitte auf Drupal.org die Infos zu Template Suggestions an. Drupal findet Dein Template nicht automatischn nur weil es im Theme Verzeichnis liegt. Was für ein Typ ist dieses Template-File bzw. welche Drupal Funktion wird es letztlich aufrufen? Node Templates werden über das Node-Modul aufgerufen, Page-Templates werden über das System-Modul eingebunden. Du kannst nicht irgend ein Template-File erstellen und meinen irgendwie wird das schon aufgerufen werden.
Die einfachste Möglichkeit ist es die Funktion theme_stats_eu in einem eigenen Modul zu schreiben und mittels hook_theme zu registieren.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich glaube das habe ich

Eingetragen von s1x (3)
am 19.02.2012 - 02:21 Uhr

Ich glaube das habe ich ansich nicht gemeint.
Nachgeschaut habe ich jetzt mal deine Schlagwörter, tatsächlich wenn ich noch registriere und "file"=> dazuhänge wird die Seite angezeigt, sie wird aber nicht in den Content eingefügt. Wahrscheinlich bin ich einfach zu unerfahren mit Drupal und dem node/page system & Co.
Danke dir trotzdem sehr für deine Hilfe, im Endeffekt haben mich deine Punkte zu dem entsprechenden Lösungsweg gebracht den ich irgendwo im WWW gefunden habe.

Relativ unsauber der Code, aber ich habe momentan nicht die Zeit diesen doofen Fehler ausfindig zu machen, und solang es funktioniert ist es erstmal okay.

<?php
        
// workaround (i actually dont know why it doesnt work the normal way...!?)
       
$template_file='file_eu.tpl.php';
       
extract($values, EXTR_SKIP);  // Extract the variables to a local namespace
       
ob_start();                      // Start output buffering
       
include "modules/file_numbers/$template_file";      // Include the template file
       
$contents = ob_get_contents();   // Get the contents of the buffer
        
ob_end_clean();                  // End buffering and discard
        
return $contents;
?>

Trotzdem noch mal vielen herzlichen Dank!

  • 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 4 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 2 Tagen
  • 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 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

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 14 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