Первый отчет группы OpenSource.Конвертер, я решил посвятить переносу данных модуля Taxonomy Drupal'а в модуль "Инфоблоки" Битрикса.
Таксономия в Друпале очень мощный инструмент, очень гибкий и имея хорошее воображение можно сделать любую сложную иерархию, при том, что имеет мало настроек и освоить его не составляет труда. Однако он не очень удобен в использовании, возможно в этом виновата админка системы, уходит много лишних кликов на то, чтобы создать термин, а затем привязать к нему метериал. Но все это конечно же относительно.
В битриксе, мы привыкли, что элементы лежат в разделах, разделы - в инфоблоках, инфоблоки - в типах инфоблоков, а так же имеют какие то свойства. Все это хранится в разных таблицах. В друпале есть материалы, которые имеют тип, для каждого типа можно привязать справочник, который в свою очередь содержит термины.
Итак, что мы имеем. Мы имеем множество справочников привязанных к некоторому типу материалов. Как же нам разнести все это по инфоблокам. С точки зрения пользователя друпала, логично было бы сделать отдельный инфоблок справочник, термины сделать элементами этого справочника, а элементы инфоблока с материалами привязывать к элементам из инфоблока справочник.
Но задача данного модуля заключается в том, чтобы не копировать структуру других CMS, а перенести все данные используя идеологию Битрикс. Поэтому мне хотелось задействовать максимально возможное количество сущностей модуля 'Инфоблоки', а это - тип инфоблоков, инфоблоки, разделы, элементы, свойства(поля). Вот собственно я и пришел пояснению, как же данный модуль переносит сущности "Таксономии" в "Инфоблоки".
Вот правила, которые следует учитывать при переносе:
1) Термины становятся разделами если справочник, в который они входят, имеет флаг hierarchy=1 (таблица vocabulary), этот флаг автоматически ставится при сохранении справочника при условии, что в структуре его терминов присутствует иерархия. И дополнительное условие - справочник не должен быть типа "Теги".
2) Термины становятся свойством типа "Список" (множественным если в справочнике указано) когда флаг hierarchy=0 + справочник не должен быть типа "Теги".
3) Термины выгружаются в поле TAGS элемента инфоблока когда справочник имеет тип "Тэги", даже если присутсвует иерархия.
Ну и остальное: Типы материалов становятся инфоблоками, материалы - элементами. Все это записывается в отдельный тип инфоблока.
В друпале есть так же понятие "связанные термины", сейчас оно не используется. Я не придумал, где можно его применить в Битриксе. Если есть идеи буду рад услышать.
Так же в модуле появился перенос данных из модулей интернет-магазина UberCart и eCommerce, перенос фотографий модуля ImageField, встроенного форума, блогов, перенос пользователей, с информированием их о необходимости смены пароля.
Перенос работает для Drupal 6.20. Для других версий работа не гарантируется.
Интересно посмотреть как и что сделано в других CMS.. Таксономия -- оригинальная идея. В 1С-Битрикс есть: разделы инфоблока, группы блогов, группы форумов, группы опросов, свойства инфоблоков типа список, теги итд, и для всего этого имеются отдельные таблицы БД и отдельные функции в соответствующих классах API для добавления/удаления/редактирования групп, которые по сути делают одно и тоже. А в Drupal вот это все общее вынесено в отдельную грубо говоря общую таблицу и создано общее API. В битрикс тоже есть такие "сквозные" сущности -- теги (единые для блогов, форумов, инфоблков) и пользовательские свойства (создаются для разделов инфоблоков, групп пользователей итд)
Интересно было бы почитать сравнительный анализ двух подходов с точки зрения теории реляционных БД на примерах реализации различных практических задач.
Или вот еще в Битрикс есть: 1. пользователи 2. пользователи форума 4. пользователи блога
и у каждой сущности своя таблица, свой класс в API для работы и свои разработчики. А по сути же это одна сущность. Потребуется что-то в ней изменить -- три разных разработчика будут в разное время дорабатывать..
Спасибо. Кстати, после установки Drupal с лазанием по форумам и правкой каких-то php-файлов осознал и прочувствовал на сколько все таки уже вылизан скрипт инсталляции системы bitrixsetup.php, вплоть до докачки и прочих мелочей..
А после захода на страницу обновления модулей в админке:
Для проверки обновлений вам необходимо запустить cron или вы можете проверить обновления вручную.. ..Важно запускать скрипт update.php при каждом обновлении модулей до новой версии.
понял на сколько в 1С-Битрикс система обновления модулей "для людей" сделана, а не для программистов..
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».