検索
ホームページCMS チュートリアルDEDECMSDEDECMS 静的テンプレート クラス ファイルとは何ですか?

DEDECMS 静的テンプレート クラス ファイルとは何ですか?

DEDECMS 静的テンプレート クラス ファイルとは何ですか?

静的テンプレート クラス ファイル Dreamweaver テンプレート エンジンは、XML 名前空間形式を使用するテンプレート パーサーです。

推奨学習: Dreamweaver cms

最大のDreamweaver パーサーを使用してテンプレートを解析する利点は、タグの属性を簡単に指定できることです。HTML を使用しているような感覚で、テンプレート コードが非常に直感的かつ柔軟になります。Dreamweaver テンプレート エンジンの新しいバージョンは、テンプレートを実現するだけでなく、解析では、テンプレート内の不正なマークアップも分析できます。

include/dedetag.class.php このファイルは、dedecms V5.3 以前のバージョンで使用されるメイン テンプレート クラスであり、コンパイルされたものではなく、分析テンプレート クラスです (違いは、前者が実行されることです)タグの位置を取得することによるコンテンツの置換、後者は PHP コードを直接解析し、2 回実行されます)

1. テンプレート構文

1. Dreamweaver テンプレート エンジンのコード スタイルは次の形式になります。 :

{dede:タグ名属性='値'/}

{dede:タグ名属性='値'}{/dede:タグ名}

{ dede:タグ名 属性 = '値'} カスタム スタイル テンプレート (InnerText) {/dede: タグ名}

ヒント:

基礎となるテンプレートでタグを使用する場合は、厳密に次のことを行う必要があります。 {dede: タグ名 Attribute='value'}{/dede:tag name} この形式を使用します。それ以外の場合はエラーが報告されます。

2. DreamWeaver テンプレート エンジンには複数のシステム タグが組み込まれており、これらのシステム タグはあらゆる状況で直接使用できます。

(1) グローバル マークは、外部変数を取得することを意味します。データベース パスワードに加えて、システムの任意の構成パラメータを呼び出すことができます。形式は次のとおりです:

{dede:global name='変数名 '}{/dede:global}

または

{dede:global name='変数名'/}

変数名は追加できません$ 記号を使用した変数 $ cfg_cmspath は、{dede:global name='cfg_cmspath'/} と記述する必要があります。

(2) foreach は、次の形式で配列を出力するために使用されます:

{dede:foreach array='配列名'}[フィールド:キー/] [フィールド:値/] {/ dede:foreach}

(3) include は次の形式でファイルを導入します:

{dede:include file='ファイル名' ismake='dede プレート テンプレートかどうか ( yes/no) '/}

ファイルの検索パスは、絶対パス、インクルード フォルダー、CMS インストール ディレクトリ、CMS メイン テンプレート ディレクトリの順です。

3. Dreamweaver タグは許可されます。関数は取得した値を次の形式で処理します:

{dede: タグ名属性='値' function='youfunction("パラメータ 1", "パラメータ 2", "@me ")' /}

@me が現在のタグの値を表すために使用される場合、他のパラメーターは関数によって決定されます。例:

{dede:field name='pubdate ' function='strftime ("%Y-%m-%d %H:%M:%S","@me")'/}

4. Dreamweaver マークを使用すると、プログラミングの拡張が制限されます。

形式は次のとおりです:

コードは次のとおりです:

{dede:tagname runphp='yes'} 
$aaa = @me; 
@me = "123456"; 
{/dede:tagname}

@me はタグ自体の値を表すため、echo などのステートメントはタグ内でのプログラミングでは使用できません。タグはすべての戻り値を @me に渡すだけです。

さらに、プログラム コードは基礎となるテンプレート InnerText のコンテンツを占めるため、プログラミングが必要なタグはデフォルトの InnerText のみを使用できます。

2. 解析メソッド

dedetag.class.php には 4 つのクラスがあります

class DedeAttribute 属性構造式

class DedeAttributeParse 属性パーサー

class DedeTag タグ構造式

class DedeTagParse タグ パーサー

解析クラスを使用してテンプレートを解析する場合、通常は次の手順に従います

1. 初期化:

$dtp = new DedeTagParse();

2. テンプレート/テンプレート文字列のロード:

$dtp->LoadTemplate(テンプレート ファイル (絶対パス)); / /キャッシュが生成され、2 回目にテンプレートを解析する必要はありません (

または

$dtp->LoadSource(string);

3.タグへの値

foreach($dtp->CTags as $tid=>$ctag) {

//ctag の名前と属性を決定し、通常は異なる値を割り当てます。関数の使用

if($ctag->GetName=='mytag') $dtp->Assign($tid, mytagvalue($ctag) );

}

上記の例では、mytag という名前のタグを mytagvalue 関数に直接渡して処理していますが、mytagvalue は $ctag の各属性を決定し、異なる内容を返します。

V5.3 バージョンでは、通常、フィールドやリストなどの特殊なタグに加えて、arc.* で始まるクラスで解析されたファイルのタグが include/taglib のソース コードに相当します。システムによって決定され、自動マッピングが実行されます。

4. HTML として表示または保存

$dtp->display();

または

$dtp->SaveTo(静的ファイル)名前); ###

对于二次开发人员而言,不大需要知道dedecms模板具体解析方式,不过应该十分清楚CTag这个类的结构,从而判断标签不同属性进行处理。 

代码如下:

class DedeTag 
{ 
var $IsReplace=FALSE; //标记是否已被替代,供解析器使用 
var $TagName=""; //标记名称 
var $InnerText=""; //标记之间的文本 
var $StartPos=0; //标记起始位置 
var $EndPos=0; //标记结束位置 
var $CAttribute=""; //标记属性描述,即是class DedeAttribute 
var $TagValue=""; //标记的值 
var $TagID = 0; 
//获取标记的名称和值 
function GetName() 
{ 
return strtolower($this->TagName); 
} 
function GetValue() 
{ 
return $this->TagValue; 
} 
//下面两个成员函数仅是为了兼容旧版 
function GetTagName() 
{ 
return strtolower($this->TagName); 
} 
function GetTagValue() 
{ 
return $this->TagValue; 
} 
//获取标记的指定属性 
function IsAttribute($str) 
{ 
return $this->CAttribute->IsAttribute($str); 
} 
function GetAttribute($str) 
{ 
return $this->CAttribute->GetAtt($str); 
} 
function GetAtt($str) 
{ 
return $this->CAttribute->GetAtt($str); 
} 
function GetInnerText() 
{ 
return $this->InnerText; 
} 
}

以上がDEDECMS 静的テンプレート クラス ファイルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。