dedecms には非常に柔軟な 2 つのタグがあり、1 つは {dede:php}{/dede:php} タグで、もう 1 つは {dede:php} タグのコメントを使用する必要があります。 php コードでは、主に {dede:sql} が SQL を呼び出すために使用されます。ここでは、これら 2 つのタグの使用方法を紹介します。 この記事は百度空間の記事から転載したものです。 : {DEDE: SQL} タグ
SQL タグは、データベースに出力するための汎用ラベルとみなすことができます。このラベルの使用例をいくつか示します。
1. たとえば、合計をカウントするために使用します。公開された記事の数 dede_addonarticle の追加テーブル コンテンツの総数を出力するということです。
{dede:sql sql="SELECT COUNT(*) AS nums FROM dede_addonarticle"}
[field:name = "nums"/]
{/dede:sql}
2. 特別なクエリを実行するには、~field~ を使用します。たとえば、フォーラムの多くのメンバーは、現在記事を公開しているメンバーの関連コンテンツを出力する必要がありました。これまでは、各記事のコンテンツが異なるため、SQL または arclist タグを使用してこれを実現することはできませんでした。 5.5 SQL ステートメントのデモ。
まず記事テンプレート内の対応する位置に次のタグを追加します
{dede:sql sql="SELECT * FROM dede_archives WHERE Writer=~writer~"}
[field:id/],
{/dede:sql}
これをarticle_article.htmページに配置すると、現在のメンバーによって公開された関連記事が取得されます。ここの~writer~は、クエリを実行する前に現在のコンテンツの環境変数に従って置き換えられます。
SQL ステートメントの条件付きクエリに表示される ~writer ~、つまり $refObj->Fields[$value] の関連コンテンツ
テンプレートには PHP が使用されます
DreamWeaver のテンプレート タグが次のようなものになることを多くの人が期待していますDedeCMS V5.5 では、PHP ステートメントを実行できる特別なタグ {dede:php}{/dede:php} が追加されました。
一般的に使用される例をいくつか示します:
1. 最も単純な出力内容:
{dede:php}
$numA = 1;
$numB = 2;
echo $numA + $numB;
{dede:php} 内の情報を出力したい場合は、print や echo などを使用して直接出力できます。 @me に値を代入することは無効です
出力内容は計算結果です。 3
2. SQL クエリと組み合わせる 単一のコンテンツを出力する
{dede:php}
$row = $dsql->GetOne('select id,typename from dede_arctype where id=2');
print_r($row );
{/dede:php}
これ 出力内容は
Array
(
[id] => 2
[typename] => Q&A
)
3 現在のページの変数を取得します
例ここでシステムのバックグラウンドに [テンプレート]-[グローバル マーク テスト] を入力します。コードに次の内容を入力します:
{dede:php}
print_r($refObj->Fields);
{ /dede:php}
PHP で dede の特定のフィールド値を取得したい $refObj->Fields オブジェクトを使用して、タイトル =>Fields['title']
を取得できます。環境変数はデフォルトのまま、つまり「環境 ID を使用しない」場合、次の結果が表示されます:Array
([typeid] => 0
[phpurl] => /plus
[indexurl] ] => /
[テンプレートURL] => /メンバー
[インデックス名] =>デフォルト
)
次に、テストする環境変数を変更しましょう。ここでは、ローカル列をテストとして使用します:
Array
(
[id] => 3
[reid] => 0
[topid] => 0
[sortrank] => 1
[typename] => Product
[typedir] = > {cmspath}/product
… …
[indexname] => ホーム
[templetdef] =>
)このようにして、現在のページのローカル変数が取得されます。次に、前の SQL ステートメントを組み合わせて、異なる環境 ID に基づいて異なる列の内容を呼び出すことができます。
例:
{dede:php}
$thisid = $refObj->Fields['id'];
$row = $dsql->GetOne('select id,typename from dede_arctype where id='.$ thisid );
print_r($row);
{/dede:php}
これは現在の列のタイトルを呼び出すためのものです。このタグ関数は {dede:field.typename/} に似ています
この記事は非常によく書かれています。 , ここに書いています 自分の都合ではありますが、私と同じ迷いを抱えている人たちと共有したいと思います。私のクラスメートに役立つことを願っています。