Уважаемые разработчики, проконсультируйте, пожалуйста.
Zebrum управляет конкретным сайтом, в то же время скрипты этого сайта могут создать какие-то свои файлы в отдельных папках, о которых Zebrum, естественно, ничего не знает.
Попытка запустить синхронизацию (публикацию) этого сайта в Zebrum приводит к удалению этих файлов/папок на удаленном сервере. Есть ли какое-то тривиальное решение для фильтрации таких папок в ядре или делать свою дописку к ядру, молясь, чтобы следующее обновление ядра ее (дописку) не потёрло?
0
Как запретить Zebrum синхронизацию отдельных папок сайта?
Автор
Roman
, 22.04.2011, 12:29
Сообщений в теме: 3
#1
Отправлено 22.04.2011, 12:29
#2
Отправлено 25.04.2011, 06:51
Проблема запрета синхронизации отдельных папок решена, хотя и криво.
Кому интересно, рассказываю, как это сделать. Есть к примеру у вас на одном из сайтов, управляемых Zebrum-ом папка secretcontent в том же каталоге, где и все, что управляется zebrum-ом. И в ней сам сайт динамически (без зебрума) создает файлы. Например, отзывы посетителей можно складывать туда. Если там есть какие-то отзывы, а zebrum о них ничего не знает, то попытка опубликовать сайт в zebrum сразу же потрёт эту папку на ftp. Выход: ищем в ядре системы файл /application/library/Zebrum/Site/Deploy.php, находим в нем функцию syncronizeFiles() и сразу после строчки $remoteFiles = $this->hook->listFiles($rules); вешаем свой фильтр, отсекающий из массива $remoteFiles файлы, начинающиеся на secretcontent. Примерно вот так:
foreach ($remoteFiles as $key=>$file) {
if (preg_match("/^secretcontent/is", $key)) {
unset($remoteFiles[$key]);
}
}
P.s. Если обновляете ядро системы, не забудьте о том, что Deploy.php может измениться и в нем придется вноь прописывать этот фрагмент кода.
Кому интересно, рассказываю, как это сделать. Есть к примеру у вас на одном из сайтов, управляемых Zebrum-ом папка secretcontent в том же каталоге, где и все, что управляется zebrum-ом. И в ней сам сайт динамически (без зебрума) создает файлы. Например, отзывы посетителей можно складывать туда. Если там есть какие-то отзывы, а zebrum о них ничего не знает, то попытка опубликовать сайт в zebrum сразу же потрёт эту папку на ftp. Выход: ищем в ядре системы файл /application/library/Zebrum/Site/Deploy.php, находим в нем функцию syncronizeFiles() и сразу после строчки $remoteFiles = $this->hook->listFiles($rules); вешаем свой фильтр, отсекающий из массива $remoteFiles файлы, начинающиеся на secretcontent. Примерно вот так:
foreach ($remoteFiles as $key=>$file) {
if (preg_match("/^secretcontent/is", $key)) {
unset($remoteFiles[$key]);
}
}
P.s. Если обновляете ядро системы, не забудьте о том, что Deploy.php может измениться и в нем придется вноь прописывать этот фрагмент кода.
#3
Отправлено 24.08.2011, 08:07
Добавили в Zebrum CMS функционал по настройке правил синхронизации.
Правила настраиваются в разделе управления файлами сайта.
Правила настраиваются в разделе управления файлами сайта.
#4
Отправлено 12.03.2015, 18:01
пол дня бился над подобным вопросом:
добавлял в "шаблон" всякие "добавить в закладки в соц.сеть" и "систему комментирования" - публиковал страницу и все нафiг перезаписывалось.
Спасибо, за инструкцию!!!
добавлял в "шаблон" всякие "добавить в закладки в соц.сеть" и "систему комментирования" - публиковал страницу и все нафiг перезаписывалось.
Спасибо, за инструкцию!!!
Количество пользователей, читающих эту тему: 10
0 пользователей, 10 гостей, 0 скрытых пользователей