システムメッセージを含むページをロードするにはどうすればよいですか?
具体的にはリンクがあり、ユーザーがリンクをクリックすると、システムメッセージが含まれる特定のページが開きます。
私のサイトではシステムメッセージを問題なく見ることができます。テンプレートには
<jdoc:include type="message" />
これを行うための適切なコードが何であるか私は知りません。おそらく、リンクは実際にはonclickイベントを持つボタンである必要がありますか?
ブライアンの答え(@Brian Bolliに感謝します)とこの投稿を使用する- https://stackoverflow.com/questions/19323010/execute-php-function-with-onclick -私は作る方法を理解しましたリンクは、メッセージが上部にあるページをロードします。
リンクのコードは次のようになります。
<a href="index.php/animals?multiple=true" title="Add multiple animals to mob"><i class="icon-plus "></i>Add multiple animals</a>
これは、multipleというURLでロードしたいページに変数を渡しており、trueに設定されています。
ロードされるページテンプレートでは、コードは次のようになります。
if (isset($_GET['multiple'])) :
$msg = 'Very helpful message';
JFactory::getApplication()->enqueueMessage($msg, 'message');
endif;
変数が設定されているかどうかを確認し、設定されている場合は、必要なメッセージが表示されます。
次のように、ページレンダーサイクルの任意の時点でシステムメッセージを挿入できます。
JFactory :: getApplication()-> enqueueMessage( 'My gloious message'、 'error');
Jdocタグは、基本的にプレースHostを作成し、メッセージの挿入と表示に必要なファイルをロードします。これが役に立てば幸いですが、コードでメッセージを作成する予定の場所によっては、関連する場合があります。それでも問題が発生する場合は、メッセージを作成するコードを投稿してください。
*編集1 *
カスタムテンプレートとJoomlaの出力オーバーライドの機能を活用して、目的の機能を実現できます。この例では、記事のコンポーネントビューをオーバーライドすることを想定しています。
最初に、カスタムテンプレートのルートフォルダにディレクトリパスを作成します。
templates/mytemplate/html/com_content/article/
次に、コアコンテンツコンポーネントのdefault.phpファイルを新しいディレクトリにコピーします。この例のファイルは、次のパスにあります。
components/com_content/views/article/tmpl/default.php
このファイルの先頭に、新しいシステムメッセージをキューに入れるメソッドを追加します。
JFactory::getApplication()->enqueueMessage('My glorious message','error');
オーバーライドに関するJoomla Docsへの3つのリンクを貼り付けて、より詳細な説明を提供しました。