まず、リスト6-12をthme.htmlの冒頭に挿入します。
<{php}>
// new_messages に新着PM数をアサインする
global $xoopsUser ;
if( is_object( $xoopsUser ) ) {
$pm_handler =& xoops_gethandler('privmessage');
$criteria = new CriteriaCompo(new Criteria('read_msg', 0));
$criteria->add(new Criteria('to_userid', $xoopsUser->getVar('uid')));
$new_messages = $pm_handler->getCount($criteria) ;
$this->assign( 'new_messages' , $new_messages ) ;
if( empty( $_SESSION['new_messages'] ) ) $_SESSION['new_messages'] = 0 ;
if( $_SESSION['new_messages'] < $new_messages ) $this->assign( 'open_message_alert' , 1 ) ;
$_SESSION['new_messages'] = $new_messages ;
} else {
$this->assign( 'new_messages' , 0 ) ;
}
<{/php}>
次に、theme.htmlで、この部分を探します。
<script type="text/javascript">
<!--
<{$xoops_js}>
//-->
</script>
見つかったら、以下のように挿入します。
<script type="text/javascript">
<!--
<{$xoops_js}>
function xbook_onload(){
<{if $open_message_alert}>
alert("PMが届いています");
<{/if}>
}
//-->
</script>
あとは、タグに、
を挿入するだけです。
メッセージ数の表示はリスト6-13のような部分をテーマの適切な箇所に挿入します。
<{if $new_messages > 0}>
<a href="<{$xoops_url}>/viewpmsg.php"><img src="<{$xoops_imageurl}>pm_on.gif" title="PMが<{$new_messages}>件届いています"></a>
<{else}>
<a href="<{$xoops_url}>/viewpmsg.php"><img src="<{$xoops_imageurl}>pm_off.gif" title="受信箱は空です"></a>
<{/if}>