Подскажите как создать условие для ID определённого юзера?

Вот такой код есть:

if(!$this->User_GetUserCurrent()->isAdministrator()) {


Как сюда добавить условие ещё на id одного пользователя?

16 комментариев

avatar
А дальше религия разобраться не позволяет?

$oUserCurrent=$this->User_GetUserCurrent();
if(!$oUserCurrent->isAdministrator() && !in_array($oUserCurrent->getId(),array(1,2,7))) echo 'Админ сказал пилить на йух'
avatar
array(1,2,7)))

это айди юзеров на которых будет данная мессага лезть?
avatar
Сообщение появится всем кроме админов и пользователей с id=1,2,7
Если нужно наоборот
if(in_array($this->User_GetUserCurrent()->getId(),array(1,2,7))) echo 'Админ сказал пилить на йух'
avatar
Почему позволяет. Делал вот так вот. Но тогда на всех пользователей выходит, а не на определённого:

if(!($this->User_GetUserCurrent()->isAdministrator() or $this->User_GetUserCurrent()->getUserID(11))) {
avatar
GetUserCurrent
avatar
ммм, я по разному попробывал
or $this->User_GetUserCurrent()->GetUserCurrent(11)

и так
or $this->GetUserCurrent->getUserID(11)

и так
or $this->GetUserCurrent(11)


Чёт не получилось добиться эффекта. Как конкретно изменить?
avatar
Что я тут не так сделал?

if(!$this->User_GetUserCurrent()->isAdministrator() or !$this->in_array($oUserCurrent->getId(),array(2,11))) {


Не работает. Получается мне надо условие не показывать, если переменная $this равна администратору или юзерам с id 2 и 11.
avatar
В итоге твой вариант заработал, я не обратил внимание сразу на первую строку, что переопределяется переменная $this. Спасибо тебе!
avatar
Ребята, можете плиз прямо на моё примере показать, как изменить, чтобы заработало.

if(!$this->User_GetUserCurrent()->isAdministrator()) {
avatar
Редкое недопонимание мягко говоря…

В ините должно быть как миниум получение объекта текущего пользователя, для удобного обращения к нему
$this->oUserCurrent = $this->User_GetUserCurrent();


Далее перед вашим кодом проверка на авторизацию пользователя(Конечно в зависимости от вашей задачи, может быть вам нужна тогда ниже проверка на то что пользователь к тому же не авторизован, а не только администратор или id)
if (!$this->oUserCurrent) {
    $this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
    return;
}


if(!$this->oUserCurrent->isAdministrator() or $this->oUserCurrent->getUserId()==10) {

или по массиву id

if(!$this->oUserCurrent->isAdministrator() or !in_array($this->oUserCurrent->getUserId(),array(10,15))) {
avatar
Text.class.php, надо для пользователей с определённым ID отключить парсер обработки топиков.
avatar

$oUserCurrent = $this->User_GetUserCurrent();
if($oUserCurrent and (!$oUserCurrent->isAdministrator() or !$oUserCurrent->getUserId()==10) {
    // код выполнится если пользован авторизирован и он не администратор или его айди не равен 10
}
avatar
упс ошибся
$oUserCurrent = $this->User_GetUserCurrent();
if($oUserCurrent and (!$oUserCurrent->isAdministrator() or $oUserCurrent->getUserId()!=10) {
    // код выполнится если пользован авторизирован и он не администратор или его айди не равен 10
}
avatar
а лучше думаю так, должно работать

$oUserCurrent = $this->User_GetUserCurrent();
if(!$oUserCurrent or (!$oUserCurrent->isAdministrator() or $oUserCurrent->getUserId()!=10) {
    // код выполнится если пользователь не авторизован или авторизирован и он не администратор или его айди не равен 10
}
avatar
Да тоже норм.
avatar
Всем спасибо, ребята, разобрался!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.