Новогодние каникулы прошли не зря
Представляю публике следующую версии своего компонента.
Компонент "Мои патчи" v.1.1
Установка/обновление стандартным (для ICMS2) способом.
Минимально необходимая версия системы 2.1.2
При обновлении версии 1.0, данные базы патчей сохраняется.
Но это не значить, что перед обновлением не надо делать бэкап.
Бэкап наше все — поэтому его следует делать всегда!
То есть компонент изменяет содержимое файлов InstantCMS. Впрочем для этого компонент и создавался.
Поэтому использование компонента подразумевает использование на свой страх и риск.
Мною были предприняты всевозможные защиты "от дурака", но идеального кода не бывает.
Поэтому пользуйтесь данным компонентом с осторожностью!
А на живых сайта — с двойной осторожностью.
Как говорится, автор никакой ответственности за причиненные убытки не несет.
Изменения в версии 1.1
+ добавлена возможность выгружать и загружать патчи в/из файлов
+ добавлена проверка соответствия версии патча и системы
+ добавлена возможность включать/отключать маркер места где производилась замена кода (вкладка "Опции")
+ добавлена возможность изменять вид маркера (Осторожно! Защиты от "дурака" в данной опции пока нет)
— из дистрибутива удалены данные демо — патча необходимого для работы компонента (его теперь необходимо скачать отдельно)
1.1 Создаете патч, описывая его назначение.
1.2. Добавляете в созданный патч файлы которые необходимо изменить, с указанием что на что нужно поменять.
В данной версии возможно поменять код только в одном месте. То есть, если заменяемый код встретится несколько раз в файле — то сработает "ловушка" и будет выведено предупреждение. В дальнейшем, возможно, будет разработан механизм для определения количества мест для замены.
2.1 Используя пункт "Загрузка патча" можно загрузить созданный в ручную или ранее выгруженный файл с патчем.
2.2 Компонент понимает как архив (расширение — zip) с патчем/набором патчей так и отдельно созданный файл патча (расширение — patch). Сам файл патча представляет собой обычный текстовый файл с не сложной и вполне понятной структурой. Для примера и знакомства со структурой используйте Демо-патч, который кстати нужно обязательно загрузить в компонент после его установки и применить. Данный патч необходим для корректной работы компонента и для проверки его работоспособности.
2.3 Используя пункт "Выгрузка патча" в разделе "Действия" списка всех патчей можно выгрузить патч для сохранения его или обмена с другими участниками сообщества.
3. После внесения всех файлов — для применения всех "включенных" патчей необходимо нажать клавишу "Применить". Применение патчей каждый раз производится заново.
4. Как патчи так и файлы в патчах можно включать/выключать. Понятное дело, что выключенные патчи/файлы в процессе патчения участия не принимают.
5. Поле "порядок" определяет порядок применения патчей. То есть сначала все файлы для патчения сортируются по порядку патчей и уже в самом патче по порядку файлов.
6. Для восстановление системы в первоначальное состояние используйте клавишу "Восстановить". При этом все измененные файлы возвращаются в исходное состояние, а все патчи выключаются.
7. Если при редактировании патча буде удален файл, который больше нигде (имеется ввиду в наборах других патчей) не используется, то данный файл восстанавливается в своё первоначальное состояние автоматически (без использования клавиши "Восстановить").
8. Если после применения патчей что-то пошло не так и Вы не можете восстановить систему клавишей "Восстановить", то зайдите по фтп на свой сервер и просто переименуйте сохраненные оригиналы патченных файлов (имя_патченного_файла.*.original) в его первоначальное имя. (убрав приставку .original)
9. Компонент в местах замены кода помечает маркерами начала замены участка кода и его окончание. Данная функция может быть отключена в разделе "Опции — Конфигурация маркера". Также можно самостоятельно задать вид маркера, при этом можно использовать переменную $description, которая выводит название патча. Изменяйте вид маркера очень аккуратно! Так как защиты от "дурака" у данной функции пока нет, последствия могут быть самые непредсказуемые. Вообще-то использовать маркер лучше только при отладке патча, в остальных случаях его лучше отключать.
1. Добавляет три новых стиля. Два из них для индикации применения патча/файлов (применен или есть ошибки). Один стиль для иконки в админ панели
2. Изменяется схема обработки массива с параметром "flag" в grid-шаблонах, только для компонента "mypatch"
3. Создается иконка компонента в админ панели.
1. Возможность не изменять, а (при необходимости) создавать новые файлы.
2. Выгрузка/загрузка патчей из текстовых (или *.cvs ?) файлов, для более удобного обмена патчами, чтобы не вбивать все ручками.
3. Обработка более одного фрагмента заменяемого кода в одном файле. Сейчас это тоже можно сделать — но немного извратным способом.
4. Включение/отключение комментариев в изменяемом файле.
5. Выгрузка одновремено ВСЕЙ базы патчей (бэкап)
6. Возможность включение/отключение комментариев в конкретном патче/файле
7. Разделение патчей на группы/категории — патч системы, патч шаблона, патч wysiwyg-редактора и т.д
8. Вывод пути к файлам в виде древовидного меню (слева), как выводиться меню в контенте.
Тема на форуме о ходе работы над компонентом.
Прошу строго не судить. Здравая критика приветствуется.
C удовольствием выслушаю все замечания и пожелания
Приятных всем хаков!
Представляю публике следующую версии своего компонента.
Компонент "Мои патчи" v.1.1
Установка/обновление стандартным (для ICMS2) способом.
Минимально необходимая версия системы 2.1.2
При обновлении версии 1.0, данные базы патчей сохраняется.
Но это не значить, что перед обновлением не надо делать бэкап.
Бэкап наше все — поэтому его следует делать всегда!
Disclaimer
Данный компонент имеет деструктивные функции!То есть компонент изменяет содержимое файлов InstantCMS. Впрочем для этого компонент и создавался.
Поэтому использование компонента подразумевает использование на свой страх и риск.
Мною были предприняты всевозможные защиты "от дурака", но идеального кода не бывает.
Поэтому пользуйтесь данным компонентом с осторожностью!
А на живых сайта — с двойной осторожностью.
Как говорится, автор никакой ответственности за причиненные убытки не несет.
Изменения в версии 1.1
+ добавлена возможность выгружать и загружать патчи в/из файлов
+ добавлена проверка соответствия версии патча и системы
+ добавлена возможность включать/отключать маркер места где производилась замена кода (вкладка "Опции")
+ добавлена возможность изменять вид маркера (Осторожно! Защиты от "дурака" в данной опции пока нет)
— из дистрибутива удалены данные демо — патча необходимого для работы компонента (его теперь необходимо скачать отдельно)
1.1 Создаете патч, описывая его назначение.
1.2. Добавляете в созданный патч файлы которые необходимо изменить, с указанием что на что нужно поменять.
В данной версии возможно поменять код только в одном месте. То есть, если заменяемый код встретится несколько раз в файле — то сработает "ловушка" и будет выведено предупреждение. В дальнейшем, возможно, будет разработан механизм для определения количества мест для замены.
2.1 Используя пункт "Загрузка патча" можно загрузить созданный в ручную или ранее выгруженный файл с патчем.
2.2 Компонент понимает как архив (расширение — zip) с патчем/набором патчей так и отдельно созданный файл патча (расширение — patch). Сам файл патча представляет собой обычный текстовый файл с не сложной и вполне понятной структурой. Для примера и знакомства со структурой используйте Демо-патч, который кстати нужно обязательно загрузить в компонент после его установки и применить. Данный патч необходим для корректной работы компонента и для проверки его работоспособности.
2.3 Используя пункт "Выгрузка патча" в разделе "Действия" списка всех патчей можно выгрузить патч для сохранения его или обмена с другими участниками сообщества.
3. После внесения всех файлов — для применения всех "включенных" патчей необходимо нажать клавишу "Применить". Применение патчей каждый раз производится заново.
4. Как патчи так и файлы в патчах можно включать/выключать. Понятное дело, что выключенные патчи/файлы в процессе патчения участия не принимают.
5. Поле "порядок" определяет порядок применения патчей. То есть сначала все файлы для патчения сортируются по порядку патчей и уже в самом патче по порядку файлов.
6. Для восстановление системы в первоначальное состояние используйте клавишу "Восстановить". При этом все измененные файлы возвращаются в исходное состояние, а все патчи выключаются.
7. Если при редактировании патча буде удален файл, который больше нигде (имеется ввиду в наборах других патчей) не используется, то данный файл восстанавливается в своё первоначальное состояние автоматически (без использования клавиши "Восстановить").
8. Если после применения патчей что-то пошло не так и Вы не можете восстановить систему клавишей "Восстановить", то зайдите по фтп на свой сервер и просто переименуйте сохраненные оригиналы патченных файлов (имя_патченного_файла.*.original) в его первоначальное имя. (убрав приставку .original)
9. Компонент в местах замены кода помечает маркерами начала замены участка кода и его окончание. Данная функция может быть отключена в разделе "Опции — Конфигурация маркера". Также можно самостоятельно задать вид маркера, при этом можно использовать переменную $description, которая выводит название патча. Изменяйте вид маркера очень аккуратно! Так как защиты от "дурака" у данной функции пока нет, последствия могут быть самые непредсказуемые. Вообще-то использовать маркер лучше только при отладке патча, в остальных случаях его лучше отключать.
1. Добавляет три новых стиля. Два из них для индикации применения патча/файлов (применен или есть ошибки). Один стиль для иконки в админ панели
2. Изменяется схема обработки массива с параметром "flag" в grid-шаблонах, только для компонента "mypatch"
3. Создается иконка компонента в админ панели.
1. Возможность не изменять, а (при необходимости) создавать новые файлы.
3. Обработка более одного фрагмента заменяемого кода в одном файле. Сейчас это тоже можно сделать — но немного извратным способом.
5. Выгрузка одновремено ВСЕЙ базы патчей (бэкап)
6. Возможность включение/отключение комментариев в конкретном патче/файле
7. Разделение патчей на группы/категории — патч системы, патч шаблона, патч wysiwyg-редактора и т.д
8. Вывод пути к файлам в виде древовидного меню (слева), как выводиться меню в контенте.
Прошу строго не судить. Здравая критика приветствуется.
C удовольствием выслушаю все замечания и пожелания
Приятных всем хаков!
Реклама #
Алексей Т 9 лет назад #
Reborn 9 лет назад #
Хорошо бы взять за основу для этого компонента.
Скорпион 9 лет назад #
Боюсь для меня это сложно будет, да и привык я все делать своими руками, пусть будет "изобретение велосипеда", но это изобретение своего велосипеда :)
Да и немного практики в PHP мне не помешает, ибо в свое время, лет так надцать назад, я не уделил достаточного внимания данному языку :)
Теперь вот наверстываю :)
Reborn 9 лет назад #
Скорпион 9 лет назад #
Для запуска vqmod править сами файлы InstantCMS надо? Ну там код какой-либо вставить, для перехватов и преобразований на лету.
Или оригинальные файлы совсем-совсем не затрагиваются и используются как есть?
Reborn 9 лет назад #
Reborn 9 лет назад #
Если интересно, просто скачайте Ocstore , vqmod и не лишним будет менеждер. Хотел я портировать это все, да руки не доходят.
Скорпион 9 лет назад #
В моем же случае - измененные страницы статичны - и изменяются однажды - при применении патча.
Reborn 9 лет назад #
Пример: вы изменили файл /component/content/frontend.php.
На выходе в папке vqcache получаете файл vq2-component_content_frontend.php
Так же имеется vqmod manager для управления скриптами.
WebMan 9 лет назад #
WebMan 9 лет назад #
Reborn 9 лет назад #
Пропорционально использованию стандартной cms до момента перехода на новый уровень со всеми вытекающими.
Пока у меня при 6 к стр в одной категории с выборкой по более чем 100 атрибутов у 1 стр не возникло желания перенести все правки вручную, хотя конечно надеюсь наступит и этот момент, потрачу тогда день.
WebMan 9 лет назад #
Маркер места изменения кода - полезная штука. Действительно пригодится программистам не только при отладке, а и чтобы легче ориентироваться. Отличная идея!
С интересом буду ждать развития компонента.
Скорпион 9 лет назад #
На счет "маркера" - он и в первой версии был. Но не отключался. Просто в некоторых местах этот "маркер" вылазиет наружу, например при правке кода в шаблоне. Поэтому пришлось сделать возможность его отключения. Вообще я бы был очень благодарен, если бы мне кто-нибудь подсказал как правильно закоментировать "маркер", чтобы он не вылазил куда непоподя.
Скорпион 9 лет назад #
Не работает? Или это не кому не нужно?
Скорпион 9 лет назад #
Обнаружена зависимость компонента от версии PHP. Так как у меня по умолчанию везде (на стенде и на боевом сервере) стоит PHP 5.4 в двух местах в коде при использовании версии 5.3 получаем ошибку.
Исправил - архив перезалил.
Либо повторите установку либо можете сами поменять в файле - system\controllers\mypatch\backend\actions\patch_download.php
это
С неправильной версией PHP мой косяк - приношу извинения. Негоже использовать версию PHP отличную от минимальной версии требуемой для самого движка.
WebMan - еще раз большое спасибо.
WebMan 9 лет назад #
vikont 8 лет назад #
Попробовал воспользоваться вашим патчем и столкнулся с тем, что в нем можно только заменить одно на другое, а если надо вставить до, после или между какими то строчками, тогда что делать?
Скорпион 8 лет назад #
А в чем проблема вставки?
Посмотрите на демо-патч.
Там имеет место быть вставки дополнительных строк.
Ну и на пальцах попробую обьяснить.
Например есть код
в окно код для замены вставляем
Я про запятую после вставляемой строчки.
vikont 8 лет назад #
/*===== начало патча -> Правка файла шаблона NEWS поля "Возраст" =====*/ /*===== окончание патча -> Правка файла шаблона NEWS поля "Возраст" =====*/
Движек 2.4.0 как сделать комментарии не видными на сайте?
Скорпион 8 лет назад #
Скорпион 8 лет назад #
Также, в настройках, Вы можете поменять как будет выглядеть сам комментарий.
vikont 8 лет назад #
Можете подсказать?
Есть одно неудобство, весь патч вставляется одной длинной строкой, а не так как написан. Как это исправить?
Скорпион 8 лет назад #
Когда все настроено и работает?
Во время отладки - согласен - в них есть толк......но не более. Они для ОТЛАДКИ и предназначены.....чтобы применить и если что пошло не так - заглянуть в код и легко найти место применения патча и разобраться что не так.
На счет синтаксиса - имеется ввиду правил комментарий в коде.
Где-то достаточно одного слеша, гдето то нужно два , а гдето решетка.
Единственное мое "добавление" это параметр $description, который выводит название патча. По желанию его можно убрать и оставить только сами метки.
По поводу "одной строки" - хм....не должно быть так, там перевод строки вставляется. Может Ваш редактор как-то не корректно отображает код. Вы чем смотрите?
Скорпион 8 лет назад #
В планах отключение метки будет возможно для каждого отдельного патча.
BoAnRo 8 лет назад #
Скорпион 8 лет назад #
Особую популярность он не получил, поэтому не куда торопиться.
BoAnRo 8 лет назад #
А в целом это дополнение - просто супер!
Скорпион 8 лет назад #
Не должно такого быть.
Можно поподробней.....а лучше пришлите файлик патча - я попробую у себя.
BoAnRo 8 лет назад #
https://drive.google.com/open?id=0BwDEfleRxwZURzdNSVpUbS1GUlk
Один патч меняет цвет главного меню, второй - цвет заголовков виджетов. Там когда настраивается доступ до ФТП, нужно выбирать пассивный режим (по-умолчанию так стоит)?
Скорпион 8 лет назад #
Для того чтобы отменить патч, сначала нужно отменить все - нажатием "Восстановить".
Потом включить те что нужно - и снова нажать "Применить".
То есть отключения одного патча без других невозможно.
Знаю - косяк мой - в планах записан - но все руки не доберутся выпустить версию с исправлениями. :(
BoAnRo 8 лет назад #
Скорпион 8 лет назад #
BoAnRo 8 лет назад #
Скорпион 8 лет назад #
BoAnRo 8 лет назад #
BoAnRo 8 лет назад #
Скорпион 8 лет назад #
В планах - чекбокс, отключающий этого зверя - контролера версии.
WebMan 8 лет назад #
Другое дело, что можно сделать указание не одной версии CMS в патче, а диапазона версий. Либо сделать галку в настройках, типа "Разрешить применять патчи для более ранних версий системы". Или при применении более старых патчей выдавать запрос. Или сделать всё вышеперечисленное и гибко это сочетать.
BoAnRo 8 лет назад #
BoAnRo 8 лет назад #
Скорпион 8 лет назад #
Скорпион 8 лет назад #
Но точно помню что где-то мы это уже обсуждали и я об этом писал...
BoAnRo 8 лет назад #
Кстати, если нужно будет помочь с тестированием новой версии компонента, я с удовольствием присоединюсь!
Скорпион 8 лет назад #
Везде в компоненте есть проверки запуска из-под админа. Делал по видео-инструкции из документации. К сожалению это всего-лишь мое хобби, на которое у меня не так много времени.На икру я себе зарабатываю чуток другим, не как не связанным с сайтостроем. От этого и компонентом занимаюсь от случая к случаю.
BoAnRo 8 лет назад #
Ну, для бесплатного компонента никто и не требует регулярной поддержки и улучшений
И за то что есть большущее Спасибо!
vikont 8 лет назад #
BoAnRo 8 лет назад #
Кстати работу этого дополнения на 2.5.0 еще не тестировал. Но когда обновлял систему до 2.4.0, это дополнение мне очень помогло. Так перенес где-то 60 правок в системных файлах. Если бы вручную это делал, забрало бы много времени.
Надеюсь, у Скорпиона когда-то появится вдохновение и время чтобы еще чуть доработать компонент и выложить его в Каталог Дополнений, поскольку считаю этот модуль одним из самых полезных для icms.
vikont 8 лет назад #
У меня отсутствует кнопка выгрузки патчей в файл. Как ее вставить? Версия Компонента 1.1
Скорпион 8 лет назад #
vikont 8 лет назад #
Как видно, нигде даже намека на ВЫГРУЗКУ, только загрузка патча.
BoAnRo 8 лет назад #
Скорпион 8 лет назад #
А какая версия инстанта?
vikont 8 лет назад #
BoAnRo 8 лет назад #
vikont 8 лет назад #
На всякий случай закинул компонент и в свой шаблон! ... Реакций ноль!
Что делать?
Скорпион 8 лет назад #
BoAnRo 7 лет назад #
WebMan 7 лет назад #
Я сейчас пользуюсь модулем Git в NetBeans IDE. Кроме практически автоматического применения правок, он позволяет вести версии, видеть изменения с примечаниями, а в случае конфликтов позволяет их разрешить более наглядно. Но потребовалось много времеи, чтобы разобраться, как это всё работает. И я всё равно до сих пор не понимаю некоторые вещи.
BoAnRo 6 лет назад #