Перейти к публикации

Добавляем возможность редактировать файл .htaccess через систему плагинов в DLE 13.0


Рекомендованные сообщения

1. Открыть файл /engine/inc/plugins.php.

Перед:

if(!$file_name) continue;

Добавить:

if($value == ".htaccess" OR $value == "/.htaccess") $file_name = ".htaccess";

2. Открыть файл /engine/classes/plugins.class.php.

Перед:

$content = file_get_contents( self::$root.$filename );

Добавить:

if($filename == ".htaccess") {
	$content = file_get_contents( self::$root."engine/inc/include/htaccess.txt" );
} else

Перед:

@file_put_contents (ENGINE_DIR . "/cache/system/plugins/" . $store_key, $content, LOCK_EX);

Добавить:

if($filename == ".htaccess") {
	$content = "# This is a temporary file, its editing is pointless. The original file is: engine/inc/include/htaccess.txt\n\n" . $content;
	@file_put_contents (self::$root.$filename, $content, LOCK_EX);
}

3. Берём файл .htaccess из оригинального дистрибутива DLE, переименуем в htaccess.txt и копируем его в /engine/inc/include/.

 

Теперь все изменения в файле .htaccess выполняются через систему плагнинов.

 

P.S. Предложение для разработчиков DLE. В новой версии дайте хотя бы возможность редактировать файл /engine/classes/plugins.class.php через систему плагнинов.

Ссылка на сообщение
Поделиться на других сайтах
  10.06.2018 в 11:19, Japing сказал:

P.S. Предложение для разработчиков DLE. В новой версии дайте хотя бы возможность редактировать файл /engine/classes/plugins.class.php через систему плагнинов.

Расширить  

Тем самым разработчик убьёт это функционал:

dk5L3C1F.png

 

Ссылка на сообщение
Поделиться на других сайтах
  10.06.2018 в 11:47, Captain сказал:

Тем самым разработчик убьёт это функционал:

Расширить  

Моя ошибка. Если и будет возможность его редактировать через систему плагинов этo ничево не даст. Этот файл подключается напрямую, без систему плагинов.

Ссылка на сообщение
Поделиться на других сайтах

Вы пытаетесь нарушить принципы работы системы плагинов. Система плагинов это система работы через виртуальные файлы, любое удаление и приостановка плагина возвращает все в исходное состояние. А вы физически переписываете и редактируете оригинальный файл .htaccess. А теперь при удалении вашего плагина, что произойдет? ничего. Модифицированный файл останется. Это первое. Второе большинство правильно настроенных на безопасность хостингов, не дает прав на запись для этого файла, открытие его на запись вручную через CHMOD, это открытие дыры в безопасности в целом.

 

Этот файл не может виртуальным априори, потому как его читает и выполняет не DLE, а Апач, еще до DLE.

Ссылка на сообщение
Поделиться на других сайтах
  10.06.2018 в 12:14, celsoft сказал:

любое удаление и приостановка плагина возвращает все в исходное состояние.

Расширить  

после установки этого хака так и будет

 

  10.06.2018 в 12:14, celsoft сказал:

А теперь при удалении вашего плагина, что произойдет? ничего.

Расширить  

это не писался как плагин, а как хак чтоб была возможность редактировать файл .htaccess через систему плагинов. 

 

  10.06.2018 в 12:14, celsoft сказал:

Этот файл не может виртуальным априори, потому как его читает и выполняет не DLE, а Апач, еще до DLE.

Расширить  

да, но DLE его использует в работе

 

 

Ну тогда предлагайте вы какая то решение, например обработать ЧПУ через php. Не красиво получился, сделали систему плагинов но всё равно надо файлы вручную редактировать.

Ссылка на сообщение
Поделиться на других сайтах
  10.06.2018 в 12:40, Japing сказал:

после установки этого хака так и будет

Расширить  

