Ссылки для входа и выхода из Drupal

#php #drupal #drupal-7

#php #drupal #drupal-7

Вопрос:

У меня есть следующий код, который показывает, когда пользователь входит в систему, а когда нет.

 <?php
global $user;
if ($user->uid > 0) {
  echo "You are logged in as: " . $user->name . "<br>";
} else {
  echo "You are not logged in!<br>";
}
?>
  

Я хочу добавить ссылку для выхода (при входе в систему) amp; и ссылку для входа (когда вы не вошли в систему). Я бы просто использовал ссылки html < a>? Если да, то как мне их включить?

Ответ №1:

В большинстве случаев вы просто используете обычное меню и добавляете два пункта.

Видимость элементов контролируется системой меню drupals, поэтому вы не увидите ссылку для входа, если вы уже вошли в систему, и вы не увидите ссылку для выхода, если вы не вошли в систему.

Если вы хотите программно выводить ссылки, я бы рекомендовал использовать функцию «l»

 l($text, $path, array $options = array())
  

Чтобы проверить, вошел ли пользователь в систему, вы можете просто использовать функцию user_is_logged_in, предоставляемую модулем users .

Таким образом, ваш код станет

 <?php
if( user_is_logged_in() ) {
  print l('logout', 'user/logout');
}
else {
  print l('login', 'user/login');
}
  

Ответ №2:

Зависит от того, где вы хотите показывать ссылки. Если он находится на той же странице / фрагменте кода, просто продолжайте и повторяйте их:

 <?php
global $user;
if ($user->uid > 0) {
   echo "You are logged in as: " . $user->name . "<br>";
   echo "<a href="logout.php">Logout</a>";
} else {
   echo "You are not logged in!<br>";
   echo "<a href="login.php">Login</a>";
}
?>
  

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

1. Вы должны использовать l() функцию для создания ссылок, а не писать html самостоятельно.

Ответ №3:

Вы можете просто использовать функцию url ядра Drupal, как показано ниже

 <?php
global $user;
if ($user->uid > 0) {
  echo '<a href="'.url('user/logout').'">Logout </a>';
} else {
  echo '<a href="'.url('user/login').'">Logout </a>';
}
?>
  

Надеюсь, это вам поможет 🙂

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

1.Вы должны использовать l() функцию для создания ссылок, а не писать html самостоятельно.