Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Двойная инициализация в редиректе

Супер пользователь
Сообщений: 125
Если блоки писать с функциями, то в плагине out выходит
Fatal error: Cannot redeclare NAME() (previously declared in /home/....


в файле плагина ни ккаких таких подключений нету
Скрытый текст

в файле модуля только
Скрытый текст

Как править ?

еще на серве не работает чпу, хотя на локале норм.
выводит 404. т.е. на серве он пытается зайти в папку, а не обратиться к index.php...

<?
return Ufu('index.php?name=plugins&p=out&url='.rawurlencode(
base64_encode($url)), 'plugins/{p}/{url}');
?>


и вообще может уменьшить кол-во выполняемых действий при обращении к InitPage через конструктор ?

-- Изменено "Fort": 23.02.2016 15:58 --

-- Изменено "Fort": 23.02.2016 16:10 --
Разработчик
Сообщений: 286
Fort:
еще на серве не работает чпу, хотя на локале норм

Ну .htaccess не работает.

Fort:
Если блоки писать с функциями

Если блок подключается два раза, то нужно проверять обьявлена ли функция, или объявить глобальную перменную, а объявление функции поместить в блок условия.

Пример из блока меню:
if(!function_exists('BlockMenuSelectItem')){
function BlockMenuSelectItem(&$blocks, $uri){
Супер пользователь
Сообщений: 125
Агний:
Fort:
еще на серве не работает чпу, хотя на локале норм

Ну .htaccess не работает.

Fort:
Если блоки писать с функциями

Если блок подключается два раза, то нужно проверять обьявлена ли функция, или объявить глобальную перменную, а объявление функции поместить в блок условия.

Пример из блока меню:
if(!function_exists('BlockMenuSelectItem')){
function BlockMenuSelectItem(&$blocks, $uri){


первое что дописать в htaccess.
Второе это по дурацки совсем... Ошибку я нашел.
В главном файле после подключения модуля ниже есть System::site()->TEcho();
А там по умолчанию рендер блоков стоит да. И в самом плагине был System::site()->TEcho();
т.е. можно или System::site()->TEcho(false) писать или саму TEcho доработать!
Разработчик
Сообщений: 286
Fort:
первое что дописать в htaccess

Он вообще работает?
Супер пользователь
Сообщений: 125
Агний:
Fort:
первое что дописать в htaccess

Он вообще работает?
нужно что бы было все правильно. Т.е. При любом обращении я попадаю на index.php, не так как сейчас: создал например папку downloads и модуль с таким именем уже недоступен!
И при таком подходе исключить папку backup
Ну или как то более грамотнее. Потому что проблема глобальная. Большое ограничение в пользовании из-за этого...
П.с ну и к админ пхп иметь доступ.. Не забываем

еще такой вопрос:
Может вообще при инициализации модуля плагины установить $system['no_echo'] = true ?
ведь там установлено $system['no_messages'] = true
значит уже подразумавается не отдавать весь сайт ??

например в антибот или рендер аватаров идет в конце exit, а так можно будет его не писать и тогда еще можно будет выполнить фун-ю финализации модуля....

-- Изменено "Fort": 23.02.2016 18:05 --
Разработчик
Сообщений: 286
Fort:
сейчас: создал например папку downloads и модуль с таким именем уже недоступен!

Если вы создадите каталог downloads, доступ к модулю downloads сохранится. Rewrite не сработает только если вы обратитесь к файлу в этой папке.
Супер пользователь
Сообщений: 125
да с той папкой что я написал доступ есть))

Обратитесь к модулю Блоки через индекс как админ
а затем к Аудиту точно так же.

Аудит откроется, а блоки скажут 403

Ну так вы и сами говорите реврайт не срабатывае при одноименных папках в начале цепочки.
Что делать ? нужен доступ к модулю плагины через чпу. А точнее он есть, к самим плагинам!

-- Изменено "Fort": 23.02.2016 18:42 --
Разработчик
Сообщений: 605
Fort:
первое что дописать в htaccess

А у вас Apache? Файлы .htaccess и правила в нем рассчитаны именно под этот веб сервер (ну думаю знаете).

Для работы ЧПУ необходим mod_rewrite или аналогичное для перезаписи урла. То есть, веб сервер должен вызвать точку входа index.php и передать ей GET параметр ufu с запрошенным адресом. Дальше система его разберет и поймет что запросили (ну это я в FAQ описывал).

Fort:
создал например папку downloads и модуль с таким именем уже недоступен!

Как я помню, часть директорий там занесена в исключение или идет проверка на их физическое существование. И идет передача управления index.php или веб сервер сам обрабатывает статику (хотя листинг директорий там вроде тоже запрещен).
Супер пользователь
Сообщений: 125
Если удалить
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/?(backup|images|blocks|modules|plugins|scripts|setup|templat
es|uploads|errorpages|/.*\.php).*

строку и в каждую папку по htaccess добавить ?
Options All -Indexes
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/?(*).*
Deny from all

так же должно сохраниться условие и для чпу и без него, и безобасность ?

так всегда будет вызываться index.php

-- Изменено "Fort": 24.02.2016 21:00 --
Супер пользователь
Сообщений: 125
Сделал себе более частые попадания на ufu=$1, так можно "правильно" выводить 404, да и вообще ограничений меньше.
к сведению
RewriteCond %{REQUEST_URI} !^/?(backup|images|blocks|modules|plugins|scripts|setup|templat
es|uploads|errorpages|/.*\.php).*
не учитывает, что сайт может быть в доп директории. Сразу проглядел и ни как не мог понять почему везде все по разному работает..
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: