Проверка авторизации в сниппете

Подскажите, пожалуйста, мне нужно в сниппете проверить авторизован ли пользователь.
Нашла вот это:
if ($modx->user->get('username') == '(anonymous)') {
//пользователь не авторизован
}
Версия Revo 2.3.3

Что еще нужно прописать в начале сниппета, чтобы такие конструкции обрабатывались?
Любовь
20 февраля 2015, 17:39
modx.pro
2
6 573
0

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

Виталий Серый
20 февраля 2015, 21:41
+1
if($modx->user->hasSessionContext('web')){
//пользователь авторизован
}
    Сергей Шлоков
    20 февраля 2015, 22:00
    +1
    или так
    if($modx->user->isAuthenticated($modx-context->key)){
    //пользователь авторизован
    }
      Любовь
      20 февраля 2015, 22:04
      0
      Спасибо! А нужно ли что-либо дописывать в начале сниппета, чтобы $modx «заработал»?
        Сергей Шлоков
        20 февраля 2015, 22:06
        0
        Найн. В любом сниппете $modx уже есть. И $modx-user тоже.
        П.С. Если контекс web, то можно его не указывать.
        if($modx->user->isAuthenticated()){
        //пользователь авторизован
        }
        }
          Любовь
          21 февраля 2015, 12:15
          0
          Почему-то все равно не работает. У меня опыта очень мало в программировании, подскажите если ошибка очевидная.
          function showResult($summ, $time, $ot, $do, $t, $rate, $min, $bank, $message, $akcept, $avans, $pr) {
              $result='';
          	if ( ($summ >= $ot) && ($summ <= $do) && ($time == $t) ) {
          		$bg = $summ * $rate;
          		$bg=round($bg);
          		if ($bg < $min) {
          			$bg = $min;
          		}
          		
          		$result='<tr>';
          			if($modx->user->isAuthenticated())  {$result.='<td>'.$bank.'</td>';} else {$result.='<td>Банк ###</td>';}
             
              $result.='<td>'.$bg.'</td>
                          <td>'.$message.'</td>
                          <td>'.$akcept.'</td>
                          <td>'.$avans.'</td>
                          <td>'.$pr.'</td>
                      </tr>';
               }
          	return $result;
          }
          Я только вставила код про авторизацию, до этого было вот так:
          $result.='<tr>
                          <td>'.$bank.'</td>
                          <td>'.$bg.'</td>
                          <td>'.$message.'</td>
                          <td>'.$akcept.'</td>
                          <td>'.$avans.'</td>
                          <td>'.$pr.'</td>
                      </tr>';

          Открывается просто пустая страница без дизайна
            Сергей Шлоков
            21 февраля 2015, 13:26
            +2
            Люба, а где эта функция вызывается?v Например, в сниппете, отдельном файле?
            На вскидку вижу одну ошибку — в начале функции нужно написать
            global $modx;
              Любовь
              21 февраля 2015, 13:48
              0
              В сниппете она вызывается. Там поиск по csv файлу организован. Объявила переменную в начале этой функции — все заработало! Огромное спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
8