上一篇我們提到: 修改appsdminmodelcontentormmodel.html 增加 // pbootcms二開網(wǎng)站建設(shè)自定義表單增加搜索字段查找 public function findFormField($table, $page, $type, $keyword) { return parent::table($table) -
接下來我們進(jìn)入今天的正文:最新在使用pbootcms進(jìn)行網(wǎng)站建設(shè)時(shí),現(xiàn)有的標(biāo)簽不符合自己的一些業(yè)務(wù)需求,想著自己做個(gè)符合自己的業(yè)務(wù)的標(biāo)簽,于是參考了一下網(wǎng)上的資料以后便開始著手開發(fā)了,整個(gè)二開還是比較簡(jiǎn)單,下面放出來需要修改的文件.
網(wǎng)站建設(shè)前端使用標(biāo)簽的地方
我的需求其實(shí)是在news.html也就是新聞中文章末尾添加一個(gè)自定義圖片(根據(jù)標(biāo)題生成一張圖片,因?yàn)樯蓤D片的方法不能包含特殊符號(hào)所以需要把標(biāo)題中的特殊符號(hào)尤其是?去掉)
<!-- 新增圖片_dcx-->
<p style="text-align: center;" >
<img style="width:450px;" src="http://img.mybancai.cn/{pboot:titlereplace title='{content:title}'}.png" alt="{pboot:titlereplace title='{content:title}'}" >
</p>
其中{pboot:titlereplace title='{content:title}'}便是我要新增的標(biāo)簽,title這個(gè)屬性是在下面的parserTitleReplaceLabel方法中進(jìn)行case判斷用的
ParserController.php 解析標(biāo)簽的類
1)在parserAfter方法中新增一行解析入口
$content = $this->parserTitleReplaceLabel($content);
public function parserAfter($content)
{
// 默認(rèn)頁面信息替換
$content = str_replace('{pboot:pagetitle}', $this->config('other_title') ?: '{pboot:sitetitle}-{pboot:sitesubtitle}', $content);
$content = str_replace('{pboot:pagekeywords}', '{pboot:sitekeywords}', $content);
$content = str_replace('{pboot:pagedescription}', '{pboot:sitedescription}', $content);
$content = str_replace('{pboot:keyword}', get('keyword', 'vars'), $content); // 當(dāng)前搜索的關(guān)鍵字
// 解析個(gè)人擴(kuò)展標(biāo)簽,升級(jí)不覆蓋
if (file_exists(APP_PATH . '/home/controller/ExtLabelController.php')) {
if (class_exists('apphomecontrollerExtLabelController')) {
$extlabel = new ExtLabelController();
$content = $extlabel->run($content);
}
}
$content = $this->parserSiteLabel($content); // 站點(diǎn)標(biāo)簽
$content = $this->parserCompanyLabel($content); // 公司標(biāo)簽
$content = $this->parserMemberLabel($content); // 會(huì)員標(biāo)簽
$content = $this->parserNavLabel($content); // 分類列表
$content = $this->parserSelectAllLabel($content); // CMS篩選全部標(biāo)簽解析
$content = $this->parserSelectLabel($content); // CMS篩選標(biāo)簽解析
$content = $this->parserSpecifySortLabel($content); // 指定分類
$content = $this->parserListLabel($content); // 指定列表
$content = $this->parserSpecifyContentLabel($content); // 指定內(nèi)容
$content = $this->parserContentPicsLabel($content); // 內(nèi)容多圖
$content = $this->parserContentCheckboxLabel($content); // 內(nèi)容多選調(diào)取
$content = $this->parserContentTagsLabel($content); // 內(nèi)容tags調(diào)取
$content = $this->parserSlideLabel($content); // 幻燈片
$content = $this->parserLinkLabel($content); // 友情鏈接
$content = $this->parserMessageLabel($content); // 留言板
$content = $this->parserFormLabel($content); // 自定義表單
$content = $this->parserSubmitFormLabel($content); // 自定義表單提交
$content = $this->parserSqlListLabel($content); // 自定義SQL輸出
$content = $this->parserQrcodeLabel($content); // 二維碼生成
$content = $this->parserPageLabel($content); // CMS分頁標(biāo)簽解析(需置后)
$content = $this->parserIfLabel($content); // IF語句(需置最后)
$content = $this->parserLoopLabel($content); // LOOP語句(需置后,不可放到if前面,否則有安全風(fēng)險(xiǎn))
$content = $this->restorePreLabel($content); // 還原不需要解析的內(nèi)容
$content = $this->parserReplaceKeyword($content); // 頁面關(guān)鍵詞替換
$content = $this->parserTitleReplaceLabel($content); // 通用內(nèi)容替換標(biāo)簽 這里是我新增的
return $content;
}
2)添加對(duì)應(yīng)的解析方法
// 通用內(nèi)容替換標(biāo)簽 @mk-title_replace
//$content這里用的時(shí)文章標(biāo)題,直接是字符串
public function parserTitleReplaceLabel($content)
{
$pattern = '/{pboot:titlereplace(s+[^}]+)?}/';
if (preg_match_all($pattern, $content, $matches)) {
$count = count($matches[0]);
for ($i = 0; $i < $count; $i ++) {
$params = $this->parserParam($matches[0][$i]);
$data = '';
foreach ($params as $key => $value) {
switch ($key) {
case 'title'://這里其實(shí)可以解析很多的,不只是title,可以根據(jù)case進(jìn)行不同的解析
$data = $value; // 獲取到的文章title
if (! $data) { // 無內(nèi)容不解析
continue;
}
$data = titlereplace($data); //testreplace方法為自定義方法,在ppscommonunction.php里
break;
}
}
$content = str_replace($matches[0][$i], $data, $content);
}
}
return $content;
}
function.php 替換方法titlereplace()在這里寫
function titlereplace($data){
//把? ?都替換為空格
$search = array('?','?',' ','%',',');
return str_replace($search, "_", $data);
}
效果圖:
掃一掃,瀏覽關(guān)注本文
功夫螞蟻是一家專注于麻辣燙,火鍋,串串香行業(yè)的優(yōu)質(zhì)餐飲連鎖加盟公司。提供火鍋串串香加盟免費(fèi)指導(dǎo)、火鍋加盟店選址等,讓您在加盟···
金鹿凱斯服飾/服裝網(wǎng)站建設(shè)以html5響應(yīng)式一體化設(shè)計(jì)制作,手機(jī)端自動(dòng)響應(yīng),高端大氣上次,關(guān)鍵詞:成都職業(yè)裝網(wǎng)站建設(shè),成都職業(yè)裝···
成都印刷網(wǎng)站建設(shè),成都印刷廠網(wǎng)站設(shè)計(jì),成都畫冊(cè)印刷網(wǎng)站制作,成都畫冊(cè)制作網(wǎng)站建設(shè),成都印刷廠家網(wǎng)站建設(shè),四川印刷網(wǎng)站建設(shè),四川···
網(wǎng)站以定制,訂制服裝網(wǎng)站建設(shè)為主的關(guān)鍵詞,網(wǎng)站全新的以HTML5框架定制設(shè)計(jì),整站目錄清新明了,利于網(wǎng)站優(yōu)化,搜索引擎蜘蛛爬行···
實(shí)力讓我們引領(lǐng)行業(yè)為您鎖住健康,讓食品更安全,讓生活更健康!成都市都江堰市蜀豐食品包裝有限公司成立于2014年初,是一家集研···
網(wǎng)站以HTML5制作,pc+wap網(wǎng)站制作自動(dòng)跳轉(zhuǎn)。關(guān)鍵詞:五菱觀光車網(wǎng)站建設(shè),五菱巡邏車網(wǎng)站建設(shè),封閉電動(dòng)巡邏車網(wǎng)站建設(shè),封閉電動(dòng)觀···
天翊裝飾公司網(wǎng)站以html5響應(yīng)式一體化設(shè)計(jì)制作,高端大氣上次,關(guān)鍵詞:裝修公司網(wǎng)站建設(shè),裝飾公司網(wǎng)站建設(shè),成都裝修公司網(wǎng)站建···
掃碼訪問手機(jī)網(wǎng)站
版權(quán)所有 Copyright ? 2007-2024 四川冠辰科技開發(fā)有限公司 川公安網(wǎng)備案:51010602001006號(hào)
地址:四川省成都市金牛區(qū)五福橋東路229號(hào)龍湖北城天街28棟903 蜀ICP備11012605號(hào)-1
始于2007年,十五年品牌網(wǎng)站建設(shè),值得信賴!