Класс 'JFactory' не найден - PullRequest
       1

Класс 'JFactory' не найден

2 голосов
/ 30 ноября 2011

Я создавал некоторые модули в Joomla, используя Jumi.Поэтому я могу написать любой код php / javascript и создать модуль Jumi, который я могу отображать там, где я хочу.

Я делал это некоторое время без проблем, но теперь, когда я пытаюсь разработать AJAX сJquery Я получаю эту ошибку:

Class 'JFactory' not found in api.php

Итак, у меня есть файл PHP с кодом jQuery:

$(function() {
    $.ajax({
        url: 'ajax_dashboard/api.php',                  //the script to call to get data
        data: "",
        dataType: 'json',                //data format
        success: function(data)          //on recieve of reply
        {
            var id = data[0];              //get id
            var vname = data[1];           //get name

            $('#output').append("<b>id: </b>"+id+"<b> name: </b>"+vname)
                .append("<hr />"); //Set output element html
        }
    });
});

Как вы можете видеть, он вызывает скрипт api.php, чтобы сделатьнекоторая обработка сервера.В этом файле есть несколько вызовов joomla, таких как:

$user = &JFactory::getUser();

Так почему в этом случае у меня нет доступной среды Joomla?

Ответы [ 2 ]

4 голосов
/ 30 ноября 2011

Проблема в том, что ваш Ajax-вызов заканчивается файлом из платформы Joomla. Правильный способ сделать это, если это возможно, сделать вызов ajax примерно таким:

index.php? Вариант = yourcomponent и контроллер = ххх и задача = ууу

(это означает, что у вас должен быть компонент "mycomponent" и контроллер "xxx" внутри этого компонента) Тогда контроллер должен нести ответственность за обработку вызова ajax и отправку ответа. Например, вы можете вернуть кодированный в json ответ или что угодно.

Надеюсь, это помогло

2 голосов
/ 03 января 2012

Я использую это для решения проблемы.Я получаю переменную, пока я в фреймворке Joomla.Затем я передаю переменную User_Name в своем вызове ajax ...

Надеюсь, это поможет

<script type="text/javascript">
  var User_Name = '<?php $user =& JFactory::getUser(); $User_Name = $user->username; echo $User_Name; ?>';
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...