span tags für primary links
am 07.12.2007 - 11:11 Uhr in
Für meine Hauptnavigation benötige ich <span> Tags zwischen den <a> Tags. Irgendwann habe ich das mal in der common.inc gefunden und dort hinzugefügt (Asche auf mein Haupt). Macht aber auch keinen Spaß, bei jedem Update aufpassen zu müssen. Davon, eine Funktion auffindbar zu machen und sie in die template.php einzufügen, habe ich natürlich öfter gelesen, aber noch nie verstanden :-) Aaalso *rauskram* - die Funktion sieht scheinbar so aus:
function l($text, $path, $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = FALSE) {
if ($path == $_GET['q']) {
if (isset($attributes['class'])) {
$attributes['class'] .= ' active';
}
else {
$attributes['class'] = 'active';
}
}
return '<a href="'. check_url(url($path, $query, $fragment, $absolute)) .'"'. drupal_attributes($attributes) .'><span>'. ($html ? $text : check_plain($text)) .'</span></a>';
}An den Beginn (statt function 1) würde ich nun "function templatename" stellen, aber dann noch etwas (bei den Views-Templates ist es z.b. der Views-Name) - aber was wäre es in diesem Fall? Denke ich beim Rest auch richtig, also dass ich das so komplett übernehme und meine Änderungen hinzufüge (<span> und </span>)?
Danke!
Anja
***edit*** Kann es sein, dass die "1" für Primary steht (weil Primary Links) und mein Text für template.php entsprechend function templatename_1 usw. wäre? Dann hätte ich mir ja die Frage hier sparen können :-D
- Anmelden oder Registrieren um Kommentare zu schreiben

