Подскажите пожалуйста:
Как програмно вывести блок?
Нужно вывести блок "Вход для пользователей" в произвольном месте страницы.
Пока вывожу с помощью отдельно созданного для этого дела региона, но хочется вызвать блок программно, не плодя лишние сущности.
Комментарии
<?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 отвечает за оформление вашего блока.
Если в вашем шаблоне нет региона, который размещен там, куда вы хотите потом помещать блоки, то вам необходимо создать такой регион (назовите как хотите).
Понятно.![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
Спасибо большое!
Кстати, многое прояснилось, прочитав вот это - 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