Размещение плагина jquery в модуле joomla

Я пытаюсь создать модуль в joomla, который использует один плагин jquery. Я должен выполнить операцию ajax, щелкнув элемент в модуле. В настоящее время я указываю весь путь к файлу php. Но я знаю, что это неправильный метод.

Код в плагине jquery выглядит следующим образом (обратите внимание на вторую строку, где указан путь в файле плагина jquery)

       $.get(
            "/subdirectory/MyBlog/modules/mod_calendar/getCalendar.php", {
                month: $("#selectedMonth").val(),
                year: $("#selectedYear").val(),
                flag: '-1'
            }, function(data){
                $("#monthlyCalendar").html(data);
                $("#monthlyCalendar").show();
            }
        ); 

Как правильно указать путь в файле плагина jquery. Также мне нужно знать, куда поместить файл плагина jquery в модуль.


person Joe    schedule 10.06.2010    source источник


Ответы (3)


Я нашел ответ в следующем блоге.

http://blog.subooa.com/development/joomla-coding/ajax-in-joomla-with-jquery/

person Joe    schedule 01.07.2010

Лучший способ, который я нашел, - использовать метод JURI::root для создания переменной javascript, которую я затем могу использовать. В вашем php-коде вы должны сделать что-то вроде этого:

?>

<script type="text/javascript">
        var joomlaRoot = '<?php echo JURI::root(); ?>';
</script>

<?php

Затем вы можете использовать эту переменную при выполнении вызова AJAX.

Что касается того, куда поместить файл плагина jquery в вашем модуле, вы можете поместить его в любое место в каталоге вашего модуля, а затем снова использовать JURI::root, чтобы создать к нему путь и вызвать метод JDocument::addScript.

Кстати, вы можете рассмотреть возможность использования MooTools. Он поставляется в комплекте с Joomla! уже. Он имеет возможность выполнять вызовы AJAX. Кроме того, используя его, вы избегаете возможности возникновения конфликтов jQuery.

person Will Mavis    schedule 19.06.2010

Наконец мне удалось найти хорошее решение для использования Ajax с помощью Jquery в Joomla.

Для этого сначала вам нужно создать представление и модель, чтобы получить требуемый HTML-код через вызов AJAX.

Затем используйте код jQuery, подобный следующему, чтобы получить только вывод требуемого представления.

//Code to get the base URL of joomla installation
szURL = document.URL;
componentList = szURL.split('/');
szDocument = componentList[componentList.length-1];
szURL = szURL.replace(szDocument, "");

//URL to the required component
url = szURL + "?option=COMPONENT_NAME&view=VIEW_NAME&tmpl=component&uid=" + getRandomValue();
jQuery.get(url, function(data) {
    jQuery("#mydiv").html(data);
});


//Function to get a random number
//It is used for Ajax calls from IE; Else IE will use the cache values
function getRandomValue(){
    return Math.floor(1000000 * (Math.random() % 1))
}

Обратите внимание на URL-адрес, используемый для вызова ajax. Он использует «tmpl=component», чтобы получить только html для выбранного компонента без HTML-кода joomla.

person Joe    schedule 22.12.2010