Saya melakukan banyak posting di drupal.org tentang topik ini, tetapi sayangnya dalam konteks yang salah.
- Konten Ajaxed tidak melampirkan diperlukan JS dan CSS (forum)
- Konten Ajaxed tidak melampirkan JS dan CSS yang dibutuhkan (masalah)
Saya pikir itu bukan masalahnya, jadi saya mencobanya dengan pendekatan yang berbeda, dan mungkin ini bisa menjadi solusinya. Memuat seluruh Halaman PHP dan mengekstrak div tertentu dengan ajax tidak berfungsi dengan benar. Jadi saya pikir, saya bisa membiarkan drupal memuat konten dan menyuntikkannya dengan ajax ke div. Saya membuat kueri dengan hook_preprocess_page dan hook_preprocess_node yang mencari "ajax = 1" di URL yang diminta dan kemudian hanya membagikan konten tanpa seluruh halaman. Dan sekarang dengan bantuan file tpl.php tertentu, secara teori, saya bisa membatasi output drupal hanya $ content. Dan inilah masalahnya. Pendekatan saya bekerja bahkan ketika saya meninggalkan file tpl.php dengan cara yang asli, tetapi menghapus "$ content" dari node-ajax.tpl.php. Dengan "bekerja dengan cara yang benar", maksud saya drupal tidak memuat ulang seluruh halaman, tapi tentu saja bukan isinya. Tetapi saya tidak bisa menjelaskan itu kepada diri saya sendiri, karena dalam variabel $ content, jadi saya pikir, hanya html dari konten yang dihasilkan. Jadi pertanyaan saya adalah, bagaimana saya bisa membatasi output drupal, hanya konten, atau apakah saya melakukan langkah yang salah untuk mendapatkan ini berfungsi. Ini adalah file module dan js yang saya gunakan: my_ajax.module:
<?php
function my_ajax_init()
{
drupal_add_js(drupal_get_path('module', 'my_ajax') . '/my_ajax.js');
}
function my_ajax_preprocess_page(&$vars, $hook)
{
if (isset($_GET['ajax']) && $_GET['ajax'] == 1)
{
$vars['template_file'] = 'page-ajax';
}
}
function my_ajax_preprocess_node(&$vars, $hook)
{
if (isset($_GET['ajax']) && $_GET['ajax'] == 1)
{
$vars['template_file'] = 'node-ajax';
}
}
my_ajax.js:
Drupal.behaviors.my_ajax = function (context) {
$('#content-group-inner .node a').live('click', function (e) {
var url = $(this).attr('href');
//$('#content-region-inner').slideUp('slow');
$('#content-region-inner').empty().html('<img src="ajax-loader.gif" style="margin-left:50%;"/>');
xhr = $.ajax({
data: 'ajax=1',
type: 'GET',
url: url,
success: function (data) {
$('#content-region-inner').html(data);
Drupal.attachBehaviors(context);
}
});
return false;
});
};
Tolong bantu saya dengan ini. Setiap saran sangat dihargai.