Обновление CMS

Модуль «Обновление CMS» обязателен для установки. Он относится к CMS «Управление» и является частью ядра DIAFAN.CMS. Имеет только административную часть.

Для корректной работы модуля необходимо PHP-расширение ZipArchive.

Автообновление

Модуль позволяет получать обновления для Вашей DIAFAN.CMS с нашего сервера.

При первой установке DIAFAN.CMS создается так называемая «точка возврата», которая содержит резервные копии всех установленных файлов «из коробки». В дальнейшем при получении обновлений, DIAFAN.CMS создает точки возврата и сохраняет отдельно обновленные версии файлов.

Обновления для DIAFAN.CMS проверяются только по Вашему запросу! Необходимо зайти в модуль «Обновление CMS» и нажа кнопку «Проверить обновление». Если для Вашей версии DIAFAN.CMS есть изменения, Вы увидите список обновлений, доступных для скачивания, и под списком будет кнопка «Скачать».

Проверка обновлений

После клика по ней обновления начнут последовательно скачиваться. Если прервать закачку до завершения, при следующей проверке список обновлений будет скорректирован. Продолжить прерванное скачивание можно аналогичным способом – с помощью кнопки «Скачать» под списком. В обновлении могут участвовать все файлы DIAFAN.CMS, в том числе шаблоны, файлы стилей и изображения. При этом пропустить какой-либо из пакетов невозможно, система автоматически проверяет целостность каждого обновления.

При каждом скачивании обновлений точки возврата создаются автоматически. После скачивания обновления необходимо нажать кнопку «Применить» (она показывается на экране после последнего скачанного обновления). Применены будут все обновления от текущей точки возврата до последнего выполненного обновления.

Проверка обновлений

Как работают обновления?

  1. Сгенерируется тема. Что это значит? Все полученные обновленные файлы с нашего сервера сравниваются с текущими файлами всей системы в текущей точке возврата. Если DIAFAN.CMS находит, что какие-то текущие файлы системы не соответствуют полученным из обновления, они будут перемещены в папку custom в текущую тему. Если текущей темы нет, то будет создана новая.

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

  3. Если в обновлении предусмотрено изменение структуры базы данных, то оно будет произведено.

Что делать, если функционал обновления не устраивает?

Можно вернуть всё обратно в один клик. Для этого достаточно зайти в модуль «Обновление CMS» и нажать «Применить» напротив любой предыдущей точки возврата. Откат к сохраненному состоянию касается также базы данных. Если с ней были произведены какие-то манипуляции, после применения точки возврата структура БД вернется к прежнему состоянию.

Внимание!
Восстановлению с помощью точек возврата подлежит только структура базы данных, не содержимое! Для полной резервной копии нужно делать сначала экспорт, а потом импорт БД.

Можно ли удалять точки возврата?

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

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

Как посмотреть детализацию точек возврата?

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

Обновления доступны только для сайтов с активированными лицензиями DIAFAN.CMS.

Подключение

Подключаемая часть – файл modules/update/update.inc.php. В нем описан класс Update_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_update. Экземпляр класса создается при первом вызове переменной.

Методы

void first_return () – Добавляет первую точку возврата.

Пример:

// при установки DIAFAN.CMS
$this->diafan->_update->first_return();

array get_files (integer $id) – Получает обновленные файлы точки с содержимым.

  • integer $id: идентификатор точки

Пример:

// получает файлы точки возврата ID=3
$rows = $this->diafan->_update->get_files(3);
print_r($rows);
/* выведит:
Array
(
    [modules/news/news.model.php] => <?php
        ...
        class News_model extends Model
        {
        ...
    [modules/news/news.php] => <?php
        ...
        class News extends Controller
        {
        ...
    ...
) */

array get_all_files (integer $id) – Получает все файлы DIAFAN.CMS в точке с содержимым.

  • integer $id: идентификатор точки

Пример:

// получает все файлы DIAFAN.CMS, актуальные для точки возврата ID=3
$rows = $this->diafan->_update->get_all_files(3);
print_r($rows);
// выведет файлы в формате как функция get_files()

boolean recover_return (integer $id, [boolean $replace = false]) – Восстонавливает файл точки с содержимым.

  • integer $id: идентификатор точки
  • boolean $replace: восстановление с заменой файла точки

boolean current (integer $id, [boolean $mod_protected = true]) – Применяет точку возврата.

  • integer $id: номер точки
  • boolean $mod_protected: включает защищенный режим работы CMS после применения точки

Файлы

  1. modules/update/admin/js/update.admin.count.js – количество доступных обновлений, JS-сценарий;

  2. modules/update/admin/js/update.admin.js – обновление, JS-сценарий;

  3. modules/update/admin/update.admin.php – точки возврата;

  4. modules/update/admin/update.admin.action.php – точки возврата;

  5. modules/update/admin/update.admin.count.php – количество доступных обновлений для меню административной панели;

  6. modules/update/update.inc.php – подключение модуля;

  7. modules/update/update.install.php – установка модуля.

Ваши комментарии и дополнения

Ваш комментарий будет первым.

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