Нет не будет. Вы плохо тестировали. Если нет ниодного другого плагина который бы редактировал этот файл, то этот файл после единственного плагина который редактировал .htaccess не вернется в исходное состояние после удаления плагина, который его редактировал, потому как вы физически правите основной файл, и ничто в исходное состояние его не возвращает в вашем коде.

 

  10.06.2018 в 12:40, Japing сказал:

это не писался как плагин, а как хак чтоб была возможность редактировать файл .htaccess через систему плагинов. 

Расширить  

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

 

  10.06.2018 в 12:40, Japing сказал:

Ну тогда предлагайте вы какая то решение, например обработать ЧПУ через php. Не красиво получился, сделали систему плагинов но всё равно надо файлы вручную редактировать.

Расширить  

Мое мнение это никогда не трогать стандартные правила, и никогда их не менять. А свои правила вы можете обрабатывать и через PHP.

 

Ссылка на сообщение
Поделиться на других сайтах
  10.06.2018 в 14:00, celsoft сказал:

Если нет ниодного другого плагина который бы редактировал этот файл, то этот файл после единственного плагина который редактировал .htaccess не вернется в исходное состояние после удаления плагина

Расширить  

Вы правы. но это легко исправить.

 

  10.06.2018 в 14:00, celsoft сказал:

т.к. правит физически реальный файл

Расширить  

вручную тоже реальный файл редактируется.

 

Соглашусь с вами только с этим:

  10.06.2018 в 12:14, celsoft сказал:

Второе большинство правильно настроенных на безопасность хостингов, не дает прав на запись для этого файла, открытие его на запись вручную через CHMOD, это открытие дыры в безопасности в целом

Расширить  

 

 

  10.06.2018 в 14:00, celsoft сказал:

Мое мнение это никогда не трогать стандартные правила, и никогда их не менять. А свои правила вы можете обрабатывать и через PHP.

Расширить  

стандартные правила да, а вот свои?  не всё можно обработать через через PHP

Ссылка на сообщение
Поделиться на других сайтах

Не знаю, насколько было бы правильно если бы система ЧПУ обрабатывалась через PHP, но это однозначно было бы удобнее для установки некоторых плагинов, требующих правки в .htaccess

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Не знаю, почему все зациклились на одном лишь .htaccess? Неужели, никто не делает правки, например, в файле engine/classes/js/dle_js.js ? В моем случае, для реализации select[multiple] приходится менять 

$.each($("#ajaxnews"+a).serializeArray(),function(a,c){b[c.name]=c.value})

на 

$.each($("#ajaxnews"+a+" :input"),function(){b[$(this).attr("name")]=$(this).val()||''})


Сделайте возможным редактировать js и css файлы через систему плагинов. По моему скромному субъективному мнению, это будет лучшим введением в новой версии. 

Ссылка на сообщение
Поделиться на других сайтах
  03.10.2018 в 14:08, yeahga сказал:

Сделайте возможным редактировать js и css файлы через систему плагинов. По моему скромному субъективному мнению, это будет лучшим введением в новой версии. 

Расширить  

JS статические файлы которые загружает браузер с сервера напрямую, минуя DLE. Подключайте свои скрипты со своим функционалом, через ту же систему плагинов, а не правьте стандартный JS

Ссылка на сообщение
Поделиться на других сайтах
  03.10.2018 в 17:50, celsoft сказал:

JS статические файлы которые загружает браузер с сервера напрямую, минуя DLE.

Расширить  

Да, но.. /engine/classes/min/index.php?f=engine/classes/js/dle_js.js

Ссылка на сообщение
Поделиться на других сайтах
  03.10.2018 в 18:46, yeahga сказал:

Да, но.. /engine/classes/min/index.php?f=engine/classes/js/dle_js.js

Расширить  

Это сжатие и такая же прямая отдача, плюс далеко не все включают сжатие.

Ссылка на сообщение
Поделиться на других сайтах
  03.10.2018 в 18:50, celsoft сказал:

Это сжатие и такая же прямая отдача, плюс далеко не все включают сжатие.

Расширить  

Я понимаю. Я имел в виду, что можно отдавать правленый js файл.