Mit Deiner Vermutung zu dem
am 07.12.2007 - 12:21 Uhr
Mit Deiner Vermutung zu dem kleinen "l" liegst Du falsch. Die l() Funktion ist eine Funktion zum organisierten Erstellen von Links und kann nicht direkt gethemed werden.
Moment, schreibe Dir gleich noch was zum Theme "Davon, eine Funktion auffindbar zu machen und sie in die template.php einzufügen, habe ich natürlich öfter gelesen, aber noch nie verstanden".
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Drupal API - must have
am 07.12.2007 - 12:53 Uhr
Die URL http://api.drupal.org sollte zu Deinen Standard-Bookmarks von Drupal gehoeren.
Dort in der API hat man oft einen Einstieg zum gezielten finden von speziellen Infos. Im Falle von Funktionen bei Drupal 5 ist es der Bereich: http://api.drupal.org/api/functions/5
Nun lass Dich auf dieser Seite nicht von der langen Liste erschlagen. Gib oben Links Teile von Themen ein von denen Du Infos brauchst. Beispiele: link, theme, menu, primary
Im Falle der Primary Links fuehrt die Eingabe von theme, link oder primary zum Ziel. Du kommst auf eine Seite mit diesem Inhalt: http://api.drupal.org/api/function/theme_menu_links/5
Und siehe da, dort ist zu lesen:
theme_menu_links
...
Returns the themed HTML for primary and secondary links. Note that this function is overridden by most core themes because those themes display links in "link | link" format, not from a list. Also note that by default links rendered with this function are displayed with the same CSS as is used for the local tasks. If a theme wishes to render links from a ul it is expected that the theme will provide suitable CSS.
Und den Code dieser Funktion bekommst Du gleich noch praesentiert. So musst Du nicht in Deinen Drupal-Dateien rumwuehlen.
<?php
function theme_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= ">". l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</li>\n";
}
$output .= '</ul>';
return $output;
}
?>
Damit weisst Du sofort, dass Du ein Template mit der Bezeichnung "menu_links.tpl.php" verwenden kannst. Du kennst auch sofort den Code den Du erst mal in die Template-Datei uebernehmen musst um ihn veraendern zu koennen.
Und Du weist auch sofort, abgeleitet aus der 1. Zeile des Code der Theme Funktion, was Du noch in der "template.php" erweitern musst um die Template-Datei "menu_links.tpl.php" verwenden zu koennen.
<?phpfunction phptemplate_menu_links($links) {
return _phptemplate_callback('menu_links', array('links' => $links));
}
?>
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Hallo quiptime, erstmal
am 11.12.2007 - 09:54 Uhr
Hallo quiptime,
erstmal vielen Dank für die ausführliche Erklärung. Auf dem Gebiet habe ich wirklich wenig Erfahrung, deshalb komme ich auch nicht wirklich mit. Ich kam soweit, dass ich
function phptemplate_menu_links($links) {return _phptemplate_callback('menu_links', array('links' => $links));
}
in meine template.php übernommen habe und so angepasst habe:
return meintheme_phptemplate_callback usw..Dann habe ich eine Datei menu_links.tpl.php mit folgendem Inhalt gemacht:
<?php
function theme_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= "><span>". l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</span></li>\n";
}
$output .= '</ul>';
return $output;
}
?>
siehe vor allem die hinzugefügten span tags. So gehts aber noch nicht, irgendwas fehlt. In deiner Erklärung zwischen den beiden Code-Blöcken verliere ich den Faden, da ich auf diesen Code gucke wie ein Schwein ins Uhrwerk und ich leider nichts sofort sehe :-)
Was habe ich vergessen?
Danke...
Anja
Ich war in meiner Erklaerung
am 11.12.2007 - 10:57 Uhr
Ich war in meiner Erklaerung bezueglich des Template nicht vollstaendig genug.
Gegenueber dem Originalcode einer solchen Theme Funktion wird der Code in der Template Datei immer mit print ausgegeben. Meist wird vor dem print im Template der auszugebende Coce in der Variable $output "gesammelt". Beispiel dafuer:
<?php$output = '';
$output .= '<div class="world">';
$output .= 'Hallo';
$output .= 'Welt';
$output .= '</div>';
print $output;
?>
Der Code dieses Template gibt "Hallo Welt" aus.
Um auf das Template "menu_links.tpl.php" zurueck zu kommen muss die letztz Zeile lauten:
<?phpprint $output;
?>
Wenn Du so willst hast Du dieses print vergessen.
Fuer den Durchblick weiterlesen:
Mit den momentan von Dir eingefuegten span Tags sieht die Ausgabe einer einzelnen li Zeile etwa so aus. Schematisch, ohne Beruecksichtigung der class Attribute:
<li><span><a href="/foo" class="blubber">Klaro</a></span></li>Der Link Code wird mit der l() Funktion erzeugt. Die l() Funktion kannst Du Dir auch in der API ansehen um Dir klarzumachen was die einzelnen Parameter in dieser Funktion bewirken.
Im Falle meines schematischen Beispielcode einer li Zeile waere es so:
$link['title'] entspricht "Klaro"
$link['href'] entspricht "/foo"
$link['attributes'] entspricht "class="blubber""
Ich hoffe es hat sich ein wenig entwirrt.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Puh... also das klappt noch
am 12.12.2007 - 11:55 Uhr
Puh... also das klappt noch nicht. Ich habe das
print $output;zuerst in der Datei menu_links.tpl.php in die letzte Zeile vor?>eingefügt, das ging nicht. Dann verschiedene andere Wege probiert - z.B. nach dem?>dasprint $output;nochmal selbst in diese php-tags gewrappt eingefügt und aufgrund größter Unwissenheit einige andere Sachen probiert aber nichts hat funktioniert.Dann habe ich noch gesehen, dass folgendes auch falsch wäre:
Mit den momentan von Dir eingefuegten span Tags sieht die Ausgabe einer einzelnen li Zeile etwa so aus. Schematisch, ohne Beruecksichtigung der class Attribute:
<li><span><a href="/foo" class="blubber">Klaro</a></span></li>denn eigentlich sollen die
<span>zwischen<a href="">und</a>stehen. Wenn ich mir den Code so ansehe, wüsste ich echt nicht, wo ich die hinstellen sollte, damit es richtigrum rauskommt.So nun nochmal mein jetziger Code, der keinerlei
<span>-tags auswirft (auch nicht an der falschen Stelle):template.php
function phptemplate_menu_links($links) {return _phptemplate_callback('menu_links', array('links' => $links));
}
menu_links.tpl.php
<?php
/* span tags für die primary links */
function theme_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= "><span>". l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</span></li>\n";
}
$output .= '</ul>';
return $output;
}
?>
<?php
print $output; // das hatte ich auch schon direkt unter "return $output;"
?>
span tags für die primarys
am 12.12.2007 - 12:39 Uhr
<?php
/* span tags für die primary links */
function theme_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= "><span>". l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</span></li>\n";
}
$output .= '</ul>';
print $output;
}
?>
denn eigentlich sollen die
<span>zwischen<a href="">und</a>stehen.<?php
/* span tags für die primary links */
function theme_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$title = '<span>'.$link['title'].'</span>';
$output .= ">". l($title, $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</li>\n";
}
$output .= '</ul>';
print $output;
}
?>
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
ich wundere mich doch sehr,
am 12.12.2007 - 14:49 Uhr
ich wundere mich doch sehr, dass trotzdem nichts geht. ich vermute, es liegt daran wie mein theme die primary links anspricht? das wäre so:
<?php print theme('links', $primary_links) ?>ich stelle mich bestimmt furchtbar blöd an, aber geht leider nicht anders :-( und danke nochmal für die geduldige hilfe schon bisher!
Das bisher gesagte bleibt
am 12.12.2007 - 15:59 Uhr
Das bisher gesagte bleibt gueltig. Aber eben fuer die Theme Funktion theme_links(). Es wird das gleiche Schema fuer die Erweiterung der "template.php" angewendet und der Code fuer die "links.tpl.php", um es schnell zu machen, steht hier: http://api.drupal.org/api/function/theme_links/5
Im Code der function theme_links() muss, wenn er sich in der links.tpl.php befindet, die letzte Zeile
return $output;
ersetzt werden mit
print $output.
Der Code dieser Theme Funktion bildet gegebenfalls bereits span Tags an den Links. Wenn keine zu sehen sind dann ist dieser Codebereich zustaendig um span Tags nachtraeglich einzufuegen:
<?phpif (isset($link['href'])) {
$output .= l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment'], FALSE, $html);
}
?>
Um die span Tags hier einzufuegen das Codebeispiel wie weiter oben schon gepostet verwenden:
<?phpif (isset($link['href'])) {
$title = '<span>'.$link['title'].'</span>';
$output .= l($title, $link['href'], $link['attributes'], $link['query'], $link['fragment'], FALSE, $html);
}
?>
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Hallo quiptime, ich habe
am 10.01.2008 - 14:27 Uhr
Hallo quiptime,
ich habe mich nochmal rangewagt, nachdem der letzte Versuch mit dem von dir geposteten nicht funktioniert hatte. Ich bin mir ganz sicher, dass das an mir lag und nicht an dir, Fakt war nun aber dass ich es so nicht hingekriegt hab... Nun bin ich dieser Anleitung (http://www.usingdrupal.com/node/20) gefolgt und hatte endlich Erfolg. Folgendes habe ich gemacht:
1. den Code für die Ausgabe der Primary Links in meiner page.tpl.php geändert (hätte ich wohl vorher schon mal probieren sollen). Jetzt werden sie mit
<?php print theme('menu_links', $primary_links); ?>ausgegeben (vorher ohne "menu_").2. in die template.php:
function phptemplate_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= ">". l('<span>'.$link['title'].'</span>', $link['href'], /* hier sind die span tags */
$link['attributes'], $link['query'], $link['fragment'],$absolute, $html = TRUE) ."</li>\n"; /* und in dieser Zeile html erlauben */
}
$output .= '</ul>';
return $output;
}
Ich danke dir trotzdem für deine geduldige Hilfe - nicht so leicht wenn jemand wie ich keine Ahnung hat, worum es geht :-)
LG
Anja
Hallo, ich habe das gleiche
am 31.05.2008 - 04:58 Uhr
Hallo,
ich habe das gleiche Problem und muss weitere Tags im a Tag unterbringen. Bei der ersten Lösung wird das Standardverhalten nicht überschrieben.
Beider zweiten Lösung wird gar kein Menü mehr ausgegeben, obwohl ich den Code 1:1 kopiert habe und in der template.php auch nichts weiter drin steht.
Hier ist meine templte.php:
<?php
function phptemplate_menu_links($links) {
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
foreach ($links as $index => $link) {
$output .= '<li';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= ">". l('<b></b><em>'.$link['title'].'</em>', $link['href'], /* hier sind die span tags */
$link['attributes'], $link['query'], $link['fragment'],$absolute, $html = TRUE) ."</li>\n"; /* und in dieser Zeile html erlauben */
}
$output .= '</ul>';
return $output;
}
und hier der aufruf im Seitentemplate:
<?php print theme('menu_links', $primary_links)
?>
Danke
Heyho
am 03.12.2008 - 17:58 Uhr
<?php
function phptemplate_menu_links($links) {
achte darauf den Namen deines Templates zu verwenden. Dann sollte es auch klappen.
Um weitere Fragen zu vermeiden. Gemeint ist ...
am 03.12.2008 - 18:39 Uhr
achte darauf den Namen deines Templates zu verwenden
Um weitere Fragen zu vermeiden. Gemeint ist der Name des Themes.
Beispiel fuer das Theme Zen Classic:
<?phpfunction zen_classic_menu_links($links)
?>
Die zu verwendenden Theme-Bezeichnungen kann man beispielsweise in der Theme-Administration erfahren wenn man mit der Maus ueber dem Link konfigurieren (des entsprechenden Themes) ist und dabei in die Statuszeile des Browser guckt.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
span-Tags in a-Anker einfügen unter Drupal 6
am 02.06.2009 - 19:58 Uhr
Hallo,
gibt es für dieses Problem bereits eine Lösung für Drupal 6? Ich möchte zwischen meine Primary-Links ein span-Tag einfügen. Also in etwas so:
<a href="#" title=""><span>Link</span></a>Hat jemand eine Idee? Ich versuche mich gerade in D6 einzufuxen.
Dankeschöööön!!
--------------------------
www.drupal-blog-erstellen.de
Was soll das bringen?
am 02.06.2009 - 20:11 Uhr
Warum willst Du in die Primarys SPAN Tags einfuegen? Was soll das bringen?
------------------------
Quiptime Group
Einfach um die Links per CSS
am 02.06.2009 - 20:18 Uhr
Einfach um die Links per CSS besser stylen zu können. Siehe: CSS Button
--------------------------
www.drupal-blog-erstellen.de
SPAN Tags um Primary Links mittels jQuery
am 02.06.2009 - 20:53 Uhr
Eventuell etwas unkonventionell.
SPAN Tags um Primary Links mittels jQuery. Hier der Code:
$('#primary li a').wrap('<span></span>');Wer will kann das gleich hier auf DrupalCenter testen und den Primary Links mit diesem Code SPAN Tags verpassen. Fuer diesen Test einfach im Firebug die Console fuer diese Website aktivieren und den Code einfuegen und auf "Ausfuehren" klicken. Und schon haben die Primary Links von DrupalCenter SPAN Tags.
------------------------
Quiptime Group
Na das ist wirklich
am 02.06.2009 - 21:00 Uhr
Na das ist wirklich unkonventinell :) Aber ne gute Idee.
Davon mal abgesehen - wie sieht denn die Drupallösung aus? Ne Idee?
--------------------------
www.drupal-blog-erstellen.de
Die Drupal-Loesung ergibt
am 02.06.2009 - 21:06 Uhr
Die Drupal-Loesung ergibt sich aus den Posts weiter oben.
Bleibt noch die Frage: Drupal 5 oder 6?
------------------------
Quiptime Group
D6 - die Lösungsansätze
am 02.06.2009 - 21:13 Uhr
D6 - die Lösungsansätze oben scheinen bei D6 nicht zu funktionieren. Zumindest bei mir nicht :-/
--------------------------
www.drupal-blog-erstellen.de
Korrekt. Deswegen meine Nachfrage zur Version.
am 02.06.2009 - 22:52 Uhr
D6 - die Lösungsansätze oben scheinen bei D6 nicht zu funktionieren.
Korrekt. Deswegen meine Nachfrage zur Version.
In D6 kann man eine Template Datei direkt ohne Umweg ueber die template.php erzeugen und im Themeordner ablegen. Die Template Datei heisst "links.tpl.php" und enthaelt den Code der Themefunktion theme_links() (ohne Funktionszeile).
Das ist alles.
FETTES EDIT
Das gilt zwar so aber man kommt damit nicht an die Primary Links heran.
------------------------
Quiptime Group
Irgendwie will es noch
am 03.06.2009 - 19:41 Uhr
Irgendwie will es noch nicht. Ich hab jetzt die "links.tpl.php" angelegt und folgenden Code hinzugefügt:
<?php
global $language;
$output = '';
if (count($links) > 0) {
$output = '<ul'. drupal_attributes($attributes) .'>';
$num_links = count($links);
$i = 1;
foreach ($links as $key => $link) {
$class = $key;
// Add first, last and active classes to the list of links to help out themers.
if ($i == 1) {
$class .= ' first';
}
if ($i == $num_links) {
$class .= ' last';
}
if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))
&& (empty($link['language']) || $link['language']->language == $language->language)) {
$class .= ' active';
}
$output .= '<li'. drupal_attributes(array('class' => $class)) .'>';
if (isset($link['href'])) {
// Pass in $link as $options, they share the same keys.
$output .= l($link['title'], $link['href'], $link);
}
else if (!empty($link['title'])) {
// Some links are actually not links, but we wrap these in <span> for adding title and class attributes
if (empty($link['html'])) {
$link['title'] = check_plain($link['title']);
}
$span_attributes = '';
if (isset($link['attributes'])) {
$span_attributes = drupal_attributes($link['attributes']);
}
$output .= '<span'. $span_attributes .'>'. $link['title'] .'</span>';
}
$i++;
$output .= "</li>\n";
}
$output .= '</ul>';
}
return $output;
?>
Muss ich das jetzt noch irgendwie einbinden? Vielen Dank für Deine Hilfe.
--------------------------
www.drupal-blog-erstellen.de
Ich habe letztens mein
am 04.06.2009 - 09:23 Uhr
Ich habe letztens mein Template mit span-Tags in Primary Links von D5 zu D6 "geportet" und dafür auch den neuen Code gebraucht. So hat's funktioniert:
<?php
/** Span tags in Primary Links
*/
function phptemplate_links($links, $attributes = array('class' => 'links')) {
$output = '';
if (count($links) > 0) {
$output = '<ul'. drupal_attributes($attributes) .'>';
$num_links = count($links);
$i = 1;
foreach ($links as $key => $link) {
$class = $key;
// Add first, last and active classes to the list of links to help out themers.
if ($i == 1) {
$class .= ' first';
}
if ($i == $num_links) {
$class .= ' last';
}
if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))) {
$class .= ' active';
}
$output .= '<li'. drupal_attributes(array('class' => $class)) .'>';
if (isset($link['href'])) {
$link['title'] = '<span class="link">' . check_plain($link['title']) . '</span>';
$link['html'] = TRUE;
// Pass in $link as $options, they share the same keys.
$output .= l($link['title'], $link['href'], $link);
}
else if (!empty($link['title'])) {
// Some links are actually not links, but we wrap these in <span> for adding title and class attributes
if (empty($link['html'])) {
$link['title'] = check_plain($link['title']);
}
$span_attributes = '';
if (isset($link['attributes'])) {
$span_attributes = drupal_attributes($link['attributes']);
}
$output .= '<span'. $span_attributes .'>'. $link['title'] .'</span>';
}
$i++;
$output .= "</li>\n";
}
$output .= '</ul>';
}
return $output;
}
?>
***edit
bin nicht ganz sicher, ob es auch mit dem normalen primary links code in der page.tpl.php ging (verwende inzwischen ein anderes theme) - aber hier zur sicherheit der code zur ausgabe der primary links in der page.tpl.php
<?php if (isset($primary_links)) { ?><?php print theme('links', $primary_links, array('class' =>'links', 'id' => 'navlist')) ?><?php } ?>primary links
am 04.06.2009 - 09:29 Uhr
Und wer die Änderungen nicht gleich für alle Auflistungen von Links machen will, kann sich auch einfach die gegebene Funktion
theme_linksin seine template.php kopieren und inphptemplate_primary_linksumbenennen (und dann dort die Änderungen machen). Diese Funktion wird dann einfach in der page.tpl.php anstelle von<?phpprint theme('links', ...);
?>
hth,
Stefan
--
sei nett zu Deinem Themer
Super - vielen Dank. Ich hab
am 04.06.2009 - 11:28 Uhr
Super - vielen Dank. Ich hab das Problem gestern auch lösen können ;)
Aber vielen Dank nochmal. Ich habe allerdings noch eine andere Frage. Und zwar, wie man die Primärnavigation in Haupt- und Sekundärlinks unterteilen kann. Dafür lege ich aber nochmal einen eigenen Post an.
EDIT:
Hier der Link: http://www.drupalcenter.de/node/19009
--------------------------
www.drupal-blog-erstellen.de
ich glaube du suchst das
am 04.06.2009 - 11:16 Uhr
ich glaube du suchst das hier: http://drupal.org/project/menu_block
Das ist schonmal das was ich
am 04.06.2009 - 12:02 Uhr
Das ist schonmal das was ich suche - ich habe aber auch schon http://drupal.org/project/menu_block_split ausprobiert - möchte dort jedoch auch ein span-Tag im Anker haben. Jedoch bekomm ich es nicht hin.
Wenn ich den Block mit Theme Devel auslese, bekomme ich heraus, dass er über die Funktion theme_menu_item_link eingebunden wird. Wenn ich diese:
<?php
function theme_menu_item_link($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
return l($link['title'], $link['href'], $link['localized_options']);
}
?>
jetzt in der template.php überschreibe also:
<?php
function themename_menu_item_link($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
return themename_l($link['title'], $link['href'], $link['localized_options']);
}
?>
und die Funktion theme_namel($link['title'], $link['href'], $link['localized_options']) (die ich bereits erfolgreich überschrieben habe) aufrufe - passiert garnichts.
Wat is da los?? :)
--------------------------
www.drupal-blog-erstellen.de
l-Funktion
am 04.06.2009 - 12:02 Uhr
Moin.
und die Funktion theme_namel($link['title'], $link['href'], $link['localized_options']) (die ich bereits erfolgreich überschrieben habe) aufrufe - passiert garnichts.
Ganz einfach: die Funktion "theme_namel" existiert nicht. l() ist eine Core-Funktion, die nicht überschrieben werden kann. Nur Funktionen mit "theme_" am Anfang können so überschrieben werden.
hth,
Stefan
--
sei nett zu Deinem Themer
Okay - hab ich verstanden.
am 04.06.2009 - 12:15 Uhr
Okay - hab ich verstanden. Wenn ich jetzt jedoch:
<?php
function theme_menu_item_link($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
return l($link['title'], $link['href'], $link['localized_options']);
}
?>
mit
<?php
function themename_menu_item_link($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
echo "test";
return l($link['title'], $link['href'], $link['localized_options']);
}
?>
überschreibe bekomme ich keine Ausgabe "test". Ich gehe davon aus, dass die Funktion erst garnicht aufgerufen wird - müsste doch aber, oder?
--------------------------
www.drupal-blog-erstellen.de
Theme-Registry
am 04.06.2009 - 12:23 Uhr
Moin.
Hast Du die Theme-Registry geleert?
Und nur zur Sicherheit: der Funktionsname beginnt mit dem Namen Deines Themes?
hth,
Stefan
--
sei nett zu Deinem Themer
Vielen Dank
am 04.06.2009 - 12:30 Uhr
Super, das war es.
Vielen Dank Stefan sagt der Stefan :)
--------------------------
www.drupal-blog-erstellen.de