#php #joomla #joomla-extensions
#php #joomla #joomla-расширения
Вопрос:
Когда я попытался установить 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:
Вам действительно не нужно уделять слишком много внимания этой проблеме, так что сторонний разработчик расширения был прав в этом. Это больше похоже на небольшую ошибку (таким образом, уведомление есть), а не на серьезную ошибку. Ваш сайт будет работать без проблем.
Как вы видите в этом уведомлении, в foreach(){}
цикле переменную пытаются определить из другой переменной, которая не является объектом, поэтому она просто возвращает значение NULL или, скорее всего, другого ТИПА, у которого нет свойства Object, которое там ожидается.
В данном конкретном случае все это происходит в относительно новом базовом классе и интерфейсе Joomla (UCM и UCMType). В этом классе они хотят определить тип контента по таблице, и эта часть кода должна быть изменена, улучшена основными разработчиками Joomla.
Что вам следует делать?
1. Если вы хотите немного помочь разработке Joomla и себе, пожалуйста, сообщите об этой проблеме здесь: https://developer.joomla.org/tracker.html , и они, скорее всего, проверят и исправят это.
2. Это уведомление об ошибке PHP обычно предназначено для разработчиков, поэтому, если ваш сайт является действующим сайтом, вы не должны видеть это уведомление в принципе. Если вы видите это на реальном сайте, это может означать, что либо у вас неправильно настроено сообщение об ошибках Joomla, либо неверно задано значение по умолчанию для сообщений об ошибках сервера.
У вашего администратора Joomla в System-> Global Configuration-> Server-> Error reporting должно быть установлено значение по системному умолчанию или Нет. Таким образом, эти не относящиеся к делу уведомления не будут отображаться для пользователей, посетителей вашего сайта. Другие настройки рекомендуются только в том случае, если ваш сайт не является действующим сайтом и вы продолжаете его разработку, например, в промежуточной копии.
И, пожалуйста, если у вас есть вопросы по Joomla, посетите Joomla Stack Exchange здесь:https://joomla.stackexchange.com/questions и, пожалуйста, задавайте свои вопросы относительно Joomla там.
Я надеюсь, что вышеизложенное устранило проблему для вас.