Suchfehler im Joomla Frontend / HTML Code im Frontend sichtbar

  • Hallo an alle,


    bei einer lokalen Internetseite (Wir haben im Team unsere Kontaktdaten auf der Webseite, wo man nur über das interne Netz zugreifen kann), die mit Xampp und Joomla zum Laufen gebracht wurde, kommt es bei der Suche nach Namen (Joomla eigene Kontakt Komponente) immer wieder zu Fehlern. (siehe Screenshot unten) Statt des Namens oder des Namens im Artikel, der dann hervorgehoben wird, wird ein HTML Code mit angezeigt. Woran kann das liegen? Wie kann man den Fehler beheben. Bisher kam der Fehler nur in Verbindung mit den Kontakten auf. Wenn man einen einzelnen Vornamen ohne Nachnamen als neuen Kontakt einfügt, ist der Fehler weg, jedoch brauchen wir auf der Webseite den Vor- und Nachnamen.


    Ich würde mich freuen, wenn ihr mir helfen könnt. ;):)



    VG
    Kristof


    Link zum Screenshot:
    https://drive.google.com/open?…HCSFRwzEfKMXNZRi0tQ1NfaHM

  • Auf Anhieb würde ich auf einen Syntaxfehler tippen! Das lässt sich aber ohne den Code kaum beurteilen.
    Ist gerade etwas schwierig das nachzuvollziehen. Habt ihr denn diesbezüglich irgendwo rumgebastelt?


    Nein, haben da nichts speziell verstellt. Der Fehler kommt auch nur, wenn man nach Namen sucht, die in der Kontaktliste steht, welche ich monatlich neu aktualisiere. Also Kontakte entferne bzw. neue hinzufüge.


    Wo kann man da denn was verstellen? Also die Plugins sind alle ok.



    VG

  • Das ist ein bekanntes Problem mit Template-Overrides für com_search. In Joomla wurde ein Bug gefixt. Auch Suchtreffer im Titel werden per Highlighter-Tags ausgezeichnet, so, dass man sie z.B. per CSS gelb hinterlegen kann.


    Gehe in den Ordner html/com_search/ deines Templates. Bearbeite Datei default_results.php. Suche nach den Stellen mit $result->title und entferne das escape(...)


    Also bspw. aus

    PHP
    <?php echo $this->escape($result->title); ?>

    wird

    PHP
    <?php echo $result->title; ?>
  • Auf Anhieb würde ich auf einen Syntaxfehler tippen! Das lässt sich aber ohne den Code kaum beurteilen.
    Ist gerade etwas schwierig das nachzuvollziehen. Habt ihr denn diesbezüglich irgendwo rumgebastelt?



    Hi,


    in dem Ordner finde ich den Code nicht. Muss ich den Code einfügen?


    Siehe Quellcode:



    --------------------------------------


    <?php
    /**
    * @package yoo_master2
    * @author YOOtheme http://www.yootheme.com
    * @copyright Copyright (C) YOOtheme GmbH
    * @license http://www.gnu.org/licenses/gpl.html GNU/GPL
    */


    // include config and layout
    $base = dirname(dirname(dirname(__FILE__)));
    include($base.'/config.php');
    include($warp['path']->path('layouts:'.preg_replace('/'.preg_quote($base, '/').'/', '', __FILE__, 1)));


    -------------------------------



    VG und Danke

  • Du benutzte das Yootheme Warp-Framework. Da findest Du es evtl. da.
    \warp\systems\joomla\layouts\com_search\search


    Ok, fasst geschafft. Der HTML Code ist jetzt weg. Jetzt steht aber immer noch folgendes nach dem Suchergebnis (Ich nenne mal einen Fake-Namen als Beispiel):


    Gesucht wurde nach "Frank Mustermann":


    Ergebnis: "Frank">Mustermann, Frank"


    Wie erreiche ich es, dass nur "Mustermann, Frank" dort steht? In der PHP habe ich folgendes entfernt: "$this->escape"


    Frank

  • $this->escape(strip_tags($result->title))


    Damit entfernst du die Highlightning-Tags. Gut, kann man drauf verzichten, aber


    es wird dann doppelt ge-htmlspecialchared. War z.B. ein & im Titel, wird Joomla-Core daraus ein &amp; machen, was auf der Seite als & erscheint. Bei einem weiteren escape() erscheint für Besucher aber "&amp;" (im Quelltext "&amp;amp;").
    Ähnliches bei Anführungszeichen...


    Oder anders: Joomla-Core führt bereits ein escape(...) (= htmlspecialchar(...)) für den Titel durch. Dann werden die Highlighter-Tags drumrumgesetzt.


    Egal, wie man es dreht und wendet: Ein weiteres escape(...) für title im Override ist ab jetzt immer falsch, auch, wenn es häufig nicht durchschlägt.


    https://github.com/joomla/joom…search/view.html.php#L268


    Gibts denn kein Update für das verwendete Warp, was das berücksichtigt?

  • Egal, wie man es dreht und wendet: Ein weiteres escape(...) für title im Override ist ab jetzt immer falsch, auch, wenn es häufig nicht durchschlägt.


    Da hast du recht. Es muss aber ja noch irgendetwas anderes nicht stimmen. Sonst wäre die Ausgabe nach dem Entfernen des escape() richtig.
    Und, falls nach strip_tags() immer noch HTML und/oder PHP Tags in der Ausgabe sind, dann liegt es sicher nicht alleine am escape(), oder?

  • Hallo an alle,


    es funktioniert jetzt. Der Tipp von Astrid war die Lösung. Sicherlich kann ich es updaten, jedoch kostet die neue Version von dem Joomla Theme Geld. Wir haben die Version noch kostenlos bekommen. Und für unsere Zwecke reicht es aus. Wie gesagt. Die Webseite ist eine reine Dokumentationsplatform und steht nur registrierten Nutzern zur Verfügung.


    Vielen lieben Dank für eure wunderbare Hilfe. Ich weiß das sehr zu schätzen.


    VG
    Kristof