Вы здесь

отчего может не применяться в теме шаблон термина таксономии?

1

Привет!
Мучаюсь уже не первый день. Есть субтема от Omega 4. В ней есть файлы шаблонов таксономии, например, taxonomy-term--katalog-3.tpl.php. И всё работает, файл применяется. Создал я новую субтему от той же Omega 4, дизайн менять задумал. Бросаю я туда свои шаблоны, а они не работают. Кеш чистил. Тему включал-выключал. Создал новую субтему - в ней тоже не работает. А меняю в настройках тему на старую - всё работает, как и раньше, шаблоны в старой теме подгружаются и работают. Куда копать, подскажите пожалуйста?

Версия Drupal: 
7.x
Категория: 
Taxonomy APITheming
Вопрос задан 20.05.2015 - 01:25

только что попробовал всё с нуля - свежая инсталляция Drupal, Omega, создал субтему, кинул шаблон - всё подхватилось. Раскопки продолжаются.

Комментарий оставлен 20.05.2015 - 14:28

Ответы

1

Должен быть еще файлик taxonomy-term.tpl.php . Можно просто родной из ядра скопировать в папку темы, сбросьте кэш и ваши taxonomy-term--**.tpl.php тоже подхватятся. Аналогично и с другими tpl.php, должен быть base file (page.tpl.php чтоб работал page--front.tpl.php и т.п.).

Ответ дан 20.05.2015 - 10:07

файлик лежит в базовой теме sites/all/themes/omega/omega/templates/taxonomy/taxonomy-term.tpl.php. В старой субтеме, где шаблоны работают, этого файла нет, работает без него. Положил файл в новую субтему, сбросил кеш - не заработало.

Комментарий оставлен 20.05.2015 - 13:34
0
  1. Посмотри template suggestion в template.php. И если надо перенеси в новую сабтему.
  2. Может сабтему не правильно создал (проверь *.info файл и названия файлов/функций)?
  3. Кеш?
Ответ дан 20.05.2015 - 09:33
Аватар пользователя SAM
SAM
212
  1. В template.php родительской темы Omega много кода, в том числе есть вот такая функция:

    /**

    • Theme callback for rendering an Omega layout.
      */
      function theme_omega_page_layout($variables) {
      // Clean up the theme hook suggestion so we don't end up in an infinite loop.
      unset($variables['theme_hook_suggestion'], $variables['theme_hook_suggestions']);

      $layout = $variables['omega_layout'];
      drupal_process_attached(array('#attached' => $layout['attached']));
      omega_layout_load_theme_assets($layout['name']);

      $hook = str_replace('-', '_', $variables['omega_layout']['template']);
      return theme($hook, $variables);
      }

но это из коробки там было, в числе всего прочего, и работало.
А в template.php рабочей субтемы пусто, переносить как-бы нечего.

  1. Субтему создавал командой drush omega-wizard, она всегда работает нормально и однообразно.
  2. Кеш сбрасывал раз 100 :)
Комментарий оставлен 20.05.2015 - 14:00

Это внутренняя функция Omega, без остального кода сказать ничего не могу.

Проверьте ещё правильность названия шаблонов.

Комментарий оставлен 20.05.2015 - 14:44

заккоментируйте unset($variables['theme_hook_suggestion'], $variables['theme_hook_suggestions']); в омеге . , посмотрим. template.php функции в подтеме наследуются. Если все ок - раскомментировать и идти читать какие там в омеге сейчас соглашения по именованию приняты.

Комментарий оставлен 20.05.2015 - 18:00
0

попробуйте сделать в другой теме. в омеге не так просто разобраться. если получится в другой, например в Бартике, то переходите уже к разговору с омегой

Ответ дан 20.05.2015 - 20:20
0

Надо сделать все шаги еще раз по инструкции - скорей всего что-то упустили, Omega 4 - рабочая - "по пояс"

Ответ дан 21.05.2015 - 13:02
0

Всем огромное спасибо за участие, проблема решилась! Дело было, как всегда, в неприятной мелочи, которую я упорно обходил вниманием в вопросе - права доступа :) Конкретно на директорию templates, что в корне темы. У вебсервера, естественно, должны быть права на чтение. А у меня стояло почему-то 770, и владелец и группа был я :) Вот только непонятно теперь, как drush omega-wizard насоздавал директорий с такими правами, обычно-то всё нормально, Омега действительно очень стабильная и предсказуемая штука.

Ответ дан 21.05.2015 - 23:11