Ссылка на сообщение
Поделиться на других сайтах
  03.10.2018 в 18:56, yeahga сказал:

Я понимаю. Я имел в виду, что можно отдавать правленый js файл.

Расширить  

В одном случае, если включена одна настройка, то отдавать, а если не включена, то не отдавать? Нет. Этого в DLE быть не может, как функция вводящая в заблуждение.

Ссылка на сообщение
Поделиться на других сайтах
  04.10.2018 в 10:40, celsoft сказал:

В одном случае, если включена одна настройка, то отдавать, а если не включена, то не отдавать?

Расширить  

Та нет же. Отдавать правленый файл в любом случае. Можно просто патчить файл. Не вижу ни одной причины, мешающей реализовать это. А так получается недосистема плагинов, которая работает на 50% В чем смысл, когда из релиза в релиз приходится делать правки вручную? 

  04.10.2018 в 10:40, celsoft сказал:

В одном случае, если включена одна настройка, то отдавать, а если не включена, то не отдавать?

Расширить  

Вы серьезно, или решили поиздеваться? 

Ссылка на сообщение
Поделиться на других сайтах
  04.10.2018 в 15:42, yeahga сказал:

Та нет же. Отдавать правленый файл в любом случае. Можно просто патчить файл. Не вижу ни одной причины, мешающей реализовать это. А так получается недосистема плагинов, которая работает на 50% В чем смысл, когда из релиза в релиз приходится делать правки вручную? 

Расширить  

Вы не понимаете сути системы плагинов. Плагины меняют PHP коды, т.е. влияют на скрипты самой CMS, а не на статические файлы. Это касается любой CMS. Своя статика отдается отдельными своими также статическими файлами. Нет ниодной необходимости править JS файлы, любое действие на JS можно отменить и заменить на свой без правки JS файлов. Нет ниодной необходимости править стандартные JS файлы. Если не у вас не достаточно знаний JS, то это не значит что вашу возможность нельзя сделать без правки этого файла.

 

  04.10.2018 в 15:42, yeahga сказал:

Вы серьезно, или решили поиздеваться? 

Расширить  

Серьезно. Если вы не знали, то этот путь что вы привели не всегда в DLE, а только при комбинации определенных настроек, когда их нет, статика идет в браузер напрямую минуя скрипты.

Ссылка на сообщение
Поделиться на других сайтах
  05.10.2018 в 19:55, Captain сказал:

Ленивые люди чушь пишут, не обращайте внимание. ИМХО.;)

Расширить  

мне кажется тут дело даже не в лени, а в бональном «докопаться».

Я уже тут почти неделю читаю «выпады» геймера и ему подобных, которые зацепились за слова разработчика о нежелании бесполезно нагружать движок системой типа роутинга на php и в тоже время введением новой системы рейтинга, что не может ставиться ни в какое сравнение по степени нагрузки на сервер. И ни как не могу понять зачем менять .htaccess? чем ссылка /?do=mymod отличается от /mymod/ ??? Как не крути, но ПС вообще параллельно какой адрес индексировать.

Делал сайт для своей компании по онлайн бронированию авиабилетов, вся инфа по городам, странам, аэропортам в базе храниться независимо от dle и ни как с движком не связана, поэтому для вывода всего этого пришлось писать отдельные модули, в итоге от dle осталась только главная страница и страница обратной связи, ну и парочка статических страниц. В .htaccess не сделал не одной правки, всё через параметры и ни чего, всё отлично проиндексировалось и работает.

 

Ну ум приходит только 2 вещи, перенаправление с http на https (которое уже сделали) и перенаправление с www на без или наоборот. Ну и опять же, если в настройках сайта прописать домен без www, то на страницах сайта везде прописана каноническая ссылка на то, как указано в настройках. Поэтому и тут осой необходимости делать перенаправление нет.

 

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

Ссылка на сообщение
Поделиться на других сайтах
  05.10.2018 в 20:41, odys сказал:

мне кажется тут дело даже не в лени, а в бональном «докопаться».

