Здравствуйте!
Локалка на WIN10x64, OpenServer, PHP 7.0
Сейчас активировано только одно дополнение - PrimeForum.
Вот что наблюдаю в коде страницы (Кабинет):
<link rel='stylesheet' id='font-awesome-css' href='http://aff.rru/wp-content/plugins/wp-recall/assets/css/font-awesome/css/font-awesome.min.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='animate-css-css' href='http://aff.rru/wp-content/plugins/wp-recall/assets/css/animate-css/animate.min.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='rcl-primary-css' href='http://aff.ru/wp-content/plugins/wp-recall/assets/css/style.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='rcl-users-list-css' href='http://aff.ru/wp-content/plugins/wp-recall/assets/css/users.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='rcl-register-form-css' href='http://aff.ru/wp-content/plugins/wp-recall/assets/css/regform.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='cab_15-css' href='http://aff.ru/style.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='pfm-style-css' href='http://aff.rru/style.css?ver=4.9.6' type='text/css' media='all' /> <link rel='stylesheet' id='ftf-style-css' href='http://aff.ru/style.css?ver=4.9.6' type='text/css' media='all' />
'cab_15-css' - это, как понимаю, стиль темы "theme-sunshine", а ниже стили от PrimeForum.
Со скриптами та же беда. Страница форума:
<script type='text/javascript' src='http://aff.ru/wp-content/plugins/wp-recall/assets/js/core.js?ver=16.15.5'></script> <script type='text/javascript' src='http://aff.ru/wp-content/plugins/wp-recall/assets/js/scripts.js?ver=16.15.5'></script> <script type='text/javascript' src='http://aff.ru/js/scripts.js?ver=16.15.5'></script>
И в админке на странице настроек форума:
<link rel='stylesheet' id='pfm-admin-style-css' href='http://aff.ru/admin/style.css?ver=4.9.6' type='text/css' media='all' /> <script type='text/javascript' src='http://aff.ru/admin/js/scripts.js?ver=4.9.6'></script>
Ну и, соответственно, настройки форума скрыты, видимо из-за того, что скрипты не подгружаются...
Плагин и дополнения активировал-деактивировал по несколько раз уже.
В логе PHP ошибок нет.
И аналогичная картина наблюдается не только с форумом, но и со всеми другими активированными дополнениями!
На сервере этих багов нет, все нормально. Но, для разработки архи-нужна локальная версия.
Здравствуйте.
OpenServer
у таких сборок бывают проблемы с путями. Как победить - не скажу.
У меня на локальном ПК установлен отдельно apache, php, mysql - все работает.
Но интернет завален, как например на denwer (тоже сборка по типу опен сервера) - тоже много проблем с неверным определением путей.
Но я вижу странность:
У вас users.css
- грузится с нормальным путём
и regform.css
- тоже не выдает 404 - я же верно говорю?
А вот стилевой файл с id id='cab_15-css'
выдает неверный путь.
Смотрю в исходник - все они работают через одну функцию rcl_enqueue_style
- вот только последний еще принимает аргумент пути rcl_addon_url('style.css', __FILE__)
- что наводит на мысль, что у вас проблема с магической константой __FILE__
- дебажьте - что у вас в ней. Я бы начал с этого.
На хостинге таких проблем нету - можно на поддомене завести dev-сервер и работать через хостинг. Я сейчас работаю так - потому что часто переезжаю и нужен доступ к рабочему серверу разработки. Я в htaccess по ip открываю для себя доступ и не имею подобных проблем. Может возьмете на вооружение подобный метод.
Вот сотню лет сидел на Денвере, пару-тройку лет сейчас на OpenServer. Некоторые проблемы иногда были, но решаемые.
Потому, собственно, и пишу, что сам в ступоре - сроду такого не видел 🙂
Но я вижу странность:
У вас users.css - грузится с нормальным путём
и regform.css - тоже не выдает 404 - я же верно говорю?А вот стилевой файл с id id='cab_15-css' выдает неверный путь.
Ну да, я специально в коде показал и те, и те ссылки. Т.е. криво выдаются только пути у ДОПОЛНЕНИЙ и у темы.
...у вас проблема с магической константой __FILE__...
К сожалению, с ней все ок :). Выдает полный путь к файлу, как и дОлжно. Специально посмотрел. Да и представьте, что бы было, если б она косячила, я думаю, даже вордпресс бы не встал нормально, она же используется, практически, везде.
Смотрю в исходник - все они работают через одну функцию rcl_enqueue_style - вот только последний еще принимает аргумент пути rcl_addon_url('style.css', __FILE__)
Да, тоже одним глазом глянул. Нужно будет теперь "открыть оба глаза", а то решил сначала спросить, вдруг уже кто-то "плавал".
Там же еще будет функция разбора пути и преобразования его в URL... Почему-то уверен, что какая-то мелочь мешает. Должно работать. В общем, придется рыть :(.
Спасибо!
Здравствуйте!
Может кому будет интересно, проблему я решил.
Как оказалось, в массиве $active_addons по какой-то причине образовался пустой элемент. Вот так "выглядит" массив при отключенных дополнениях:
Array ( [] => [theme-sunshine] => Array ( [name] => Sunshine [version] => 0.1 [support-core] => 15.0.0 [template] => Sunshine [description] => Шаблон личного кабинета [author] => Владимир Дружаев, Плечёв Андрей [author-uri] => https://codeseller.ru [path] => C:/OpenServer/domains/affru/wp-content/plugins/wp-recall/add-on/theme-sunshine [priority] => 0 ) )
Из-за этого пустого элемента функция 'rcl_addon_path' (файл wp-recall/functions/addons.php ) отрабатывает неверно.
Деактивация и повторная активация дополнений (и самого плагина) не помогает. Возможно, помогло бы удаление плагина и повторная установка, но это для меня неприемлемо, т.к. (со слов автора плагина) при удалении чистится база, а у меня там уже форум развернут.
Поэтому пришлось вставить пару строк для проверки существования элементов массива. Ну, и еще немножко изменил код проверки на совпадение (функция 'stristr') т.к., на мой взгляд, в источнике это сделано не совсем корректно, хотя и работало.
В общем, было:
$paths = array(); $addonPath = false; foreach($active_addons as $addonID => $addon){ if($path == $addon['path']){ $addonPath = $addon['path']; break; } if($string = stristr($path,trailingslashit($addon['path']))){ $paths[strlen($string)] = $addon['path']; } }
Стало:
$paths = array(); $addonPath = false; foreach($active_addons as $addonID => $addon){ if($addonID) { if($path == $addon['path']){ $addonPath = $addon['path']; break; } if(stristr($path,trailingslashit($addon['path'])) !== FALSE){ $string = stristr($path,trailingslashit($addon['path'])); $paths[strlen($string)] = $addon['path']; } } }
И это все 🙂