Quote:
おっしゃる通り、最初はテーマチェンジャーを使えば可能だと思いましたが、テーマを14個に複製しなければならないので複製は最小限に留めたいと思い、他の方法を模索していました。画像を使うことにしたのは、モジュールが多く、多言語ハックを入れているため、日英で表示されるメニューの横幅を統一したいと思ったからです。
なるほど。
というか、読み返してみたら、現在選択中のモジュールについて、画像でハイライトしたい、っていう要望なんですね。
だったら、むしろテーマチェンジャーを使うべきじゃないでしょう。
Quote:
これ以上質問して、「教えて君」や「クレクレ君」扱いされるのも本意ではありませんから。
誤解があるようですが、「作って」とか「教えて」とかお願いされるのが嫌なら、最初からモジュールを公開しませんし、サポートフォーラムも開きませんよ
「教えて君」とか「クレクレ君」を非難する人は、自分も本当はそうしたいからなんじゃないですかね。私自身は、他人に訊くより自分で調べてしまった方が早いだろう、という性質ですし、モノ作りが基本的に好きなので、自分で作れるものを誰かに作ってもらうなんてむしろもったいない、とか思ってしまう方です。
ただ、現実に私の時間も有限なので、私にとって、面白い質問や要望を優先して、それ以外は対応なし、なんてことは当然あります。
閑話休題。
Quote:
余談ですが、テーマチェンジャーでモジュールを指定する時にハイフンの含まれているモジュールは指定できませんでした。マルチメニューも「@〜」では指定できませんでしたが、この時はURLを直接指定することで対応できました。ハイフンの含まれているモジュールは配布元での更新が滞っていることもあり、いずれ別のモジュールに変える予定でしたのでこれを良い機会としたいと思います。
ハイフンの含まれているモジュールっていうと、XP-Weatherですか?
実際のところ、他のモジュールに切り替えた方がいいかもしれませんね。
というわけで、ハイライトするやり方。
まったく動作確認してませんし、もっとスマートなやり方がありそうですが。
<{php}>
global $xoopsModule , $xoopsUser ;
$xoops_url = XOOPS_URL ;
$xoops_imageurl = XOOPS_THEME_URL.'/'.テーマ名.'' ;
$submenu_str = "" ;
$mainmenu_str = "
<tr>
<td class='head_menu_left' width='15'> </td>
<td class='head_menu'>
<a href='$xoops_url/'><img src='$xoops_imageurl/home.gif' /></a> |
<a href='$xoops_url/modules/news/'><img src='$xoops_imageurl/news.gif' /></a> |
(あとは適当に挿入)
</td>
<td class='head_menu_right'></td>
</tr>\n" ;
if( isset( $xoopsModule ) && is_object( $xoopsModule ) ) {
$dirname = $xoopsModule->getVar( 'dirname' ) ;
$mainmenu_str = str_replace( "/{$dirname}.gif'" , "/{$dirname}_highlite.gif'" , $mainmenu_str ) ;
$sublinks =& $xoopsModule->subLink();
if( count( $sublinks ) > 0 ) {
$submenu_str .= " <tr>\n <td class='sub_menu_left' width='15'> </td>\n <td class='sub_menu'>\n " ;
foreach( $sublinks as $sublink ) {
$submenu_str .= "<a href='$xoops_url/modules/$dirname/{$sublink['url']}'>{$sublink['name']}</a> |\n";
}
$submenu_str .= " </td>\n <td class='sub_menu_right'></td>\n </tr>\n" ;
}
} else {
$mainmenu_str = str_replace( "/home.gif'" , "/home_highlite.gif'" , $mainmenu_str ) ;
if( $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);
if( $xoopsUser->isadmin() ) $admin_link = "<a href='$xoops_url/admin.php' target='_blank'>Admin</a>" ;
if( $new_messages > 0 ) {
$pm_str = "<span style='color:#ff0000; font-weight: bold;'> ($new_messages)</span>" ;
$pm_class = "class='highlight'" ;
} else {
$pm_str = '' ;
$pm_class = '' ;
}
$submenu_str .= "
<tr>
<td class='sub_menu_left' width='15'> </td>
<td class='sub_menu'>
<a href='$xoops_url/user.php'>View Account</a> |
<a href='$xoops_url/edituser.php'>Edit Account</a> |
<a href='$xoops_url/notifications.php'>Notifications</a> |
<a href='$xoops_url/viewpmsg.php' $pm_class>Inbox$pm_str</a> |
$admin_link
</td>
<td class='sub_menu_right'></td>
</tr>\n" ;
}
}
echo $mainmenu_str ;
echo $submenu_str ;
<{/php}>