Beitrags Meta-Schlüsselwörter durch Custom Field updaten

  • Hallo,


    mit Hilfe eines custom fields erzeuge ich per Datenbankabfrage dynamisch eine Liste und zeige die Werte im Beitrag an. Um diese Werte nun auch durch die Joomla Suche findbar zu machen, schreibe ich diese in das Beitrags »Meta-Schlüsselwörter« Feld mit Hilfe folgendem Codes





    Leider wird das Update nicht immer durchgeführt (bleibt leer) und was noch merkwürdiger ist, schreibt die Inhalte teilweise in anderer Beiträge mit abweichender ID.


    Ich bin da leider ratlos und bräuchte Eure Hlfe.

  • Backend oder Frontend? Beim Anzeigen oder Speichern? Wann wird das Speichern wodurch abgefeuert? Plugin mit Joomla-Methode? Eingebetteter PHP-Code?

    $app->input->get('id');

    Hast du denn eine Weiche drinnen, dass dein Code nur auf Beitragsseiten zum Zuge kommt. Man kann nicht immer sicher sein, dass die Input-Id eine Beitrags-Id ist. Kann auf bestimmten Seiten z.B. auch die Kategorie sein oder ganz anders. Im Editmodus kann es auch gar keine "id" sein, sondern z.B. "a_id".

  • Hallo,


    vielen Dank für den Hinweis in die richtige Richtung. Es handelt sich um ein Frontend custom field. Hier habe ich jetz noch


    Code
    $view = $app->input->get('view');
    
    if ($view != 'article')
    {
        return;
    }

    ergänzt um sicher zu gehen.


    Kannst Du abschätzen oder aus Erfahrung sagen, ob dieser Weg des permanenten

    Code
    JFactory::getDbo()->updateObject 

    irgendwelche negativen Auswirkungen, wie z.B. auf die Geschwindigkeit hat?


    Vielen Dank :thumbup:

  • Natürlich haben Datenbankzugriffe Einfluss auf die Performance. Wie sehr entscheidet der Server und z.B. wie viele Besucher sich gerade einen Beitrag anzeigen lassen, wo so was passiert. Suchmaschinen knattern viele Beiträge durch usw. usf.


    Ob Schreib-Vorgänge per se aufwändiger sind als Lese- weiß ich nicht gewiss.


    Ich würde vermutlich lieber einen Sammellauf machen mit irgendeinem eigenen einmaligen Script und/oder ein Plugin verwenden, das halt nur beim Speichern eines Beitrags den Job erledigt oder turnusmäßig einen Sammellauf macht. Oder eine simple cacheartige Datei hinterlegen, in der festgehalten wird, welche Artikel-Ids schon erledigt sind. Aber dafür weiß ich zu wenig über deinen Aufbau und wie statisch die Daten eigentlich sind. Ob die generell Erneuerung brauchen etc.