jtbc php版本实现全站搜索方法
jtbc php版本实现全站搜索方法
1、打开search/common/incfiles/module_config.inc.php
覆盖原来的function jtbc_cms_module_list() 也就是7到71行代码。
function jtbc_cms_module_list()
{
global $variable;
global $ngenre, $npagesize, $nlisttopx;
global $nsearch_genre, $nsearch_field;
$tshkeyword = ii_get_safecode($_GET['keyword']);
$toffset = ii_get_num($_GET['offset']);
if (ii_isnull($tshkeyword)) mm_imessage(ii_itake('module.keyword_error', 'lng'), -1);
$tshkeywords = explode(' ', $tshkeyword);
if (count($tshkeywords) > 5) mm_imessage(ii_itake('module.complex_error', 'lng'), -1);
$font_red = ii_itake('global.tpl_config.font_red', 'tpl');
$tmpstr = ii_itake('module.list', 'tpl');
$tmpastr = ii_ctemplate($tmpstr, '{@recurrence_ida}');
$tmprstr = '';
$tndatabases = explode(',', $nsearch_genre);
$tnfields = explode(',', $nsearch_field);
$tsqlstr = "";
for ($ti = 0; $ti < count($tndatabases); $ti ++)
{
$tndatabase = $tndatabases[$ti];
$turltype = ii_get_num($variable[ii_cvgenre($tndatabase) . '.nurltype']);
$tcreatefolder = $variable[ii_cvgenre($tndatabase) . '.ncreatefolder'];
$tcreatefiletype = $variable[ii_cvgenre($tndatabase) . '.ncreatefiletype'];
$tdatabase = $variable[ii_cvgenre($tndatabase) . '.ndatabase'];
$tidfield = $variable[ii_cvgenre($tndatabase) . '.nidfield'];
$tfpre = $variable[ii_cvgenre($tndatabase) . '.nfpre'];
$tunion = " union all ";
$tsqlstr .= "select * from (";
$tsqlstr .= "select " . $tidfield . " as un_id,";
foreach ($tnfields as $tnfield)
{
$tsqlstr .= ii_cfnames($tfpre, $tnfield) . " as un_" . $tnfield . ",";
}
$tsqlstr .= ii_cfnames($tfpre, 'count') . " as un_count," . ii_cfnames($tfpre, 'time') . " as un_time,'" . $tndatabase . "' as un_genre from " . $tdatabase . " where " . ii_cfnames($tfpre, 'hidden') . "=0";
foreach ($tshkeywords as $key => $val)
{
foreach ($tnfields as $tnfield)
{
if($tnfield == 'topic') $tsqlstr .= " and " . ii_cfnames($tfpre, $tnfield) . " like '%" . $val . "%'";
else $tsqlstr .= " or " . ii_cfnames($tfpre, $tnfield) . " like '%" . $val . "%'";
}
}
if($ti == count($tndatabases) - 1) $tsqlstr .= " order by " . ii_cfnames($tfpre, 'time') . " desc) as un_" . $tndatabase;
else $tsqlstr .= " order by " . ii_cfnames($tfpre, 'time') . " desc) as un_" . $tndatabase . $tunion;
}
$tcp = new cc_cutepage;
$tcp -> id = 'un_id';
$tcp -> pagesize = $npagesize;
$tcp -> rslimit = $nlisttopx;
$tcp -> sqlstr = $tsqlstr;
$tcp -> offset = $toffset;
$tcp -> init();
$trsary = $tcp -> get_rs_array();
if (is_array($trsary))
{
foreach($trsary as $trs)
{
$tfshkeyword = '';
$tmptstr = $tmpastr;
$tfshkeyword = str_replace('{$explain}', $tshkeyword, $font_red);
$ttopic = ii_htmlencode($trs['un_topic']);
$tcontent = $trs['un_content'];
$tmptstr = str_replace('{$topicstr}', $ttopic, $tmpastr);
if (!ii_isnull($tfshkeyword))
{
$ttopic = str_replace($tshkeyword, $tfshkeyword, $ttopic);
$tcontent = str_replace($tshkeyword, $tfshkeyword, $tcontent);
}
$tmptstr = str_replace('{$topic}', $ttopic, $tmptstr);
$tmptstr = str_replace('{$content}', $tcontent, $tmptstr);
$tmptstr = str_replace('{$time}', ii_get_date($trs['un_time']), $tmptstr);
$tmptstr = str_replace('{$count}', ii_get_num($trs['un_count']), $tmptstr);
$tmptstr = str_replace('{$id}', ii_get_num($trs['un_id']), $tmptstr);
$tmptstr = str_replace('{$baseurl}', ii_get_actual_route($trs['un_genre']) . '/', $tmptstr);
$tmprstr .= $tmptstr;
}
}
$tmpstr = str_replace(JTBC_CINFO, $tmprstr, $tmpstr);
$tmpstr = str_replace('{$urltype}', $turltype, $tmpstr);
$tmpstr = str_replace('{$createfolder}', $tcreatefolder, $tmpstr);
$tmpstr = str_replace('{$createfiletype}', $tcreatefiletype, $tmpstr);
$tmpstr = str_replace('{$cpagestr}', $tcp -> get_pagestr(), $tmpstr);
$tmpstr = str_replace('{$genre}', $ngenre, $tmpstr);
$tmpstr = ii_creplace($tmpstr);
return $tmpstr;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2、模版管理-编辑代号search.tpl.module 提交,替换掉之前list节点的模版
{$=mm_web_head($GLOBALS['nhead'])}
<div id="middle">
<div id="middleContent">
<div class="middleSide">
<div class="box1">
<h3>{$=ii_itake('global.lng_config.search','lng')}</h3>
<div class="box1s">
<form method="get" name="search">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="25"><input type="text" name="keyword" size="15" value="{$=ii_htmlencode($_GET['keyword'])}" class="text" /></td>
</tr>
<tr>
<td height="25"><input type="submit" value="{$=ii_itake('global.lng_config.search','lng')}" class="button" /></td>
</tr>
</table>
</form>
</div>
</div>
</div>
<div class="middleMain">
<div class="middleMainContent">
<table cellpadding="0" cellspacing="0" class="tablen">
<tr>
<td class="nav"><span>{$=vv_inavigation('{$genre}', 'strers=module')}</span></td>
</tr>
<tr>
<td class="list" valign="top">
<table width="100%" cellpadding="0" cellspacing="0" border="0">{@recurrence_ida}
<tr>
<td class="tit1"><img src="{$=#global_images_route}public/small/sico.gif" alt="ICO" /> <a href="{$=ii_curl('{$baseurl}', ii_iurl('detail', {$id}, {$urltype}, 'folder={$createfolder};filetype={$createfiletype};time={$time}'))}" title="{$topicstr}">{$topic}</a></td>
<td>{$content}</td>
<td width="130" class="time1"><span>{$time}</span></td>
</tr>{@recurrence_ida}
</table>
</td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><div id="cutepage" class="cutepage">{$cpagestr}</div></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
</div>
</div>
<div class="clear"></div>
</div>
</div>
{$=mm_web_foot($GLOBALS['nfoot'])}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
3、前台模版调用代码
<form method="get" name="search" action="search">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="10" height="10"></td>
<td></td>
</tr>
<tr>
<td></td>
<td height="25"><strong>{$=ii_itake('global.lng_config.search', 'lng')}</strong></td>
</tr>
<tr>
<td></td>
<td height="35">{$=ii_itake('global.lng_config.keyword', 'lng')} <input type="text" name="keyword" size="15" class="text" /> <input type="submit" value="{$=ii_itake('global.lng_config.search','lng')}" class="button" /></td>
</tr>
<tr>
<td height="10"></td>
<td></td>
</tr>
</table>
</form>
4、找到根目录/common/incfiles/class.inc.php文件,修改分页类
function get_rs_count()
{
global $conn;
//$tsqlstr = 'select count(' . $this -> id . ') from' . ii_get_lrstr($this -> sqlstr, 'from', 'rightr');
$tsqlstr = $this -> sqlstr;
$trs = ii_conn_query($tsqlstr, $conn);
$trs = ii_conn_fetch_array($trs);
return $trs[0]+1;
}
影子说明:因修改后的搜索是联表查询,分页类是针对一个表查询,所以需要修改。
影子建议,把分页类复制一份修复,以免对其它处产生影响,请谨慎使用,责任自负。
此教程红色部分感谢影子技术支持。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
5、配置管理→(站内搜索)search,设置 可被搜索的模块名,把需要搜索的模块名加上,把已经不存在的模块名删掉。然后删除缓存。
原文地址:https://www.jtbc.cn/forum/detail-18750.html
点这里获得人工在线支持,快速解决电脑、网络和网站等问题!
为您推荐
北京精雕软件 雕塑冲压,磨光,都看不见范围红圈了
雕塑冲压,磨光,都看不见范围红圈了,这个原因是精雕软件太老了,对独立显卡驱动不好友造成的,也就是显卡驱动不兼容! 解决方法,直接把独显禁用,精雕就正常了。
win10个性化背景图删除方法
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers 打开注册表,找到上面值里删除即可。
win11跳过联网激活方法
首次开机进入设置页面 ① 按 Shift+F10键,打开命令行程序(部分笔记本选按 Fn+shift+F10); ② 进命令行输入: oobe\bypassnro 然后敲击回车 (如果无法输入文字,需要鼠标点下窗口,才能输入!); ③ 电脑自动重启,再次进入联网界面,下面多出了“ 我没有Internet连接”选项,此时点击此选项,可继续进行后续设置。
win11添加共享打印机的时报0x000006ba错误解决方法
win11添加共享打印机的时候遇到0x000006ba错误怎么解决 运行 services.msc命令,注意这里的英文单词是services,结尾带s的。然后在弹出的服务列表里查看Print Spooler服务,这是有关打印机的服务。 点选Print Spooler服务,双击鼠标左键,在弹出的界面里,查看服务状态,出问题时,服务状态为已停止……
Win11推送KB5016691预览更新修复打印机BUG
微软为Win11推送了KB2016691预览版更新,在此次更新中,微软又一次修复了多个与打印机相关的Bug。 在安装补丁后,重新启动或安装打印机不再会出现故障;从Internet打印协议类驱动程序切换到独立硬件驱动程序后,也不再会进入错误模式;同时,此前阻止访问设备功能的双向通信问题也获得了解决。 除了打印机……
Win11打印机共享时提示709错误解决方法
方法一:卸载补丁 Win10 卸载有问题的补丁KB5006667或KB5006670;win11回退回退到旧版本。 方法二:文件替换 把系统win32spl.dll文件替换为就版本的即可。批处理文件见附件,找到对应的系统,右键以管理员身份运行就可以了。 方法三:不用卸载补丁方法 新建记事本文档,输入如下内容……
版权声明:
fm0898.com小部分文章引用或者参考了网络上传播的部分开源开放代码,我站采用的这部分代码仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请 联系我们并出示版权证明以便删除 !
请站长吃包辣条更有动力写作哦!
分类目录
标签
近期文章
一 | 二 | 三 | 四 | 五 | 六 | 日 |
---|---|---|---|---|---|---|
« 9月 | ||||||
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |