ホームページ > 記事 > CMS チュートリアル > DEDECMS 拡張タグの使用方法
DEDECMS 拡張タグの使用方法?
DDEECMS 拡張タグのデモンストレーションの例
推奨される学習: DEMENCMS
サンプル タグを見てみましょう:demotag.lib .php、
if(!defined('DEDEINC')) { exit("Request Error!"); } function lib_demotag(&$ctag,&$refObj) { global $dsql,$envs; $attlist="row|12,titlelen|24"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; //------------------------------------------------------ $revalue = 'Hello Word!'; //------------------------------------------------------ return $revalue; } ?>
タグが機能し、コンテンツが出力されることがわかります。
$revalue = 'Hello Word!'; $revalue .=" Row:".$row.";TitleLen:".$titlelen;
したがって、この属性が変数として作成され、値が割り当てられていることがわかります。
次に、このタグをさらに変更します。
function lib_writerarc(&$ctag,&$refObj)
次に、基礎となるテンプレート処理のためのクエリ ステートメントと関連関数を記述できます
$revalue = ''; $innertext = $ctag->GetInnerText(); $ctp = new DedeTagParse(); $ctp->SetNameSpace('field', '[', ']'); $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row"; $dsql->Execute('me',$sql); while($rs = $dsql->GetArray('me')) { $rs['title'] = cn_substr($rs['title'], $titlelen); $ctp->LoadSource($innertext); foreach($ctp->CTags as $tagid=>$ctag) { if(!emptyempty($rs[strtolower($ctag->GetName())])) { $ctp->Assign($tagid,$rs[$ctag->GetName()]); } } $revalue .= $ctp->GetResult(); }
最後にこの値を返しますreturn $revalue;
ファイルの内容全体は次のとおりです:
if(!defined('DEDEINC')) { exit("Request Error!"); } function lib_writerarc(&$ctag,&$refObj) { global $dsql,$envs; $attlist="row|12,titlelen|24"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; $innertext = $ctag->GetInnerText(); $ctp = new DedeTagParse(); $ctp->SetNameSpace('field', '[', ']'); $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row"; $dsql->Execute('me',$sql); while($rs = $dsql->GetArray('me')) { $rs['title'] = cn_substr($rs['title'], $titlelen); $ctp->LoadSource($innertext); foreach($ctp->CTags as $tagid=>$ctag) { if(!emptyempty($rs[strtolower($ctag->GetName())])) { $ctp->Assign($tagid,$rs[$ctag->GetName()]); } } $revalue .= $ctp->GetResult(); } return $revalue; } ?>
ページの動的ブラウジングによる表示とデバッグ?aid=3
{dede:writerarc row='10' titlelen='6'} [field:title/] {/dede:writerarc}
以上がDEDECMS 拡張タグの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。