Почему-то не удается установить доп.регион для блока, помимо дефолтных левого, правого, шапки, пола и контента.
Следую инструкциям:
В template.php добавляю:
function yourtheme_regions()
{ return array(
'left' => t('left sidebar'),
'right' => t('right sidebar'),
'content_top' => t('content top'),
'content' => t('content'),
'header' => t('header'),
'footer' => t('footer'),
);
}
В page.tpl.php вставляю:
<?php if ($content_top) : ?>
<?php endif; ?>
Однако в разделе администрирования блоков новый почему-то не появляется. В чем может быть причина? Версия у меня 4.7.
Комментарии
а тему поменяли на свою - вместо yourtheme_regions?
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
разумеется
>> а тему поменяли на свою - вместо yourtheme_regions?
оказывается и так можно.... я все время добавляю регионы в phptemplate_regions() и пока что баг был только один раз очень давно - регион не менялся... и то, решился просьбой "работай, уважаемый" в матерной форме...
ЗЫ: чувствую я что все возможности друпала мне в этой жизни не узнать ))))
Делаем так....
В файле template.php своей темы определяем дополнительные регионы:
function Moyathema_regions() {
return array(
// не забываем стандартные
'left' => t('left sidebar'),
'right' => t('right sidebar'),
'content' => t('content'),
'header' => t('header'),
'footer' => t('footer'),
//Добавляем свои
'user1' => t('user1 bar'),
'user2' => t('user2 bar'),
'user3' => t('user3 bar'),
'user4' => t('user4 bar'),
'user5' => t('user5 bar'),
'user6' => t('user6 bar'),
'user7' => t('user7 bar'),
'user8' => t('user8 bar'),
'user9' => t('user9 bar'),
'user10' => t('user10 bar')
);
}
?>
Соотвественно надо эти переменные определить еще и...
<?php
function _phptemplate_variables($hook, $variables) {
if ($hook == 'page') {
// Только свои, стандартные уже определены
foreach (array('user1','user2','user3','user4','user5','user6','user7','user8','user9','user10') as $region) {
$variables[$region] = theme('blocks', $region);
}
}
return $variables;
}
?>
В page.tpl.php вызываем регионы там где нужно:
<?php if((isset($user4)) and ($user4 !="")) : ?>
<td class="my_class">
<?php echo $user4; ?> // или <?php print $user4; ?>
</td>
<?php endif; ?>
Где-то так...
Сам-то я начинал с того, что phptemplate.engine правил....
Мой сайт
-на drupal 4.7 - www.travelweekly.ru
-на drupal 5 - пока не готов.
спасибо за подсказку. сам бы в подобном направлении не копнул, т.к. правка phptemplate.engine вполне устраивает. теперь задумаюсь