admin.phpの変数

WBOY
リリース: 2016-06-23 14:32:00
オリジナル
1677 人が閲覧しました

phpcms 開発者は、phpcms がテンプレートで呼び出すための多数の組み込み変数を提供していることを知っているはずです。たとえば、{$position} {$title} は現在の位置と記事のタイトルを表します。それぞれ。使用すると便利ですが、なぜこれらの変数を使用できるのかと疑問に思わずにはいられません。これらの変数はどのような状況で意味をなすのでしょうか?

実際、これらの問題は phpcms での HTML ファイルの生成プロセスに原因があると考えられます。すべては admin.php から始まります。バックグラウンドで実行するさまざまな操作 (ファイル、画像などの生成など) により、admin.php にさまざまなファイルが含まれます。インクルードされたオブジェクトには、渡されたパラメーターに従ってさまざまなファイルがインクルードされ、テンプレートが呼び出されるまでずっとインクルードされます。途中で渡されたファイルと admin.php 自体が最終的な admin.php を形成します。呼び出すことができる変数は、これらのファイルに含まれる変数です。これは、変数が使用可能かどうかを判断する基準でもあります。これを理解するのは難しくありません。なぜなら、テンプレート ファイルは最終的に admin.php に含まれており、それが呼び出す変数は元々 admin.php に含まれていなかった可能性がありますが、現在は含まれているからです。以下にテンプレート内のカスタムラベルで翻訳する方法を説明します。このタグは「前の記事 次の記事」の機能を実装しており、ラベル名は{tag_前の記事 次の記事}となります。クリックして記事を生成した後のリンクは次のとおりです: http://127.0.0.1/phpcms2007_sp6_gbk/phpcms/admin.php?mod=article&file=createhtml&action=create_show&channelid=1&referer=****タグ コードは次のとおりです:

1 2 定義済み (' IN_PHPCMS ' ) または終了 (' アクセスが拒否されました ' );

4 5 グローバル $articleid , $db ; * FROM phpcms_article_1 where 記事 ID< ;' $articleid ' 記事 ID の順に並べ替えます " ;
7 $sqlaft = " SELECT * FROM phpcms_article_1 where 記事 ID>' ' 記事 ID の順に並べ替えます " ;
8 $preart = $db -> get_one( $sqlpre );
9 $afar = $db -> get_one( $sqlaft );
10 if ( ! $preart [ ' title ' ])
11 $preart = $db -> from phpcms_article_1 記事 ID による順序 desc " );
12 if ( ! $afart [ ' title ' ])
13 $afart = $db -> get_one( " SELECT * FROM phpcms_article_1 where Articleid=1 " );
14 $preurl = $preart [ ' リンク URL ' ];
15 $afurl = $afart [ ' リンク URL ' ];
16 $pretitle = $preart [ ' タイトル ' ]; 18 $url = $PHP_SCHEME . PHPCMS_PATH;
19 echo "

  • 前の投稿: $pretitle

  • 20 echo " < ;li>次の記事: $aftitle " ;
    21 ?> 原則は非常に重要です。現在のページに従って単純です。インデックス ($articleid) は、データベース ($db) を通じて前後の記事をクエリし、最後に印刷されたページをエコーし​​ます。しかし、$articleid、$db の存在はどうやってわかるのでしょうか?これには、「記事を生成」をクリックした後にバックグラウンドで何が行われるかを理解する必要があります。分析によると、このコマンドを実行した後のメッセージ ルーティングは次のようになります:

    admin . php -> phpcms " module "article " admin.inc.php->phpcms " module " category " admin " createhtml.inc.php (case 'create_show':)->golbal.func.php(createhtml)->phpcms " module "article " include " createhtm " show . php

    メッセージは、

    ob_start () を介してこのファイルにルーティングされます。 ;

    include template( $mod , $templateid );

    $data = ob_get_contents ();

    file_put_contents($filename, $data); HTML ファイルの作成と書き込みが完了します。さらに詳しく調べると、template() が template_refresh() を呼び出し、template_refresh() が template_parse() を呼び出して、phpcms のタグを解釈して純粋な PHP を変換していることがわかります。

    その後、template() 関数が戻り、ブラウザのバッファ (ob_start() によって開かれる) に出力され、ファイルに埋め込まれた PHP は HTML 形式に変換されます。カスタムタグの場合、template_parse() によって に変換されるため、出力中に phpcms_mytag() 関数が呼び出されます。この関数には、最終的なカスタム ラベル ファイルが含まれます。このようにして、カスタム ラベルのファイルが $articleid と $db を含むファイルと結合されるため、この時点でこれら 2 つの変数をカスタム ラベル ファイルで使用できるようになります。

    関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート