Как быть, если в обновлении CMS есть изменения в шаблоне

4563
""


Здравствуйте, друзья!

Так как, судя по комментариям, у многих возникли проблемы с обновлением 2.4.0, я пишу этот пост.
В нем пойдет речь об изменениях в шаблоне по сравнению с версией InstantCMS 2.3.0.
Цель этого поста в том, чтобы вы поняли подход при обновлении от версии к версии, на что нужно обращать внимание.
Важно понимать, что любое обновление CMS несет в себе исключительно улучшение функционала. И как бы мы не старались сделать обновление максимально простым, всегда будут некоторые вещи, требующие осознанного понимания перед обновлением. Если бы у всех был один и тот же шаблон, то проблем с обновлением не было бы ни у кого (некоторые любят сравнивать обновление приложений для Андроид с обновлением CMS).

В тексте будет идти речь о шаблоне default, однако, если у вас свой шаблон, то описываемые здесь изменения вам необходимо помимо дефолтного внести и в аналогичные файлы своего шаблона.
Например, ваш шаблон находится в папке /templates/my_best_template/, а я описываю изменение в файле шаблона /templates/default/assets/fields/date.tpl.php
Вы должны проверить, нет ли в вашем шаблоне этого файла (/templates/my_best_template/assets/fields/date.tpl.php), и если он есть, то либо заменить его дефолтным, либо внести в него соответствующие правки.
Важно отметить, что после окончания внесения правок вы должны обязательно очистить кеш вашего браузера и очистить содержимое папок /cache/static/css/ и /cache/static/js/.
Очистить - это значит удалить все внутри папки, при этом саму директорию не удалять.

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

1. Качаем полный дистрибутив предыдущей версии InstantCMS, разархивируем его в любую директорию.
2. Качаем пакет обновления InstantCMS с предыдущей на текущую версию.
3. Разрешаем в winmerge сравнение директорий.
4. Добавляем к сравнению директорию шаблона предыдущей версии и директорию шаблона из пакета обновления.

Выбираем в меню "вид" winmerge отображение различных файлов и уникальных в пакете обновления (в окне сравнения это будет или справа или слева). В итоге получаем список всех измененных и добавленных файлов.
В обновлении InstantCMS 2.4.0 этих файлов 60, из них 6 файлов добавлены. Не стоит пугаться этой цифры, все не так страшно.

""

Какие файлы добавлены

/templates/default/js/admin-dashboard.js
/templates/default/js/admin-chart.js
/templates/default/controllers/content/from_friends.tpl.php
/templates/default/controllers/rss/yandex_feed.tpl.php
/templates/default/controllers/search/opensearch.tpl.php
/templates/default/images/wsp.png

Если у вас cвой шаблон, то скопируйте в него файлы

/templates/default/js/admin-dashboard.js
/templates/default/js/admin-chart.js
/templates/default/images/wsp.png
/templates/default/controllers/rss/yandex_feed.tpl.php

по аналогичным путям.

Изменения в CSS

Вот список файлов css, изменных в этой версии:

/templates/default/controllers/activity/styles.css
/templates/default/controllers/admin/styles.css
/templates/default/controllers/search/styles.css
/templates/default/controllers/users/styles.css
/templates/default/css/theme-widgets.css
/templates/default/css/theme-layout.css
/templates/default/css/theme-gui.css
/templates/default/css/theme-content.css

Все правки в них носят лишь мелкие исправления небольших недочетов дефолтного шаблона: например, для фото в записях добавлена обтекаемость, где-то выровнены отступы, где то выравнен шрифт и дополнена адаптивность и так далее.
В некоторых файлах добавлены правила css:

/templates/default/controllers/admin/styles.css
/templates/default/controllers/search/styles.css

""


