Подскажите как записать if ?
Чтобы показывать текст/ссылку если только зарегистрированный пользователь не имеет др. ролей. Т.е. только для зарегистрированных! если зарегистрированный пользователь имеет еще и др. роль например - продавец или покупатель или там редактор... то текст/ссылку не показывать, а в место нее уже показывать др. ссылку.
Это мне нужно что бы реализовать следующую схему...
зарег. юзер подает заявку на изменение роли заходя в свой профиль и кликая на ссылку добавить заявку. далее модератор и юзер делает свои действия. В итоге заявка становится выполненной. Юзер имеет доп. роль. И теперь уже заходя в профиль юезер видет вместо подать заявку ссылку... - заявка на продление роли/аккаунта.
Кто что может посоветовать и подсказать.
Комментарии
<?php
/* вместо РАЗРЕШЕНИЕ_РОЛИ - любое из правил, которое доступно только ролям, на которую подал заявку твой юзер */
if (user_access('РАЗРЕШЕНИЕ_РОЛИ', $account)) {
$link = 'ничего не покажу';
} else {
$link = l('ccылка текст','ссылка урл');
}
?>
но ведь любой зар. юзер и так и будет иметь возможность создать заявку потому что она задана для зарег. юзера.
и так как запретить нельзя создавать (после создания) - хочу хотя бы скрыть и выводить другую ссылку...
конечно хорошо было бы если бы... выполнялось такое условие...
если заявка создана хотя бы 1 раз конкретным юзером то для этого юзера выводить др ссылку и запретить создание заявки... (в разрешениях галка на создании все равно будет)...
такое нужно
или я что то не допонимаю фразу /* вместо РАЗРЕШЕНИЕ_РОЛИ - любое из правил, которое доступно только ролям, на которую подал заявку твой юзер
Cделал бы так:
$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 - по принципу переделаете..
запрос не проверял, но принцип вроде ясен.
я пока тупо скрыл 2 разные ссылки
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 при условии что он включен у всех в пермишенсах.
хотя вроде как создать не может - выдает ошибку - доступ запрещен
в общем решил так
<?php if (user_access('create payment content')) {
print l(t('Add payment'), 'node/add/payment'); }
else {
print l(t('Add claims'), 'node/add/claims');
}
?>
но создавать материал как то не получается запретить если галка стоит в разрешениях материала
создать 1 раз можно доп модулем...
скорее всего это и решит мой вопрос... о бесконечных созданиях материала
просто есть случай
роль = модератор ему вообще не нужны ни какие заявки например и кликая на ссылку он сможет ее заполнить... вот что бы например этого не было и хочется закрыть создание материала для доп. роли зарег пользователя у которого в разрешениях роли-зарег.польз стоит создание заявки