Компонент ''Система патчей''

Ищу единомышленников.

Идея стоит выделки?

Для участия в голосовании необходима регистрация на сайте
#31 23 июня 2014 в 21:59
Продолжаю изучать код.
Вот уважаемые… кто подскажет почему вот эти две кнопки (в качестве примера — компонент "Теги"):

не выводятся в моем случае:


Хотя код в первом случае:

  1.  
  2. <?php
  3.  
  4. $this->addBreadcrumb($tag['tag']);
  5.  
  6. $this->addToolButton(array(
  7. 'class' => 'save',
  8. 'title' => LANG_SAVE,
  9. 'href' => "javascript:icms.forms.submit()"
  10. ));
  11.  
  12. $this->addToolButton(array(
  13. 'class' => 'cancel',
  14. 'title' => LANG_CANCEL,
  15. 'href' => $this->href_to('')
  16. ));
  17.  
  18. ?>
  19.  
  20. <?php
  21. $this->renderForm($form, $tag, array(
  22. 'action' => '',
  23. 'method' => 'post'
  24. ), $errors);
  25.  
  26.  
вроде как идентичны моим:

  1.  
  2. <?php
  3.  
  4. // $this->addBreadcrumb(LANG_MYPATCH_CONTROLLER, $this->href_to(''));
  5.  
  6. if ($do == 'add') { $page_title = LANG_MYPATCH_ADD;}
  7. if ($do == 'edit') {
  8. $page_title = LANG_MYPATCH_EDIT;
  9. $this->addBreadcrumb ($patch['description'], $this->href_to('patch', $patch['id']));
  10. }
  11.  
  12. $this->setPageTitle($page_title);
  13.  
  14. $this->addBreadcrumb($page_title);
  15.  
  16. $this->addToolButton(array(
  17. 'class' => 'save',
  18. 'title' => LANG_SAVE,
  19. 'href' => "javascript:icms.forms.submit()"
  20. ));
  21.  
  22. $this->addToolButton(array(
  23. 'class' => 'cancel',
  24. 'title' => LANG_CANCEL,
  25. 'href' => $this->href_to('')
  26. ));
  27.  
  28.  
  29. ?>
  30.  
  31.  
  32. <?php
  33.  
  34. $this->renderForm($form, $patch, array(
  35. 'action' => '',
  36. 'metod' => 'post',
  37. 'toolbar' => false
  38. ), $errors);
  39.  
Ну кроме условия назначения переменной $page_title в зависимости от режима "добавления" или "редактирования".
На всякий случай я пробовал закомментировать данный код — эффекта ноль
Что нибудь можете подсказать уважаемые Гуру?
Как вывести эти кнопки?
#32 24 июня 2014 в 14:48
Спасибо Гуру за помощь :)))) Вы мне так помогаете :)
#33 24 июня 2014 в 16:15
кроме контроллера еще класс нужно выводить в шаблоне.
#34 24 июня 2014 в 16:34
Adjuster, брррр — а можно поподробней — как это сделать?
#35 24 июня 2014 в 17:00
Adjuster, ай спасибо мил человек… разобрался :)
#36 24 июня 2014 в 17:02
ну чтож… теперь держись база MySQL crazy
#37 25 июня 2014 в 10:44
Уважаемые. А подскажите кто знает по двум моментам функции добавления данных в базу MySQL:
  1. $this->insert($table_name, $data)
