Ошибка Joomla в Phoca Gallery

Я использую Joomla 3.5.1. Недавно я установил phoca gallery на моем Joomla. Это не работает, и, к сожалению, я не могу удалить его из расширений или меню плагина. Когда я нажимаю на меню extension-management , я получаю эту ошибку:

  

Предупреждение: require_once () [function.require-once]: невозможно получить доступ /home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php в /home/aiprogra/public_html/plugins/content/phocagallery/phocagallery.php в строке 20

     

Предупреждение: require_once (/home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php) [function.require-once]: не удалось открыть поток: нет такого файла или каталога в /home /aiprogra /public_html /plugins /content /phocagallery /phocagallery.php в строке 20

     

Неустранимая ошибка: require_once () [function.require]: Не удалось выполнить открытие '/home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php' (include_path = '.: /usr /lib /php: /usr /local /lib /php ') в /home/aiprogra/public_html/plugins/content/phocagallery/phocagallery.php в строке 20

Как я могу исправить эту ошибку? Я заметил, что я не php-программист. Я предпочитаю удалить его.

2 голоса | спросил Babak.Abad 12 J000000Tuesday16 2016, 21:49:57

1 ответ


1

Фон

DS - это константа, обозначающая Directory Separator и использовался в более ранних версиях Joomla для того, чтобы различать косую черту / и обратную косую черту \. Короче говоря, это связано с тем, что Linux-системы (например, серверы Apache) используют косую черту для разделения каталогов, в то время как Windows использует обратную косую черту как разделитель каталогов. Тем не менее, Windows так же счастлива с косой чертой, поэтому константа DS больше не задана по умолчанию в Joomla. Это вызывает ошибки в расширениях, которые все еще используют константу.

Ваша проблема

Плагин Phoca использует следующий код для включения файла из основного компонента Phoca Gallery:

require_once( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_phocagallery'.DS.'libraries'.DS.'loader.php');

Так как DS не определен, PHP переводит это как:

require_once('/home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php')

Этот файл не существует, и фактический путь должен быть:

/home/aiprogra/public_html/administrator/components/com_phocagallery/libraries/loader.php

Следовательно, ошибка.

Решение

Есть несколько способов решить эту проблему:

  1. Загрузите небольшой плагин называется DS Constant для Joomla! 3.0 , который определяет константу. Я не тестировал сам плагин, но он должен работать нормально.

  2. Измените код плагина (в этом случае файл ROOT/plugins/content/phocagallery/phocagallery.php, строка 20), заменив любое вхождение DS с косой чертой. Для этого нужно получить некоторые базовые знания PHP, чтобы получить правильные цитаты.

  3. Определите константу самостоятельно, добавив следующую строку в файл ROOT/index.php:

    define('DS', DIRECTORY_SEPARATOR);
    

    Однако это основной взлом и не рекомендуется, так как ваш сайт будет ломаться при обновлении Joomla.

ответил johanpw 13 J000000Wednesday16 2016, 01:40:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132