1

私はPHP言語に関して彼らが来るのと同じくらい環境に優しいです。今、私はPHPとJoomlaの学習を開始するタスクを引き受けました。

これが私がいつも行き詰まっているところです:私は変更する必要がある特定のhtmlを持っています、例えば私はタグからクラスを削除する必要があります。Chromeでinspect要素を使用することで、コードの一部を見つけることができ、Chromeでテスト変更して、必要な処理を実行することもできます。

しかし、そこからJoomlaテンプレートでこの同じHTMLを見つけるにはどうすればよいですか?各ファイルを手動で参照して文字列を検索する必要がありますか、それともそのhtml文字列をサイトに挿入する原因となっているファイルを見つけるためのよりスマートな方法がありますか?

4

4 に答える 4

1

PHP自体からは、それを行うための「簡単な」方法はありません(私は数人にオーバーロードを許可するようにせがんでechoいます-したがって、すべてを完全にリファクタリングすることなく、どの行が何をエコーし​​たかを追跡できます。これは非常に便利です。レガシーコードの処理)。Joomlaはおそらくその塩に値するテンプレートシステムを持っているので、理想的にはこれを利用する必要があります。

時間があれば、テンプレート/ファイルがjoomlaでどのようにレンダリングされるかを調べて、出力を常に実行するために使用される関数があるかどうかを確認します-それが最終的なものを実行しないかどうかは関係ありません出力-そしてそれにある種の追跡機能をピギーバックします。これにより、出力を実行しながら追跡できるようになります。

悲しいことに、これ以上の一般的な解決策はありません。表示するコードがある場合は、より具体的な回答を提供できる可能性があります。

于 2012-11-19T19:24:01.287 に答える
1

テンプレートのオーバーライドを行う場合、これを行うための最良の方法。

クラスはモジュールからのものであるため、モジュールのレイアウトをオーバーライドする必要があります。とても簡単です。これを行う方法に関するドキュメントは次のとおりです。

テンプレートフォルダには、「html」というフォルダがあります。そうでない場合は、作成します。完了したら、モジュールフォルダーと同じ名前の新しいフォルダーを作成します。これにより、 mod_art-boxのようになります。次に、Joomlaサイトのルートでmodules / mod_art-box / tmplに移動し、そこからdefault.phpを前に作成したフォルダーにコピーします。次に、ファイルを開き、クラスを検索して削除します。

テンプレートオーバーライドを実行することをお勧めする理由は、拡張機能またはJoomla自体が更新されると、変更がオーバーライドされ、再度実行する必要があるためです。テンプレートのオーバーライドはオーバーライドされません。

お役に立てれば

于 2012-11-19T19:28:02.637 に答える
0

任意のページのhtmlは、そのページのビューのレイアウトファイル、そのページのモジュールのレイアウトファイル、または場合によってはコンテンツプラグインのレイアウトから生成する必要があります。ある種の複雑なモジュールクロームを作成している場合は、テンプレート内のモジュールファイルから取得できるものもあると思います。一部の基本的なhtml(bodyタグやheadタグなど)はテンプレートインデックスに含まれますが、ページのメイン領域を設定してクラスを割り当てる以外のレイアウトのオーバーライドを除いて、テンプレートは一般にhtmlに対して多くの責任を負わないようにする必要があります。

于 2012-11-20T01:08:17.637 に答える
0
find /joomla-root -name *.php -exec grep -l 'your search string' {} \;

私はいつもこれをやっていることに気づきます。瞬時ではありませんが、オーバーライドファイル、テンプレートファイル、モジュール、コンポーネント、プラグインなどを手動でチェックするよりもはるかに高速です。

于 2012-11-20T08:58:57.537 に答える