PEAK XOOPS - Re: your menu in englishin japanese

Re: your menu

List posts in the topic

question Re: your menu

msg# 1.1.2.1.1.1.1.1.1
depth:
8
Previous post - Next post | Parent - Children.1 | Posted on 2006/9/1 20:16
Masaki  二等兵   Posts: 8
教えて頂いた方法で画像が表示されました。
しかしながら、のぶのぶさんのsysutil多言語モジュールを使用していまして、英日と別の画像を表示させています。
Quote:
<{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/'>[ja]<img src='$xoops_imageurl/home-J.gif' />[/ja][en]<img src='$xoops_imageurl/home-E.gif' />[/en]</a> |
      <a href='$xoops_url/modules/news/'>[ja]<img src='$xoops_imageurl/news-J.gif' />[/ja][en]<img src='$xoops_imageurl/news-E.gif' />[/en]</a> |
      (あとは適当に挿入)
    </td>
    <td class='head_menu_right'></td>
  </tr>?n" ;

としておりますため、このままでは言語切替で表示を変えることが出来ません。したがって、それ以下の部分を

Quote:
if( isset( $xoopsModule ) && is_object( $xoopsModule ) ) {
	$dirname = $xoopsModule->getVar( 'dirname' ) ;
	$mainmenu_str = str_replace( "/{$dirname}-J.gif'" , "/{$dirname}-J_highlite.gif'" , $mainmenu_str ) ;
	$mainmenu_str = str_replace( "/{$dirname}-E.gif'" , "/{$dirname}-E_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-J.gif'" , "/home-J_highlite.gif'" , $mainmenu_str ) ;
	$mainmenu_str = str_replace( "/home-E.gif'" , "/home-E_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}>

のように些か強引な手法で書き換えてみましたところ、英日で別々の画像を表示することが出来ました。本来ならば、もっと良い方法があるとは思います。

GIJOEさんのご意見をお聞かせ下さい。
Votes:7 Average:10.00

Posts tree

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!