上一篇我們提到: 修改appsdminmodelcontentormmodel.html 增加 // pbootcms二開網站建設自定義表單增加搜索字段查找 public function findFormField($table, $page, $type, $keyword) { return parent::table($table) -
接下來我們進入今天的正文:最新在使用pbootcms進行網站建設時,現有的標簽不符合自己的一些業務需求,想著自己做個符合自己的業務的標簽,于是參考了一下網上的資料以后便開始著手開發了,整個二開還是比較簡單,下面放出來需要修改的文件.
網站建設前端使用標簽的地方
我的需求其實是在news.html也就是新聞中文章末尾添加一個自定義圖片(根據標題生成一張圖片,因為生成圖片的方法不能包含特殊符號所以需要把標題中的特殊符號尤其是?去掉)
<!-- 新增圖片_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}'}便是我要新增的標簽,title這個屬性是在下面的parserTitleReplaceLabel方法中進行case判斷用的
ParserController.php 解析標簽的類
1)在parserAfter方法中新增一行解析入口
$content = $this->parserTitleReplaceLabel($content);
public function parserAfter($content)
{
// 默認頁面信息替換
$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); // 當前搜索的關鍵字
// 解析個人擴展標簽,升級不覆蓋
if (file_exists(APP_PATH . '/home/controller/ExtLabelController.php')) {
if (class_exists('apphomecontrollerExtLabelController')) {
$extlabel = new ExtLabelController();
$content = $extlabel->run($content);
}
}
$content = $this->parserSiteLabel($content); // 站點標簽
$content = $this->parserCompanyLabel($content); // 公司標簽
$content = $this->parserMemberLabel($content); // 會員標簽
$content = $this->parserNavLabel($content); // 分類列表
$content = $this->parserSelectAllLabel($content); // CMS篩選全部標簽解析
$content = $this->parserSelectLabel($content); // CMS篩選標簽解析
$content = $this->parserSpecifySortLabel($content); // 指定分類
$content = $this->parserListLabel($content); // 指定列表
$content = $this->parserSpecifyContentLabel($content); // 指定內容
$content = $this->parserContentPicsLabel($content); // 內容多圖
$content = $this->parserContentCheckboxLabel($content); // 內容多選調取
$content = $this->parserContentTagsLabel($content); // 內容tags調取
$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分頁標簽解析(需置后)
$content = $this->parserIfLabel($content); // IF語句(需置最后)
$content = $this->parserLoopLabel($content); // LOOP語句(需置后,不可放到if前面,否則有安全風險)
$content = $this->restorePreLabel($content); // 還原不需要解析的內容
$content = $this->parserReplaceKeyword($content); // 頁面關鍵詞替換
$content = $this->parserTitleReplaceLabel($content); // 通用內容替換標簽 這里是我新增的
return $content;
}
2)添加對應的解析方法
// 通用內容替換標簽 @mk-title_replace
//$content這里用的時文章標題,直接是字符串
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'://這里其實可以解析很多的,不只是title,可以根據case進行不同的解析
$data = $value; // 獲取到的文章title
if (! $data) { // 無內容不解析
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);
}
效果圖:
掃一掃,瀏覽關注本文
實力讓我們引領行業為您鎖住健康,讓食品更安全,讓生活更健康!成都市都江堰市蜀豐食品包裝有限公司成立于2014年初,是一家集研···
天翊裝飾公司網站以html5響應式一體化設計制作,高端大氣上次,關鍵詞:裝修公司網站建設,裝飾公司網站建設,成都裝修公司網站建···
功夫螞蟻是一家專注于麻辣燙,火鍋,串串香行業的優質餐飲連鎖加盟公司。提供火鍋串串香加盟免費指導、火鍋加盟店選址等,讓您在加盟···
金鹿凱斯服飾/服裝網站建設以html5響應式一體化設計制作,手機端自動響應,高端大氣上次,關鍵詞:成都職業裝網站建設,成都職業裝···
成都印刷網站建設,成都印刷廠網站設計,成都畫冊印刷網站制作,成都畫冊制作網站建設,成都印刷廠家網站建設,四川印刷網站建設,四川···
掃碼訪問手機網站
版權所有 Copyright ? 2007-2024 四川冠辰科技開發有限公司 川公安網備案:51010602001006號
地址:四川省成都市金牛區五福橋東路229號龍湖北城天街28棟903 蜀ICP備11012605號-1
始于2007年,十五年品牌網站建設,值得信賴!