Задать вопрос
@dimuchios

Как вывести всплывающее окно на всех сайтах находящихся в подпапках?

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

PS: В каждой подпапке находится отдельный сайт со своей cms(cms везде одинаковая).

Структура:
blabla.site
blabla.site/test1/
blabla.site/test2/
blabla.site/test3/
blabla.site/test4/
blabla.site/test5/
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
есть 2 дериктивы php.ini
auto_prepend_file
auto_append_file

https://www.php.net/manual/ru/ini.core.php#ini.aut...

С помощью них можно заинклудить автоматически файл в начало или конец всех скриптов
Эти дериктивы можно задать как через php.ini так и через настройки веб сервера, в апаче через .htaccess

Текущий путь смотрится через значение переменной $_SERVER['REQUEST_URI'] вокруг которого можно построить всю логику

Чтобы не сломать ничего в работе CMS нужно будет очень тонко подойти к внедрению скрипта, если пойдете по этому пути, так как инклуд одного скрипта во все другие может сломать что угодно в логике.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Само всплывающее окно и его реализация всплывания не интересует,

ну, тогда никак
Ответ написан
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Если все сайты не подключают какой-то один и тот же скрипт/шаблон, то единственный вариант - это обойти все папки и добавить код куда надо (в html шаблон или какой-то js файл, я хз, как ваша cms устроена).

Если такой файл есть, то допишите код окна туда. Если cms одна и та же и сайты сделаны однообразно, то есть надежда, что такой файл существует. Можно вообще извратиться (если решение временное), вдруг у вас один и тот же условный /jquery.js подключатся во всех подпапках. Вот в него и впихивайте хоть alert(), хоть dom-манипуляцию.

Если же в каждой папке полностью независимая копия, то - увы.

Раз все cms одинаковые, то, скорее всего, есть какой-то одинаково называющийся файл во всех, в который код окна и можно добавить. Но не обязательно это делать руками N раз.

Все эти файлы надо найти каким-то скриптом, а потом как-то в них вставить код.
Если на линухе, то можно файлы найти аж так - передайте "./*/some-fixed-path/file-we-need.js" в качестве параметра в скрипт и bash сам раскроет шаблон и найдет все файлы. А скрипт может вызывать тупо patch < diff.txt. Вы руками внесите изменения в один файл, сделайте diff, и его результат скармливайте patch. Если изменения можно внести в одно и то же место во всех файлах (в самое, начало, например), то все сработает без ошибок. Читайте man diff, man patch. Еще можно man find.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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