Всем доброго времени суток!
Можно ли автоматически создать много страниц 100-1000 состоящие из title?
Ну и в body тот же title для начала вставить. А потом редактировать, добавить фотки.
admin/content/generate - хорошая штука, но если бы добавить поле textarea. В него вставить по строчно title страниц. А то бестолково: "Максимальная длина слова в заголовках.: 8 символов " Была бы хорошая ВЕЩЬ! Потом автопатч применить.
Комментарии
INSERT INTO ....
node_clone - можно усовершенствовать...
А зачем такая сложность? если не секрет...
A может node import подойдет?
devel именно это делает за 5 секунд
Да. Понятно, что devel именно это и он конечно есть и включен, но то что он даёт это не совсем то. По крайней мере то, что показано на странице: Генерировать материал
«Какие типы материалов вы хотите сгенерировать?:
Страница подшивки
Тема форума
Изображение
Страница
Заметка
Удалить существующее содержание до получения нового содержания.
Сколько материалов должно быть создано?:
Сколько комментарии Вы хотели бы создать?:
Максимальная длина слова в заголовках.: »
Сложности ни какой, жаль, что ООП на PHP плохо знаю. С простыми переменными я запросто. А вот сам дописать какой-нибудь модуль для модуля пока-что не получается.
А нужно это, чтобы сразу страничек из ключевиков сделать по больше, а потом наполнять когда время будет. А их уже в индекс загнать.
Я прежде чем на drupal перейти другие cms_ки смотрел пробывал, там я мог что-то написать. Но по сравнению с drupalom сильно уступают. Joomla сыроватей, danneo не модульная (железобетонная).
я бы посоветовал прогнать циклом функцию drupal_execute -- заполняет указанные формы автоматом, в аргументы передаются id формы и массив со значениями. То есть можно заполнять формы создания нод.
справка и пример
Интересно, но я мог бы это сделать, если по шагово расписать. Этот код:
<?php
function drupal_execute($form_id, &$form_state) {
$args = func_get_args();
$form = call_user_func_array('drupal_retrieve_form', $args);
$form['#post'] = $form_state['values'];
drupal_prepare_form($form_id, $form, $form_state);
drupal_process_form($form_id, $form, $form_state);
}
?>
Что куда вставить и где запустить. Вам наверное лень это объяснить, скажите мол сам должен понимать.
не сделать это пошагово, нужно скрипт тогда писать отдельный, может и в форме модуля. Проще нанять девочку для вбития всех нод, чем писать для такой специфической задачи модуль. Вам ж я как понимаю нужны не случайные слова в title , а слова из вашего списка?
Написать скрипт на PHP у меня нет проблем но без ООП. Создать модуль для друпала пока что не получается. Но создать модуль для модуля это наверное проще? Ведь модуль такой есть devel. Как его доработать. Хотелось бы без переделок и патчей. Дополнительный модуль. Добавить поле textarea и из него он будет брать title. Это наверное не сложно. Но для меня пока что сложно. Всё равно когда-нибудь придется научиться писать модули.
Всем спасибо за участие!
form_id -- идентификатор формы; его можно посмотреть с помощью firebug на странице добавления ноды нужного типа;
form_state -- ассоциативный массив ['values'][имя_поля_формы] => "значение_поля"
Вы считываете откуда-то данные (например, из файла .csv), а затем в теле цикла заполняете должным образом массив и вызываете функцию. Если это разовая задача, то модуль писать не нужно, можно ограничиться простым php-скриптом. Читайте на сайте Влада, как выполнить самописный скрипт.
UPD:
вы не посмотрели пример, вот он:
module_load_include('inc', 'node', 'node.pages');
// массив ноды
$node = array('type' => 'story');
// заголовок
$form_state['values']['title'] = 'My node';
// содержимое
$form_state['values']['body'] = 'This is the body text!';
// далее аналогично таксономия, поля CCK...
// имя автора
$form_state['values']['name'] = 'robo-user';
// состоояние -- сохранить
$form_state['values']['op'] = t('Save');
// запуск автоматического заполнения
drupal_execute('story_node_form', $form_state, (object)$node);
Вроде здесь в тему