Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Вопрос по уроку

Вопрос по уроку
, by

тема: http://drupal.org/project/wilderness

 

Как изменить дизайн содержимого в регионах?

поиски как это сделать в page.tpl.php не увенчались успехом. Каким образом для региона "меню"  срабатывают стили "artmenu" а если тоже самое прописать в файле page.tpl.php для другого списка, к примеру через <div> то он корректно не срабатывает, а именно пропадают пункты меню. И что это за аномалия, когда стираешь тэг <div> и выводишь просто  <?php echo $navigation; ?> то всеравно сохраняются, пускай и не полностью стили верстки?

 

приложение:

 

 region

1 answer
votes: 557
Answer

Посмотрите файл block.tpl.php, через него выводятся блоки в друпале, если его нет, то скопируйте его в папку темы. Но думаю он там будет потому что имена классов не стандартные. Переопределить css стили несложно, добавьте к уже существующим стилям еще один id, например:

.sidebar-first .block{
  background: #eeeeee;
}

А вам допустим бекграунд не нужен, тогда добавляем id блока:

.sidebar-first #block-block-3.block{
  background: none;
}

И так со всеми остальными нужными стилями.


Я попробовал, но я не могу понять как для

<?php echo $navigation; ?> 

который прописан в page.tpl.php , был добавлен div "artmenu" , причем не в  page.tpl.php  ни в block.tpl.php нету этого дива.  

Стиль практически весь у обьекта сохраняется и только, после того как я изменяю

 

$replacement = 'class="artmenu"';   в файле common_medthods.tpl.php  

на

$replacement = 'class="AAAartmenu"';   

только тогда переставал работать стиль artmenu  Smile

 

 

Вот содержимое block.tpl.php:

 

<?php // $Id $ ?>
<div class="Block">
<div class="Block-tl"></div>
<div class="Block-tr"></div>
<div class="Block-bl"></div>
<div class="Block-br"></div>
<div class="Block-tc"></div>
<div class="Block-bc"></div>
<div class="Block-cl"></div>
<div class="Block-cr"></div>
<div class="Block-cc"></div>
<div class="Block-body">
<?php if ($block->subject): ?>
<div class="BlockHeader">
<div class="l"></div>
<div class="r"></div>
<div class="header-tag-icon">
<div class="t">
<?php echo $block->subject; ?>
</div>
</div>
</div>
<?php endif; ?>
<div class="BlockContent">
<div class="BlockContent-body">
<?php echo $block->content; ?>
</div>
</div>
</div>
</div>

 

Region 

 


Ну бог с ним с этим дивом, он же вам не может помешать переписать его css. Вам главное что выведен блок и его содержимое. А про  common_methods.tpl.php это какой-то кастомный шаблон.

 


В файле page.tpl.php  всего лишь одна строчка  <?php echo $top ?> а на выходе она выдает целую кучу div -в и классов, которые обращаются к таблице стилей.  

 

Вопрос: как мне поменять отдельный регион а именно стиль его содержимого.

region 

 

Ну бог с ним с этим дивом, он же вам не может помешать переписать его css. 

 

Мне получается всю эту кучу div -ов  закрутить в отдельный div, или вы имеете ввиду работу с файлом block.tpl.php ??

 

 

 

 

 


Эти два блока, что выделены красным имеют одинаковый класс <div class="Block-body"> прописанный в block.tpl.php  я не совсем понимаю, что именно нужно менять в этом файле.


Вот пример того как можно разные блоки по разному выводить:

 

<?php

switch ($block->delta){
	case 'primary-links':
		print $block->content;
		break;
	case 'view_banner_company-block_1':
		print $block->content;
		break;
	case 'd6be7a6a589be10579571491ec79a1d9'; //portfolio banner
		print $block->content;
		break;
	case 'view_banner_company_en-block_1';
		print $block->content;
		break;

	case '59c5e3d1d0ba37c90a9e3a56067e8da8'; //portfolio
		print $block->content;
		break;

	default: 
	?>
		<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="clear-block block block-<?php print $block->module ?>">

		<?php if (!empty($block->subject)): ?>
		  <h2><?php print $block->subject ?></h2>
		<?php endif;?>

		  <div class="content"><?php print $block->content ?></div>
		</div>
	<?php
}
?>

Спасибо за подробный ответ, попробую разобраться в коде