カテゴリレイアウトを使用して、joomla 3.3のフロントページに記事を掲載しています。このビューをカスタマイズして、記事のリンクがクリック時にajax経由でこのページに記事を取り込むようにします。
これは私がカスタマイズした関連コードです:
HTML:
<h2 class="catView" data-link="<?php echo $this->item->link; ?> #k2Container">
<?php if(isset($this->item->editLink)): ?>
</h2>
jQuery:
$('article.catView h2').click(function(){
var link = $(this).attr("data-link");
$(this).parents().next('.artContainer').slideToggle(500).load(link);
});
これでうまくいき、必要なデータを取得して正しく表示することができました。
[〜#〜]しかし[〜#〜]
これが正しい方法かどうか疑問に思っています。データベースから直接データを取得しようとすると、他のページを取得するのではなく、これを行う「特別なjoomla」方法はありますか?
私はこれをサードパーティの拡張機能に依存せず、このタスクを制御および理解したいと思います。
http://jeffchannell.com/Joomla/load-the-joomla-framework-in-a-non-joomla-php-script.html
上記の手法を使用すると、ルートディレクトリにajax.phpファイルを作成し、Joomla APIを使用してデータベースから自分でデータを呼び出し、JSONに変換できます。
これにより、k2ヘルパーを使用して支援することができます。このようなデータベースの呼び出しは、高度なカスタマイズが必要な場合にのみ使用してください。
betweenbrianはこのリンクで良い点を示しています http://getk2.org/blog/786-k2-v257-released-introduces-json-jsonp-content-output k2がJSONをサポートしている場合それはあなたが必要とするデータを検索し、おそらくあなたがする必要があることに完璧です。
com_ajaxも思い浮かびますが、モジュール/プラグイン用に構築されています。 k2自体はコンポーネントであるため、おそらく意図したとおりに機能しません。
したがって、結論として、ajaxを処理するための「特別なJoomla」方法はありませんが、必要なことを行うには多くの可能性があります。