最近在二次开发phpcms v9,根据网站设计图,需要用到热门关键字功能,但通过详细查看 phpcms v9后,并没有发现可以管理热门关键字的相关选项。虽然可以通过pc:get标签查询出搜索次数最多的关键字,但毕竟后台可以管理才是王道。尤其是网站运营初期,必须定义一些热门的关键字引导用户查阅更多的信息,以提高浏览量。此方法由于是增加文件,并不影响升级,以后程序升级后,此功能还能继续使用。
首先列出使用pc:get标签的方法:
{pc:get sql=”select keyword from v9_search_keyword” orderby=”searchnums desc” num=”5″ } {loop $data $r} <a href=”{APP_PATH}index.php?m=search&c=index&a=init&typeid=1&siteid=1&q={$r[keyword]}” >{$r[keyword]}</a> {/loop} {/pc}
将上面这段代码复制到头部的任意位置,即可显示5个关键词并按搜索次数最多的前5个显示。
下面是后台增加关键词管理的操作方法。我将管理菜单放在扩展的栏目下,其它朋友可以根据知道的需求,增加到各自的栏目下,先上图,有图有真相。
1.关键词管理页面,在扩展栏目下。
2.增加关键字页面,可以自由增加关键字
3.关键字编辑页面,可以把热门的关键字增加搜索次数,以引导用户获取更多信息
请按照以下方法增加:
1.增加语言包:
找到文件phpcms/languages/zh-cn/admin.lang.php,在此文件最下面增加以下内容:
/*热门关键词*/ $LANG['search_keyword'] = ‘关键字管理’; $LANG['search_word_add'] = ‘增加关键字’; $LANG['search_word_pinyin'] = ‘拼音’; $LANG['search_word_nums'] = ‘搜索次数’; $LANG['search_word_some'] = ‘相关分词’; $LANG['search_word_confirm_del'] = ‘是否删除该关键词’; $LANG['search_word_name'] = ‘关键字名称’; $LANG['search_word_error_input'] = ‘请输入完整的数据’;
2.由于模型类本来已存在,所以不需要再创建模型类,只需要创建控制器:
在phpcms\modules\admin\下,新建文件名为:search_keyword.php,路径为:phpcms\modules\admin\search_keyword.php
<?php defined(‘IN_PHPdedecms8.com">dedecms8.com">CMS’) or exit(‘No permission resources.’); pc_base::load_app_class(‘admin’,'admin’,0); class search_keyword extends admin { function __construct() { $this->db = pc_base::load_model(‘search_keyword_model’); parent::__construct(); } function init () { $page = $_GET['page'] ? intval($_GET['page']) : ’1′; //根据搜索数量由大到小排序 $infos = $this->db->listinfo(”,’searchnums DESC’,$page ,’20′); $pages = $this->db->pages; $big_menu = array(‘javascript:window.top.art.dialog({id:\’add\’,iframe:\’?m=admin&c=search_keyword&a=add\’, title:\”.L(‘search_word_add’).’\', width:\’450\’, height:\’150\’}, function(){var d = window.top.art.dialog({id:\’add\’}).data.iframe;var form = d.document.getElementById(\’dosubmit\’);form.click();return false;}, function(){window.top.art.dialog({id:\’add\’}).close()});void(0);’, L(‘search_word_add’)); include $this->admin_tpl(‘search_keyword_list’); } /** * 关键词添加 */ function add() { if(isset($_POST['dosubmit'])){ if(empty($_POST['info']['keyword']) || empty($_POST['info']['pinyin']) || empty($_POST['info']['searchnums'])){ echo L(‘search_word_error_input’); return false; } $this->db->insert($_POST['info']); showmessage(L(‘operation_success’),’?m=admin&c=search_keyword&a=add’,”, ‘add’); }else{ $show_validator = $show_scroll = $show_header = true; include $this->admin_tpl(‘search_keyword_add’); } } /** * 关键词修改 */ function edit() { if(isset($_POST['dosubmit'])){ $keywordid = intval($_GET['keywordid']); if(empty($_POST['info']['keyword']) || empty($_POST['info']['pinyin']) || empty($_POST['info']['searchnums'])){ echo L(‘search_word_error_input’); return false; } $this->db->update($_POST['info'],array(‘keywordid’=>$keywordid)); showmessage(L(‘operation_success’),’?m=admin&c=search_keyword&a=edit’,”, ‘edit’); }else{ $show_validator = $show_scroll = $show_header = true; $info = $this->db->get_one(array(‘keywordid’=>$_GET['keywordid'])); if(!$info) showmessage(L(‘specified_word_not_exist’)); extract($info); include $this->admin_tpl(‘search_keyword_edit’); } } /** * 关键词删除 */ function delete() { if(is_array($_POST['keywordid'])){ foreach($_POST['keywordid'] as $keywordid_arr) { $this->db->delete(array(‘keywordid’=>$keywordid_arr)); } showmessage(L(‘operation_success’),’?m=admin&c=search_keyword’); } else { $keywordid = intval($_GET['keywordid']); if($keywordid < 1) return false; $result = $this->db->delete(array(‘keywordid’=>$keywordid)); if($result){ showmessage(L(‘operation_success’),’?m=admin&c=search_keyword’); }else { showmessage(L(“operation_failure”),’?m=admin&c=search_keyword’); } } } } ?>