Добавление материалов гостями без регистраци

+17
2.28K
Много предлагалось способов как разрешить гостям добавлять материалы. Перепробовал все, на сегодня ни один не работает. Пришлось изобрести велосипед.
Например, у нас есть тип контента "Объявления" (board)
1) Заводим группу пользователей, например "Гости"
2) Заводим пользователя "Гость" с любым паролем и Email… пусть будет 333@333.ru
3) В типе контента "Объявления" группе "Гости" даём право добавлять материалы хоть с модерацией, хоть без. В других типах контента не даём ничего.
4) Открываем файл \system\controllers\content\actions\item_add.php и после строки 22:
  1. $is_check_parent_perm = false;
Пишем конструкцию:
  1.  
  2. if (! cmsUser::isLogged()) {
  3. $model = cmsCore::getModel('users');
  4. $model->filterIsNull('is_deleted');
  5. $model->filterEqual('email', '333@333.ru');
  6. $user = $model->getUser();
  7. cmsUser::setUserSession($user);
  8. }
  9.  
Не забываем проделывать пункт 4 заново после обновления системы.
5) Добавляем на видном месте кнопку "Добавить объявление" со ссылкой /board/add
6) В меню пользователя группе "Гости" закрыть все пункты кроме "выход", чтоб они не добрались до профиля и не вздумали его редактировать shock

В результате незарегистрированный жмёт на кнопку, система видит, что это незалогиненный клиент и тут же автоматически логинит его пользователем "Гость" (по Email: 333@333.ru ).
И вуаля! Ему открывается волшебная форма добавления материала.
0
Алексей Т Алексей Т 6 лет назад #
+ Молодец
+1
Loadырь Loadырь 6 лет назад #
Вы забыли добавить в описании, что пункт 4 надо будет часто повторять после обновления системы.
ИМХО: лучше спросить у гостя его емаил и имя и на их основании зарегать нового пользователя, чем всех гостей авторизовывать под одним пользователем. В первом случае можно будет делать рассылку уведомлений на указанные емайлы, скажем об окончании срока публикации его объявления.
+1
Олег с клещами Олег с клещами 6 лет назад #
пункт 4 надо будет часто повторять после обновления системы
Это да. Это же хак а не хук laugh
+2
SmartControl SmartControl 6 лет назад #
Плюсик за велосипед))

Но можно все сделать средствами системы, без лишней группы и пользователя
+3
Олег с клещами Олег с клещами 6 лет назад #
Где ж Вы были раньше?! А я мозг напрягал...
+2
Lora Lora 6 лет назад #
Мозг напрягать, никогда не лишне)))
0
Clear Clear 2 года назад #

А сейчас эта правка актуальна ?

0
Aliaksandr Aliaksandr 2 года назад #

Сейчас уже можно в админке настроить добавление гостям материалов.

0
AtlantisWeb AtlantisWeb 2 года назад #

подскажите, где?

0
Def Def 2 года назад #

Где такое есть?

Еще от автора

Фиктивный счетчик клиентов
Иногда требуется вывести на сайте фиктивный счетчик клиентов. Я люблю максимально простые решения.
Вставка из Word в CKEditor 1.хх
Не раз уже на форуме обсуждали проблемку в CKEditor когда нельзя вставить текст из Word (нет кнопки). Решения я не увидел, поэтому полез сам
Продолжение о многоязычности двойки.
В продолжение размышлений о многоязычности на двойке на реальном проекте пришлось столкнуться ситуацией, когда часть материала есть на обоих языках а
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.