В 6-ке не предусмотрена возможность редактировать блоки во Front-end'e, но в этом нет никакой проблемы т.к. каждому блоку программно можно добавить ссылку на его редактирование.

Вот что нам предлагают http://drupal.org/node/120334
Суть такова: добавляем в block.tpl.php конструкцию:

<?php if ($block->module == "block"): ?>
<?php if (user_access('administer blocks')): ?>
<div class="edit-block"><a href="/admin/build/block/configure/block/<?php print $block->delta; ?>">(edit this block)</a></div>
<?php endif; ?>
<?php endif; ?>

Далее просто меняем адрес ссылки взависимости от версии Drupal:

/admin/structure/block/manage/block/ для 7.x
/admin/build/block/configure/block/ для 6.x
/admin/build/block/configure для 5.x
/admin/block/configure для 4.7
/admin/block/edit/ для 4.6

Ссылка на редактирование добавится только для пользовательских блоков(созданных стандартным модулем Block). Неплохой вариант, но не совсем удобный т.к. у нас могут быть блоки созданные другими модулями, кроме модуля Views(он создает ссылки на редактирование блоков созданных с его помощью).

Наш вариант:

<?php if ((user_access('administer blocks') && ($block->module !== "views"))): ?>
<div class="edit-block">
<a href="/admin/build/block/configure/<?php print $block->module; ?>/<?php print $block->delta; ?>" tite="Редактировать блок">edit block</a>
</div>
<?php endif; ?>

Помимо проверки на права пользователя редактировать блоки, мы исключили вывод ссылки на редактирование в блоках созданных с помощью Views.

/* Edit block link */
.edit-block {
	position: absolute; /* blocks must have position: relative; */
	top: -6px;
	right: -6px;
	text-shadow: none;
	z-index: 1;
}
.edit-block a {
	background-color: #95FF00;
	border: 1px solid #000;
	color: #000;
	font-size: 12px;
	padding: 1px 4px;
	text-decoration: none;
}
.edit-block a:hover {
	border: 1px solid #95FF00;
	color: #FFF !important;
	background-color: #000;
	text-decoration: none;
	box-shadow: 0 0 18px #95FF00;
}
/* end Edit block link */
Теги: Drupal 6
Данная публикация старше 4-х лет. Возможно существуют более рациональные способы решения рассматриваемой задачи или вопроса.

Выразить благодарность

Если эта публикация оказалась для Вас полезной и вы хотите выразить свою благодарность, сделайте пожалуйста её репост в социальных сетях или на своём сайте.

Так же, Вы можете перевести любую сумму, которую посчитаете нужной на наш счёт, что сильно мотивирует к написанию новых полезных статей.

Комментарии: