Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 2568 Просмотров
*

yAnTar

  • Захожу иногда
  • 296
  • 81 / 3
вызов loadObject( $row ) i legacy mode
« : 23.06.2008, 17:42:58 »
Как известно, в Joomla 1.0.x вызов метода loadObject такой:
$database->loadObject($row)
В Joomla 1.5 такой:
$row = $database->loadObject().
Есть компонент, который написан на 1.0, надо, чтобы заработал на 1.5 (но и чтобы на 1.0 тоже работал).
Включил legacy mode, исправил некоторые различия иежду версиями.
НО:
$database->loadObject($row) не работает - возвращает null.
Посмотрев файлы, нашел этот метод в 2 файлах:
joomla/database/libraries/mysql.php
i
plugins/system/legacy/mysql.php.
Логично, что в моем случае должен вызываться метод со второго файла, а на самом деле наоборот.
Версия Joomla 1.5.3
Firefox the best, Google the best, jQuery the best.
yAnTar блог
*

yAnTar

  • Захожу иногда
  • 296
  • 81 / 3
Re: вызов loadObject( $row ) i legacy mode
« Ответ #1 : 23.06.2008, 17:57:09 »
Понял ошибку, у меня объект database инстанциировался так:
Код
    function &getDBO() {
        static $instance;
        $version = (class_exists("joomlaVersion")) ? (new joomlaVersion()) : (new JVersion());
        if(!is_object($instance)) {
            if($version->RELEASE == '1.0') {
global $database;
                $instance = $database;
            } else if($version->RELEASE == '1.5') {
    $instance = &JFactory::getDBO();
                }
        }
        return $instance;
    }
А это неправильно, правильно, наверно, делать проверку если (ветка 1.0 или включен легаси моде)
Firefox the best, Google the best, jQuery the best.
yAnTar блог
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться