Требуется вывести несколько элементов формы в строку. а не каждый с новой строки как по умолчанию.
Требуется примерно функционал и вид изображённый в файле 1.jpg. Эта форма используется в модуле Image для импорта изображений. Пробовал разобраться в коде, но там чёрт ногу сломит(по крайне мере для меня)
Покажите пожалуйста кто нибудь пример кода, который это делает.
Вложение | Размер |
---|---|
1.jpg | 90.19 КБ |
Комментарии
Кажется разобрался как делать вывод элементов формы в строку
<?php
// $Id$ function xxx_menu() {
$items = array();
'title' => 'List of tasks',
'page callback' => 'ListTask_form', //Имя функции, вызываемой для отображения страницы, когда пользователь переходит по пункту меню.
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function
ListTask_form() {return drupal_get_form('ListTask_my_form');
}
function
ListTask_my_form($form_state){
global $user;
$userid = $user->uid;
$result = db_query("SELECT ID, Date, Number, Name FROM {Task} WHERE IDUser=%d", $userid);
$index=0;
while ($r = db_fetch_array($result))
{
$form['ListTask'][$index] = array(
'#type' => 'markup',
);
$form['ListTask'][$index]['select'] = array(
'#type' => 'checkbox',
'#return_value' => $r['IDe'],
'#default_value' => 0,
'#size' => 4,
);
$form['ListTask'][$index]['Date'] = array(
'#type' => 'item',
'#value' => date("d.m.Y", $r['DateVote']),
'#size' => 4,
);
$form['ListTask'][$index]['Number'] = array(
'#type' => 'item',
'#value' => $r['Number'],
'#size' => 4,
);
$form['ListTask'][$index]['Name'] = array(
'#type' => 'item',
'#value' => $r['Name'],
'#size' => 4,
);
$Task[$r['ID']]=$r;
$index++;
}
$form['#theme'] = 'ListTask';
return $form;
}
function xxx_theme() {
return array(
'ListTask' => array(
'arguments' => array('element' => NULL),
),
);
}
function theme_ListTask(&$element)
{
$header = array(theme('table_select_header_cell'), t('Date'), t('ID'), t('Name'));
// Темизирующая форму функция всегда принимает первым аргументом
// элементы формы. Теперь мы можем добавлять свою разметку
// или еще как-то изменять отображаемую форму.
foreach ($element['ListTask'] as $key => $Content)
{
if (substr($key, 0, 1) != '#')
{
$row = array();
$row[] = drupal_render($element['ListTask'][$key]['select']);
$row[] = drupal_render($element['ListTask'][$key]['Date']);
$row[] = drupal_render($element['ListTask'][$key]['Number']);
$row[] = drupal_render($element['ListTask'][$key]['Name']);
$rows[] = $row;
}
}
$output.= theme('table', $header, $rows);
//Эта строчка отрендерит все элементы формы, которые еще не были отрендерены.
//Полезно для скрытых полей, хорошо использовать, чтобы убедиться, что мы ничего не упустили
$output .= drupal_render($element);
return $output;
}
?>
А можно ли сделать в Drupale checkbox неактивным(небыло возможности изменить его состояние), куда копать по этому вопросу?
Как теме установить статус "Решено"?
Вместо
if (substr($key, 0, 1) != '#')
можна исспользовать element_children()За пост спасибо, то что искал.
Можно просто определенному элементу поставить атрибут
'#disabled'