如何檢查消息隊列中是否有消息?例如,我怎麼能做這樣的事情:如何檢查joomla 2.5的消息隊列中是否有消息?
<script type="text/javascript">
var message='<jdoc:include type="message" />'
if(message!="")
{
alert(message);
}
</script>
我使用joomla 2.5。 謝謝
如何檢查消息隊列中是否有消息?例如,我怎麼能做這樣的事情:如何檢查joomla 2.5的消息隊列中是否有消息?
<script type="text/javascript">
var message='<jdoc:include type="message" />'
if(message!="")
{
alert(message);
}
</script>
我使用joomla 2.5。 謝謝
所以,這個問題真的需要剝離從message
變量的HTML。幾件事要注意:
首先,您可以通過使用一些基本的PHP將消息放置在JSON
塊中。
<?php
$jAp = JFactory::getApplication();
$messagesJSON = json_encode($jAp->getMessageQueue());
?>
然後在你的模板後,你可以JSON陣列echo
郵件到你的Javascript類似於您最初的嘗試。
<script type="text/javascript">
var messageJSON = <?php echo $messagesJSON; ?>
... then loop through the JSON block
這樣你最終只得到消息的文本和類型,而不是當前樣式/覆蓋的特定格式。
thanx @cppl它的工作原理。 – themis
我無法理解你的問題,但你可以得到味精隊列這樣
$mainframe= JFactory::getApplication();
$messages = $mainframe->getMessageQueue();
if (is_array($messages)) {
echo '<ul id="system-messages">';
foreach($messages as $msg) {
echo '<li class="' . $msg['type'] . '">' . $msg['message'] . '</li>';
}
echo '</ul>';
}
'$ mainframe'不可用於Joomla! 2.5 - >你需要使用應用程序對象。 – Craig
@cppl - $ mainframe無處不在,因爲它只是一個正在使用JFactory :: getApplication()分配的變量。只要在實例化對象時引用它,就可以使用$ mainframe,$ app,$ foobar,$ helloworld。當然,爲了代碼標準,使用類似$ app(用於應用程序)的東西是有用的,然後:使用$ app = JFactory :: getApplication(); $ APP-> getMessageQueue(); – McRui
@Mario從Rakesh的原始答案沒有第一行'$ mainframe = JFactory :: getApplication();',在Joomla!的歷史(即在1.6-> 2.5行之前)'$ mainframe'是一個'全球'看到這裏 - http://docs.joomla.org/Adapting_a_Joomla_1.5_extension_to_Joomla_1.6#Legacy_Mode_Removed – Craig
你給出的JS作爲例子看起來像是在模板中工作,所以,我不清楚你在這裏問什麼... – Craig
沒有它沒有工作 – themis
好的,所以幫助我這裏有一些線索... PHP錯誤? Javascript錯誤?發生什麼事? – Craig