Ausgabe der Message "COM_CONTENT_SAVE_SUCCESS" wo?

  • Joomla Version
    4.4.9
    PHP Version
    PHP 8.2.x
    Hoster
    lokal

    Hallo zusammen,

    ich möchte gerne der Nachricht

    COM_CONTENT_SAVE_SUCCESS

    einen Zeitstempel anhängen, damit man erkennen kann, wann die Speicherung stattgefunden hat.


    Diese Info ist für mich wichtig, da ich oft mit mehreren geöffneten Fenstern arbeite.

    ... fragt HGH

  • Zur hilfreichsten Antwort springen
  • .... ist denn so wichtig, das "Warum Wieso Weshalb" zu klären?

    Betrachten wir es doch erst einmal als Übung.

    Ich hatte schon mal im internationalen Forum angefragt und dort diesen Hinweis von SharkyKz bekommen.

    expand COM_CONTENT_SAVE_SUCCESS="Article saved." - Joomla! Forum - community, help and support

    Das erscheint mir auch als logisch, überfordert mich aber leider, weil ich nicht weiss, wie ich diese Lösung nun techn. umsetze. Der Code ist ja wohl nur der Kern, aber darum herum benötigt man ja wohl auch noch etwas.


    Ich vermute mal folgendes.

    Ich brauche ein Plugin, dass bei einem der genannten Events den Code durchläuft und ggf. die Messagequeue manipuliert. Liege ich da richtig?

    Einmal editiert, zuletzt von Indigo66 (25. Oktober 2024 um 06:21) aus folgendem Grund: Ein Beitrag von HGH_ESN mit diesem Beitrag zusammengefügt.

  • Das hättest du ja gleich verlinken können.
    SharkyKZ schlägt ein Plugin vor, kein Sprachoverride und ja, da brauchts du ein Plugin drum herum.
    Vielleicht könnte man was mit javascript basteln, dass es die zeit aus dem modified feld klaut und an die message hängt, aber das wäre ein Gefrickel.

    EDIT:

    administrator\language\en-GB\com_content.ini zeile 165

    libraries\src\MVC\Controller\FormController.php

  • Es geht ja wohl wahrscheinlich um den edit-view des Beitragsformulars nach dem klicken auf den "Speichern" Button im Backend oder Frontend?

    Fürs Backend könnte man hierzu z.B. nachfolgendes :


    in einen Atum-Template-Override der

    /administrator/templates/atum/html/com_content/article/edit.php

    in Zeile 54 einfügen.

    joomla-cms/administrator/components/com_content/tmpl/article/edit.php at 4.4.9 · joomla/joomla-cms
    Home of the Joomla! Content Management System. Contribute to joomla/joomla-cms development by creating an account on GitHub.
    github.com
  • Hallo Sieger66,

    Zitat

    Es geht ja wohl wahrscheinlich um den edit-view des Beitragsformulars nach dem klicken auf den "Speichern" Button im Backend oder Frontend?

    genau. Es soll aber eigentlich nur im Frontend laufen, da ich ein großer Fan des Fronted-Edit bin.

    Habe jetzt mal ein kleines Plugin gebastelt, dass folgenen Inhalt hat:


    Aber es klappt noch nicht, wie gesagt im Frontend.


    Nioch eine Frage.


    Muss statt update in der MQueue die gefundene Message nicht löschen und durch eine neue ersetzen?

  • $this->item->modified wird dir im Plugin übrigens nicht ohne zusätzlichen Code zur Verfügung stehen...

    Kein Link zur Website mit dem Problem und unvollständige Angaben nerven mich hier im Forum echt immer wieder.

    Meine Lösung in #8 geht ja wohl auch in einem entsprechenden Frontend-Template-Override von:

    /components/com_content/tmpl/form/edit.php

    habe es aber nicht getestet.

    • Hilfreichste Antwort

    ...Morgen schreibe ich mehr dazu

    So, nun möchte ich hier mich nochmal schnell bedanken,.
    Wofür, na dafür, dass ich die eine oder andere Information bekommen habe, die mich dazu animiert hat es selbst zu versuchen.

    Plugin:
    Ich habe mir zunächst einmal ein kleines Plugin geschrieben, weil das ja auch notwendig war. Darin habe ich den Code von SharkyKz aus dem internationalen Forum eingearbeitet, teils ergänzt um um die Angaben von Sieger66 [#8 / #9] .

    Dann muste ich jedoch feststellen, dass es nicht so recht funktioniert.

    Als Grund stellte sich heraus, dass der von mir genannte Nachrichten-String 'Item saved' aus der Sprach-Lib JLIB_APPLICATION als 'JLIB_APPLICATION_SAVE_SUCCESS' geholt wird. Da ich das Snippet Plugin von Regular Labs benutze lag ich also knapp daneben.
    Nach Abänderung des Message-Fetch Codes

    Code
    von
    $app->getLanguage()->_(sprintf('COM_CONTENT_SAVE_SUCCESS'))
    zu 
    $app->getLanguage()->_(sprintf('JLIB_APPLICATION_SAVE_SUCCESS'))

    klappte es dann sofort.

    Dabei habe ich festgestellt, dass es eben Unterschiede gibt, ob man einen Artikel oder ein Spippet editiert und speichert

    Es werden verschieden Sprach-Libs verwendet. ... Für Kategorien ebenfalls.


    USE-Statment im Plugin-Kopf:

    Man braucht es dezeit nicht, der Aufruf $app->JFactory .... funktioniert auch so.

    Ich habe nun ein

    use Joomla\CMS\Factory as JFactory;

    eingefügt und das klappt.


    $app->enqueueMessage($this->item->modified, 'message');
    Diese zeile genannt in Sieger66 #8 und #9
    Kann entfallen !

    Nach Einarbeitung all dieser Erkentnisse sieht der Plugin-Code jetzt wie folgt aus.


    Fazit:
    :thumbup:Es war eine schöne Übung.:thumbup:

  • Hallo,

    habe nochmals genau nachgesehen. Die Lösung wird ja im Link erklärt.evilgrin

    Habe nun mein Plugin so abgeändert.

    Es funzt weiterhin.:thumbup:

  • Es gibt ziemlich viel alten Code und vieles funktioniert einfach und immer noch.

    Aber $app = JFactory::getApplication(); ist falsch und wird ab Version 6.0 nich mehr funktionieren.

    Du schreibst ja use .. Factory, Dann solltest du das auch verwenden ..

    Wenn du Interesse an extension entwickung hast, Schau dir https://manual.joomla.org an. Dort hat einer ein sehr ausführliches Tutorial zur Pluginentweilng geschrieben.


  • Hallo Cristine,


    ich dachte durch die Verwendung von

    Code
    use Joomla\CMS\Factory as JFactory;

    hätte ich mich gut aus der Affäre gezogen.;)

    Durch die Angabe .... "as JFactory" verstehe ich das so, dass weiterhin im Code JFactory verwendet werden kann.

    Aber Du hast Recht, warum nicht gleich ohne das "... as JFactory".

    PS:

    Der LInk führt ja zu einer Zusammenstellung, bei dem es einem ja "Angst und Bange" werden kann - man ist das kompliziert.

    Grüße HGH