Показывать текст/ссылку если только зарегистрированный пользователь не имеет др. ролей

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 9:08

Подскажите как записать if ?
Чтобы показывать текст/ссылку если только зарегистрированный пользователь не имеет др. ролей. Т.е. только для зарегистрированных! если зарегистрированный пользователь имеет еще и др. роль например - продавец или покупатель или там редактор... то текст/ссылку не показывать, а в место нее уже показывать др. ссылку.

Это мне нужно что бы реализовать следующую схему...

зарег. юзер подает заявку на изменение роли заходя в свой профиль и кликая на ссылку добавить заявку. далее модератор и юзер делает свои действия. В итоге заявка становится выполненной. Юзер имеет доп. роль. И теперь уже заходя в профиль юезер видет вместо подать заявку ссылку... - заявка на продление роли/аккаунта.

Кто что может посоветовать и подсказать.

Комментарии

Аватар пользователя boneg boneg 31 мая 2011 в 9:19
<?php
/* вместо РАЗРЕШЕНИЕ_РОЛИ - любое из правил, которое доступно только ролям, на которую подал заявку твой юзер */
if (user_access('РАЗРЕШЕНИЕ_РОЛИ'$account)) {
$link 'ничего не покажу';
} else {
$link l('ccылка текст','ссылка урл');
}
?>
Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 9:34

но ведь любой зар. юзер и так и будет иметь возможность создать заявку потому что она задана для зарег. юзера.

и так как запретить нельзя создавать (после создания) - хочу хотя бы скрыть и выводить другую ссылку...

конечно хорошо было бы если бы... выполнялось такое условие...

если заявка создана хотя бы 1 раз конкретным юзером то для этого юзера выводить др ссылку и запретить создание заявки... (в разрешениях галка на создании все равно будет)...

такое нужно

Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 9:35

"boneg" wrote:
РАЗРЕШЕНИЕ_РОЛИ

или я что то не допонимаю фразу /* вместо РАЗРЕШЕНИЕ_РОЛИ - любое из правил, которое доступно только ролям, на которую подал заявку твой юзер

Аватар пользователя Dimaseo Dimaseo 31 мая 2011 в 10:01

"iNFerNo" wrote:
если заявка создана хотя бы 1 раз конкретным юзером то для этого юзера выводить др ссылку и запретить создание заявки... (в разрешениях галка на создании все равно будет)...

Cделал бы так:

glabal $user;
$uslovie= db_query("SELECT distinct 'sozdana' from {node} where exists(select nid from {node} where type=:type and uid=:uid)", array(
  ':uid' => $user->uid,
  ':type' => 'zayavka',
))->fetchField();
if ($uslovie=='sozdana')
{
//уже есть
}
else
{
//еще нет
}

не увидел что 6 - по принципу переделаете..
запрос не проверял, но принцип вроде ясен.

Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 12:30

я пока тупо скрыл 2 разные ссылки

<?php
if (user_access('create payment content') and ($user->roles[4])) {

print l(t('Add payment'), 'node/add/payment'); }

else {

print l(t('Add claims'), 'node/add/claims');

}
?>

а можно ли как то для тех юзеров которые не являются $user->roles[4] закрыть создание материала node/add/payment при условии что он включен у всех в пермишенсах.

Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 13:18

в общем решил так

<?php if (user_access('create payment content')) {
print l(t('Add payment'), 'node/add/payment'); }
else {
print l(t('Add claims'), 'node/add/claims');
}
?>

но создавать материал как то не получается запретить если галка стоит в разрешениях материала

Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 13:21

создать 1 раз можно доп модулем...

скорее всего это и решит мой вопрос... о бесконечных созданиях материала

Аватар пользователя iNFerNo iNFerNo 31 мая 2011 в 13:25

просто есть случай

роль = модератор ему вообще не нужны ни какие заявки например и кликая на ссылку он сможет ее заполнить... вот что бы например этого не было и хочется закрыть создание материала для доп. роли зарег пользователя у которого в разрешениях роли-зарег.польз стоит создание заявки