Подскажите пожалуйста:
Как програмно вывести блок?
Нужно вывести блок "Вход для пользователей" в произвольном месте страницы.
Пока вывожу с помощью отдельно созданного для этого дела региона, но хочется вызвать блок программно, не плодя лишние сущности.
Комментарии
<?php
$block = module_invoke('views', 'block', 'view', 'popular_alltime');
print $block['content'];
?>
Дальше смотреть в документацию по module_invoke и по block_block
Можно и просто чистый html вставить.
Спасибо за ответы.
Врубился наконецто:
<?php
$block = module_invoke('имямодуля', 'block', 'view', идентификатор);
print $block['content'];
?>
Например:
Программный вывод Блока навигации:
<?php
$block = module_invoke('user', 'block', 'view', 1);
print $block['content'];
?>
Программный вывод Блока Вход для пользователей:
<?php
$block = module_invoke('user', 'block', 'view', 0);
print $block['content'];
?>
Программный вывод Блока Меню:
<?php
$block = module_invoke('menu', 'block', 'view', меню_id);
print $block['content'];
?>
Подскажите еще пожалуйста:
Как теперь этот блок оформить в соответстсии с текущей темой?
theme_block($block);-не работает
<?php
$block = module_invoke('views', 'block', 'view', 'popular_alltime');
theme_block($block);-не работает
?>
Нашел вариант:
<?php
$block = module_invoke('views', 'block', 'view', 'popular_alltime');
include "block.tpl.php";
?>
<?php
$block = module_invoke('имямодуля', 'block', 'view', идентификатор);
print $block['content'];
?>
А что надо подставлять в эту запись, чтобы вывести блок, созданный в Administer-> Site building -> Blocks ?
Скажем, создался блок с делта 5.
Может так попробовать:
<?php
$block = module_invoke('block', 'block', 'view',5);
print $block['content'];
?>
Вот есть блок входа на сайт (поля: логин, пароль) как мне сделать так, что бы он находился в верхнем правом углу страницы?
настрой стиль CSS у этого блока
Бьюсь, бьюсь, а ничего не получается.
Что я делаю:
в огнелисе с помощью fairbug навожу на данный блок, тыкаю, что б запомнил. Перехожу во вкладку CSS и что бы я не делал - ничего не происходит.
Думал это из-за того, что загаловок(таблицы(таблицы ли?) имя сайта и лого сайта) у данной темы (aberdeen) на всю ширину, но когда я изменю ширину (с помощью того же фаербага) путем редактирования её во вкладке layout, снова ничего не происходит.
Что я делаю не так?
И еще вопрос:
как я понимаю, основые файлы у каждой темы:
style.css и все остальные с расширением .php
Но вот что конкретно редактируется в каждом из этих файлов?
И всё же, может кто-нибудь скажет как решить мою проблему. Ничего кроме того, что описал выше в голову не приходит.
Вот есть блок входа на сайт (поля: логин, пароль) как мне сделать так, что бы он находился в верхнем правом углу страницы?
Блоки располагаются в т.н. "регионах" (места, где их разрешается размещать). Обычно это правая, левая колонки, шапка, подвал сайта и область контента. Если в вашей теме оформления есть регион, расположенный в "верхнем правом углу", то укажите в настройках блока, чтобы он там появился.
Если нет - то вам придется модифицировать шаблон темы - файл page.tpl.php, чтобы поместить регион, куда вам нужно.
Другой вариант - см. http://setegnom.com/node/544
Если в вашей теме оформления есть регион, расположенный в "верхнем правом углу", то укажите в настройках блока, чтобы он там появился.
Если нет - то вам придется модифицировать шаблон темы - файл page.tpl.php, чтобы поместить регион, куда вам нужно.
\\
Если я правильно понял, то само существование региона задается в page.tpl.php, а его месторасположение в style.css, я на верном пути? )
Т.е. что бы расположить блок в правый верхний угол мне надо создать регион header и указать в style.css его место?
Но в моей теме (bluebreeze) регион header, в котором находятся имя сайта, лого, девиз первичные и второстепеные линки, уже есть(если, опять же, я все понимаю правильно).
Следовательно, мне нужно в регионе header создать новые регион, который в style.css расположить там, где мне нужно?
Нет, не совсем так. CSS отвечает за оформление вашего блока.
Если в вашем шаблоне нет региона, который размещен там, куда вы хотите потом помещать блоки, то вам необходимо создать такой регион (назовите как хотите).
Понятно.
Спасибо большое!
Кстати, многое прояснилось, прочитав вот это - http://www.drupal.ru/node/3557
А как программно вывести Миссию или Слоган?
http://docs.drupal.ru/doc/peremennye_v_shablonakh
Dimm, огромное вам спасибо за ваши комментарии. И мне они помогли:)
Здравствуйте. Возник вопрос -
функция print $block['content'] выводит само тело блока. А как заставить выводить всю структуру блока - вместе с названием блока?
<div class="block-up">
<?php if (!empty($block->subject)): ?>
<div class="block-subj"><?php print $block->subject ?></div>
<?php endif;?>
</div>
<div class="content"><?php print $block->content ?></div>
<div class="block-down"></div>
</div>
подробнее здесь http://content-management-systems.info/drupal/api/6/file/block.tpl.php