2

Joomla 2.5 でさまざまなタイプのユーザーに合わせてコンテンツを調整するために、メンバーのアクセス レベルの検証に使用する予定の関数を含むファイルをテンプレートに含めようとしています。問題は、標準の PHP の include ステートメントを使用したにもかかわらず、どの関数もテンプレートで使用できないように見えることです。代わりに関数を呼び出すと、テンプレートを使用しているすべてのページがクラッシュします。機能しているテンプレートの先頭に関数をハードコーディングすることもできますが、Web アプリケーションの他の場所でいくつかの関数を使用する計画もあるため、それらをインクルード ファイルに保存することは理にかなっています。なぜ関数がインクルードから機能しないのか、テンプレートの上部に追加すると機能するのかについて、誰かが洞察を持っていますか? 以下は、include ステートメントを含む私のテンプレートの上部の数行です。

<?php 
defined( '_JEXEC' ) or die( 'Restricted access' );
JHtml::_('behavior.framework', true);

include ("/includes/checkAccess.php");

テンプレートにハードコードされている場合、関数はすべて正常に機能することに注意してください。したがって、インクルードには間違いなく問題があります。また、上記のインクルード行が追加された場合、テンプレートに含まれる関数のいずれかが呼び出されない限り、テンプレートは正常に機能するため、上記のインクルード パスは正しいように見えます。

4

4 に答える 4

1

これは、フォルダー「includes」が同じディレクトリにある場合に確実に機能します

include(dirname(__FILE__)."/includes/checkAccess.php");
于 2018-08-10T15:54:34.287 に答える
0

通常、特定のものを読み取り、他のものを除外するテンプレートの代わりに、すべてのページで既にアクティブになっている Joomla ファイル内に関数を含めることができます。

Joomlaがすでに使用している関数ファイルはありますか? その一番下に含めることができます。また、変数やグローバルが Joomla と競合しないことを確認し、それらがすべて非常に一意であることを確認してください。

于 2013-04-25T05:03:48.667 に答える
0

アクセス チェックには、組み込みの ACL (アクセス制御リスト) を使用します。

ACLの詳細をお読みください。

于 2013-04-26T14:48:21.227 に答える