В стилях админки добавлены записи, описывающие новую главную страницу, а в стилях компонента поиск добавлен стиль, описывающий вывод изображений в результатах поиска.
Таким образом, важно понимать, что изменения в css могут нести как мелкие улучшения дефолтного шаблона, которые вовсе не обязательны для вашего шаблона, так и новые стили исходя из нового функционала очередной версии InstantCMS. Улучшения дефолтного шаблона, в случае если у вас свой шаблон, вам не нужно, а новые стили можно просто скопировать и вставить в свой файл стилей. Повторюсь, наиболее удобно визуально оценить изменения при помощи программ сравнения, например winmerge.

Изменения в javascript

Изменения в основном коснулись дополнением функционала, например html5 уведомления, улучшение функциональности и юзабилити.
Опять же, если у вас свой шаблон и перечисленные файлы ниже есть в нем по аналогичному пути, то скопируйте эти файлы:

/templates/default/js/messages.js
/templates/default/js/jquery-modal.js
/templates/default/js/core.js
/templates/default/js/admin-widgets.js

Изменения в файле схемы позиций виджетов

Единственное изменение заключается в том, что в файле scheme.html теперь можно писать php код, например так:

Код PHP:
  1. <?php if($this->options['aside_pos'] == 'left'){ ?>
  2. <td width="35%">
  3. {position:right-top}
  4. {position:right-center}
  5. {position:right-bottom}
  6. </td>
  7. <?php } ?>
Таким образом, этот файл не требует принудительного обновления.

Изменения в файлах шаблонов

Множество изменений не являются принудительными и не могут повлиять на работоспособность, однако есть и файлы, которые необходимо заменить в вашем шаблоне, если таковые уже есть:

Фронтэнд:

/templates/default/assets/ui/menu.tpl.php
/templates/default/assets/ui/form.tpl.php
/templates/default/controllers/markitup/widget.tpl.php
/templates/default/controllers/recaptcha/captcha.tpl.php
/templates/default/controllers/search/index.tpl.php
/templates/default/widgets/menu/menu.tpl.php

Бекэнд (админка):

/templates/default/controllers/admin/widgets.tpl.php
/templates/default/controllers/admin/install_package_info.tpl.php
/templates/default/controllers/admin/install_ftp.tpl.php
/templates/default/controllers/admin/install_finish.tpl.php
/templates/default/controllers/admin/index.tpl.php
/templates/default/controllers/admin/ctypes_field_options.tpl.php
/templates/default/controllers/admin/controllers_edit.tpl.php

Изменения же в оставшихся файлах фатально на работоспособность не повлияют, но новый функционал, внедренный в InstantCMS 2.4.0 может работать некорректно, поэтому оставшиеся файлы желательно адаптировать в ваш шаблон.
Например, в списках типов контента добавился функционал связанный с приватностью, поэтому в шаблоны вывода добавлен функционал ее регулирования. В 2.3.0 версии вывод изображения в списке был вот такой:

Код PHP:
  1. <div class="photo">
  2. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  3. <?php echo html_image($item['photo'], $size, $item['title']); ?>
  4. <?php unset($item['photo']); ?>
  5. </a>
  6. </div>
а в новой версии стал вот такой:

Код PHP:
  1. <div class="photo">
  2. <?php if ($is_private) { ?>
  3. <?php echo html_image(default_images('private', $size), $size, $item['title']); ?>
  4. <?php } else { ?>
  5. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  6. <?php echo html_image($item['photo'], $size, $item['title']); ?>
  7. </a>
  8. <?php } ?>
  9. <?php unset($item['photo']); ?>
  10. </div>
Т.е. по сути добавились проверки приватности. В который раз повторюсь, воспользуйтесь winmerge и все изменения вы увидите визуально.

""


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

