/*會員中心調(diào)用主題模板<?php obtaintheme('head.htm');?>*/
if (!function_exists('obtaintheme')) {
require_once DEDEINC."/archive/partview.class.php";
function obtaintheme($path)
{
global $cfg_basedir, $cfg_templets_dir, $cfg_df_style;
$tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$cfg_df_style.'/'.$path;
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->Display();
}
}
以前的版本里有段代碼,最近更新后,被刪除了。我這邊記錄一下,以備后用。
]]>使用方法:打開內(nèi)容頁模板文件article_article.htm,把
{dede:field.body/}
修改為
{dede:field.body function='obtainalt(@me)'/}
就可以了。
效果如下圖所示:
補充:由于我測試時,是在已發(fā)布的文章里面添加的圖片,所以顯示正常,但新發(fā)布文章時,出現(xiàn)了下面的錯誤:
臨時解決方法:
把extend.func.php里面的代碼替換一下。57行-70行
function obtainalt($newalt)
{
global $dsql, $id, $aid;
$myid = isset($id) ? $id : $aid;
$row = $dsql->GetOne("SELECT title FROM `#@__archives` WHERE id='$myid'");
//圖片注釋自動為標題
$newalt = str_ireplace(array('alt=""', 'alt=\'\'', 'title=""', 'title=\'\''), "", $newalt);
$newalt = str_ireplace("<img", "<img alt=\"".$row['title']."\" title=\"".$row['title']."\"", $newalt);
//去掉圖片寬度和高度
$newalt = preg_replace("/style=\"width\:(.*)\"/", "", $newalt);
//去掉結(jié)尾
$newalt = str_ireplace(" /", "", $newalt);
return $newalt;
}
替換為
function obtainalt($newalt)
{
global $dsql, $id, $aid;
$myid = isset($id) ? $id : $aid;
$row = $dsql->GetOne("SELECT title FROM `#@__archives` WHERE id='$myid'");
// 檢查$row是否有效
$title = isset($row['title']) ? $row['title'] : '';
// 圖片注釋自動為標題
$newalt = str_ireplace(array('alt=""', 'alt=\'\'', 'title=""', 'title=\'\''), "", $newalt);
$newalt = str_ireplace("<img", "<img alt=\"".$title."\" title=\"".$title."\"", $newalt);
// 去掉圖片寬度和高度
$newalt = preg_replace("/style=\"width\:(.*)\"/", "", $newalt);
// 去掉結(jié)尾
$newalt = str_ireplace(" /", "", $newalt);
return $newalt;
}
替換后,發(fā)布文章 ,就沒錯誤提示了。
最新版本的,把這個extend.func.php里面的內(nèi)容清空了。你如果想需要這個功能 ,可以直接上面修改的代碼放進去就行了。
]]>{dede:tag row='5' sort='new' getall='0'} <a href='[field:link/]'>[field:tag /]</a>{/dede:tag}
DEDEBIZ欄目列表頁調(diào)用當前文章的TAG標簽調(diào)用代碼:
[field:id function='obtaintags(@me,3)'/]
3表示調(diào)用文檔3個標簽,效果如下:
最新V6.5.6版本里面,官方把擴展里面的內(nèi)容全部清空了。如果列表頁需要調(diào)用 TAG標簽,可以把下面代碼添加到extend.func.php文件里面就行了。
//標簽調(diào)用[field:id function='obtaintags(@me,3)'/]3表示調(diào)用文檔3個標簽
function obtaintags($aid, $num = 3)
{
global $dsql, $cfg_cmspath, $cfg_rewrite;
$newtag = '';
$query = "SELECT * FROM `#@__taglist` WHERE aid='$aid' LIMIT $num";
$dsql->Execute('tag', $query);
while ($row = $dsql->GetArray('tag')) {
if ($cfg_rewrite == 'Y') {
$link = $cfg_cmspath."/tags/{$row['tid']}";
} else {
$link = $cfg_cmspath."/apps/tags.php?/{$row['tid']}";
}
$newtag .= ($newtag == '' ? "<a href=\"{$link}\">{$row['tag']}</a>" : "、<a href=\"{$link}\">{$row['tag']}</a>");
}
return $newtag;
}
END
]]>支持智能添加欄目、批量構建站點結(jié)構、智能生成和優(yōu)化文檔,助力高效內(nèi)容管理。
支持自定義接入各類AI大模型及不同版本,輕松適配新興大模型,確保系統(tǒng)持續(xù)優(yōu)化升級。
內(nèi)置智能助手功能,可優(yōu)化或新增提示詞,深度挖掘AI能力,提高站點構建質(zhì)量。
提供詳細AI調(diào)用記錄,包括操作日志和Token消耗,方便分析優(yōu)化AI使用策略。
智能助手服務組件采用 Go 語言開發(fā),完全免費。下載并進行簡單配置后,即可為 DedeBIZ 系統(tǒng)賦能智能化體驗。請根據(jù)您的平臺選擇相應的組件進行部署與配置。
下載地址:DedeBIZ智能助手服務組件
在使用AI助手之前,請確保已經(jīng)安裝并配置了DedeBIZ系統(tǒng),并確保DedeBIZ系統(tǒng)版本為v6.5及以上。
如果您是DedeBIZ老版本用戶,請升級到v6.5及以上版本,以保證兼容性,并進入[系統(tǒng)設置]-[智能設置],確保正確的設置了通信密鑰(cfg_ai_apikey)。
我們建議AI助手被安裝在DedeBIZ同一個服務器上,以避免跨服務器通信的額外開銷。
目前AI助手支持Windows和Linux系統(tǒng),推薦使用Windows系統(tǒng),Linux系統(tǒng)請根據(jù)實際情況進行適配。
我這里以目前站長最常用的寶塔面板為例,進行安裝。如果你服務器沒有安裝面板工具。請根據(jù)官方的安裝教程進行安裝。
新建一個網(wǎng)站目錄,當然,也可以直接在站點WWWROOT根目錄下新建一個目錄。如下圖:
我這里就直接新建一個站點,如下圖
域名部分,可以填你服務器IP,或者是綁定一個域名。我這里是把一個二級域名解析到這個IP上了,所以直接填了域名,下面的FTP,數(shù)據(jù)庫啥的都不用創(chuàng)建。PHP版本能用最新的就用最新的,DEDEBIZ現(xiàn)在不支持低版本的PHP了。
創(chuàng)建完站點后,把站點目錄下默認生成的首頁及404錯誤頁面文件刪除掉,把剛才下載的文件上傳到這個目錄,上傳完后的文件如下圖:
建立一個GO項目,我們平時建立的站都是PHP項目,現(xiàn)在需要創(chuàng)建一個GO項目,如下所示:
點擊添加后彈出下面窗口
項目執(zhí)行文件選擇我們剛才上傳目錄里面的DEDEBIZAIA這個文件,如下圖
確定后,其他選項會自動填充,端口填默認的8087,如果需要修改端口,可以安裝完成后再修改,開機啟動選中。
然后確定,這樣我們的GO項目創(chuàng)建完畢。
如果新建完成后,狀態(tài)是停止的,或者是出現(xiàn)下面錯誤,
有可能是文件權限不夠,把剛上傳的那幾個文件的權限設置為755。
在瀏覽器里輸入剛才綁定的域名+端口,或者是IP+端口。如果是出現(xiàn)是下面畫面的話,說明安裝成功。
我第一次用的香港服務器測試的,安裝都正常,第二次用國內(nèi)的阿里云測試,發(fā)現(xiàn)到這一步后輸入IP或者域名都打不開,出現(xiàn)502錯誤。最后才想起,阿里云的服務器如果要新增加端口,需要在安全組里添加放行才行,在阿里云的安全組里面添加8087端口后訪問正常了。
然后輸入你需要用到這個助手功能的網(wǎng)站的數(shù)據(jù)庫信息,進行安裝就行了。初始化后,會出現(xiàn)下面窗口,
這時候則重啟AI助手服務,即可完成AI助手服務的安裝。
我們來測試一下與網(wǎng)站連接正常不,打開網(wǎng)站后臺,后臺面板-系統(tǒng)設置-智能設置,點擊檢測,連接成功,正常。
注意:如果連接不成功,檢查服務器地址這一欄里的內(nèi)容,他默認的是http://localhost:8087/,你需要修改為你服務器的IP或者域名+端口。
到這里,這個項目就安裝完成了。我以最新的到處都在吹的deepseek為例,看看效果如何。
使用這些模型,你得有他們的API Key,我專門在deepseek充值了,生成了一個key用于測試
添加一篇文章,文章編輯窗口,點擊右上角智能助手,輸入你的要求。然后點擊AI生成。
發(fā)現(xiàn),它得一會反應,才會生成文字,應該是它得思考一會。
如果換成豆包,或者千問,反應應該就不會這么慢。大家慢慢摸索吧。
需要修改端口的話,首先打開GO項目下的dedebiz.toml這個文件,修改成自己需要的端口,直接在設置里面修改是不起作用的。已經(jīng)向官方的反應了,后續(xù)會修復。
END
]]>{dede:likearticle row='10' titlelen=100'}
<li> <a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a> </li>
{/dede:likearticle}
DEDEBIZ系統(tǒng)默認只能調(diào)用本欄目下的相關文章,要想調(diào)用全站相關文章,還得修改代碼。
打開文件:\system\taglib\likearticle.lib.php文件搜索
$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
大約在64行,如圖所示:
修改為:
$typeid = " And arc.id<>$arcid ";
這樣調(diào)用出來的文章就是全部的相關文章了。
]]>
打開網(wǎng)站后臺:系統(tǒng)-站點設置中添加一個新的變量,
變量名稱:cfg_listmaxpage,
變量值:3(可以值可以自己修改)。
變量類型:數(shù)字
變量說明:欄目生成列表最大頁數(shù)
所屬組:選擇其他選項
然后保存變量。
打開/include/arc.listview.class.php文件
搜索
$this->TotalPage = ceil($this->TotalResult/$this->PageSize);
大約在268行,在他上面添加下面代碼:
$this->TotalResult = max($this->PageSize * $GLOBALS["cfg_listmaxpage"], $this->TotalResult);
如下圖所示
這段代碼的作用是將總記錄數(shù)限制為配置的最大頁數(shù)乘以每頁顯示的記錄數(shù),從而控制總頁數(shù)不超過設定的最大值,然后保存。
然后清除緩存,如果列表頁是生成靜態(tài)的HTML的,就需要重新生成。
上面只是一種方法,還有一種就是添加跟上面步驟差不多,只不過修改文件添加的代碼不一樣,打開/include/arc.listview.class.php文件
搜索:初始化列表模板,并統(tǒng)計頁面總數(shù)
大約在225行,在它上面添加
if($this->TotalResult > 100)
{
$this->TotalResult = $GLOBALS["cfg_listmaxpage"];
}
這個是通過文章的數(shù)量控制頁面生數(shù)量,如果一頁文章數(shù)量為10篇,100篇文章即生成10頁。
收工。
]]>修改后如下:
然后就可以自由切換網(wǎng)站動靜態(tài)了。
]]>
下面我們就來把他去掉,美化一下。打開/system/taglib/tag.lib.php,大約58行。
把/apps/tags.php?/修改為:/apps/,如果你不用偽靜態(tài),就用動態(tài)的地址,你的標簽URL地址就是/apps/標簽ID。我用的是偽靜態(tài)的,為了更直觀,一看目錄就是TAG,便于SEO收錄。就把它修改成/tags/ ,這樣的話,標簽的URL地址就是/tags/標簽ID,我這里修改后如下圖所示:
顯示效果就是:
TAG所用偽靜態(tài)規(guī)則(Nginx環(huán)境):
#TAG標簽
rewrite ^/tags\.html$ /apps/tags.php;
rewrite ^/tags/(.*)(?:(\?.*))* /apps/tags.php?\/$1;
rewrite ^/tags/(.*)\/(?:(\?.*))* /apps/tags.php?\/$1\/;
rewrite ^/tags/(.*)\/([0-9])(?:(\?.*))* /apps/tags.php?\/$1\/$2;
rewrite ^/tags/(.*)\/([0-9])\/(?:(\?.*))* /apps/tags.php?\/$1\/$2\/;
上面只是文件頁面的TAG標簽URL,列表頁的標簽也需要修改,打開/system/extend.func.php文件,在33行,按照需要修改就行了。
保存。完工。
]]>實現(xiàn)方法:打開主題目錄下的functions.php文件,在最后添加下面代碼:
//文章最后更新時間
function show_last_updated( $content ) {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
$updated_date = get_the_modified_time('Y-m-j');
$updated_time = get_the_modified_time('h:s');
$custom_content .= '<p class="last-updated-date">本文于 '. $updated_date . ' '. $updated_time .'更新,部分內(nèi)容具有時效性,如有失效,請留言。</p>';
}
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'show_last_updated' )
如圖所示:
然后在你頁面樣式文件里加入下面樣式:
.last-updated-date {
background-color: #fffbe5;
border: 1px solid #f5e295;
color: #de9e0e;
border-radius: 6px;
font-size: 14px;
margin-bottom: 20px;
padding: 10px 20px
}
.last-updated-date a {
color: #b98000
}
.last-updated-date a:hover {
color: #926500
}
保存,刷新,結(jié)束。
]]>
在你的模板文件中,可以使用{dede:field.url/}
標簽來獲取當前文章的URL。例如:
<a href="{dede:field.url/}">查看當前文章</a>
如果你在使用PHP代碼,可以通過以下方式獲取當前文章的URL:
// 獲取當前文章的ID
$arcID = $GLOBALS['arcID'];
// 使用DedeCMS提供的函數(shù)獲取文章的URL
$url = GetOneArchive($arcID);
echo $url;
織夢CMS在處理文章時,會在全局變量中存儲當前文章的信息,你可以直接使用這些變量。例如:
echo $GLOBALS['arcUrl']; // 輸出當前文章的URL
內(nèi)容頁用{dede:field.arcurl/}調(diào)用
以上方法可以根據(jù)你的具體需求和使用場景選擇使用。確保在合適的模板或PHP文件中調(diào)用這些代碼,以獲取正確的文章URL。
]]>