しばらくの間、私はJoomlaを使用しており、現在はバージョン3.1.5を使用しています。私は自分のPHPスクリプトをAJAXコールバックやその他のものに使用するためにスクリプトを作成します。それらをscripts
という名前のフォルダに入れます通常のJoomlaインストールの一部。
このため、Joomlaからスクリプトにアクセスするときにスクリプトを適切に機能させるには、いくつかの構成コードを使用する必要があります。私はこのコードを使用します:
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
/* Create the Application */
$mainframe = JFactory::getApplication('site');
最近、私はこのスクリプトをAJAXで呼び出そうとしていますが、次のエラーが発生しています。
404(カテゴリが見つかりません)
私がこれについて考えることができる唯一の理由は、ユーザーがカテゴリを使用する何らかの理由のためにスクリプトを読み取る特権を持っていないJoomlaの事柄ですか?確かではありませんが、助けを求めています。このJoomlaインストール用に任意のカテゴリを作成しましたが、それらを使用しません。
independent PHP scripts for AJAXコールバック)を呼び出す場合、通常のJoomla!サイトに沿ってそれらがどのように生きているかを確認する必要があります。
一般的なApache-Joomla設定では、最初に.htaccessがいくつかのルールを適用してセキュリティ制限、SEF処理などを定義します。その後、index.phpが制御を取り、CMSを初期化し、呼び出しを適切なコンポーネントにルーティングして、最後に出力を生成します。
あなたの場合、それはApacheがスクリプトを呼び出すのではなく、com_contentコンポーネントへの呼び出しを委任しているようです。
私たち。私の場合、「タスク」がページに渡されなかったため、これが発生していました。私は持っていた隠しフォームフィールドがありました
<input type="hidden" name="jform[task]" value="myCustomTask">
の代わりに
<input type="hidden" name="task" value="myCustomTask">
これは主に、フォームのXMLファイルにタスクがあったためです。