Funktionsproblem mit i18n Sprach-Switcher Block
Eingetragen von BlackP (2)
am 31.12.2007 - 09:51 Uhr in
am 31.12.2007 - 09:51 Uhr in
Hallo,
habe auf meiner Seite den i18n installiert und wollte jetzt den Sprachswitcher als Block mit eigenem Design einfuegen.
Habe das ganze auch nach der Anleitung im Handbuch getan. http://www.drupalcenter.de/handbuch/6325
Nur sobald ich dann den Block aktiviere und auf speichern druecke bekomme ich folgenden Fehler:
Fatal error: Cannot redeclare theme_i18n_link() (previously declared in /var/www/vhosts/malticom.de/subdomains/dentist/httpdocs/sites/all/modules/i18n/i18n.module:664) in /var/www/vhosts/malticom.de/subdomains/dentist/httpdocs/themes/dentist/i18n_link.tpl.php on line 7
Habe auch schon die zwei Zeilen miteinander verglichen. Ich kann aber keinen fehler entdecken.
Kann mir jemand sagen woran das liegt?
ZEILE 664 UND 7 SIND DIE FUNCTION ZEILEN
Code von der i18n_link_tpl.php:
<?php
/** $Id: i18n_link.tpl.php, v 1.0 2007/11/06 quiptime Exp $ */
/**
* Produces a language link with the right flag
*/
function theme_i18n_link($text, $target, $lang, $query= NULL, $fragment = NULL){
$output = '';
$output .= '<span class="i18n-link">';
$attributes = ($lang == i18n_get_lang()) ? array('class' => 'active') : NULL;
$output .= l(theme('i18n_language_icon', $lang), $target, $attributes, $query, $fragment, FALSE, TRUE);
$output .= " ";
$output .= l($text, $target, $attributes, $query, $fragment, FALSE, TRUE);
$output .= '</span>';
print $output;
}
?>
Code von der i18n.module:
/**
* Produces a language link with the right flag
*/
function theme_i18n_link($text, $target, $lang, $query= NULL, $fragment = NULL){
$output = '<span class="i18n-link">';
$attributes = ($lang == i18n_get_lang()) ? array('class' => 'active') : NULL;
$output .= l(theme('i18n_language_icon', $lang), $target, $attributes, $query, $fragment, FALSE, TRUE);
$output .= " ";
$output .= l($text, $target, $attributes, $query, $fragment, FALSE, TRUE);
$output .= '</span>';
return $output;
}
Danke
- Anmelden oder Registrieren um Kommentare zu schreiben
Du darfst deine Funktion
am 03.01.2008 - 12:21 Uhr
Du darfst deine Funktion nich gleich benennen. Nutze folgenden Namen: "phptemplate_i18n_link".
gruß pebosi
Das funktioniert nicht
am 20.09.2008 - 08:08 Uhr
Das funktioniert bei mir unter 5.10 leider überhaupt nicht.
Laut Anweisung zuerst die template.php ergänzt
<?php
function phptemplate_i18n_link(...
...
?>
In der Datei i18n_link.tpl.php sollte lt. Anweisung stehen
<?php
function theme_i18n_link(...
...
?>
Dann kommt besagte Fehlermeldung
Fatal error: Cannot redeclare theme_i18n_link() (previously declared in .../modules/i18n/i18n.module:665) in .../i18n_link.tpl.php on line 17
Du hast vorgeschlagen, die Funktion anders zu benennen
<?php
<?php function phptemplate_i18n_link(...
...
?>
also der gleiche Name wie in der template.php
Der Fehler bleibt bestehen, nur bezieht er sich jetzt auf die template.php
Fatal error: Cannot redeclare phptemplate_i18n_link() (previously declared in .../template.php:231) in .../i18n_link.tpl.php on line 17
Und wenn ich einen eigenen Namen nehme, bezieht sich der Fehler "auf sich selber"
Fatal error: Cannot redeclare newtheme_i18n_link() (previously declared in .../i18n_link.tpl.php:8) in .../i18n_link.tpl.php on line 17
Die Zeile 17 ist übrigens die abschließende Klammer.
Dietmar