it-swarm.com.de

So laden Sie eine Seite mit einer Systemmeldung

Wie kann ich eine Seite mit einer Systemnachricht laden?

Insbesondere habe ich einen Link und ich möchte, dass ein Benutzer, wenn er auf den Link klickt, eine bestimmte Seite mit einer von mir übergebenen Systemmeldung öffnet.

Ich kann Systemnachrichten auf meiner Site gut sehen, meine Vorlage hat

<jdoc:include type="message" />

Ich weiß nur nicht, wie der richtige Code dafür aussehen würde. Vielleicht sollte der Link eigentlich ein Button mit einem Onclick-Event sein?

4
Hannah Smith

Unter Verwendung von Brians Antwort (vielen Dank an Brian Bolli) und diesem Beitrag - https://stackoverflow.com/questions/19323010/execute-php-function-with-onclick - habe ich herausgefunden, wie man das macht Der Link lädt eine Seite mit der Nachricht oben.

Der Code des Links sieht folgendermaßen aus:

<a href="index.php/animals?multiple=true" title="Add multiple animals to mob"><i class="icon-plus "></i>Add multiple animals</a>

Es wird eine Variable an die Seite übergeben, die ich in die URL mit dem Namen multiple laden möchte, und sie wird auf true gesetzt.

In der geladenen Seitenvorlage sieht der Code folgendermaßen aus:

if (isset($_GET['multiple'])) :
    $msg = 'Very helpful message';
    JFactory::getApplication()->enqueueMessage($msg, 'message'); 
endif;

Es wird geprüft, ob die Variable festgelegt wurde, und in diesem Fall wird die von mir gewünschte Meldung angezeigt.

2
Hannah Smith

Sie können Systemnachrichten an jeder Stelle des Seitenrenderzyklus wie folgt einfügen:

JFactory :: getApplication () -> enqueueMessage ('Meine herrliche Nachricht', 'Fehler');

Das jdoc-Tag erstellt im Grunde genommen den Ort Host und lädt die erforderlichen Dateien zum Einfügen und Anzeigen von Nachrichten. Ich hoffe, das hilft, aber je nachdem, wo genau Sie eine Nachricht im Code erstellen möchten, kann dies relevant sein. Wenn Sie weiterhin Probleme haben, posten Sie den Code, in dem Sie die Nachricht erstellen.

* Edit 1 *

Wir können Ihre benutzerdefinierte Vorlage und die Funktion Output Override von Joomla nutzen, um das zu erreichen, was Sie möchten. Für dieses Beispiel gehe ich davon aus, dass wir die Artikelkomponentenansicht überschreiben werden.

Als Erstes müssen Sie den Verzeichnispfad im Stammordner Ihrer benutzerdefinierten Vorlage erstellen:

templates/mytemplate/html/com_content/article/

Als Nächstes kopieren Sie die Datei der Kerninhaltskomponente default.php in das neue Verzeichnis. Die Datei für dieses Beispiel finden Sie unter folgendem Pfad:

components/com_content/views/article/tmpl/default.php

Nun würden Sie oben in dieser Datei die Methode hinzufügen, um eine neue Systemnachricht in die Warteschlange zu stellen:

JFactory::getApplication()->enqueueMessage('My glorious message','error');

Ich habe drei Links zu Joomla Docs in Bezug auf Überschreibungen eingefügt, um detailliertere Erklärungen zu liefern.

5
Brian Bolli