web-dev-qa-db-fra.com

Comment charger une page avec un message système

Comment puis-je charger une page avec un message système?

Plus précisément, j'ai un lien et j'aimerais que lorsqu'un utilisateur clique sur le lien, il ouvre une page spécifique avec un message système, je le passe.

Je vois très bien les messages système sur mon site, mon modèle contient

<jdoc:include type="message" />

Je ne sais tout simplement pas quel serait le bon code pour le faire. Peut-être que le lien devrait en réalité être un bouton avec un événement onclick?

4
Hannah Smith

En utilisant la réponse de Brian (merci beaucoup @Brian Bolli) et ce message - https://stackoverflow.com/questions/19323010/execute-php-function-with-onclick - J'ai compris comment faire le lien charge une page avec le message en haut.

Le code du lien ressemble à ceci:

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

Il passe une variable à la page que je veux charger dans l'URL appelée multiple et sa valeur est true.

Dans le modèle de page qui se charge, le code ressemble à ceci:

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

Il vérifie si la variable a été définie et, le cas échéant, le message que je souhaite s'affiche.

2
Hannah Smith

Vous pouvez injecter des messages système à n'importe quel moment du cycle de rendu de la page, comme suit:

JFactory :: getApplication () -> enqueueMessage ('Mon glorieux message', 'error');

La balise jdoc crée essentiellement l’endroit hôte et charge les fichiers nécessaires pour injecter et afficher des messages. J'espère que cela vous aidera, mais selon l'endroit où vous envisagez de créer un message dans le code pourrait être pertinent. Si vous rencontrez des problèmes, postez toujours le code à l'endroit où vous créez le message.

* Éditer 1 *

Nous pouvons utiliser votre modèle personnalisé et la fonctionnalité de remplacement de la sortie de Joomla pour accomplir tout ce que vous souhaitez. Pour cet exemple, je suppose que nous allons redéfinir la vue des composants de l'article.

La première chose à faire est de créer le chemin du répertoire dans le dossier racine de votre modèle personnalisé:

templates/mytemplate/html/com_content/article/

Ensuite, copiez le fichier default.php du composant de contenu principal dans le nouveau répertoire. Le fichier correspondant à cet exemple se trouve à l'emplacement suivant:

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

Maintenant, en haut de ce fichier, vous ajouteriez la méthode pour mettre en file d'attente un nouveau message système:

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

J'ai collé trois liens vers Joomla Docs concernant les substitutions afin de fournir des explications plus détaillées.

5
Brian Bolli