Тематизация формы добавления контента определенного типа материалов

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

Аватар пользователя casualfatboy casualfatboy 10 ноября 2008 в 22:57

Хочу понять, как получить доступ к тематизации формы добавления контента определенного материала.Нужно изменить порядок полей/форм, обернув их в нужные таблицы/дивы

как это можно сделать ?

Комментарии

Аватар пользователя karakurt karakurt 10 ноября 2008 в 23:15

не знаю как в 6м, но в 5м в папке с темой разместить файлик node-тип_материала.tpl.php и в нем меняешь внешний вид ноды.

упс... тебе внешний вид при создании надо... не знаю Sad
а вообще при написание своего модуля можно поиграться с #prefix и #suffix

<?php
/**
* Implementation of hook_form().
*/
...
$form['name'] = array(
'#type' => 'textfield',
'#size' => 10,
'#maxlength' => 4,
'#title' => t('name'),
'#default_value' => $node->name,
'#prefix' => '

',
'#suffix' => '

',
);
?>

Аватар пользователя penexe penexe 10 ноября 2008 в 23:27
<?php

//в файле темы пишем, 
//только вмеcто mytype название типа материала, а вместо mytheme пишем название темы
// незабудте сбросить кэш

function mytheme_theme() {
  return array(
    
'mytype_node_form' => array(
      
'arguments' => array('form' => NULL),
    ),
  );

}

function 

mytheme_mytype_node_form($form) {
  
//делаем чтото с массивом $form
  
return drupal_render($form);
}

?>
Аватар пользователя Geldora Geldora 11 ноября 2008 в 10:16
function mytheme_mytype_node_form($form) {
  //делаем чтото с массивом $form

В раздел - делаем что-то с массивом форм, можно подставить это?

$form['name'] = array(
            '#type' => 'textfield',
            '#size' => 10,
            '#maxlength' => 4,
            '#title' => t('name'),
            '#default_value' => $node->name,
            '#prefix' => '<div id="name">',
            '#suffix' => '</div>',
            );
Аватар пользователя casualfatboy casualfatboy 11 ноября 2008 в 12:18

да, это работает, спасибо!

методом тыка сделал

$form['name'] = array(
            '#type' => 'textarea',
            '#size' => 10,
            '#maxlength' => 4,
            '#title' => t('Body'),
            '#name' => 'body',
            '#default_value' => $node->body,
            '#prefix' => '<div id="name" style="border:10px solid black;">',
            '#suffix' => '</div>',
            );

что дало в результате второе текстовое поле body

вопрос - 1.как достать поля(те их названия, атрибуты), которые генерируются по умолчанию и модулем cck ?
2.как сделать так, что бы создавались не новые поля, а редактировались ceotcnde.obt ?