Globale Änderungen über theme_preprocess_node / _view
Eingetragen von goisgo (102)
am 05.05.2010 - 12:19 Uhr in
am 05.05.2010 - 12:19 Uhr in
Hallo Community,
versuche nun globale Änderungen nicht mehr über die page oder node.tpl zu erledigen,
sondern über eigene module mit hook alter oder dem template.php
Frage 1: Ist der Weg über das template.php der bessere, wenn die Möglichkeit besteht?
Frage 2: Sind die u.g. Beispiele Eurer Meinung nach vertretbar, oder unnütz da zu umständlich?
Beispiel 1: Ändern von "Weiterlesen"-Link in allen Nodes:
function theme_preprocess_node(&$vars, $hook) {
$readmoretext = "Weiter...";
$vars['links'] = "<a href=\"" .$vars['node_url']. "\" class=\"readmore\">" .$readmoretext. "</a>";
}
Beispiel 2: Zugriffsrecht von views
function theme_preprocess_views_view(&$vars) {
global $user;
$sperre= $vars['name'];
if(($sperre== "downloadstester")||($sperre== "galerietester")) {
if((!$user->roles['3']) && (!$user->roles['8']))
{ $meclx = "#CCCCCC"; drupal_access_denied(); exit; }
}
}
Arg schlimm, oder für die Profis von Euch tolerierbarer Weg?
Lieben Gruß,
goisgo
- Anmelden oder Registrieren um Kommentare zu schreiben
Zu 1) verwende besser die
am 05.05.2010 - 13:10 Uhr
Zu 1) verwende besser die t()-Funktion mit englischen Text, den Du über die Oberflächenübersetzung dann in die Datenbank als Übersetzung einträgst.
Zu 2) Views bring die rollenabhängige Sichtbarkeitssteuerung von Hause aus mit. Kein Grund, da selber was zu schreiben.
Beste Grüße
Werner
Danke Werner, Punkt 1
am 05.05.2010 - 13:17 Uhr
Danke Werner,
Punkt 1 erledigt. Somit ist die template.php frei von festen Werten, perfekt, danke.
Punkt 2: Ging aber nicht anders, da der Menüpunkt sichtbar sein sollte, nur bei Klick darauf eben der Hinweis kein Zutritt.
Lieben Gruß,
goisgo