В Drupal 7 как да направя блок видим на страницата за преглед на потребителя, но невидим на страницата за редактиране на потребител?

В Drupal 7 добавих блок към областта на съдържанието на потребителската страница. Направих това, като уточних

user/*

в Настройки за видимост -> Страници -> Показване на блок на определени страници -> Настройката само на изброените страници.

Въпреки това, тъй като заместващият знак приема всичко, сега блокът се появява на страницата за редактиране на потребителя.

Има ли заместващ знак с едно число, като

user/%integer

който мога да използвам тук, така че блокът да се показва само на страницата за изглед на потребител?

Как мога да скрия този блок на страницата за редактиране на потребители в Drupal 7?


person Will    schedule 14.04.2012    source източник
comment
Не разбрах как да премахна блокове програмно от изгледа за редактиране на потребителя, но модулът Context ми позволява да добавя блок към всяка страница на потребителския профил. Също така трябваше да премахна оригиналните настройки на само изброената страница за този блок, за да може тази работа. Все още искам да знам коя кука да извикам, за да премахна блок Views, преди да бъде изобразен на потребителската страница за редактиране.   -  person Will    schedule 15.04.2012


Отговори (2)


Можете да опитате да активирате модула за PHP филтър, така че да можете да въведете php на страницата с настройки за видимост на блокиране. Там можете да проверите за аргумент като

<?php 
if(arg(0) == 'user' && arg(2) != 'edit' )
return true;
else 
return false 
?> 
person niksmac    schedule 16.04.2012

Тези дни има друга налична алтернатива ... която не изисква PHP филтърът да бъде активиран (което трябва да се опитвате да избягвате, когато е възможно) ... Просто използвайте модулът Правила блокират видимостта. Ето цитат от страницата на проекта:

Модулът за видимост на блокове с правила позволява компонентите на Правила да се използват за контрол на видимостта на блоковете. Това предоставя на администраторите и разработчиците на Drupal изключителна гъвкавост при контролиране кога блоковете трябва да се показват на техните уебсайтове, в допълнение към опциите за видимост по подразбиране, предоставени от Drupal.

Общата идея е, че ако можете да го направите с правила, можете да го използвате, за да контролирате видимостта на блока, така че възможностите са неограничени.

Трябва да се покаже блок само за потребители, регистрирани преди повече от месец?

Може би имате блок, който трябва да се показва само между 8:00 и 17:00 часа през делничните дни?

Какво ще кажете за показване или скриване на блок въз основа на текущите метеорологични условия?

Всичко това може да се направи чрез използване на видимост на блокиране на правила.

С това и съгласно ако можете да го направите с Правила, можете да го използвате, за да контролирате видимостта на блока по-горе, вие намалихте въпроса си до Правилата прихващат ситуацията, в която някой използва URL като /user/*/edit (заменете * тук с всяка разрешена стойност за uid). Ако не сте запознати как да направите това с Правила, тогава погледнете моите отговор на въпроса Как да направите разрешенията на модул по-подробни? (и обърнете внимание на регулярния израз-израз, включен в примерното правило, което включих там).

person Pierre.Vriens    schedule 08.02.2016