(一)根据自定义字段,精确查询
后台 - 核心 - 内容模型管理
根据你添加字段的频道,点击右边红色框内按钮,进入
此地以 自定义字段 测试1 测试2 为例,然后粘贴到你需要搜索的模板中,样式自行调整
搜索后发现,系统I自带的页面非常丑,想用自己的模板怎么办? 找到plus/advancedsearch.php 找到末尾如下代码
if(file_exists(DEDEROOT.\default/$template\{
$templatefile = DEDEROOT.\default/$template\} else {
$templatefile = DEDEROOT.\default/advancedsearch.htm\}
红色标注为系统默认模板路径,根据自己模板修改即可(备注:advancedsearch.htm 需要拷贝到自己模板下)
这就完成了,自定义字段精确查询
(二)头部,尾部标签无法识别! 无法设别channel 或者 channelartlist 解决方法如下
在advancedsearch.htm 头部标签 换成
function pasterTempletDiy($path) {
require_once(DEDEINC.\ global $cfg_basedir,$cfg_templets_dir;
$tmpfile = $cfg_basedir.$cfg_templets_dir.\模版文件的路径
$dtp = new PartView(); $dtp->SetTemplet($tmpfile); $dtp->Display(); }
这样就搞定了
(三)在advancedsearch.htm 无法时调用自定义字段!解决方法如下
/plus/advancedsearch.php
找到如下代码:
if($mid < -1) {
$where = str_replace('main.', 'addon.', $where);
$orderby = str_replace('main.', 'addon.', $orderby);
$query = \ LEFT JOIN dede_arctype arctype ON arctype.id = addon.typeid $where $orderby\ } else {
$query = \SELECT main.id AS aid,main.*,main.description AS description1, type.* FROM $maintable main
LEFT JOIN dede_arctype type ON type.id = main.typeid LEFT JOIN $addontable addon ON addon.aid = main.id $where $orderby\ }
红色部分改成 SELECT addon.*, 在模板中调用{dede:field.自定义字段/}即可