Примечание. Попытка получить свойство необъекта в ../libraries/src/UCM/UCMType.php в строке 169 - PullRequest
1 голос
/ 09 марта 2019

Когда я пытался установить Joomla!Расширение JCH, я придумал заголовок сообщения выше после завершения установки.Я спросил разработчика, и он ответил, что мне не нужно беспокоиться о расширении, так как это Joomla!проблема в том, что это не повлияет на работу расширения.

Строка 169 файла UCMType.php имеет следующий вид:

$tableNameFromType = $tableFromType->special->prefix . $tableFromType->special->type;

И конкретная часть файла UCMType.php, включающая строку169:

public function getTypeByTable($tableName)
    {
        $query = $this->db->getQuery(true);
        $query->select('ct.*');
        $query->from($this->db->quoteName('#__content_types', 'ct'));

        // $query->where($this->db->quoteName('ct.type_alias') . ' = ' . (int) $typeAlias);
        $this->db->setQuery($query);

        $types = $this->db->loadObjectList();

        foreach ($types as $type)
        {
            $tableFromType = json_decode($type->table);
            $tableNameFromType = $tableFromType->special->prefix . $tableFromType->special->type;

            if ($tableNameFromType === $tableName)
            {
                return $type;
            }
        }

        return false;
    }

1 Ответ

0 голосов
/ 10 марта 2019

Вы действительно не должны уделять слишком много внимания этой проблеме, поэтому сторонний разработчик расширений был прав в этом.Это больше похоже на небольшую ошибку (таким образом, Уведомление есть), а не серьезную ошибку.Ваш сайт будет работать без проблем.

Как вы видите в этом уведомлении, в цикле foreach(){} пытаются определить переменную из другой переменной, которая не является объектом, поэтомускорее всего, он просто возвращает значение NULL или другой тип, который не имеет ожидаемого там свойства объекта.

В данном конкретном случае все это происходит в относительно новомБазовый класс и интерфейс Joomla (UCM и UCMType).В этом классе они хотят определить тип контента по таблице, и эта часть кода должна быть модифицирована, улучшена основными разработчиками Joomla.

Что вы должны делать?

1. Если вы хотите немного помочь развитию Joomla и себе, тогда, пожалуйста, сообщите об этой проблеме здесь: https://developer.joomla.org/tracker.html, и они, скорее всего, проверят и исправят это.

2. Этот PHP (ошибка) Уведомление обычно предназначено для разработчиков, поэтому, если ваш сайт является живым сайтом, вы не должны видеть это Уведомление в основном.Если вы видите это на действующем сайте, это может означать, что либо ваш отчет об ошибках Joomla установлен неправильно, либо ваш сервер отчетов об ошибках по умолчанию установлен неправильно.

В вашем Joomla admin в Система-> Глобальная конфигурация-> Сервер-> Отчеты об ошибках должно быть установлено на Системное значение по умолчанию или на нет .Таким образом, эти не соответствующие уведомления не будут появляться для пользователей, посетителей вашего сайта.Другие настройки рекомендуются только в том случае, если ваш сайт не является живым сайтом и вы разрабатываете его, например, в виде промежуточной копии.

И, пожалуйста, если у вас есть вопросы по Joomla, посетите Jockla Stack Exchange здесь: https://joomla.stackexchange.com/questions и, пожалуйста, задайте ваши вопросы относительно Joomla там.

Я надеюсь, что вышеизложенное прояснило проблему для вас.

...