Отправлено 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 может измениться и в нем придется вноь прописывать этот фрагмент кода.