本文目录一览:
- 1、把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官
- 2、DEDECMS为什么出现这种错误,把数据保存到数据库附加表 `dede_addonarticle` 时出错
- 3、dedecms如何根据文章标题自动产生内链?
- 4、织梦(dedecms)怎么实现下拉搜索指定栏目功能
- 5、如何使用织梦DedeCMS v5.7全文检索说明
- 6、织梦Dedecms怎么样用键盘方向键实现上一篇,写一篇的翻页效果
把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官
我们在添加文档时候,会碰到这样的提示:"把数据保存到数据库附加表
`dede_addonarticle`
时出错,请把相关信息提交给dedecms官方。duplicate
entry
’3′
for
key
‘primary’".....
你的主键是不可重复的,现在重复插入值为3的主键了。可以去掉主键唯一,或是设成自增加。就不会出现这种情况了。
解决办法:
1:进入后台,“系统”
-
“系统设置”
-
“sql命令行工具”
2:运行sql命令行:
alter
table
dede_addonarticle
drop
primary
key
运行上面的代码就没有提示了,完美解决了!
DEDECMS为什么出现这种错误,把数据保存到数据库附加表 `dede_addonarticle` 时出错
DedeCMS 提示信息!把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方。Duplicate entry '7' for key 'PRIMARY'错误原因是Duplicate entry '7' for key 'PRIMARY'解决方案:进入后台,“系统” - “系统设置” - “SQL命令行工具”运行SQL命令行:alter table dede_addonarticle drop primary key运行上面的代码就没有提示了ok!解决了!
dedecms如何根据文章标题自动产生内链?
1.添加添加新变量
首先进入网站后台-系统设置-系统基本参数-系统基本参数-添加新变量
变量名称:“key_www”
变量类型:选择“多行文本”
参数说明:“内容内链设置如下:“需要被内链的内容”|“内链的连接”多个请用“,”隔开”。
所属组:建议选择“其他选项”(方便管理)。
2.设置内链关键字和链接
完成第一步进入“其它选项”
拉到最下面设置内链:
设置格式:”内链关键字|内链地址,内链关键字|内链地址,”。
如:
3.修改网站程序
找到网站后台根目录的“article_add.php”文件,打开这个文件找到这个段代码。“$body = AnalyseHtmlBody($body, $description, $litpic, $keywords, ‘htmltext’);” ,在这段代码上面加上“ //内链
$key_www = $dsql-GetOne(” Select * FROM `dede_sysconfig` WHERE varname=’key_www’”);
foreach(explode(‘,’,$key_www['value']) as $value){
$keys=explode(‘|’,$value);
$key_http[]=$keys[0];
$value_http[]=”“.$keys[0].”“;
}
$body=str_replace($key_http,$value_http,$body);
//内链”保存文件上次覆盖完成。
完成以上步骤,如果文章里有设置的关键和内链接就会自动加上了。
织梦(dedecms)怎么实现下拉搜索指定栏目功能
这个可以使用channelartlist标签:
全部栏目:
form action="{dede:field name='phpurl'/}/search.php" name="formsearch"
div class="form"
input type="hidden" name="kwtype" value="0" /
input name="keyword" type="text" class="search-keyword" id="search-keyword" /
select name="typeid" class="search-option" id="typeid"
option value='0' selected='1' class="search-xl"全部栏目/option
{dede:channelartlist typeid='top' } {dede:type} option value='[field:id/]'[field:typename/]/option{/dede:type}
{dede:channel type='son' noself='yes'} option value='[field:id/]'-[field:typename/]/option {/dede:channel}{/dede:channelartlist}/select
button type="submit" class="search-submit"站内搜索/button
/div
/form
指定某几个栏目:
form action="{dede:global.cfg_cmsurl/}/plus/search.php" method="get" id="globalsearchform"
div class="globalsearchform"
input name="q" type="text" class="input" id="globalsearchform_key" name="key" value="输入关键词搜索产品..." onfocus="if(this.value=='输入关键词搜索产品...'){this.value='';}" onblur="if(this.value==''){this.value='输入关键词搜索产品...';}"
/div
div class="globalsearchformselect"
select name="typeid" class="search-option" id="typeid"
{dede:channelartlist typeid='9,10'}{dede:type}
option value='[field:id/]'[field:typename/]/option{/dede:type}
{dede:channel type='son' noself='yes'}option value='[field:id/]'-[field:typename/]/option{/dede:channel}
{/dede:channelartlist}
/select
/div
div class="globalsearchform1"
input type="image" class="imgbutton" src="{dede:global.cfg_templets_skin/}/images/searchr.png" id="button" name="imageField"
/div
/form
上面就指定了id为9和10的栏目。
如何使用织梦DedeCMS v5.7全文检索说明
1.1.开始前的准备工作
先从下载Coreseek 3.2.13,这里我们就以Windows环境为例:
下载后直接解压coreseek-3.2.13-win32.zip,我们这里假设解压到:D:\coreseek-3.2.13-win32.这里我们需要简单了解几个目录:
[D:\coreseek-3.2.13-win32\api]API接口目录,其中包括了php,python,ruby等操作实例,其中test_coreseek.php是一个不错的中文检索的例子.
[D:\****\bin]应用程序目录,其中包含以下几个文件
* indexer: 用于创建全文索引;
* search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引;
* searchd: 一个守护进程,其他软件可以通过这个守护进程进行全文检索;
* sphinxapi: 一系列searchd 的客户端API 库,用于流行的Web脚本开发语言(PHP, Python, Perl, Ruby, Java).
* spelldump: 一个简单的命令行工具,用于从 ispell 或 MySpell (OpenOffice内置绑定) 格式的字典中提取词条。当使用 wordforms 时可用这些词条对索引进行定制.
* indextool: 工具程序,用来转储关于索引的多项调试信息。 此工具是从版本Coreseek 3.1(Sphinx 0.9.9-rc2)开始加入的。
* mmseg: 工具程序和库,Coreseek用于提供中文分词和词典处理。
[D:\****\etc]sphinx配置目录
[D:\****\var]sphinx变量索引日志存放目录
1.2.创建配置文件
由于dedecms使用的是mysql,所以我们需要来配置一个mysql的sphinx模板配置,可以复制csft_mysql.conf改名为:csft_dedecmsv57.conf,例如我们这里仅做文章的全文检索,我们需要做如下配置:
先在DedeCMS中创建一个统计表,方法可以在DedeCMS后台[系统]-[SQL命令行工具]中执行下列代码:
CREATE TABLE `dede_sphinx` (
`countid` int(11) unsigned NOT NULL,
`maxaid` int(11) unsigned NOT NULL,
PRIMARY KEY (`countid`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
这是一个sphinx内容统计表,为了适合数据量较大的情况下分批生成索引而使用的.
创建完数据表后,我们对sphinx的配置文件,即csft_dedecmsv57.conf修改,内容如下,其中包含注释:
--------------------------------------------------------------------------------------------
#源定义
source mysql
{
type = mysql
# 数据库服务器基本配置信息
sql_host = 192.168.0.103
sql_user = dedev57
sql_pass = dedecms
sql_db = dedecmsv57gbk
sql_port = 3306
# 设定编码,这里我们是gbk编码,如果是utf-8,可以设置:
# sql_query_pre = SET NAMES utf8
sql_query_pre = SET NAMES gbk
# 数据检索增量
sql_range_step = 1000
#当前最新文档id数
sql_query_pre = REPLACE INTO dede_sphinx SELECT 1, MAX(id) FROM dede_archives
#检索条件
sql_query = SELECT ARC.id,ARC.typeid,ARC.typeid2,ARC.sortrank,ARC.flag,ARC.channel,ARC.ismake,ARC.arcrank,ARC.click,ARC.title,ARC.shorttitle,ARC.color,ARC.writer,ARC.source,ARC.litpic,ARC.pubdate,ARC.senddate,ARC.mtype,ARC.description,ARC.badpost,ARC.goodpost,ARC.scores,ARC.lastpost,ARC.keywords,ARC.mid,ART.body FROM dede_archives AS ARC LEFT JOIN dede_addonarticle AS ART ON ARC.id = ART.aid WHERE ARC.id=$start AND ARC.id=$end #sql_query第一列id需为整数
#title、body作为字符串/文本字段,被全文索引
织梦Dedecms怎么样用键盘方向键实现上一篇,写一篇的翻页效果
你好.织梦dedecms按键盘方向键实现上一篇下一篇翻页功能想必有很多站长朋友都想实现吧,其实这个功能在很多小说站,图片站经常用到,下面来讲讲具体的修改操纵,感兴趣的你可不要错过了哈,希望可以帮助到你
首先我们打开 include/arc.archives.class.php 查找到以下代码:
$this-PreNext['pre'] = "上一篇:a href='$mlink'{$preRow['title']}/a ";
替换成以下代码:
$this-PreNext['pre'] = "$mlink ";
$this-PreNext['next'] = "下一篇:a href='$mlink'{$nextRow['title']}/a ";
这样php代码就修改完了可以保存,接下来我们在内容页用js进行调用.把以下代码:
script type="text/javascript" language="javascript"
!--
document.onkeydown=nextpage;
var prevpage='{dede:prenext get='pre'/}';
var nextpage='{dede:prenext get='next'/}';
var index_page = "index.html";
//var bookpage="index.html";
function nextpage(event)
{
eventevent = event ? event : (window.event ? window.event : null);
//if (event.keyCode==13) location=bookpage
if (event.keyCode==13) location=index_page
if (event.keyCode==37)
{
if (prevpage!='' prevpage!='上一篇:没有了 ')
location=prevpage;
else
alert('这是第一页');
}
if (event.keyCode==39)
{
if (nextpage!='' nextpage!='下一篇:没有了 ')
location=nextpage;
else
alert('已经是最后一页了');
}
}
//--
function getElement(aID)
{
return (document.getElementById) ? document.getElementById(aID): document.all[aID];
}
function makeRequest(url){
http_request=false;
if(window.XMLHttpRequest){//Mozilla,Safari,...
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){
http_request.overrideMimeType('text/xml');
}
}else if(window.ActiveXObject){//IE
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
if(!http_request){
alert('Giving up:(Cannot create an XMLHTTP instance)');
return false;
}
return http_request;
}
/script
加到body之前的位置.这样就全部修改完了,之后更新文档看看效果。
希望能帮助到你。