Bu konu hakkında drupal.org'da çok fazla yazı yapıyordum, ama ne yazık ki yanlış bağlamda.
- Ajaxed içeriği gereken JS ve CSS'yi (forum) eklemiyor
- Ajaxed içeriği gereken JS ve CSS'yi eklemiyor (sorun)
Bence sorun bu değil, bu yüzden farklı bir yaklaşımla deniyorum ve belki de bu çözüm olabilir. Tüm PHP Sayfasını yüklemek ve ajax ile belirli bir div çıkarmak doğru şekilde çalışmadı. Drupal'ın sadece içeriği yüklemesine izin verebileceğimi ve div içine ajax ile enjekte edebileceğimi düşündüm. Ben istenen URL bir "ajax = 1" arıyor hook_preprocess_page ve hook_preprocess_node ile bir sorgu yaptım ve sonra sadece tüm sayfa olmadan içeriği verir. Ve şimdi bazı tpl.php dosyaları yardımıyla, teoride, drupal çıktısını sadece $ içerikle sınırlayabilirim. Ve işte sorun. Tpl.php dosyalarını orijinal şekilde bıraktığımda bile "$ content" node-ajax.tpl.php dosyasından kaldırıldığında yaklaşımım çalışıyor. "Doğru şekilde çalışmak" ile, yani drupal'ın tüm sayfayı yeniden yüklemediğini, ama elbette içerik değil. Ama ben kendime açıklayamıyorum, neden $ content değişkeni, bu yüzden düşündüm, sadece oluşturulan içeriğin html olduğunu. Yani sorum, drupal çıktısını sadece içerikle nasıl sınırlayabilirim veya bu çalışmayı elde etmek için yanlış adımlar atıyorum. İşte kullanıyorum modül ve js dosyası: 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;
});
};
Lütfen bana bu konuda yardım et. Her öneri takdir edilmektedir.