MultiCategories - плагин для добавления документов сразу в несколько категорий

Разработку проспонсировал mmv2809
Компонент работает без TV-параметров, выглядит примерно так:


Устанавливать отсюда: github.com/Pathologic/MultiCategories
Настраивается примерно как SimpleGallery:
  • Tab name — название вкладки;
  • Controller class — имя доступного класса-контроллера;
  • Templates — id шаблонов с которыми будет работать плагин;
  • Documents — аналогично Templates, но для отдельных документов;
  • Ignore Documents — для указанных документов плагин будет отключен;
  • Roles — id разрешенных ролей;
  • Parents — id категорий, от которых строится дерево категорий.

Для вывода нужно обновить DocLister, тогда появится возможность при вызове использовать параметр:

&multiCategories=`1`

15 комментариев

avatar
На скриншоте категории, это имеется ввиду дерево документов? То есть документ физически лежит в одной папке, а через плагин будет засчитано что в двух? Я правильно понял?
avatar
Да. На картинке документ физически в папке «Автосервис», но при выводе будет показан и в «Автозапчасти», «Станции ТО». Чаще всего это для магазинов нужно.
avatar
Еще раз уточню, пока не пробовал — а в категории «Авто и мото» для нашего примера тоже будет показываться? :)
avatar
Зависит от параметра depth.
avatar
Круто, то что нужно в магазах.
Порекомендуйте еще что с магазинов можно использовать, кроме шопкипера.
Немного отошел от modx evo
avatar
А как на счет дублей страниц для SEO? Или в каталоге показывается в разных разделах, а ссылка на товар всегда в одно место? Или используется — rel=«canonical»?
avatar
Ссылка в одно место.
avatar
А как хранится — отдельная таблица, и в ней отдельная строка на каждую связку «категория — ресурс», или опять какой-нибудь «json в одной ячейке»?
avatar
Отдельная таблица, конечно (:
avatar
А хлебные крошки и меню как будут строиться?
avatar
Без учета дополнительных категорий.
avatar
В названии встречается перенос строки тегом br, по этому названия категорий в админке налазят друг на друга, пытался в multicategories/lib/controller.php в вывозе load() добавить $data['pagetitle'] = strip_tags($data['pagetitle']); но не чего не выходит не подскажите как можно решить данный вопрос.

Получилось решить так:
public function load() {
        $id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
        $rid = isset($_POST['rid']) ? (int)$_POST['rid'] : 0;
        $openIds = $this->data->getCategories($rid);
        if (!$id && $openIds) {
            $this->dlParams['openIds'] = implode(',', $openIds);
        }
        if ($id) {
            $this->dlParams['parents'] = $id;
            $this->dlParams['showParent'] = 0;
        }
        $this->dlParams['prepare'] = function(array $data = array()) use ($openIds) {
            $data['state'] = $data['isfolder'] == 1 && !isset($data['children']) ? 'closed' : 'open';
            if (in_array($data['id'], $openIds)) $data['checked'] = true;
            
            $data['pagetitle'] = strip_tags($data['pagetitle']);
            $data['text'] = strip_tags($data['pagetitle']);
            
            return $data;
        };
        $out = json_decode($this->modx->runSnippet('DLMenu', $this->dlParams), true);
        return $out[0];
    }
Комментарий отредактирован 2018-06-18 10:03:51 пользователем shden
avatar
Исправил.
avatar
Здравствуйте!
Подскажите пожалуйста, а что прописать в поле «Controller class» в настройках плагина.
У меня получилось пустое поле во вкладке КАТЕГОРИИ в нужном шаблоне.
Версия DocLister 2.3.16, система Evolution 1.4.5
  • tmih
  • 0
avatar
Может быть что проблема в том, что хостинг, который мне дали для работы с такой версией?
PHP Version = 5.4
Комментарий отредактирован 2018-08-16 16:30:15 пользователем tmih
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.