На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

Плагин category_editor - редактор категорий/рубрик

Плагины / 26 ноября 2015

Плагин обновлен до версии 2.50!

Что нового для версии 2.50:

  • Переработан дизайн дерева сайта;
  • Добавлено контекстное меню для правой клавиши мыши;
  • Добавлена возможность копирования категории и страницы;
  • К странице можно добавлять дочерние страницы перетаскиванием;
  • Добавлен раздел ДОКУМЕНТАЦИЯ;
  • Программная часть полностью переработана;

Плагин «Редактор категорий» позволяет создавать и редактировать мета-поля у категорий. Также плагин позволяет удобно, путем перетаскивания мышкой, менять у категорий родителей и порядок сортировки.

Редактор категорий/рубрик в действии

В ближайшее время будет готов category_editor версии 3+. Версия будет включать в себя:

  • Расширенное контекстное меню с дополнительными возможностями;
  • Работа с выделенными в дереве объектами (категориями, страницами);
  • Будет иметь возможность создавать виртуальные меню;

(подробнее все описано в разделе "Документация")

Версия плагина 3+ будет платной!

Пример перетаскивания записи между рубриками

Реализована возможность перетаскивания страниц (записей) между категориями. Плагин дает возможность выделить страницы и массово их удалить или снять с публикации.

Пример перетаскивания записи между рубриками

На странице редактирования категории есть возможность для настройки отображения категории также, как это делается у страниц - с левым сайдбаром, без сайдбара и т.д.

Для того, чтобы эта функция заработала, необходимо добавить файл main_set_val.php в /type/category.

подробнее о такой особенности описано на странице про версию 0.932

Добавьте в файл код

$cat_template_mso_set_val = CategoryEditor::getInstance()->template;
if($cat_template_mso_set_val)
{
 if ($fn = mso_fe('main/' . $cat_template_mso_set_val . '/main.php')) 
 { 
  mso_set_val('main_file', $fn); // выставляем путь к файлу
 }
}

При добавлении своего мета-поля ему присваивается ключ. Чтобы получить значения этого поля в любом месте страницы напишите.

CategoryEditor::getInstance()->ВАШ КЛЮЧ

Например:

CategoryEditor::getInstance()->template

Форма настройки полей

Для редактирования категории нажмите на название нужной категории в дереве категорий. Откроется соответствующая форма, например:

Форма редактирования категории/рубрики

Для добавления нового поля для категории, зайдите во вкладку «Настройка полей», создайте поле - оно отобразится в редактировании категорий (для доступа к редактированию кликните правой клавишей мыши и выберите "редактировать").

Например, вы можете добавить ссылку на изображение категории.

Название: Изображение
Ключ: izobragenie
Тип поля: Простое текстовое поле

После этого вы сможете при редактировании категории сюда прописать ссылку, например

http://mysite.ru/uploads/category/image.jpg

А в коде страницы категории написать:

echo '<img src="'.CategoryEditor::getInstance()->izobragenie . '" alt="Изображение"/>';

Такой код сформирует слежующее:

<img src="http://mysite.ru/uploads/category/image.jpg" alt="Изображение"/>

Скачать:

Автор: Сергей Будников

Текущая версия плагина: 2.50 (стабильно работает на cms 0.93+)

