Требовать анонимного пользователя для регистрации, чтобы добавить тип контента - PullRequest
5 голосов
/ 22 марта 2010

Как я могу создать форму, которая требует, чтобы анонимные зрители зарегистрировались для ее просмотра?

Прямо сейчас я создал тип контента (План отправки), который является основной ссылкой, доступной каждому (анонимный + аутентифицированный). Я ограничил полномочия «просматривать» пользователей анонимным пользователям, но они по-прежнему могут видеть ввод «Заголовок» (я не хочу этого).

Мне бы хотелось, чтобы, когда анонимный пользователь нажимал на основную ссылку «Добавление плана» (тип контента «Отправить план»), он переходил на страницу и говорил:

  • «Вы должны зарегистрироваться для учетной записи» ИЛИ
  • Перенаправляет их на страницу регистрации с просьбой зарегистрироваться для отправки плана.

Я искал модуль или, возможно, какой-то код для использования, но не смог найти подходящую тему. Любая помощь будет оценена. Спасибо!

Ответы [ 2 ]

1 голос
/ 23 марта 2010

Если вы собираетесь перенаправлять пользователей на страницу регистрации, я настоятельно рекомендую использовать что-то вроде logintoboggan , чтобы сделать процесс регистрации> создания узла гладким. В противном случае регистрация представляет собой многоэтапный процесс, и я полагаю, что пользователям будет легко заблудиться в процессе добавления формы в процессе.

Для направления «показать ссылки или показать форму» есть как минимум два способа приблизиться к этому: 1) создать пользовательскую страницу, куда вы «импортируете» форму add_plan (или покажите ссылки). 2) изменить саму страницу узла / добавить / план, либо с помощью темы или фапи (формы API).

Не попробовав этого, я бы, вероятно, склонялся к первому способу.

Обновление : просто была еще одна мысль: вы также можете добавить форму плана в регистрационную форму, чтобы они заполнили их за один раз. В общем, я не уверен, как это сделать, но профиль узла сработает, если они когда-нибудь составят только один план, а если нет, то вы можете посмотреть, как он составлен.

1 голос
/ 22 марта 2010

Это можно сделать несколькими способами.

Во-первых, в выходном меню вы можете изменить ссылку на «Отправить план» следующим образом:

<?php
  global $user;

  if ($user->uid == 0) {
     print '<a href="/user/register">Add a Plan</a>';
  } else {
     print '<a href="/node/add/submit-plan">Add a Plan</a>'l;
  }
?>

Приведенный выше код проверяет, имеет ли пользовательский объект UID. 0 является анонимным, поэтому будет напечатана ссылка, которая отправляет их на регистрацию. В противном случае он перенесет их в форму добавления узла для типа контента Submit Plan. Это также предполагает, что вы управляете собственным меню. Вы также можете переопределить его аналогичным образом, используя функцию темы.

Есть несколько способов сделать это, поэтому начните с меня и дайте мне знать, что вы думаете.

...