#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 самостоятельно.