Browse Source

TAGS功能调整,根据id判断标签

tags/6.1.8
tianya 2 years ago
parent
commit
8de10ebc7e
11 changed files with 86 additions and 57 deletions
  1. +1
    -1
      .gitignore
  2. +1
    -0
      src/admin/makehtml_taglist.php
  3. +16
    -19
      src/admin/makehtml_taglist_action.php
  4. +2
    -1
      src/admin/tags_main.php
  5. +22
    -0
      src/admin/templets/makehtml_taglist.htm
  6. +5
    -3
      src/admin/templets/tags_main.htm
  7. +7
    -1
      src/install/config.cache.inc.php
  8. +2
    -2
      src/install/sql-dfdata.txt
  9. +4
    -0
      src/install/v57sp2_to_v6.txt
  10. +21
    -22
      src/system/archive/taglist.class.php
  11. +5
    -8
      src/system/taglib/tag.lib.php

+ 1
- 1
.gitignore View File

@@ -46,4 +46,4 @@ src/data/sqlite_error_trace.inc
src/static/soft/*/
src/static/userup/*/
src/static/js/*.js
src/apps/special/*.html
src/apps/special/*.html

+ 1
- 0
src/admin/makehtml_taglist.php View File

@@ -27,6 +27,7 @@ if ($action == "search") {
"data" => $result,
);
echo json_encode($result);
exit;
}
$result = array(
"code" => 200,


+ 16
- 19
src/admin/makehtml_taglist_action.php View File

@@ -18,7 +18,8 @@ if (empty($upall)) $upall = 0; //是否更新全部 0为更新单个 1为更新
if (empty($ctagid)) $ctagid = 0; //当前处理的tagid
if (empty($maxpagesize)) $maxpagesize = 50;
$tagid = isset($tagid) ? intval($tagid) : 0;

$tagsdir = str_replace("{cmspath}", $cfg_cmspath, $cfg_tags_dir);
// 生成
if ($tagid > 0) {
$upall = 0; //更新单个模式
$ctagid = $tagid;
@@ -26,33 +27,30 @@ if ($tagid > 0) {
$upall = 1; //更新全部模式
}
$allfinish = false; //是否全部完成
// 判断生成模式
if ($upall == 1 && $ctagid == 0) {
$rr = $dsql->GetOne("SELECT * FROM `#@__tagindex` WHERE mktime <> uptime LIMIT 1");
$rr = $dsql->GetOne("SELECT * FROM `#@__tagindex` WHERE mktime <> uptime OR mktime = 0 LIMIT 1");
if (!empty($rr) && count($rr) > 0) {
$ctagid = $rr['id'];
} else {
$allfinish = true;
}
}

if ($ctagid == 0 && $allfinish) {
$dlist = new TagList('', 'tag.htm');
$dlist->SetTagsDir($tagsdir);
$dlist->MakeHtml(1, 10);

$reurl = '../a/tags/';
$reurl = '..'.$tagsdir;
ShowMsg("完成TAG更新<a href='$reurl' target='_blank'>浏览TAG首页</a>", "javascript:;");
exit;
}


$tag = $dsql->GetOne("SELECT * FROM `#@__tagindex` WHERE id='$ctagid' LIMIT 0,1;");

MkdirAll($cfg_basedir."/a/tags", $cfg_dir_purview);

// 创建TAGS目录
MkdirAll($cfg_basedir.$cfg_tags_dir, $cfg_dir_purview);
if (is_array($tag) && count($tag) > 0) {
$dlist = new TagList($tag['tag'], 'taglist.htm');
$dlist = new TagList($tag['id'], 'taglist.htm');
$dlist->CountRecord();
$dlist->SetTagsDir($tagsdir);
$ntotalpage = $dlist->TotalPage;

if ($ntotalpage <= $maxpagesize) {
@@ -69,19 +67,15 @@ if (is_array($tag) && count($tag) > 0) {
$onefinish = $nextpage >= $ntotalpage && $finishType;
if (($upall == 0 && $onefinish) || ($upall == 1 && $allfinish && $onefinish)) {
$dlist = new TagList('', 'tag.htm');
$dlist->SetTagsDir($tagsdir);
$dlist->MakeHtml(1, 10);
$reurl = '../a/tags/';
$reurl = '..'.$tagsdir;
if ($upall == 1) {
ShowMsg("完成TAG更新<a href='$reurl' target='_blank'>浏览TAG首页</a>", "javascript:;");
} else {
$query = "UPDATE `#@__tagindex` SET mktime=uptime WHERE id='$ctagid' ";
$dsql->ExecuteNoneQuery($query);

if (empty($tag['tag_pinyin'])) {
$tag = $dsql->GetOne("SELECT * FROM `#@__tagindex` WHERE id='$ctagid' LIMIT 0,1;");
}

$reurl .= $tag['tag_pinyin'];
$reurl .= '/'.$ctagid;
ShowMsg("完成TAG更新:[".$tag['tag']."]<a href='$reurl' target='_blank'>浏览TAG首页</a>", "javascript:;");
}
exit();
@@ -89,6 +83,9 @@ if (is_array($tag) && count($tag) > 0) {
if ($finishType) {
//完成了一个跳到下一个
if ($upall == 1) {
$now = time();
$query = "UPDATE `#@__tagindex` SET uptime={$now} WHERE id='$ctagid' ";
$dsql->ExecuteNoneQuery($query);
$query = "UPDATE `#@__tagindex` SET mktime=uptime WHERE id='$ctagid' ";
$dsql->ExecuteNoneQuery($query);
$ctagid = 0;


+ 2
- 1
src/admin/tags_main.php View File

@@ -78,7 +78,8 @@ else if ($action == 'delete') {
$title = empty($title) ? "" : HtmlReplace($title, 0);
$kw = empty($kw) ? "" : HtmlReplace($kw, 0);
$des = empty($des) ? "" : HtmlReplace($des, 0);
$dsql->ExecuteNoneQuery("UPDATE `#@__tagindex` SET title='{$title}',keywords='{$kw}',`description`='{$des}' WHERE id = {$tid}");
$now = time();
$dsql->ExecuteNoneQuery("UPDATE `#@__tagindex` SET title='{$title}',keywords='{$kw}',`description`='{$des}',`uptime`='{$now}' WHERE id = {$tid}");
echo json_encode(array('code' => 200, 'result' => true));
}
/*


+ 22
- 0
src/admin/templets/makehtml_taglist.htm View File

@@ -13,6 +13,8 @@
$(function(){
$('#tagid').select2({
language: "zh-CN",
allowClear: true,
placeholder:"请选择一个标签",
ajax: {
url: 'makehtml_taglist.php?action=search',
delay: 500,
@@ -48,12 +50,32 @@
</table>
</td>
</tr>
<?php
if($tagid > 0) {
$row = $dsql->GetOne("Select tag From `#@__tagindex` where id = '$tagid' ");
?>
<tr>
<td width="300" valign="top" bgcolor="#FFFFFF">输入标签:</td>
<td width="377" valign="top" bgcolor="#FFFFFF">
<input type="hidden" name="tagid" value="<?php echo $tagid;?>"><?php echo $row['tag'];?> <a class="text-success" href="makehtml_taglist.php">重新选择</a>
</td>
</tr>
<?php
} else {
?>
<tr>
<td width="300" valign="top" bgcolor="#FFFFFF">输入标签:</td>
<td width="377" valign="top" bgcolor="#FFFFFF">
<select id='tagid' name='tagid' style='width:300px'></select>(请输入标签搜索)
</td>
</tr>
<?php
}
?>
<tr>
<td height="26" valign="top" bgcolor="#FFFFFF">生成位置:</td>
<td height="26" valign="top" bgcolor="#FFFFFF"><input name="tagsdir" type="text" id="tagsdir" value="<?php echo $cfg_tags_dir;?>" size="30" disabled> <a href="sys_info.php" class="text-success">【系统设置】</a>-【其他选项】中“TAGS生成目录”项进行调整</td>
</tr>
<tr>
<td height="26" valign="top" bgcolor="#FFFFFF">每次最大创建页数:</td>
<td height="26" valign="top" bgcolor="#FFFFFF"><input name="maxpagesize" type="text" id="maxpagesize" value="50" size="10"> 个文件</td>


+ 5
- 3
src/admin/templets/tags_main.htm View File

@@ -105,7 +105,7 @@
</form>
<table width="98%" border="0" cellpadding="1" cellspacing="1" align="center" class="table maintable table-bordered">
<tr>
<td height="26" colspan="7" bgcolor="#f8f8f8">
<td height="26" colspan="8" bgcolor="#f8f8f8">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="table-borderless">
<tr>
<td align="left" style="padding-left:10px">标签维护</td>
@@ -122,6 +122,7 @@
</tr>
<tr height="26" align="center" bgcolor="#FBFCE2">
<td width="8%">选择</td>
<td width="5%">ID</td>
<td width="30%">标签</td>
<td width="10%"><a href="tags_main.php?tag=<?php echo $tag; ?>&orderby=count&orderway=<?php echo $neworderway; ?>">点击</a></td>
<td width="10%"><a href="tags_main.php?tag=<?php echo $tag; ?>&orderby=total&orderway=<?php echo $neworderway; ?>">文档数</a></td>
@@ -138,13 +139,14 @@
?>
<tr align="center" bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='#FCFDEE';" onMouseOut="javascript:this.bgColor='#FFFFFF';">
<td><input type="checkbox" name="ids[]" value="<?php echo $fields['id']; ?>" class='np' /></td>
<td>{dede:field.id/}</td>
<td><a href="../apps/tags.php?/<?php echo urlencode($fields['tag']); ?>/" target="_blank">{dede:field.tag/}</a></td>
<td><input type="text" value="<?php echo $fields['count']; ?>" id="count<?php echo $fields['id']; ?>" size='5' /></td>
<td><?php echo $fields['total']; ?></td>
<td><?php echo $fields['addtime']; ?></td>
<td><?php echo $fields['uptime']; ?></td>
<td>
<a href='javascript:UpdateKwDes(<?php echo $fields['id']; ?>,"<?php echo $fields['tag']; ?>");' class="btn btn-success btn-sm">关键词描述</a>
<a href='javascript:UpdateKwDes(<?php echo $fields['id']; ?>,"<?php echo $fields['tag']; ?>");' class="btn btn-success btn-sm">设置</a>
<a href="javascript:UpdateOne(<?php echo $fields['id']; ?>);" class="btn btn-success btn-sm">更新</a>
<a href="makehtml_taglist.php?tagid=<?php echo $fields['id']; ?>" class="btn btn-success btn-sm">生成</a>
<a href="javascript:DeleteOne(<?php echo $fields['id']; ?>);" class="btn btn-success btn-sm">删除</a>
@@ -156,7 +158,7 @@
<input type="checkbox" onclick="checkall(this.form,'ids')" name="all" class="np">&nbsp;全选&nbsp;
<button type="button" onclick="document.form3.submit()" class="btn btn-success">删除</button>
</td>
<td colspan="6" align="center">{dede:pagelist/}</td>
<td colspan="7" align="center">{dede:pagelist/}</td>
</tr>
</form>
</table>


+ 7
- 1
src/install/config.cache.inc.php View File

@@ -100,6 +100,7 @@ $cfg_allsearch_limit = '1';
$cfg_rewrite = 'N';
$cfg_delete = 'Y';
$cfg_keywords = '';
$cfg_tags_dir = '{cmspath}/a/tags';
$cfg_description = '';
$cfg_beian = '';
$cfg_need_typeid2 = 'Y';
@@ -142,4 +143,9 @@ $cfg_mb_msgischeck = 'N';
$cfg_mb_reginfo = 'Y';
$cfg_title_site = 'N';
$cfg_mysql_type = 'mysqli';
$cfg_memcache_enable = 'N';
$cfg_memcache_enable = 'N';
$cfg_auth_code = '';
$cfg_bizcore_hostname = '127.0.0.1';
$cfg_bizcore_port = 8181;
$cfg_bizcore_appid = '';
$cfg_bizcore_key = '';

+ 2
- 2
src/install/sql-dfdata.txt View File

@@ -4090,8 +4090,8 @@ INSERT INTO `#@__sysconfig` VALUES('1','cfg_basehost','站点网址(http://域
('764', 'cfg_bizcore_hostname', 'DedeBIZ Core地址', 1, 'string', '127.0.0.1'),
('765', 'cfg_bizcore_port', 'DedeBIZ Core端口', 1, 'number', '8181'),
('766', 'cfg_bizcore_appid', 'DedeBIZ Core应用ID', 1, 'string', ''),
('767', 'cfg_bizcore_key', 'DedeBIZ Core通信密钥', 1, 'string', '')
;
('767', 'cfg_bizcore_key', 'DedeBIZ Core通信密钥', 1, 'string', ''),
('710', 'cfg_tags_dir', 'TAGS生成目录', 7, 'string', '{cmspath}/a/tags');
INSERT INTO `#@__sys_module` VALUES (1, '0cce60bc0238aa03804682c801584991', '百度新闻', '', '', 0, ''),
(2, '1f35620fb42d452fa2bdc1dee1690f92', '文件管理器', '', '', 0, ''),


+ 4
- 0
src/install/v57sp2_to_v6.txt View File

@@ -1,3 +1,7 @@
-- 6.1.8
INSERT INTO `#@__sysconfig` VALUES ('710', 'cfg_tags_dir', 'TAGS生成目录', 7, 'string', '{cmspath}/a/tags');
ALTER TABLE `#@__tagindex` DROP COLUMN `tag_pinyin`;

-- 6.1.7
DROP TABLE IF EXISTS `#@__statistics`;
CREATE TABLE `#@__statistics` (


+ 21
- 22
src/system/archive/taglist.class.php View File

@@ -35,6 +35,7 @@ class TagList
var $Templet;
var $TagInfos;
var $TempletsFile;
var $tagsDir;
/**
* php5构造函数
*
@@ -47,7 +48,7 @@ class TagList
{
global $dsql,$envs;
$this->Templet = $templet;
$this->Tag = $keyword;
$this->Tag = (int)$keyword;
$this->dsql = $dsql;
$this->dtp = new DedeTagParse();
$this->dtp->SetRefObj($this);
@@ -65,19 +66,13 @@ class TagList
//设置一些全局参数的值
foreach ($GLOBALS['PubFields'] as $k => $v) $this->Fields[$k] = $v;
//读取Tag信息
if ($this->Tag != '') {
$this->TagInfos = $this->dsql->GetOne("Select * From `#@__tagindex` where tag like '{$this->Tag}' ");
if (!empty($this->Tag)) {
$this->TagInfos = $this->dsql->GetOne("Select * From `#@__tagindex` where id = '{$this->Tag}' ");
if (!is_array($this->TagInfos)) {
$fullsearch = $GLOBALS['cfg_phpurl']."/search.php?keyword=".$this->Tag."&searchtype=titlekeyword";
$msg = "系统无此标签,可能已经移除<br><br>您还可以尝试通过搜索程序去搜索这个关键词:<a href='$fullsearch'>前往搜索&gt;</a>";
$msg = "系统无此标签,可能已经移除";
ShowMsg($msg, "-1");
exit();
}
//确定是否存在tag_pinyin
if (empty($this->TagInfos['tag_pinyin'])) {
$this->TagInfos['tag_pinyin'] = $this->TagPinyinExists($this->Tag) ? GetPinyin($this->Tag).$this->TagInfos['id'] : GetPinyin($this->Tag);
$this->dsql->ExecNoneQuery("UPDATE `#@__tagindex` SET tag_pinyin = '{$this->TagInfos['tag_pinyin']}' WHERE tag LIKE '{$this->Tag}'");
}
$this->Fields['title'] = empty($this->TagInfos['title']) ? $this->Fields['title'] : $this->TagInfos['title'];
$this->Fields['keywords'] = empty($this->TagInfos['keywords']) ? $this->Fields['keywords'] : $this->TagInfos['keywords'];
$this->Fields['description'] = empty($this->TagInfos['description']) ? $this->Fields['description'] : $this->TagInfos['description'];
@@ -93,12 +88,6 @@ class TagList
$envs['url_type'] = 4;
$envs['value'] = $keyword;
}
function TagPinyinExists($tag)
{
$tag_py = GetPinyin($tag);
$row = $this->dsql->GetOne("Select count(*) as dd From `#@__tagindex` where tag_pinyin like '{$tag_py}' ");
return $row['dd'] > 0;
}
//php4构造函数
function TagList($keyword, $templet)
{
@@ -170,13 +159,15 @@ class TagList
*/
function Display()
{
$makeDir = empty($this->Tag) ? $this->GetTruePath()."/a/tags/index.html" : $this->GetTruePath()."/a/tags/".GetPinyin($this->Tag)."/index.html";
global $cfg_cmspath,$cfg_tags_dir;
$tagsDir = str_replace("{cmspath}",$cfg_cmspath,$cfg_tags_dir);
$makeDir = empty($this->Tag) ? $this->GetTruePath().$tagsDir."/index.html" : $this->GetTruePath().$tagsDir."/".$this->Tag."/index.html";
if (file_exists($makeDir)) {
header('HTTP/1.1 301 Moved Permanently');
if (!empty($this->Tag)) {
header('Location:../a/tags/'.GetPinyin($this->Tag)."/");
header('Location:..'.$tagsDir.'/'.GetPinyin($this->Tag)."/");
} else {
header('Location:../a/tags/');
header('Location:..'.$tagsDir.'/');
}
exit;
}
@@ -578,6 +569,14 @@ class TagList
$truepath = $GLOBALS["cfg_basedir"];
return $truepath;
}
function SetTagsDir($dir = '')
{
global $cfg_tags_dir,$cfg_cmspath;
if ($dir == "") $dir = str_replace("{cmspath}",$cfg_cmspath,$cfg_tags_dir);
$this->tagsDir = $dir;
}
//生成静态Tag
function MakeHtml($startpage = 1, $makepagesize = 0)
{
@@ -587,8 +586,8 @@ class TagList
//初步给固定值的标记赋值
$this->ParseTempletsFirst();
if ($this->Tag == "") {
MkdirAll($this->GetTruePath()."/a/tags/", $cfg_dir_purview);
$this->dtp->SaveTo($this->GetTruePath()."/a/tags/index.html");
MkdirAll($this->GetTruePath().$this->tagsDir, $cfg_dir_purview);
$this->dtp->SaveTo($this->GetTruePath().$this->tagsDir."/index.html");
} else {
$totalpage = ceil($this->TotalResult / $this->PageSize);
if ($totalpage == 0) {
@@ -605,7 +604,7 @@ class TagList
if ($endpage == 1) {
$endpage = 2;
}
$makeDir = $this->GetTruePath()."/a/tags/".$this->TagInfos['tag_pinyin']."/";
$makeDir = $this->GetTruePath().$this->tagsDir.'/'.$this->TagInfos['id']."/";
MkdirAll($makeDir, $cfg_dir_purview);
for ($this->PageNo = $startpage; $this->PageNo < $endpage; $this->PageNo++) {
$this->ParseDMFields($this->PageNo, 1);


+ 5
- 8
src/system/taglib/tag.lib.php View File

@@ -10,7 +10,7 @@
*/
function lib_tag(&$ctag, &$refObj)
{
global $dsql, $envs, $cfg_cmsurl;
global $dsql, $envs, $cfg_cmsurl,$cfg_tags_dir;
//属性处理
$attlist = "row|30,sort|new,getall|0,typeid|0";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
@@ -20,11 +20,8 @@ function lib_tag(&$ctag, &$refObj)
$revalue = '';
$ltype = $sort;
$num = $row;
$dd = $dsql->GetOne("SELECT ROUND(AVG(total)) as tt FROM `#@__tagindex`"); //取一个平均
if (!$dd['tt']) {
$dd['tt'] = 0;
}
$addsql = "WHERE 1=1 AND total >= {$dd['tt']}";
$addsql = "WHERE 1=1";
$tagsdir = str_replace("{cmspath}", $cfg_cmspath, $cfg_tags_dir);
if ($getall == 0 && isset($refObj->Fields['tags']) && !empty($refObj->Fields['aid'])) {
$dsql->SetQuery("SELECT tid FROM `#@__taglist` WHERE aid = '{$refObj->Fields['aid']}' ");
$dsql->Execute();
@@ -56,9 +53,9 @@ function lib_tag(&$ctag, &$refObj)
$row['keyword'] = $row['tag'];
$row['tag'] = dede_htmlspecialchars($row['tag']);
if (isset($envs['makeTag']) && $envs['makeTag'] == 1) {
$row['link'] = $cfg_cmsurl."/a/tags/".GetPinyin($row['keyword'])."/";
$row['link'] = $cfg_cmsurl.$tagsdir."/".$row['id']."/";
} else {
$row['link'] = $cfg_cmsurl."/apps/tags.php?/".urlencode($row['keyword'])."/";
$row['link'] = $cfg_cmsurl."/apps/tags.php?/".$row['id']."/";
}
$row['highlight'] = mt_rand(1, 10);
foreach ($ctp->CTags as $tagid => $ctag) {


Loading…
Cancel
Save