Импорт данных в базу и их вывод посредством Views или чего то ещё.

Главные вкладки

Аватар пользователя REDkiy REDkiy 12 октября 2011 в 19:05

Здравствуйте! Существует выгрузка данных из внешней базы данных в виде xml или txt. Задачей является загрузка этих данных в базу друпала или базу к которой друпал будет иметь доступ. И вывод средствами Drupal 6. Я немного освоил Views, возможно организовать вывод данных через него? Или существует ещё какой-нибудь модуль или способ?
Какие сложности могут возникнуть при загрузке данных? Возможно ли использовать сам друпал для загрузки? Куда грузить лучше?
Поясните пожалуйста или подтолкните в нужном направлении.

Комментарии

Аватар пользователя Orion76 Orion76 12 октября 2011 в 20:29

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

Аватар пользователя direqtor direqtor 13 октября 2011 в 6:12

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

Аватар пользователя REDkiy REDkiy 13 октября 2011 в 7:55

Сейчас обдумал ситуацию получше, кое-что почитал на сайте.
Думаю мне нужно следующее.
Из xml или txt файла с разделителями, в базу друпала загружаются данные. Каждая ветка или строчка преобразовываются в соответствии с некими правилами в материал определённого типа. После чего я с помощью views этот материал отображаю на странице.
Вроде бы достаточно прозрачно. Но возникли следующие вопросы.
1. Как и чем реализовать загрузку данных и приведение их к нужному типу материала. При чём желательно, чтоб тип был определён мной.
2. Данные будут обновляться ежедневно. Возможно 2 раза в день. Какие могут быть тонкости и как будет выглядеть в таком случае загрузка данных?
3. Наверное для создание категорий проще всего делать динамическое создание таксономических словарей, на основе некоторых полей данных, возможно так же на этапе загрузки. Как подобное можно реализовать?

Аватар пользователя direqtor direqtor 13 октября 2011 в 8:26

Собираем ноду с нужными полями. Настраиваем нужный views.
Ищем в документации здесь и на дорге о создании модулей. Основа в этом - собственные реализации хуков ядра и сторонних модулей.
1. Делаем страницу модуля в [ru-api=hook_menu] и выводим на ней форму через FormAPI. Один select со списком типов нод и поле загрузки файла. В обработчике формы парсим ваш файл, закидываем ваши поля в поля объекта ноды и сохраняем.
2. Если обновление это только INSERT, то ниикаких проблем. Если UPDATE, то вам придется сохранить в ноду идентификаторы стороннего проекта, чтобы решать в обработчике формы, что добавлять, а что апдейтить.
3. Сделайте модулю еще несколько страниц с настройками для выбора словаря. Настройки сохраняем в переменных, потом используем в коде. Можно еще и выбирать соответствие полей столбцам вашего файла.

Все нужные функции тут
http://api.drupal.ru
http://api.drupal.org
http://drupalcontrib.org

Аватар пользователя REDkiy REDkiy 13 октября 2011 в 10:13

"orion76" wrote:
"direqtor" написал(а):

1. Делаем страницу модуля в hook_menu и выводим на ней
"REDkiy" написал(а):

Я немного освоил Views, во

-)))

Да-да, мне бы модуль который помогает создать материалы из xml, и чтоб потом я смог вывести его вьювс.
А после поста direqtor я нахожусь в несколько смешанных чувствах.

Аватар пользователя Orion76 Orion76 13 октября 2011 в 16:49

"REDkiy" wrote:
Да-да, мне бы модуль который помогает создать материалы из xml,

вроде кто-то Feeds использует для этого...

Аватар пользователя REDkiy REDkiy 13 октября 2011 в 20:27

"RxB" wrote:
Как усложнили то всё.
Используй силу контриба - http://drupal.org/project/data, http://drupal.org/project/feeds, views

Немного покопался, возможно подойдёт. Единственно не совсем понял для чего нужен data. Он умеет создавать таблицы в базе, так? Но что с ней делать?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 13 октября 2011 в 22:11

"REDkiy" wrote:

Немного покопался, возможно подойдёт. Единственно не совсем понял для чего нужен data. Он умеет создавать таблицы в базе, так? Но что с ней делать?


Покопайтесь ещё раз, прочтите, например, описание модуля