Стоит задача периодического импорта некоего (чужеродного) контента, результата работы сторонней программы. Как правильнее:
1. Искать-собирать комбайн модулей, которые вкупе выполнят нужную функцию.
2. Разрабатывть модуль с нужной функцией.
3. Лить напрямую в БД сторонней программой.
С другим движком не задумываясь выбрал бы 3-й вариант, как самый логичный и наименее ресурсоёмкий. Однако, поколупавшись немного с Друпалом, понял, что и здесь "не как у людей" ))
Комментарии
ура
модуль с кроном, заливать через API друпола.
Вот такой
1.
Такой
в обход API работать с базой нигде не приветствуется. в друпале всё ваше API будет из node_save() состоять, так что не сильно сложно.
Зачем комбайн, когда есть модуль feeds ?
kalabro
Я до этого не работал с движками, имеющими API. В этом смысле, придётся учиться.
Softovick
В принципе, да, наверное так и сделаю. Сейчас как раз с ним проэкспериментировал, вполне ему можно скармливать табличные данные.
Почему же не как у людей?
В тех движках, с которыми вы работали, видимо, вы просто не могли бы воспользоваться первым способом, за неимением нужных инструментов, или вторым способом, за неимением развитого API.
В принципе, можете конечно лить в базу как и в любом другом движке, но идеологически, правильнее остальные два способа, они уберегут вас от потенциальной возможности изменения формата хранения информации. И это справедливо для любого другого движка, если там вообще такое возможно. Просто тут у вас такой выбор есть, и это большой полюс.
Если процесс ресурсоёмкий, т.е. материалов много и часто надо импортировать, пишите свой модуль.
Если нет и наберёте нужный функционал, используйте имеющиеся...
Я понял. В том-то и вопрос был, "как правильно". Чтобы не изобретать велосипеды и не забивать гвозди микроскопами.
Правильно всегда через API. Но реальность решает, а не теоретическая правильность. Если импорт через API работает слишком медленно, приходится напрямую в базу, и ничего с этим не поделаешь.
Да, это компромис скорости/простоты/поддерживаемости.