网站的管理界面用如下的DW函数生成下拉菜单
stm_aix('p1i5','p0i0',[0,'<? echo $strAdminMenu_1_5; ?>','','',-1,-1,0,'','mainframe','','','','',0,0,0,'images/muar1.gif','images/muar2.gif',0,0,0,0,1,'#000000',1,'#666666',0,'','',3,3,0,0,'#cccccc','#cccccc','#000000','#ffffff','12px']);
但是在恢复了数据以后,报告说下拉菜单不见了.研究后发现,其实在界面上菜单并没有消失不见,而是文字无法显示出来.菜单文字变成了一个个的不可见的空格.鼠标移到上面仍然可以弹出菜单,但是菜单的内容有的有文字,有的没有文字,非常之莫名其妙.
试了多种方法,包括改变语言包(language/zh_cn_utf8.php)等但是都不能解决问题.
解决方法:把上面的类似语句改成
stm_aix('p1i5','p0i0',[0,'<?php echo $strAdminMenu_1_5; ?>','','',-1,-1,0,'','mainframe','','','','',0,0,0,'images/muar1.gif','images/muar2.gif',0,0,0,0,1,'#000000',1,'#666666',0,'','',3,3,0,0,'#cccccc','#cccccc','#000000','#ffffff','12px']);
猜想可能是主机提供商升级了PHP,结果导致语法更加严格所致.不过没有去确认是不是此原因.
1. 因为不可直接在网页上添加文字(UTF8编码问题), 把所有要显示的文字都放到law_plus表中.
- 在law_plus表中,添加记录,PLUSLABLE为文字标识,以"STR"打头,BODY为文字内容,支持HTML
- 在MODULE目录中,增加STRINFO.PHP文件,用于显示数据库记录,内容为:
PHP Code Copy Code To Clipboard- function getInfo($strName)
- {
- global $fsql;
- global $charset;
- global $tbl_plus;
- global $MenuInfo;
- $scl = " pluslable='str".$strName."' ";
- $fsql->query( "select * from {$tbl_plus} where {$scl} " );
- if ( $fsql->next_record( ) )
- {
- $body = $fsql->f( "body" );
- }
- return $body;
- }
- 修改includes/func/common.inc.php文件,showtemp ($EditCon) 函数,增加
PHP Code Copy Code To Clipboard
- else if ( substr( $arrayx[0], 0, 3 ) == "str" )
- {
- include_once( ROOTPATH."module/strInfo.php");
- $CodeString = getInfo(substr( $arrayx[0],3 ) );
- }
- 在任意的template文件中,增加{#strXXXXXX#}变量即可
2. 添加文章类别后在首页上显示
- 先在后台添加文章类别
- 进入phpmyadmin, 打开数据库, 查看law_plus表,
- 添加记录, 其中,
- ID依次编入,不能重复;
- MENUID=1
- pluslable = modNewsList
- plustype 和 pluslocat 都是 INDEX
- catid 可以查看其他的, 依次下来加1
- showmenuid = 84
- showmore = 更多
- modno 这个很重要, 不能有重复,一般取比最后一个modNewsList的modno值大1即可
- 以上添加完成后,在template的HTML文件中添加引用:
{#modNewsList-18#}
其中的数字18即以上的modno数字.



