Как изменить форму ввода в контент-типе Drupal7

Может кто-нибудь помочь мне? Я много раз искал решение этой проблемы. Теперь я знаю, как создать новый тип контента и как оформить его вывод. Это было просто. просто создайте файл «node--content-type-name.tpl.php» в папке моего шаблона. Теперь я хочу создать форму ввода темы.

когда я нашел способ, просто сказал: «Создайте новый модуль или добавьте код в template.php», но я пробовал тысячу раз, но не получил никакого результата. Думаю, я не очень хорошо это понял. Это слишком сложно, чем просто создать файл tpl.php.

Итак, мои вопросы.

  1. Есть ли способ сделать входной файл темы, например, node--content--edit.tpl.php? (Я обнаружил, что в случае со страницей создайте страницу--узел--добавить--content-type.tpl.php)

  2. Должен ли я делать собственный модуль? если я хочу ввести тему в тип контента?

  3. Некоторые люди говорили, поместите функцию theme () в файл template.php в папку site/all/theme/bartik. Я поставил код ниже, но он не сработал. я ничего не пропустил?

имя типа контента: mycontent

function mycontent_theme() {
    return array(
        'mycontent_node_form' => array(
        'agruments' => array('form' => NULL),
        'template' => 'mycontent-node-form',
        ),
    );
}

затем я сделал файл mycontent-node-form.tpl.php в папке site/all/theme/bartik/template и поместил в него просто случайный текст. (adsfasdfkajsdhfkash), но ничего не произошло.

на самом деле я просто хочу сделать поле соглашения в своем типе контента (INPUT), но я потратил слишком много времени. Может кто-нибудь помочь мне?


person user1911959    schedule 18.12.2012    source источник


Ответы (1)


Некоторые люди говорили, поместите функцию theme() в template.php в папку site/all/theme/bartik. Я поставил код ниже, но он не сработал. Я что-то пропустил?

Вместо mycontent следует использовать короткое название темы. Если вы добавляете это в тему Bartik, то имя функции должно быть bartik_theme(), а не mycontent_theme().

Код, который вы используете, содержит опечатку: это arguments, а не agruments. Однако это свойство не используется в Drupal 7. Drupal 7 использует переменные или рендеринг элемента.

function bartik_theme() {
  return array(
    'mycontent_node_form' => array(
      'render element' => array('form' => NULL),
      'template' => 'mycontent-node-form',
    ),
  );
}

В качестве примечания: если вы добавляете функции к уже включенному модулю/теме, вам нужно сначала отключить его, а затем снова включить, поскольку Drupal кэширует имена некоторых функций, реализованных модулями/темами.

person apaderno    schedule 18.12.2012