मैं इस विषय पर drupal.org पर बहुत सारी पोस्ट कर रहा था, लेकिन दुर्भाग्य से गलत संदर्भ में।
- Ajaxed सामग्री को JS और CSS (मंच) की आवश्यकता नहीं है
- Ajaxed सामग्री को JS और CSS (समस्या) की आवश्यकता नहीं है
मुझे लगता है कि यह समस्या नहीं है, इसलिए मैं इसे एक अलग दृष्टिकोण के साथ कोशिश करता हूं, और शायद यह समाधान हो सकता है। पूरे PHP पृष्ठ को लोड करना और ajax के साथ एक निश्चित div को निकालना सही तरीके से काम नहीं करता है। तो मैंने सोचा, कि मैं ड्रुपल को सिर्फ सामग्री लोड कर सकता हूं और इसे अजाक्स के साथ इंजेक्ट कर सकता हूं। मैंने हुक किए गए URL में "ajax = 1" की तलाश में हुक_परप्रोसेस_पेज और हुक_परप्रोसेसर_नोड के साथ एक प्रश्न किया और फिर पूरे पृष्ठ के बिना केवल सामग्री देता है। और अब कुछ tpl.php फ़ाइलों की मदद से, सिद्धांत रूप में, मैं ड्रुपल के उत्पादन को केवल $ सामग्री तक सीमित कर सकता था। और यहाँ समस्या है। Tpl.php फ़ाइलों को मूल तरीके से छोड़ने पर भी मेरा दृष्टिकोण काम कर रहा है, लेकिन नोड-ajax.tpl.php से "$ सामग्री" हटा रहा है। "सही तरीके से काम करने" के साथ, मेरा मतलब है कि ड्रुपल पूरे पृष्ठ को फिर से लोड नहीं करता है, लेकिन निश्चित रूप से सामग्री नहीं। लेकिन मैं खुद को यह नहीं समझा सकता कि $ सामग्री चर में कारण है, इसलिए मैंने सोचा, केवल उत्पन्न सामग्री का html है। तो मेरा सवाल यह है कि मैं ड्रुपल के आउटपुट को केवल सामग्री तक कैसे सीमित कर सकता हूं, या क्या मैं यह काम करने के लिए गलत कदम उठा रहा हूं। यहाँ मॉड्यूल और js फ़ाइल का उपयोग कर रहा हूँ: 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;
});
};
इसमें मेरी मदद करो। हर सुझाव की सराहना की है।