DEDECMS の二次開発ソース コード、助けてください
DEDE 公式フォーラムでは、新規登録ユーザーの投稿は許可されていません...
このように、HTMLコードの文字列
{dede:arclist flag='h' limit='0,1' infolen='230'}
[field:info/]...[全文を表示]
{/dede:arclist}
このようなコードは、taglib/arclist.lib.php
に対応します。
解決策がわかりました
[field:info/]...[全文を表示]
そのようなコード、つまり arclist タグの InnerText に対する解決策は次のようになります。
arclist.lib.php 行 472-474
$dtp2 = 新しい DedeTagParse();
$dtp2->SetNameSpace('フィールド', '[', ']');
$dtp2->LoadString($innertext);
この DedeTagParse() は、まず SetNameSpace に従って TagStartWord と EndWord を設定し、次に FOR を使用してこれらに基づいて文字列全体をループし、STRPOS を使用してタグを比較し、すべてのタグをクラスに保存します。配列 CTags。
次に、MakeOneTag メソッドを呼び出して、taglib の下にファイルがあるメソッドが TagValue.
を取得できるようにします。
次に、GetResult メソッドを使用して、分析式 STRPOS の位置に従って値を HTML に挿入し、完全な文字列を返します。
このプロセスはわかりやすいですが、理解するのが難しいものです
$dtp2->SetNameSpace('フィールド', '[', ']');
MakeOneTag の taglib には filed.lib.php はなく、AssignSysTag にはフィールド分析がありません。
さらに、ここでは MakeOneTag には行きません。私が聞きたいのは、値をどのように解析するのかということです。ありがとうございます!!!!
-----解決策----- -- ----------------$dtp2->SetNameSpace('
フィールド', '
[' 、'
]');
フィールドフィールド
[オープンアーク
】クローズドアーク
データ テーブル フィールドの内容を使用して、テンプレート
内の [] で囲まれたテンプレート変数を置き換えます。