Помогите c решением вывода материалов через свой модуль

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

Аватар пользователя liones3000 liones3000 2 декабря 2015 в 16:45

Необходимо создать кастомный тип формы, подобный стандартному “tableselect”. Разница между стандартным “tableselect” и новым типом, заключается в том, что вместо первой колонки с чекбоксами у нас в последней колонке должны выводится подряд три инпута.

  1. Создать кастомный модуль, расширяющий стандартный набор Form API.
  2. Вывести таблицу, содержащую набор полей с возможностью ввода информации о количестве элементов в последней колонке.
  3. Предусмотреть валидацию вводимых данных.
  4. Идентификатором строки, должнен выступать node id.
  5. Значение из полей необходимо записывать в созданный филд ноды.

Вот само задание
В этом деле начинающий, подтолкните в правильном направлении пожалуйста. Я так понимаю надо добавить инпут в форму, а в базу добавить через db_insert. Но как правильно? Вот что сделал:

<?php
//Menu
function advinfo_menu(){

$items['advinfo'] = array(

    

'title'=> t('Advanced Info'),
    
'page callback' => 'nodelist_form',
    
'access callback' => 'user_access',
    
'access arguments' => array('access content'),
    
'expanded' => TRUE
    
);
// Элемент ведущий к списку пользователей
$items['advinfo/nodeslist'] = array(

    

'title' => t('Nodes list'),
    
'description' => t('List of nodes'),
    
'page callback' => 'nodelist_form',
    
'access callabck' => 'user_access',
    
'access arguments' => array('access content'),
    
'type' => MENU_NORMAL_ITEM
    
);
return 
$items;
}

function 

nodelist_form(){

$perpage 10;
// HEADER TABLE
$header = array(
    array(
'data'=> 'Заголовок''field'=> 'title'),
    array(
'data'=> 'Создано''field'=> 'created'),
    array(
'data'=> 'Тип''field'=> 'type'),
    array(
'data'=>'NID''filed'=>'nid'),
    array(
'data'=>'Статус''field'=>'status'),
    array(
'data'=>'Комментарий''field'=>'comment')
    );
    
// Запрос к БД о материале
    
$nodes db_select('node','n')
    ->
fields('n', array('title''created''type''nid''status'))
    ->
extend('PagerDefault')
    ->
limit(10)
    ->
extend('TableSort')
    ->
OrderByHeader($header)
    ->
execute();

    global 

$base_url;
    
$rows = array();
//создаем массив который выведим в таблицу после шапки
        
foreach ($nodes as $node
        {
            
$rows[]=array(
                
l($node->title$base_url."/node/".$node->nid), // Ссылка на конкретную ноду
                
format_date($node->created), // дата публикации
                
$node->type//тип
                
$node->nid,  //номер ноды
                
$node->status//status
                
$rows[] ='<form action="" method="post"> Item1: <input type="text" name="item1" size="5"><input type="submit" value="Save"></form>',
                );
        
//$item = array($_POST['item1']);
        
}
        
$output theme('table', array('header'=>$header'rows'=>$rows));
        
$output.= theme('pager'); // навигация по результатам
        
return $output
}
?>