http://vk.com/instantvideo
reCAPTCHA для InstantCMS 1.10.5 и выше | Компонент пинг сервисов обновления
Комментарии (17)
Алексей Тимофеев 9 января 2016 в 17:13 0
small user social cms
Большое спасибо!
Алексей 9 января 2016 в 17:39 0
small user social cms
Вчера только поисковики этой темой "достал", нашел ответы и winmerge скачал.... facepalm , но Огромнейшее спасибо за этот пост ....
Андрей 9 января 2016 в 17:41 0
small user social cms
Araxis Merge для сравнения и замены конечно лучше, но обновление лучше доверить профессионалам.
Fuze 9 января 2016 в 17:43 +1
small user social cms
Araxis Merge стоит денег (краденным варезом мы ведь не пользуемся, верно), а для подобных задач вполне хватит winmerge.
Андрей 9 января 2016 в 18:01 0
small user social cms
если сравнивать Araxis Merge и Winmerge, то для меня первое лучше, так как проще и понятней в пользовании. (пользовался и тем и тем)
Soul 9 января 2016 в 17:54 +2
small user social cms
Пост в закладки smile . Когда-то сам поднимал тему касаемо обновления шаблонов (после перехода с DLE - где каждое обновление системы "подкреплялось" постом "Адаптация Dle шаблонов с х.1 -> х.2").
Dost 9 января 2016 в 18:44 +1
small user social cms
Для того чтобы обновлять неплохо бы структуру шаблонов знать. В документации этого нет(
Val 9 января 2016 в 18:57 +2
small user social cms
Так в чем же дело? Разберитесь и напишите или в блоге или разработчикам скиньте свою версию, а они добавят в справку joke
Jestik 9 января 2016 в 19:40 +2
small user social cms
Да да, документации по шаблонам очень не хватает, и какого то мануала по его созданию или хотя бы по натяжке хтмл шаблона
Dost 9 января 2016 в 19:51 0
small user social cms
Да вот в том то и дело что кто разобрался особо не горит желанием написать. Бесплатных шаблонов...один вроде? У меня на 2 нет ни одного сайта. а тут судя по голосованиям больше половины перешли на вторую версию движка.
Val 9 января 2016 в 21:34 +1
small user social cms
Я понимаю, что хочется всего готового... Но те кто пишут документацию в настоящий момент заняты гораздо более важными делами, и при этом все же находят время и понемногу дополняют справку.
А те другие кто разобрался (я не в их числе))), буду разбираться немного позже) в принципе не обязаны всех обучать вокруг, это дело добровольное)) Вот вы себя спросите, когда во всем разберетесь хватит у вас времени и желание свои знания расписать и выложить здесь "по полочкам"? Я думаю к тому моменту у вас появятся уже новые цели и задачи, на которые вы будете тратить свои силы.
Dost 10 января 2016 в 00:05 0
small user social cms
С какой целью вы мне это пишете? Меня устраивает первая ветка. Я написал, то что думаю. Не у всех есть возможность изучить строение методом тыка, некоторые и по документации не могут. А то, что вы мне рекомендуете примените к себе.
Jestik 10 января 2016 в 12:40 0
small user social cms
На первую ветку для прошлых версий есть документация и примеры не от авторов движка
Evanescence 9 января 2016 в 19:01 +10
small user social cms
Может кому то понадобиться.
Настройки для WinMerge, если хотите более удобный вид, т.е. показывает по папкам и если изменение нет, то выводить зеленую иконку.
""

По умолчанию выводить все файлов, сам не помню как упорядочил по папкам, по этому экспортировал настройки...
Скачайте и импортируйте.
globator 1 февраля 2016 в 19:22 0
small user social cms
Кажется это Вид -> Режим дерева
Alexprofi 30 января 2016 в 16:37 0
small user social cms
Подскажите пожалуйста куда копать.
После обновления (еще до 2.2.0) на стороннем шаблоне появилась такая проблема: при попытке добавления записи в некоторых типах контента (не во всех), появляется такая ошибка.
Alexprofi 30 января 2016 в 16:40 0
small user social cms
Недостающие файлы добавил, правки вроде сделал, - не помогает.