Темизация edit старниц. Для каждого типа материала индивидуальная темизация

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

Комментарии

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 10:56

на друпал орге написано что пару строк в темлет нужно пихнуть и файл обозвать node-mycontenttype-edit.tpl.php

но это не работает чото.

Аватар пользователя zhylik zhylik 8 сентября 2011 в 11:10

Надо перекрыть в вашей теме вывод theme_node_form():

1. Открываете node.pages.inc
2. Ищете функцию theme_node_form().
3. Копируете ее в файл template.php вашей темы и обзываете {название_темы}_node_form (garland_node_form)
4. Очищаете кеш регистра тем

внутри функции нода доступна так:
$node = $form['#node']

Соответственно тип:
$type = $node->type (или $form['#node']->type)

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 13:22

Гм... совсем никто не темизировал редакционную страницу ноды? а при создании нового материала тоже нужно как бы... иметь шаблон вывода полей и форм.

Аватар пользователя zhylik zhylik 8 сентября 2011 в 13:40

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

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 14:12

"zhylik" wrote:

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

у вас долгий путь. для не программиста.

мне нужно кастомно выводить/скрывать формы как это делается в файлах node.tpl.php и page.tpl.php

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 14:18

не понятно это нужно в теплет

function myadmintheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'ccktype',
    ),
  );
}

или это

function course_theme($existing, $type, $theme, $path) {
  return array(
    'course_node_form' => array(
      'arguments' => array('form' => NULL),
    ),
  );
}

и больше ничего не понятно что делать.

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 14:44

"zhylik" wrote:
Ищете функцию theme_node_form().

обозвал своей темой

function MYTHEME_node_form($form) {
  $output = "\n<div class=\"node-form\">\n";

   $admin = '';
  if (isset($form['author'])) {
    $admin .= "    <div class=\"authored\">\n";
    $admin .= drupal_render($form['author']);
    $admin .= "    </div>\n";
  }
  if (isset($form['options'])) {
    $admin .= "    <div class=\"options\">\n";
    $admin .= drupal_render($form['options']);
    $admin .= "    </div>\n";
  }
  $buttons = drupal_render($form['buttons']);

  $output .= "  <div class=\"standard\">\n";
  $output .= drupal_render($form);
  $output .= "  </div>\n";

  if (!empty($admin)) {
    $output .= "  <div class=\"admin\">\n";
    $output .= $admin;
    $output .= "  </div>\n";
  }
  $output .= $buttons;
  $output .= "</div>\n";

  return $output;
}

а что с этим делать?

внутри функции нода доступна так:
$node = $form['#node']

Соответственно тип:
$type = $node->type (или $form['#node']->type)

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 15:22

при одном лишь добавление

function MYTHEME_theme($existing, $type, $theme, $path) {
return array(

'link_to_catalog_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'node-link_to_catalog-edit'
),

);

}

наблюдаю что при созданном файле node-link_to_catalog-edit.tpl.php что без него
лишь кнопки появляются теперь не в конце страницы а переместились выше... над админской формы настроек ноды.

Аватар пользователя Libero82 Libero82 8 сентября 2011 в 16:20

"zhylik" wrote:
2. Ищете функцию theme_node_form().
3. Копируете ее в файл template.php вашей темы и обзываете {название_темы}_node_form (garland_node_form)

В D7 такое не работает?
У меня не получилось...

Аватар пользователя divined divined 8 сентября 2011 в 16:27

я могу посоветовать посмотреть тему fusion, в именно файл template.php и скопировать код оттуда.
На этой все файлы темизации работают без проблем.

Аватар пользователя iNFerNo iNFerNo 9 сентября 2011 в 11:01

"divined" wrote:

я могу посоветовать посмотреть тему fusion, в именно файл template.php и скопировать код оттуда.
На этой все файлы темизации работают без проблем.

нет в fusion, в именно файл template.php что то связаное с node_form

Аватар пользователя Libero82 Libero82 11 июля 2012 в 11:00

"cooperok" wrote:
Вот при чем.

Попробовал сделать свой шаблон при помощи панелей для add/edit типов нод.
Не смог "добраться" до cck-полей.
Хотел раскидать cck-поля.