Контент только для авторизованных - хотите войти или зарегистрироваться?
Комментариев: 31
  1. Отличный плагин! Спасибо, Сергей!

    Из пожеланий:

    1. Увеличить размер шрифта или же вообще убрать настройку размера, чтобы по-умолчанию был стандартный размер шрифта админки. Ну и вообще со стилями как-то порешать, а то в новой админке иконки перетаскивания и разворачивания рубрик немного «поломались» (иконки вылезли за пределы рамки).
    2. добавить больше пояснений и выплывающих подсказок, а то порой вообще не понятно что нужно делать и для чего. Например, я долго искал где же поредактировать мета-поля рубрики пока не догадался жамкнуть в название smile
    3. Как-то более доходчиво объяснить смысл и решаемые задачи вкладки «Настройка полей» - лично я не совсем понял о чём идёт речь.

    Заранее спасибо! smile

  2. Илья, учту твои пожелания. Буду совершенствовать. Про подсказки я что-то даже не подумал...grin

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

    С нетерпением жду мнения других пользователей!wink

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

    Я догадывался об этом. Так то логично. Правда вкусы разные бывают. Могу предложить вынести настройку шрифта в специальный кастомный файл стилей, чтобы было легче поменять не трогая дистрибутив плагина если кому надо. Ну или опцию плагину прикрутить что ли smile

  4. Про стиль - в папке с плагином есть файл

    ce_style.css

    в нем строчка

    ul.cat-list, ul.cat-list a {font-size:13px; }

    Можно менять как вздемается.

  5. Вопрос. При изменении порядка записей внутри рубрики, происходит только визуальный эффект? То есть функционально у записи ничего не меняется?

    Есть ли различия между Перемещением и Копированием записей внутри рубрики?

    PS. Отличный плагин!

  6. При изменении порядка записей внутри рубрики, происходит только визуальный эффект? То есть функционально у записи ничего не меняется?

    Для записи меняется порядок. В параметр страницы ПОРЯДОК прописывается число в, соответствующее порядку в списке. Остальные страницы в текущем списке также подвергаются распорядку. Формат порядка - первая цифра - id категории, в списке которой происходит перемещение, остальные - текущий порядок страницы в списке.

    Есть ли различия между Перемещением и Копированием записей внутри рубрики?

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

  7. Сергей, а порядок сортировки обратный? Страницы с меньшим индексом стоят выше в списке?

  8. То есть это наоборот прямой порядок получается. А как изменить, чтобы был обратный порядок сортировки (от большего к меньшему)?

    Что будет, если новая запись будет добавлена в раздел, то как она отсортируется, относительно других записей, которые ранее уже подверглись сотритовке и им присвоен ПОРЯДОК?

  9. а порядок сортировки обратный?

    Порядок прямой - например, в категории с ID=5 -> записям присваивается (сверху вниз по списку)- 51,52,53 ... 5122,5123,5124 ...

    Изменить порядок не получится просто. Да и зачем?

    Что будет, если новая запись будет добавлена в раздел...

    Ничего. Ей будет присвоен порядок 0. И выше приведенный список будет выглядеть - 0,51,52,53 ... 5122,5123,5124 ...

    Кстати, рубрики тоже сортируются. От 1 до ... в прядке их следования в списке.

  10. Скоро опубликую последнюю версию. Там добавлены некоторые функции - создание копии для категорий, удаление категорий, отсоединение всех страниц и прочее. Также добавлены пункты для работы со страницами.

    Еще одна фишка будет у плагина - виртуальное меню. по типу, как в шаблоне создается меню, только все это в списках с поддержкой drug&drop;. Пункты меню можно привязать к любой категории. Таким образом пункт меню принимает свойства существующей категории с вложенными дочерними категориями.

  11. Изменить порядок не получится просто. Да и зачем?

    Чтобы закрепить запись/записи выше остальных, присвоив бОльший индекс. А в случае прямого порядка сортировки, новые записи всегда будут становиться выше.

    Или есть другой способ закрепить требуемые записи?

  12. Скоро опубликую последнюю версию

    Вот это хорошая новость. У меня вот тоже идеи есть, может подкинуть вам? =)

  13. Чтобы закрепить запись/записи выше остальных

    В любом случае, при сортировке индексы переписываются У ВСЕХ записей в списке. Поэтому закрепить не получится...

    Или есть другой способ закрепить требуемые записи?

    Только перетаскиванием в начало.

  14. У меня вот тоже идеи есть, может подкинуть вам? =)

    Да, было бы отлично!smile

  15. Этот плагин, кстати, уже надо переименовывать, так как это не просто работа с категориями, а намного мощнее штука получается =)

    Сейчас не хватает возможности закрепления записей в рубрике. Например, сейчас в категории записи с индексами: 51 52 53 54 55 56 57. Например, первые три нам надо закрепить навсегда (или временно), мы их отмечаем галочками, и выбираем действие с отмеченными (снизу из списка) - ЗАКРЕПИТЬ, после этого данные записи закрепляются на позиции 51 52 53 и становятся, например, серыми. И так будет до тех пор, пока мы не сделаем ОТКРЕПИТЬ.

    Таким образом, даже новая запись, с индексом 0, встанет в списке только 4, после этих.

  16. Таким образом, даже новая запись, с индексом 0, встанет в списке только 4, после этих.

    Ок. Подумаюsmile

  17. Еще вопрос. У метаполей для категорий 3 значения: маленькое поле, большое и список. Но при изменении типа ничего не происходит, так и должно быть?

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

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

    Еще к TEXTAREA можно подключить это: http://codemirror.net/mode/htmlmixed/index.html

  18. Еще вопрос. У метаполей для категорий 3 значения ... ничего не происходит

    Меняется тип поля. Маленькое - input type="text", Большое - textarea, выпадающий - select. Для селекта задаются значения (поле значения) key || value # key2 || value2 # key3 || value3 и т.д.

    Документацию все хочу написать, да все руки не доходят....

    А про текстовый редактор - я думал над этим. В планах есть такое. Сделаю.

    http://codemirror.net/mode/htmlmixed/index.html

    Интересно. Тоже отмечу в планыsmile

  19. Меняется тип поля

    Имеется виду тип поля уже в редактировании самой категории, а не в настройках.

  20. А когда будет обновление? =)

    Еще нашла интересную фишку =) Если взять за иконку расширителя поля и потянуть в область другого поля, то в перетягиваемое поле вставится ссылка на редактор категорий =)

    По всем вопросам понятно, надо поразбираться с типом SELECT...

  21. А когда будет обновление?

    Пока не могу сказать. В обновлении хочу сделать нормальную документацию. Вот сделаю, так выложуsmile

  22. Если что, то сначала можете без документации выкладывать, будем разбираться методом тыка =)

    Кстати, еще вроде нету опции удаления дополнительных полей (метаполей).

    А в разделе "Настройки полей" поле "Значение", оно только для типа select работает?

  23. Кстати, еще вроде нету опции удаления дополнительных полей

    Пока нетsmile

    А в разделе "Настройки полей" поле "Значение", оно только для типа select работает?

    Да.

  24. Больше вопросов нет =) Пока...

  25. Появился вопрос. Как получить доступ к значению метаполя категории, если мы на странице PAGE, а не CATEGORY. То есть как в этот код добавить условие, из какой именно категории считывается метаполе?

    CategoryEditor::getInstance()->ВАШ КЛЮЧ
  26. Как получить доступ к значению метаполя категории, если мы на странице PAGE, а не CATEGORY

    Поддерживается загрузка свойств по slug, например:

    CategoryEditor::getInstance()->load_from_slug = mso_segment(2);

    или по id категории

    CategoryEditor::getInstance()->load = ID КАТЕГОРИИ

    После этого станут доступны свойства категории

    CategoryEditor::getInstance()->ВАШ КЛЮЧ

  27. Спасибо, Сергей! Работает!

  28. Плагин обновлен до версии 2.50

  29. Спасибо, Сергей! Нужный плагин!

    Будет ли в новой версии возможность закрепления записей в рубрике?

  30. Будет ли в новой версии возможность закрепления записей в рубрике?

    Честно говоря не прорабатывал этот вопрос. Но подумаю.

    Дело в том еще, что теперь порядок сортировки страницы теперь хранится НЕ в поле page.page_menu_order, а в таблице cat2obj поле c2obj_order, которое создается при установке плагина. Такое решение сделал для того, чтобы страница в разных категориях могла быть в разных местах.

    Поле page_menu_order теперь используется в сортировке дочерних страниц СТРАНИЦЫ.

    Сейчас параллельно работаю над функцией-альтернативой стандартной mso_get_pages для удобной работы с сортировкой плагина при выводе страниц на сайте.

    Так что пока даже не знаю, как лучше и качественнее реализовать закрепление записей.

  31. Сергей, есть ли новые версии плагина?