it-swarm-id.com

Muat artikel K2 dengan ajax

Saya menggunakan tata letak kategori untuk menampilkan artikel di halaman depan saya dengan joomla 3.3. Saya mengubahsuaikan tampilan ini sehingga tautan artikel menarik artikel ke halaman ini melalui ajax saat klik.

Ini adalah kode yang relevan yang saya sesuaikan:

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);
});

Ini berfungsi, saya berhasil mengambil data yang saya butuhkan dan menampilkannya dengan benar.

TETAPI

Saya bertanya-tanya apakah ini cara yang benar untuk melakukan ini, alih-alih mengambil halaman lain haruskah saya mencoba mengambil data langsung dari basis data? apakah ada cara "joomla khusus" untuk melakukan ini?

Saya lebih suka tidak mengandalkan ekstensi pihak ketiga untuk ini dan ingin mengontrol dan memahami tugas ini.

3
web-tiki

http://jeffchannell.com/Joomla/load-the-joomla-framework-in-a-non-joomla-php-script.html

Dengan menggunakan teknik di atas, Anda dapat membuat file ajax.php di direktori root dan menggunakan API Joomla untuk memanggil data sendiri dari database, lalu mengonversi ke JSON.

Ini akan memungkinkan Anda untuk menggunakan pembantu k2 untuk membantunya. Memanggil basis data seperti ini seharusnya hanya digunakan jika Anda memerlukan tingkat penyesuaian yang tinggi.

betweenbrian membuat poin bagus dengan tautan ini http://getk2.org/blog/786-k2-v257-released-introduces-json-jsonp-content-output di dalamnya jika k2 mendukung JSON, dan itu mengambil data yang Anda butuhkan mungkin sempurna untuk apa yang perlu Anda lakukan.

com_ajax juga muncul dalam pikiran, namun itu dibangun untuk modul/plugin. k2 itu sendiri adalah komponen sehingga mungkin tidak akan berfungsi sebagaimana dimaksud.

Jadi kesimpulannya tidak ada cara "Joomla khusus" untuk menangani ajax, tetapi ada banyak kemungkinan untuk mendapatkan apa yang perlu Anda lakukan.

2
Jordan Ramstad