web-dev-qa-db-ja.com

テンプレートはどのように機能し、css / jsファイルをロードしますか? Purity IIIによるウェブサイト構築プロセス

残念ながら、purity iiiテンプレートが実際にどのように機能するかに関する情報は見つかりません。

明日自分のウェブサイトを提示しなければならないのですが、「コンテンツはどこから来たのですか?」そして、私はこの質問に答えることはできません。

  1. サイトに電話するとどうなりますか?の中に index.phpファイルにはphpコードがありますが、ウェブサイトの残りの部分が「呼び出される」か何かになる場所が見つかりません。
  2. css/lessが埋め込まれていて、初期ロードとtplsがブロックをロードした後で、どういうわけかプロセスが取得されます...

ウェブサイトをカスタマイズして完成させました。それは私が得ていない背後にあるプロセスです。助けてください、明日まで時間があまりありません。

1
Matthias94

あなたの質問は2つの質問で構成されており、どちらもここでは詳細に説明するには広すぎるため、カバーしなければならない知識に大きなギャップがあるようです。

1.サイトに電話するとどうなりますか? index.phpファイルにはphpコードがありますが、ウェブサイトの残りの部分が「呼び出される」か何かになる場所を見つけることができません。

回答:

この質問はPurityテンプレートに関するものではなく、Joomlaの仕組みに関するものです。

ここで新しいQ/Aを作成したので、そこをお読みください:Joomla実行フローとは、リクエストがindex.phpに到達してから、ブラウザーの最終出力までですか?


2. css/lessがどのように埋め込まれているのかわかりません。初期ロードとtplsがブロックをロードした後で、どういうわけかプロセスが取得されます。

回答:

テンプレートとフレームワークについて

Purity IIIテンプレートJoomlaテンプレートに基づいています T3 Framework by JoomlArt .

T3フレームワークはシステムプラグインとして提供され、独自の「環境」とすべてのt3ベースのテンプレートにすべての基本機能を提供します。これは、ほとんどのテンプレートフレームワークに当てはまります。機能のベースと事前に設計された機能があり、テンプレートがそれを使用、拡張、またはオーバーライドします。

Joomlaテンプレートは、ウェブサイトのレイアウトと外観を担当します。それほど高度なトピックではありませんが、特にphphtml、およびJoomla APIの知識が必要です。
Joomla実行フローに関する最初の質問の回答を読んだ場合、 Joomlaの実行中のある時点で、最終出力用のメモリバッファ(ドキュメント)にコンテンツを配置し始めます。

この手順では、_<head>_、コンテンツなどのさまざまな要素が定義され、データ配列に配置されます。テンプレートを含むさまざまな拡張機能は、このドキュメントデータに干渉し、独自のデータを追加します。

特に、関心のある_.css/.js_ファイルに関して、テンプレートはJoomla APIから利用可能な特別なコードを使用して、そのアセットファイルを印刷されるドキュメントの先頭部分に挿入しますブラウザに出力します。

一般的なJoomlaテンプレート

たとえば、以下のコードはProtostarテンプレートでBoostrap Frameworkアセット、カスタム_template.js_およびカスタム- _template.css_ファイルを先頭に。

_$doc= JFactory::getDocument();
// Add JavaScript Frameworks
JHtml::_('bootstrap.framework');
$doc->addScript($this->baseurl . '/templates/' . $this->template . '/js/template.js');

// Add Stylesheets
$doc->addStyleSheet($this->baseurl . '/templates/' . $this->template . '/css/template.css');
_

通常、共通または単純なテンプレートでは、このすべてのコードはテンプレートの_index.php_内に記述されます。ただし、より高度なテンプレートおよびフレームワークに基づいて作成されたテンプレートでは、物事はそれほど単純ではありません。

純度T3ウェイ

前述のように、フレームワークテンプレートは、フレームワークから継承した機能を使用します。

たとえば、Purity IIIが_<head>_パーツを処理し、そのアセットファイル(css/js)をロードする方法は次のとおりです。

T3テンプレートは、特定のブロック(_templates/purity_iii/tpls/blocks_)を順にロードするtplを使用してレイアウトを作成しています。これらのtplsレイアウトの.phpファイルを開くと、 _blog.php_表示されます:

_<head>
    <jdoc:include type="head" />
    <?php $this->loadBlock('head') ?>
    <?php $this->addCss('layouts/blog') ?>
</head>
_

したがって、この時点で次のことがわかります。

  1. テンプレートは_<head>_要素を作成します。
  2. ドキュメントのメモリからヘッドデータを含めてレンダリングします-読み取り Jdocステートメント
  3. フレームワークのメソッドloadBlock();を使用して、特定のブロック-_head.php_ブロックをロードします。 _blocks/head.php_ブロックに続いて、次のように表示されます。

    • _<head>_(メタ、スクリプトなど)に条件付きで追加の要素を追加する一連のコード。
    • より多くのcssファイルを追加するaddStyleSheet()メソッド。
    • 別のフレームワークのメソッドaddHead()は、条件付きでより多くのアセットをヘッドに追加し続けます。 _plugins/system/t3/includes/core/template.php_でaddHead()メソッドの動作を確認できます。 addHead()関数定義を検索します。
  4. フレームワークメソッドaddCss();を使用して、その特定のレイアウトに関連する特別なスタイルを追加します。

最終的な動作の多くは、テンプレートの管理者の設定によって制御されます。

通常、サイトの所有者/マネージャー/デザイナー、さらには開発者でさえ、すべてがどのように機能し、どのように開発されているかを知る必要はありません。彼らはそれが機能していることとそれをどのように使用するかを知る必要があります。

したがって、ドキュメントは最初に見る場所です。

初心者ユーザーがJoomlaテンプレートとテンプレート開発の基本を学習するには、シンプルで一般的なテンプレートを使用して開始することをお勧めします。例えば。 Protostarテンプレートを複製してフォークし、カスタマイズを開始します。

繰り返しになりますが、phpや他の言語の知識は不可欠です。

2
FFrewin