Встала такая задачка - нужно чтобы для залогиненных пользователей и гостей главной были разные страницы,
так как форма регистрации помещается прямо на главной.
Поискал, как можно это сделать, нашел только нечто близкое здесь - http://www.drupal.ru/node/4174 но это не то, - разовые редиректы.
Можно еще по другому попробовать решить вопрос, - но... как управлять показом блоков для залогиненных/незалогиненных пользователей?
И в этом случае... как форму регистрации user/register поместить в виде блока на любую страницу?
Комментарии
Как вариант: Создаем ноду с заголовком и пустым телом. Ставим ее главной. Делаем c помощью Views два блока. В один размещаем инфу для гостей, во второй - для регистрированных. Блоки настраиваем на показ для своих ролей и только на указанной странице.
ничего на понял. а стандартный блок "Вход в систему" уже не подходит? Он ведь исчезает, если пользователь залогинен
Блок исчезает, но контент заглавной остается тем же.
argon хочет разный контиент на заглавной страницы для разных пользователей. По остальному сайту ходи как хочешь... Или я что-то не так понял?
Пусть в качестве заглавной надо отобразить просто разный текст.
Создаем пустую ноду например node/1. Указываем заглавной страницей. Что мы увидим на морде - Только заголовок. Делаем блок с текстом для гостей и настраиваем его на показ в регионе content, только в ноде node/1 и только для роли anonymous user.
Делаем второй блок с текстом для зарегистрированных пользователей и настраиваем его на показ в регионе content, только в ноде node/1 и только для роли registered user. Теперь гости увидят заголовок и их текст, а если залогинятся, то тот же заголовок и другой текст на заглавной. Если заголовок не нужен, то можно поменять условия его вывода в файле page.tpl.php (не выводить на заглавной).
А вот если, надо будет отобразить на заглавной список материалов, при чем разный для гостей и пользователей, то понадобится через View создать соответствующие блоки и настроить их отображение, как указано выше.
2 beerman, - нужен блок "регистрация", а не "авторизация".
т.е. блок первичной регистрации.
Контент я хочу разный. соответственно 2 пути решения - либо на каждый блок вешать "управление показом в зависимости от статуса пользователя", либо редиректить пользователей на разные главные, в зависимости от статуса.
2 direqtor - т.е. через вьюс получится? ну вариант... хотя не легкий... мне казалось.... можно ли как-то проще решить? может сниппетами? И такой вопрос - как вообще сделать блок "регистрация?" т.е. можно ли вывести содержание /user/register - блоком?
Может и есть какой-нибудь модуль на эту тему. Но если по-простому.
Открой страницу. Скопируй нужный код в блок, который создашь, там всего лишь пара полей и кнопка. Потом размести в нужном месте сайта для анонимных пользователей.
О. точно )). А я чет не сообразил ))). Пасиб
про управление блоками здесь еще вариант нашел - http://setegnom.com/node/302
Можно и так, но в настройках блоков есть список ролей пользователей. Поставил нужные галочки – и все.
Здравствуйте. Стоит очень похожая задача, по-этому не стал создавать отдельной темы.
Есть несколько ролей. И есть модуль Content Profile, с помощью для каждой роли была создана своя анкета в профиле. Необходимо, что бы когда человек заходит на сайт шла проверка заполнена ли анкета и если нет, то выдавалась ссылка на нее, если да - просто обычный текст сайта.
<?php
global $user;
$fields = array();
$sql = "SELECT title FROM {node} WHERE (uid=".$user->uid.") AND ((type='owner_info') OR (type='adv_own_info')) LIMIT 3;";
$result = db_query($sql);
while ($record = db_fetch_object($result)) {
$fields[] = $record;
}
print_r($fields);
$title = count($fields);
$userroles = array($user);
if ($title==NULL && in_array('Роль1', $userroles)) {
print "Заполните анкету.";
elseif ($title!=NULL) {
print "Добро пожаловать на стартовую тестовую страницу нашего проекта. Скоро будет адекватней текст и приветствие.";
?>
Этот код я вставлял в ноду, которая установлена как главная страница сайта - для тех у кого заполнена анкета все работает прекрасно, для тех же у кого пустая в ноде выводится все кроме непосредственно "заполните анкету."
Подскажите как справиться с данной проблемой.