Probleme mit Sidebar und Umlauten und ExtCalendar

  • Hallo liebe Forenten,

    nach langer Suche habe ich leider keine Antworten auf meine Fragen erhalten. Deshalb jetzt hier:

    Ich habe unter www.spieletreff-braunschweig.de - Die Braunschweiger Spieleseite - Willkommen! eine Joomlapage erstellt und möchte mit Wordpress Spielekritiken als Blogs einpflegen. Dazu verwende ich rechts das Modul Sidebar.

    Jetzt zu meinen Fragen:

    1. Sobald ich etwas in der Sidebar (Spielekritiken) anklicke, dann werden alle Umlaute in den anderen Modulen (z.Zt. Hauptmenü und Besucherzähler) nicht mehr dargestellt. Was mache ich falsch?

    2. Wenn man rechts auf Termine klickt, öffnet sich die Komponente ExtCalendar. Im Sidebar Modul bekomme ich jetzt eine Fehlermeldung
    (Fatal error: Cannot redeclare load_template() (previously declared in [...]/components/com_extcalendar/include/functions.inc.php:1137) in [...]/components/com_jd-wp/wp-includes/functions.php on line 2076)

    Wo liegt das Problem?

    Ich danke schon mal für Eure Antworten!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • zu 1): Du musst Dich für eine Zeichenkodierung entscheiden. Deine Joomla-Seite läuft offensichtlich als ISO-8859-1 während WordPress standardmäßig als UTF-8 läuft. Mir fallen normalerweise nur sehr wenig Argumente für die ISO-Kodierung ein -- Du fährst mit UTF-8 eigentlich immer besser. Aber das ist natürlich eine Frage, welche Daten ggf.konvertiert werden müssen. Eins von beiden Systemen solltest Du aber umstellen und natürlich muss die DB, die dahinterliegt, entsprechend konfiguriert sein.

    zu 2): Da definiern offenbar zwei PHP-Dateien die gleiche Methode, load_template() nämlich. Da müsstest Du mal suchen gehen, wo die stehen, und dann kann man überlegen was sich dagegen machen lässt.

  • Hallo,

    also zu 1.) Ich habe Wordpress schon mal auf ISO umgestellt, aber dann erscheinen die Umlaute im Blogtext nicht. Wie muss ich denn mein "System" genau umstellen? Und was muss ich an den DB machen?

    zu 2.)

    hier mal der Code in Auszügen:

    [FONT=&quot]Wordpress function.php Zeile 2076ff.[/FONT]

    PHP
    function load_template($file) {
      global $posts, $post, $wp_did_header, $wp_did_template_redirect, $wp_query,
      $wp_rewrite, $wpdb;
       
      extract($wp_query->query_vars);
       
      require_once($file);
      }

    und [FONT=&quot]extCalendar include/function.inc.php Zeile 1135ff.
    [/FONT]

    Also ich blick da überhaupt nicht durch, weil ich von php gar keine Ahnung habe... Vielleicht könnt Ihr mir helfen?

  • Wie hast Du denn WP und Joomla integriert? Selbst gebastelt oder stammt das von jemand anderem? Denn so wie es ist passen ExtCalendar und WP einfach nicht zusammen, wenn sie die gleiche globale Funktion definieren. Eine von beiden Funktionen musst Du umbenennen. In WP würde ich sowas nicht machen mögen, allein weil es ja öfters mal aktualisiert wird. Ich kenne aber auch ExtCalendar nicht und weiß nicht, wie umfangreich das ist.

    Oder eben beides nie auf der gleichen Seite anzeigen lassen, das wäre die einfachere Lösung.

    Zum Umlautproblem: Wenn es geht, nicht blind herumprobieren, sondern die Fakten herauskriegen:
    - Welche Codierung verwendet die Datenbank? (z.B. über phpMyAdmin)
    - Welche Codierung ist für WordPress' Zugriff auf die DB eingestellt? (wp-config.php)
    - Welche Codierung ist für von WordPress generierte Seiten eingestellt? (Einstellungen > Lesen > Zeichensatz)
    - Welche Codierung verwendet das Theme? (Codierung der Textdateien über Editor rauskriegen, feste Angabe im Meta-Header?!)

    Ggf. das gleiche für Joomla. Und dann kannst Du Dir überlegen, welche Codierung Du verwenden willst. Falls Daten schon in einer "falschen" Codierung gespeichert wurden, müssen sie natürlich konvertiert werden. Entweder maschinell (per SQL-Befehl z.B.) oder eben durch Neuspeichern der betroffenen Seiten nach der Umstellung, falls es nicht viele Seiten sind.

  • Hallo Ammaletu,

    ExtCalendar und WP sind beide einfach als Komponenten mit entsprechenden Modulen installiert worden. Ich habe da nirgends etwas geändert.

    Aber was meinst Du mit "nicht auf einer Seite anzeigen lassen"? Ist ja jetzt schon nicht so: die Sidebar wir auf modul position 'right' ausgegeben, der Terminkalender ganz normal als content. Wie würdest Du es denn machen?


    Zu Deinen anderen Fragen:

    1. Die DB verwendet: utf8_unicode_ci
    2. in der wp-config.php habe ich nichts gefunden, was nach ISO-Einstellung aussieht...
    3. Das Template hat im Header folgenden Code, aus dem ich aber auch nicht recht schlau werde, weil zwei ISO-Anweisungen vorkommen:

    PHP
    <?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?".">"; ?><?php
    defined( "_VALID_MOS" ) or die( "Direct Access to this location is not allowed." );
    $iso = split( '=', _ISO );
    echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';


    Ich könnte natürlich auch einfach "Besucherzähler" in "Counter" (oder so) umbennen und wäre das Problem (erstmal) los. Aber mich interessiert's schon, was falsch läuft und außerdem schränkt mich das in der Menübenennung ja schon ein, wenn ich niemals Umlaute verwenden kann...


    Großen Dank erstmal für Deine Mühe.

  • Zitat

    Aber was meinst Du mit "nicht auf einer Seite anzeigen lassen"? Ist ja jetzt schon nicht so: die Sidebar wir auf modul position 'right' ausgegeben, der Terminkalender ganz normal als content. Wie würdest Du es denn machen?

    Aber das ist ja doch auf der gleichen Seite: In der Mitte der Kalender, rechts die Sidebar. Die ganze Seite ist aus Sicht von PHP ein Script, da dürfen keine zwei Funktionen gleich heißen. Hier wird von Joomla offensichtlich erst der Kalender integriert und dann die WordPress-Dateien für die Sidebar. Und dabei fällt PHP dann eben auf, dass eine Funktion zweimal definiert ist.

    Also entweder dafür sorgen, dass beides nicht auf einer Seite zusammentrifft (Kalender als iFrame oder PopUp machen oder ohne Sidebar) oder die Methode in einem der beiden Projekte umbenennen (incl. aller Verwendungen der Methode). Letzteres ist theoretisch schöner, kann aber Ärger machen, wenn Du das betreffend Projekt aktualisieren willst. Also in jedem Fall dokumentieren, was Du geändert hast.


    Zitat

    Das Template hat im Header folgenden Code, aus dem ich aber auch nicht recht schlau werde, weil zwei ISO-Anweisungen vorkommen:

    Jetzt wo Du es sagst sehe ich, dass ja auch zwei XML-Header in der Ausgabe stehen. Das ist so oder so Unsinn. Wenn die DB UTF-8 verwendet und WP auch so eingestellt ist (wenn nichts anderes angegeben wird in der wp-config.php und im Backend, wird UTF-8 verwendet), würde ich doch das Template einfach umstellen auf UTF-8.

    Lösch diese beiden Zeilen raus:

    Code
    [COLOR=#000000][COLOR=#0000CC]$iso [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000CC]split[/COLOR][COLOR=#006600]( [/COLOR][COLOR=#CC0000]'='[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000CC]_ISO [/COLOR][COLOR=#006600]);
    echo [/COLOR][COLOR=#CC0000]'<?xml version="1.0" encoding="'[/COLOR][COLOR=#006600]. [/COLOR][COLOR=#0000CC]$iso[/COLOR][COLOR=#006600][[/COLOR][COLOR=#0000CC]1[/COLOR][COLOR=#006600]] .[/COLOR][COLOR=#CC0000]'"?' [/COLOR][COLOR=#006600].[/COLOR][COLOR=#CC0000]'>'[/COLOR][COLOR=#006600];[/COLOR][/COLOR]

    Und dann such ein Stückchen weiter unten mal diese Meta-Angabe raus und ändere sie zu "utf-8":

    Code
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    Dann ist natürlich die Frage, ob Du das in Joomla noch irgendwo einstellen musst. Ich nehme es mal an, aber da ich das CMS nicht nutze, kann ich Dir auch nicht sagen, wo. Und falls in dem Template noch irgendwo Umlaute fest drinstehen, müssten die Dateien zu UTF-8 umgewandelt werden. Das macht Dir jeder brauchbare Texteditor.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!