#php #drupal #drupal-6 #drupal-themes
#php #drupal #drupal-6 #drupal-темы
Вопрос:
Я заметил кое-что странное при переключении тем. В garland я вижу кнопки вкладок «Просмотр» и «Панель редактирования»; но когда я переключаюсь обратно на свою пользовательскую тему, она исчезает.
У меня уже есть строка tabs:
<?php if ($tabs): print '<ul class="tabs primary">'. $tabs .'</ul></div>'; endif; ?>
Но это просто не отображается. Почему это?
Вот часть кода для page.tpl.php:
<div class="main-container">
<div class="mcontent">
<div id="content-header">
<?php if ($mission): print '<div id="mission">'. $mission .'</div>'; endif; ?>
<?php if ($tabs): print '<div id="tabs-wrapper" class="clear-block">'; endif; ?>
<?php if ($title): print '<h2'. ($tabs ? ' class="with-tabs"' : '') .'>'. $title .'</h2>'; endif; ?>
<?php if ($tabs): print '<ul class="tabs primary">'. $tabs .'</ul></div>'; endif; ?>
<?php if ($tabs2): print '<ul class="tabs secondary">'. $tabs2 .'</ul>'; endif; ?>
<?php if ($show_messages amp;amp; $messages): print $messages; endif; ?>
<?php print $help; ?>
</div> <!-- /#content-header -->
<?php print $content; ?>
</div>
</div>
Ответ №1:
Я использовал этот код во многих пользовательских темах до сих пор без каких-либо проблем.
Трудно понять, не видя сайт / ваш код, но есть пара возможностей:
- очистка кэша (Производительность> Очистить кэш сайта)
- убедитесь, что переменная $ tabs находится в
page.tpl.php
, а неnode.tpl.php
etc.
Другие вещи, которые могут быть (но, возможно, нет, если работают другие темы):
- у вашего пользователя нет разрешений на использование этого формата ввода (PHP-код, полный HTML и т.д.)
- сеанс не работает или вы вышли из системы, находясь на этих страницах (конечно, вы сразу увидите это, если, например, появится ваше меню администратора. Хотя я видел, как это происходило в некоторых настройках)
Обычно либо код находится не в том месте, он скрыт (с помощью CSS / форматирования страницы), либо у пользователя нет прав на его просмотр.
Если ничего из вышеперечисленного не работает, вы можете захотеть восстановить разрешения (в Drupal 6, Управление контентом> Настройки публикации> Восстановить разрешения) или поиграть с включением существующих разрешений, чтобы увидеть, является ли это причиной.
Комментарии:
1. Привет, @cache: уже сделал это, похоже, не работает @ $ tabs: ну, это уже в page.tpl.php , ничего в node.tpl.php но добавление этого в node.tpl ничего не дает @user: я администратор : ( Я должен быть в состоянии видеть, что … у всего остального контента, такого как страницы или истории, есть вкладки редактирования .. за исключением panel @ css: хм, возможно, нет, потому что я только что проверил источник, и div-оболочка tabs пуста : o … Я не помню, чтобы отключал вкладки редактирования панели…
2. Я предполагаю, что это может быть что-то в вашей теме, поскольку тема Garland работает. Вы также можете захотеть проверить template.php файл в вашей теме (или в базовой теме, если применимо), чтобы проверить,
$var['tabs']
не переопределяется ли _preprocess_page. Смотрите drupal.org/node/936918 для примера, как это может вызвать проблемы.
Ответ №2:
Я нанял кого-то, чтобы устранить проблему, вот что сделано:
<?php
/**
* Override of theme_menu_local_tasks().
* Add argument to allow primary/secondary local tasks to be printed
* separately. Use theme_links() markup to consolidate.
*/
function kidstoria_menu_local_tasks($type = '') {
if (module_exists('ctools')) {
if ($primary = ctools_menu_primary_local_tasks()) {
$primary = $primary;
}
if ($secondary = ctools_menu_secondary_local_tasks()) {
$secondary = $secondary;
}
}
else
{
if ($primary = menu_primary_local_tasks()) {
$primary = $primary;
}
if ($secondary = menu_secondary_local_tasks()) {
$secondary = $secondary;
}
}
switch ($type) {
case 'primary':
return $primary;
case 'secondary':
return $secondary;
default:
return $primary . $secondary;
}
}