Автоматическое создание страниц (много) 100-1000 состоящие из title

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

Аватар пользователя igorek igorek 17 марта 2009 в 0:08

Всем доброго времени суток!
Можно ли автоматически создать много страниц 100-1000 состоящие из title?
Ну и в body тот же title для начала вставить. А потом редактировать, добавить фотки.
admin/content/generate - хорошая штука, но если бы добавить поле textarea. В него вставить по строчно title страниц. А то бестолково: "Максимальная длина слова в заголовках.: 8 символов " Была бы хорошая ВЕЩЬ! Потом автопатч применить.

Комментарии

Аватар пользователя igorek igorek 17 марта 2009 в 10:11

"beerman" wrote:
devel именно это делает за 5 секунд

Да. Понятно, что devel именно это и он конечно есть и включен, но то что он даёт это не совсем то. По крайней мере то, что показано на странице: Генерировать материал
«Какие типы материалов вы хотите сгенерировать?:
Страница подшивки
Тема форума
Изображение
Страница
Заметка
Удалить существующее содержание до получения нового содержания.
Сколько материалов должно быть создано?:
Сколько комментарии Вы хотели бы создать?:
Максимальная длина слова в заголовках.: »
"igorek" wrote:
но если бы добавить поле textarea. В него вставить по строчно title страниц.

"PVasili" wrote:
А зачем такая сложность? если не секрет...

Сложности ни какой, жаль, что ООП на PHP плохо знаю. С простыми переменными я запросто. А вот сам дописать какой-нибудь модуль для модуля пока-что не получается.
А нужно это, чтобы сразу страничек из ключевиков сделать по больше, а потом наполнять когда время будет. А их уже в индекс загнать.
Я прежде чем на drupal перейти другие cms_ки смотрел пробывал, там я мог что-то написать. Но по сравнению с drupalom сильно уступают. Joomla сыроватей, danneo не модульная (железобетонная).

Аватар пользователя kyky kyky 17 марта 2009 в 11:15

я бы посоветовал прогнать циклом функцию drupal_execute -- заполняет указанные формы автоматом, в аргументы передаются id формы и массив со значениями. То есть можно заполнять формы создания нод.
справка и пример

Аватар пользователя igorek igorek 17 марта 2009 в 12:04

"kyky" wrote:
прогнать циклом функцию drupal_execute

Интересно, но я мог бы это сделать, если по шагово расписать. Этот код:

<?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);
}
?>  

Что куда вставить и где запустить. Вам наверное лень это объяснить, скажите мол сам должен понимать.

Аватар пользователя jason32 jason32 17 марта 2009 в 12:43

не сделать это пошагово, нужно скрипт тогда писать отдельный, может и в форме модуля. Проще нанять девочку для вбития всех нод, чем писать для такой специфической задачи модуль. Вам ж я как понимаю нужны не случайные слова в title , а слова из вашего списка?

Аватар пользователя igorek igorek 17 марта 2009 в 13:01

Написать скрипт на PHP у меня нет проблем но без ООП. Создать модуль для друпала пока что не получается. Но создать модуль для модуля это наверное проще? Ведь модуль такой есть devel. Как его доработать. Хотелось бы без переделок и патчей. Дополнительный модуль. Добавить поле textarea и из него он будет брать title. Это наверное не сложно. Но для меня пока что сложно. Всё равно когда-нибудь придется научиться писать модули.
Всем спасибо за участие!

Аватар пользователя kyky kyky 18 марта 2009 в 5:36
function drupal_execute($form_id, &$form_state)

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);