Утилита "Садовод" для icms 2.0

+27
2.53K
Эта знакомая всем по Первой ветке утилита "Садовод", только для исправления деревьев в InstantCMS 2.0.
Посвящение. Эта утилита посвящается негодной девчонке, фыркалке, красавице, великолепному художнику и дизайнеру, а также вредине и злючке Варваре. Попу ей за ее вредность набить не могу, зато расквитаюсь утилитой.

Предназначение

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

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

С утилитой "Садовод" для Первой ветки можно познакомится здесь. В этой записи представлена та же самая утилита, только адаптированая для Двойки. Эта утилита ничем не отличается от "Садовода" для Первой ветки, разве что я ковырнул пару строчек.

Описание

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

Как использовать

Так же, как и предыдущую утилиту.
Вкратце:
1. Снять дамп.
2. Открыть на локальной машине файл gardener.php любым редактором, прочитать комментарии к настройкам, выполнить настройки (указать редактируемую таблицу), сохранить файл.
3. Залить файл gardener.php в корень сайта по ftp
4. Набрать в браузере имя_сайта.ru/gardener.php
5. Исправить дерево в данной таблице.
6 После использования НЕМЕДЛЕННО удалить утилиту из корня.

Естественно, за один такой заход вы можете исправить одну таблицу. Если сломались два или больше деревьев, снова открывайте gardener.php на локальной машине, указываете другую таблицу и повторяете все действия предыдущего захода.

Безопасность

Попользовались — удалите из корня сайта немедленно. Утилита не содержит никаких защит от дурака, предоставляя админу прямой доступ к базе сайта. Если вам угодно писать в базу своего сайта ерунду, утилита эту ерунду туда и запишет. Сайт то ваш.

Естественно, если вы забыли утилиту в корне сайта, последствия могут быть любыми. Не говорите, что не предупреждал. Эта утилита — аварийный инструмент админа, а не файл вашего сайта! Утилите не место на рабочем сайте. Вам же не придет в голову ездить на автомобиле с установленным домкратом? При езде домкрат должен быть в багажнике ))).

Предупреждение

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

Как скачать

Как водится, из моего профиля

Куда говорить спасибо

wmr 342960323367
яд 410011913797936


Удачи в сайтостроении!
0
Странник Странник 10 лет назад #
Хочу предупредить заинтересованных лиц, что нахожусь в отпуске, на лечении, поэтому возможности в полном объеме протестировать утилиту на InstantCMS 2.1.1 просто не в состоянии. Поэтому, если вдруг возникнут косяки, ошибки или всякая фигня, пишите мне в личку. Исправлю в свободное от лечебных процедур время....
+2
NA NA 8 лет назад #
На случай, если больше не заглянете в тему, где помогли мне своей утилитой:

Небольшой офтоп, но хорошо бы добавить в утилиту:

- cортировку по NSLeft и parent_id (в дополнение к имеющемуся по id, можно по умолчанию, и не отключать и не настраивать):
Код PHP:
  1. $sql = "SELECT * FROM {$table} {$where} ORDER BY parent_id,ns_left";
- для режима редактирования учесть то, что title намного длинее NS:
Код PHP:
  1. size="', ($key=='title')?40:3, '"
вместо
Код PHP:
  1. size="3"
- отвязать адресацию формы от хардкода в имени файла (пользователю проще переименовывать скрипт):
Код PHP:
  1. form action="./<?= basename (__FILE__); ?>"
Плюс добавление точки позволит запускать утилиту из любого каталога, не только из корня.

- постепенное затемнение строк от степени вложенности (Level):
Код PHP:
  1. .cell0{
  2. width: 5%; border: 1px solid blue; background: #C0E0E0;
  3. }
  4. .cell1{
  5. width: 5%; border: 1px solid blue; background: #B0D0D0;
  6. }
  7. .cell2{
  8. width: 5%; border: 1px solid blue; background: #A0C0C0;
  9. }
  10. .cell3{
  11. width: 5%; border: 1px solid blue; background: #90B0B0;
  12. }
  13. .cell4{
  14. width: 5%; border: 1px solid blue; background: #80A0A0;
  15. }
  16. ..................
  17. echo '<td class="cell', $menu[ns_level],'">';
0
Def Def 10 лет назад #
а что и во 2 версии существует этот недочет с поломкой деревьев и при починке - несохранение иерархии вложенности?
+1
Странник Странник 10 лет назад #
Как я уже сказал, я с Двойкой пока не работаю. Может, этот баг и ликвидирован. Я писал в багтрекер по Первой ветке, но Фуз написал в карточку, что не смог воспроизвести поломку, поэтому на Первой ветке этот баг остался. Хотя деревья ломаются, я сам видел. Поломка происходит не в результате одного-единственного действия, иначе бы ее давно нашли и устранили. Тут что-то более сложное. Поэтому пусть эта утилита и для Двойки будет. Мало ли что... чтобы люди не рвали на себе волосы, если вдруг что-то перекорежилось, а спокойно исправили деревья.
0
Mofsy Mofsy 10 лет назад #
Поломка может быть при какой либо неожиданности с сервером.
+1
NA NA 8 лет назад #
Поломка разово возникла с двухуровневым деревом категорий в одном из видов контента, и с этого момента стала там постоянной - при любой попытке поменять порядок пунктов.

Выручила только любезно выложенная Странником версия Садовода под "двойку".
0
Jestik Jestik 8 лет назад #
Хм..а у меня встроенная функция нормально чинила деревья...
0
Странник Странник 8 лет назад #
Когда поломка небольшая, то она что-то лечит. Но наступает момент, когда она не лечит, а разрывает дерево на куски. Я сам видел результаты такого "лечения", когда меня приглашали восстанавливать деревья.
0
Def Def 6 лет назад #
Добрый день. Утилита ушла в небытие?

Еще от автора

Адаптация компонента "Закладки" от 19 января 2011 к коробочной версии 1.10.7
На форуме появилась тема с пожеланиями адаптировать довольно старый компонент "Instant Bookmarks" Fuze к современным реалиям.
Утилита "Садовод" для версии InstantCMS 1.10.7.008
В этой краткой заметке описывается утилита "Садовод" для ремонта деревьев версии InstantCMS 1.10.7.008.
Изменение компонента "Баннеры" для будущей  версии 1.10.7.008
Данная статья рассказывает всем ждущим новую версию 008, что нового ожидается в будущем релизе версии 1.10.7.008.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.