当前位置: 主页 > 织梦新闻 >

织梦后台文章自动添加内链

admin 2020-08-12 0条评论

织梦后台文章自动添加内链原理:通过调用kindeditor编辑器自带的方法editor.selectedHtml();获取到选择的词。

在通过数据库查询随机取一条和选中词对应的文章ID 获取改文章的URL地址,返回到编辑器中。

代码如下:

首先要修改织梦后台编辑器为kindeditor,kindeditor织梦版网上有下载,

修改织梦编辑器配置文件;/inc/inc_fun_funAdmin.php

在起方法中:else  if($GLOBALS['cfg_html_editor']=='kindeditor'){

找到KindEditor.ready(function(K) {函数修改为:

KindEditor.ready(function(K) {
    editor1 = K.create('textarea[name="{$fname}"]', {
cssPath : '../include/plugins/code/prettify.css',
uploadJson : '$uploadJson',
afterBlur: function(){this.sync();},
fileManagerJson : '$fileManagerJson',
$extendconfig
$itemconfig
allowFileManager : {$allowFileManager}
});
prettyPrint();
});

注意editor1 =  为新增。

在后台/templets/article_add.htm JS中声明一个变量var editor1 = null;  变量名和KindEditor.ready(function(K) {的editor1 对应

此处修改主要是为了在下面JS方法中通过editor1来获得编辑器中的数据。


在/templets/article_add.htm文章中 文章内容:后面新增按钮<input type="button" onClick="lianjie();"  value="自动加内链">


底部对应加方法


function lianjie(){
$("#yuanwentititletext").html('查找相关文章中...');//可以不要,提示用
var lianjietext = editor1.selectedHtml();//获得编辑器选中内容
if(lianjietext.length==0){return false; }
$.post('article_add_lianjie.php',{info:lianjietext},function(result){//post提交给article_add_lianjie.php
if(result.length==0){$("#yuanwentititletext").html('无相关文章');return false; } //可以不要,提示用
$("#yuanwentititletext").html("找到相关文章:<a href='"+result+"' target='_blank'>"+result+"</a>");//可以不要,提示用
editor1.insertHtml("<a href='"+result+"' target='_blank'>"+lianjietext+"</a>").hideMenu().focus();//结果返回
}); 
}

后台根目录新增PHP文件article_add_lianjie.php:

代码:

<?php


//通过关键词获取后台随机文章
include_once('../include/common.inc.php'); //连接数据库
if($_POST['info']){

$q = $_POST['info'];
//echo $q;
$row = $dsql->GetOne("Select id From dede_archives where title like '%".$q."%' ORDER BY rand() LIMIT 1");
$aid = $row['id'];


global $dsql;
     include_once(DEDEINC."/channelunit.func.php");
     $aid = trim(ereg_replace('[^0-9]','',$aid));
     $chRow = $dsql->GetOne("Select arc.*,ch.maintable,ch.addtable,ch.issystem From dede_arctiny arc left join dede_channeltype ch on ch.id=arc.channel where arc.id='$aid' ");
     if(!is_array($chRow)) {
         return $reArr;
     }
     else {
         if(empty($chRow['maintable'])) $chRow['maintable'] = 'dede_archives';
     }
     if($chRow['issystem']!=-1)
     {
         $nquery = " Select arc.*,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
                     From `{$chRow['maintable']}` arc left join `dede_arctype` tp on tp.id=arc.typeid
                    where arc.id='$aid' ";
     }
     else
     {
         $nquery = " Select arc.*,1 as ismake,0 as money,'' as filename,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
                     From `{$chRow['addtable']}` arc left join `dede_arctype` tp on tp.id=arc.typeid
                     where arc.aid='$aid' ";
     }
     $arcRow = $dsql->GetOne($nquery);
 
$wjwblogquery = " Select value From `dede_sysconfig` where varname = 'cfg_multi_site'";
$wjwarcRow = $dsql->GetOne($wjwblogquery);
if($wjwarcRow['value']=='Y'){
$Url =GetFileUrl($aid,$arcRow['typeid'],$arcRow['senddate'],$reArr['title'],$arcRow['ismake'],$arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money'],$arcRow['filename'],$arcRow['moresite'],$arcRow['siteurl'],$arcRow['sitepath']);
}else{
$wjwblogqueryurl = " Select value From `dede_sysconfig` where varname = 'cfg_basehost'";
$wjwarcRowurl = $dsql->GetOne($wjwblogqueryurl);
$Url =$wjwarcRowurl['value'].GetFileUrl($aid,$arcRow['typeid'],$arcRow['senddate'],$reArr['title'],$arcRow['ismake'],$arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money'],$arcRow['filename'],$arcRow['moresite'],$arcRow['siteurl'],$arcRow['sitepath']);
}
 
     
     echo $Url;exit;

}


上面代码是根据提交的文本查找数据库中对应标题的文章URL链接。


效果如图:


织梦后台文章自动添加内链


关于我

在线客服


搜索
广而告之