page.tpl.php in einem Modul
Eingetragen von rapsli (1500)
am 20.01.2009 - 17:15 Uhr in
am 20.01.2009 - 17:15 Uhr in
In der Doku steht folgendes:
In order for your theme to have its preprocessors recognized, the template associated with the hook must exist inside the theme. Starting with Drupal 6.7, this will no longer be necessary.
Mein Code sieht wie folgt aus:
<?php
function smarttravel_preprocess_page(&$vars) {
if (arg(0) == 'smarttravel' || (arg(0) == 'smarttravel' && arg(1) == 'hotelinfo')) {
array_unshift($vars['template_files'], 'smarttravel-simple');
}
}
?>
Das funktioniert auch gut, solange smarttravel-simple.tpl.php im themes Ordner drin ist. Nun brauche ich jedoch von meinem Modul aus, eine spezielle, page.tpl.php, denn sonst muss man, wenn man das Modul installiert, immer noch die tpl Datei ins Theme Verzeichnis kopieren und lauter der doku sollte es ja eigentlich möglich sein.
Habe ich da irgend etwas verpasst?
- Anmelden oder Registrieren um Kommentare zu schreiben
boah die docu dazu ist aber
am 20.01.2009 - 22:45 Uhr
boah die docu dazu ist aber auch mal wieder grottenschlecht
<?php
function smarttravel_preprocess_page(&$vars) {
if (arg(0) == 'smarttravel' || (arg(0) == 'smarttravel' && arg(1) == 'hotelinfo')) {
array_unshift($vars['template_files'], 'smarttravel-simple');
$vars['theme paths'][] = 'smarttravel';
}
}
?>
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
thanks. müsste es aber
am 20.01.2009 - 23:24 Uhr
thanks.
müsste es aber nicht eher so etwas sein?
<?php
function smarttravel_preprocess_page(&$vars) {
if (arg(0) == 'smarttravel' || (arg(0) == 'smarttravel' && arg(1) == 'hotelinfo')) {
array_unshift($vars['template_files'], 'smarttravel');
$vars['theme paths'][] = drupal_get_path('module','smarttravel');
}
}
?>
leider scheint das immer noch nicht zu klappen.
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
ja genau, mh theme cache
am 21.01.2009 - 00:08 Uhr
ja genau,
mh theme cache gelöscht?
ich verstehe nicht was du mit array_unshift erreichen willst?, es wird ja immer das letzte glaube ich zuerst genommen
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
das mit dem unshift habe ich
am 26.01.2009 - 08:49 Uhr
das mit dem unshift habe ich mal irgendwo gesehen, aber egal:
<?php
function smarttravel_preprocess_page(&$vars) {
if (arg(0) == 'smarttravel' || (arg(0) == 'smarttravel' && arg(1) == 'hotelinfo')) {
$vars['template_files'][] = 'smarttravel';
$vars['theme paths'][] = drupal_get_path('module','smarttravel'); //'smarttravel' geht auch nicht
}
}
?>
Ich habe auch andere Kombinationen versucht, aber irgendwie will das einfach nicht gehen. Sobald ich das tpl in den theme ordner lege, dann klappts :S
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
gelöst :) <?php function
am 26.01.2009 - 08:53 Uhr
gelöst :)
<?php
function special_page_theme_registry_alter(&$theme_registry) {
$theme_hook = 'page'; // my hook name
// Get the path to this module
$modulepath = drupal_get_path('module', 'special_page');
// Add the module path on top in the array of paths
array_unshift($theme_registry[$theme_hook]['theme paths'], $modulepath);
// dsm($theme_registry[$theme_hook]['theme paths']);
}
?>
http://11heavens.com/theming-Drupal-6-from-the-module-layer
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************