Я уже тут почти неделю читаю «выпады» геймера и ему подобных, которые зацепились за слова разработчика о нежелании бесполезно нагружать движок системой типа роутинга на php и в тоже время введением новой системы рейтинга, что не может ставиться ни в какое сравнение по степени нагрузки на сервер. И ни как не могу понять зачем менять .htaccess? чем ссылка /?do=mymod отличается от /mymod/ ??? Как не крути, но ПС вообще параллельно какой адрес индексировать.

Делал сайт для своей компании по онлайн бронированию авиабилетов, вся инфа по городам, странам, аэропортам в базе храниться независимо от dle и ни как с движком не связана, поэтому для вывода всего этого пришлось писать отдельные модули, в итоге от dle осталась только главная страница и страница обратной связи, ну и парочка статических страниц. В .htaccess не сделал не одной правки, всё через параметры и ни чего, всё отлично проиндексировалось и работает.

 

Ну ум приходит только 2 вещи, перенаправление с http на https (которое уже сделали) и перенаправление с www на без или наоборот. Ну и опять же, если в настройках сайта прописать домен без www, то на страницах сайта везде прописана каноническая ссылка на то, как указано в настройках. Поэтому и тут осой необходимости делать перенаправление нет.

 

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

Расширить  

Хотелось бы послушать о нагрузке от роутинга.

Ссылка на сообщение
Поделиться на других сайтах
  05.10.2018 в 21:09, Gameer сказал:

Хотелось бы послушать о нагрузке от роутинга.

Расширить  

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

Ссылка на сообщение
Поделиться на других сайтах
  05.10.2018 в 21:12, odys сказал:

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

Расширить  

Если разработчик не видит в этом смысла то флаг ему в руки. Я настаивать и орать тут не собираюсь, его право. Так же как и нет офф поддержки nginx на сей день.

Но вот самое забавное что ты написал

  05.10.2018 в 20:41, odys сказал:

которые зацепились за слова разработчика о нежелании бесполезно нагружать движок системой типа роутинга на php и в тоже время введением новой системы рейтинга, что не может ставиться ни в какое сравнение по степени нагрузки на сервер.

Расширить  

В какое же? Насколько больше будет нагрузка? DLE не сможет больше запустить на 8Mb оперативной памяти? Придется брать сервер с 16Mb?

Ссылка на сообщение
Поделиться на других сайтах
  05.10.2018 в 21:16, Gameer сказал:

В какое же? Насколько больше будет нагрузка? DLE не сможет больше запустить на 8Mb оперативной памяти? Придется брать сервер с 16Mb?

Расширить  

ты уже из-за кучи своих сообщений в каждой теме забыл, что @celsoft писал, что нагрузка в рейтинге мизерная

 

  05.10.2018 в 20:41, odys сказал:

которые зацепились за слова разработчика

Расширить  

Я просто процитировал, ещё раз повторюсь, это не мои слова, а разработчика.

Ссылка на сообщение
Поделиться на других сайтах
  05.10.2018 в 10:03, celsoft сказал:

любое действие на JS можно отменить и заменить на свой без правки JS файлов

Расширить  

Вы правы, пожалуй можно обойтись этим. 

 

  05.10.2018 в 10:03, celsoft сказал:

Если не у вас не достаточно знаний JS, то это не значит что вашу возможность нельзя сделать без правки этого файла.

Расширить  

Я не отрицал, что ее можно сделать без правки этого файла. Просто в некоторых случаях проще или правильнее сделать правку именно в этом файле.

 

  05.10.2018 в 10:03, celsoft сказал:

Если вы не знали, то этот путь что вы привели не всегда в DLE, а только при комбинации определенных настроек, когда их нет, статика идет в браузер напрямую минуя скрипты.

Расширить  

Я знаю. Этот путь привёл лишь в качестве примера, в контексте того, что JS файлы не всегда минуют DLE.

 

  03.10.2018 в 18:50, celsoft сказал:

плюс далеко не все включают сжатие

Расширить  

Я сам не включаю.

ПС: прошу прощения за потраченное время.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...