Создание переменной

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

Аватар пользователя Scarrr Scarrr 5 января 2009 в 5:16

Здравствуйте, а подскажите пожалуйста, как в Друпале проще всего добавить какую нибудь свою переменную и потом с ней работать - например вывести на экран её значение и так далее.

Например доработать какой то существующий модуль - сделать следующее - при создании ноды добавить радиокнопку на два значения - и потом уже в зависимости от значения например задавать какие либо условия

Комментарии

Аватар пользователя Scarrr Scarrr 5 января 2009 в 5:37

Я так понял что подобные переменные нужно прописывать обязательно в БД, а как сделать так, чтобы не прописывать???

Аватар пользователя theСанитар theСанитар 5 января 2009 в 13:31

Если не писать свой модуль, то нужны будут CCK, Views, Workflow_NG (или Rules, от версии зависит). Делаем тип материала, в него добавляем радиокнопку, после чего при сохдании ноды такого типа у нас она появится. Ноды выводим средствами Views, обрабатывая значение радиокнопки как нам надобно. Если средств Views не хватает и требуется усложнение логики, то играемся с модуклями типа Workflow_ng или Rules, задавая соответствующие изменения. Громоздно, но работает.

Аватар пользователя vikeng vikeng 5 января 2009 в 20:22

А если писать модуль то все гораздо проще Smile
<?php
function module_radio(&$form_state){
$form=array();
$form['r']=array(
'#type'=>'radios',
'#title'=>'Радио-кнопки',
'#default_value'=>0,
'#options'=>array('Пункт 1','Пункт 2'),
);
$form['submit']=array(
'#type'=>'submit',
'#value'=>'Отправить',
);
return $form;
}

function module_radio_submit($form,&$form_state){
drupal_set_message('=> '.$form_state['values']['r']);
}

?>

Аватар пользователя Scarrr Scarrr 5 января 2009 в 20:24

Не хватит тут ни средств Views, ни средств Workflow-NG или Rules - я спрашивал именно о программировании, потому что всё остальное перепробовал - для данной задачи не подходит.

Спасибо конечно за совет, но может ещё кто нибудь подскажет?
Заранее спасибо.

Аватар пользователя Scarrr Scarrr 5 января 2009 в 20:26

Vikeng - спасибо большое, буду пробовать ))

Но правда мне нужно не писать свой модуль, а доработать существующий - добавить в форму радиокнопку - но счас попробую этот код Smile

Аватар пользователя Scarrr Scarrr 5 января 2009 в 20:56

Vikeng - можно вопрос?

как мне потом обращаться к данной переменной??

например мне нужно задать некое условие, выполнить то или другое действие в зависимости от того, выбран Пункт 1 или же Пункт 2

Аватар пользователя Scarrr Scarrr 5 января 2009 в 21:02

И ещё (забыл указать сразу версию Друпала) - ваш код похоже для шестого друпала - а как оно будет для пятого?

Аватар пользователя vikeng vikeng 6 января 2009 в 13:28

Значение из формы будет в этой переменной: $form_state['values']['r'].

Для 5-го Друпала будет примерно также, но деталей не помню: давно в него не лазил.