1.Имеет ли значение порядок размещения данных в массиве $data? Или он должен строго соответствовать порядку расположения полей в базе $table_name.
2. Может ли быть в массиве $data большее\меньшее количество данных (кроме индексных полей конечно) чем полей в базе $table_name и что будет сделано?
Лишние данный будут проигнорированы? Вместо недостающих данных будут внесены значения NULL?
#38 25 июня 2014 в 15:34
:))))))) и снова всем спасибо за помощь :)))))
Все сам… сам.....:) сам спрашиваю — сам отвечаю… такой небольшой междусобойчик :)))))
Вообщем крутая вещь этот XDEBUG :)
Рассказываю — вдруг кому пригодится.
1. Порядок размещения данных в массиве $data — любой.
2. При меньшем количестве данных — недостающие вносятся как NULL, наличия данных не относящихся к таблице (то есть имеющих в качестве ключа имя несуществующего поля в таблице) — вызывает ошибку :(
Вот так вот :(
Так что следите за массивами которые вы передаете в MySQL
#39 25 июня 2014 в 15:39

недостающие вносятся как NULL,

Скорпион
Правильней было бы сказать наверное — принимает значение по умолчанию.
#40 29 июня 2014 в 19:20
ГЫ! не думайте что я забросил сабж :)))))
Просто "логика" взяла и брыкнулась :)
Ща удовлетворим её потребности и снова выйдем в эфир :)
#41 29 июня 2014 в 19:21
Но двойка все равно — СУПЕР! lovedance
#42 1 июля 2014 в 01:03
Вот решил поделится предварительным состоянием.
Встречайте — Компонент "Мои патчи" v.0.1.0701
Выкладываю, так как хотелось бы перед последним рывком (написания главной части кода патчения файлов) услышать замечания и предложения.
Только прошу сильно не ругаться — это моя первая "проба пера".
Конструктивные замечания — приветствуются и с удовольствием будут выслушаны.
Имя папки компонента использовал "mypatch", оставив "patch" для разработчиков, вдруг что-нибудь придумают свое в этом направлении.
Устанавливать стандартным способом.
Компонент предназначен для InstantCMS 2.0.1
На данный момент компонент может добавлять/удалять/редактировать хаки в базу и проверять наличие искомого кода.
Компонент работает исключительно в backend-е.
#43 1 июля 2014 в 10:24
laughТогда нужно было сразу и какой-нибудь хак добавить для проверки.
#44 1 июля 2014 в 11:00
SpaceSel, будет — все будет....:) как только главный код патчинга будет доведен до более менее рабочего состояния… Пока что компонент ничего не меняет :)
#45 7 июля 2014 в 20:05
Ну так как для создания собственного блога мне не хватает пока кармы joke — пишу тут.

Ну вот и еще одни выходные были полностью потрачены на сабж вместо семьи :)
Любимая хоть и понимает что хобби это святое… но на сколько её хватит? zlo

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


1. Создаете патч, описывая его назначение.
2. Добавляете в созданный патч файлы которые необходимо изменить, с указанием что на что нужно поменять.
В данной версии возможно поменять код только в одном месте. То есть, если заменяемый код встретится несколько раз в файле — то сработает "ловушка" и будет выведено предупреждение. В дальнейшем, возможно, будет разработан механизм для определения количества мест для замены.
3. После внесения всех файлов — для применения всех "включенных" патчей необходимо нажать клавишу "Применить". Применение патчей каждый раз производится заново.
4. Как патчи так и файлы в патчах можно включать/выключать. Понятное дело, что выключенные патчи/файлы в процессе патчения не принимают.
5. Поле "порядок" определяет порядок применения патчей. То есть сначала все файлы для патчения сортируются по порядку патчей и уже в самом патче по порядку файлов.
6. Для восстановление системы в первоначальное состояние используйте клавишу "Восстановить". При этом все измененные файлы возвращаются в исходное состояние, а все патчи выключаются.
7. Если при редактировании патча буде удален файл, который больше нигде (имеется ввиду в наборах других патчей) не используется, то данный файл восстанавливается в своё первоначальное состояние автоматически (без использования клавиши "Восстановить").
8. Если после применения патчей что-то пошло не так и Вы не можете восстановить систему клавишей "Восстановить", то зайдите по фтп на свой сервер и просто переименуйте сохраненные оригиналы патченных файлов (имя_патченного_файла.*.original) в его первоначальное имя. (убрав приставку .original)
Ссылка на сам компонент:
Компонент "Мои патчи" v.1.0.0
Установка стандартным (для ICMS2) способом.

C удовольствием выслушаю все замечания и пожелания zst

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