Михалыч

Добавление объявлений только зарегистрированным

Recommended Posts

Заглушить адрес /add.

 

Со следующей версии обновления будет галочка для этого дела.

 

Как заглушить.

 

в main.php ищем блок

if ( !$has_result && preg_match('/^add(\/?)$/', $REQUESTURIPATH) ) {...}

и меняем его на

if ( !$has_result && preg_match('/^add(\/?)$/', $REQUESTURIPATH) ) {if($_SESSION['user_id']>0){header('location: '.SITEBILL_MAIN_URL.'/account/data/?do=new');exit();}}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В шаблоне freehold в файле main.php не нашел такой строки.

В этом шаблоне код выглядит так

			if ( $this->getConfigValue('theme') != 'kgs' ) {				if ( SITEBILL_MAIN_URL != '' ) {					$regexp = '/^\\'.SITEBILL_MAIN_URL.'\\/add(\/)*/';				} else {					$regexp = '/^\/add(\/)*/';				}				if ( preg_match($regexp, $_SERVER['REQUEST_URI']) ) {					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/add.php');					$user_add = new User_Add();					$this->template->assert('hide_search_form', 1);					$this->template->assert('main', $user_add->main());					$this->template->render();					$rs = $this->template->toHTML();					return $rs;				}			}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

В этом шаблоне код выглядит так

			if ( $this->getConfigValue('theme') != 'kgs' ) {				if ( SITEBILL_MAIN_URL != '' ) {					$regexp = '/^\\'.SITEBILL_MAIN_URL.'\\/add(\/)*/';				} else {					$regexp = '/^\/add(\/)*/';				}				if ( preg_match($regexp, $_SERVER['REQUEST_URI']) ) {					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/add.php');					$user_add = new User_Add();					$this->template->assert('hide_search_form', 1);					$this->template->assert('main', $user_add->main());					$this->template->render();					$rs = $this->template->toHTML();					return $rs;				}			}

Спасибо! Такой код есть. А на какой его заменить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо маленько поправить код, на случай если пользователь не зарегистрирован, то переправлять его на форму регистрации

if ( !$has_result && preg_match('/^add(\/?)$/', $REQUESTURIPATH) ) {if($_SESSION['user_id']>0){header('location: '.SITEBILL_MAIN_URL.'/account/data/?do=new');exit();} else {header('location: '.SITEBILL_MAIN_URL.'/register/');exit();}}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Такой код был в шаблоне, только он был закомментирован.

Теперь все работает, но есть одно НО:

Если входить по кнопке вход, то форма выглядит так:

22d9634f29405ccf7c65b115189d4abc.jpg

А если через Продать или сдать квартиру (через меню) то вот так

a55a3f1f5c32123c23b92ee034f64bd1.jpg

Нужно чтобы единообразие, желательно как в первом случае, т.е. когда вход идет по кнопке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Второй вариант - вы попробуйте из браузера, в котором вы вышли из админки.

Админ видит доп.поля только.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выхожу из админки, иду на сайт, нажимаю Продать или сдать, и выходит второй вариант, а нужно чтобы первый был.
Вот файл http://my-files.ru/1fitwr
посмотрите пожалуйста, может ошибка где-то?

 

Сайт http://realty67.ru/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выхожу из админки, иду на сайт, нажимаю Продать или сдать, и выходит второй вариант, а нужно чтобы первый был.

Вот файл http://my-files.ru/1fitwr

посмотрите пожалуйста, может ошибка где-то?

 

Сайт http://realty67.ru/

Первый вариант - тогда надо кнопку Продать или сдать сделать не из меню, а в шаблоне прописать ее

{if $smarty.session.user_id eq ''}                                        <a class="btn btn-primary btn-large list-your-property arrow-right" data-toggle="modal" data-target="#prettyLogin">{$L_ADD_ADV}</a>{else}                                        <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/account/data/?do=new">{$L_ADD_ADV}</a>{/if}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Первый вариант - тогда надо кнопку Продать или сдать сделать не из меню, а в шаблоне прописать ее

{if $smarty.session.user_id eq ''}                                        <a class="btn btn-primary btn-large list-your-property arrow-right" data-toggle="modal" data-target="#prettyLogin">{$L_ADD_ADV}</a>{else}                                        <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/account/data/?do=new">{$L_ADD_ADV}</a>{/if}

В каком именно файле прописывать и в каком месте?

Тогда нужно будет  если не зарег-й, то было бы написано Сначала вам необходимо войти или зарегистрироваться

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В каком именно файле прописывать и в каком месте?

Тогда нужно будет  если не зарег-й, то было бы написано Сначала вам необходимо войти или зарегистрироваться

В top_fixed_menu.tpl.html можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кнопку вывел. Как теперь добавить сообщение" Сначала вам необходимо войти или зарегистрироваться", если пользователь не зарегистрирован или не авторизован и нажимает на "Продать или сдать"

Можно ли сделать вместо кнопки пункт меню "Подать объявление"?

post-3102-0-32053000-1450103297_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кнопку вывел. Как теперь добавить сообщение" Сначала вам необходимо войти или зарегистрироваться", если пользователь не зарегистрирован или не авторизован и нажимает на "Продать или сдать"

Можно ли сделать вместо кнопки пункт меню "Подать объявление"?

Тогда вам надо сделать промежуточную страничку, например, /rules/ - и ссылку на нее сделать вначале.

А уже в /rules/ сделать ссылку на регистрацию или авторизацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кнопку вывел. Как теперь добавить сообщение" Сначала вам необходимо войти или зарегистрироваться", если пользователь не зарегистрирован или не авторизован и нажимает на "Продать или сдать"

Можно ли сделать вместо кнопки пункт меню "Подать объявление"?

 

Тут не совсем четко расписано. Вот нажали на кнопку, допустим появилось сообщение. Что дальше? Он просто закрывает сообщение и ищет кнопки авторизации\регистрации? Или с сообщением выдается кнопка Да и Нет и если он нажал Да, то идет куда-то переход?

 

Можно сделать в принципе и пункт меню, но варьировать поведением пункта меню в зависимости от ситуации на порядок сложнее, а то и просто невозможно, чем в случае с кнопкой в шаблоне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После добавления кнопки ситуация такая:

1. Если польз-ль не авторизован и нажимает на кнопку, то выходит форма регистрации или авторизации, тут все ОК

1fa13e23e4d1a6c1a403427154f9ce51.jpg

 

2. Если же польз-ль выбирает меню Продать или сдать квартиру, то выходит вот такая форма

eebd10fb444d9103aa6e3cdd003c7f19.jpg

 

с выбором группы и другими полями.

Нужно чтобы была страница или что-то, на которой было бы написано, что для подачи вам нужно войти или зарег-ся, в общем в таком духе.

Но никак не то, что выходит сейчас.

 

В общем нужно как-то так

ca561e52d3dd6f2aacbe237d17fd067f.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Начнем сначала, что бы я восстановил нить

 

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

 

Код заменил, пишет 404 ошибка страница не найдена

 

Это при запросе /add ? Если да, то чего вы ожидали, если этими манипуляциями мы глушили гостевую подачу объявлений? Если нам не нужны гости, то по этому адресу только 404 и должно быть. И кнопку со ссылкой /add из меню можно выкидывать, так как она никуда уже не ведет.

 

Весь функционал по добавлению ложится теперь на ЛК и адрес /account/data/?do=new

 

В результате мы не имеем второй кнопки и остается только "Добавить обїявление" которая согласно рецепту Дмитрия из поста  начинает вести двойную игру - когда пользователь авторизирован, она уходит в ЛК, а когда нет - открывает окошко с регистрацией-авторизацией.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Раздел фриланс для этих целей и существует

http://www.etown.ru/s/forum/21-%D1%84%D1%80%D0%B8%D0%BB%D0%B0%D0%BD%D1%81/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Удалил меню Продать/Сдать, теперь при нажатии на копку Добавить объявление вот

040846cd70e634fb8aa3505a7f6d5543.jpg

 

Когда меню было, то выскакивала форма регистрации / авторизации.

Как теперь это исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Как теперь это исправить?

 

Судя по тому, что на кнопку авторизации справа на писано "Выход" - вы просто не вышли с админки. Движек счмитает, что вы еще авторизированы, но так как авторизировались в админке, естественно в ЛК вас не пускает. Хотя и пытается туда перенаправить согласно алгоритму "авторизирован - ЛК, неавторизирован - окно авторизации".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас