Дмитрий Кондин

Шаблон realia, добавление объявлений без регистрации

Recommended Posts

В файле
/template/frontend/realia/header_contact_add.tpl
 
{if $smarty.session.user_id eq ''}                                        <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/add/">{$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" href="{$estate_folder}/add/">{$L_ADD_ADV}</a>{else}

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


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

 

В файле
/template/frontend/realia/header_contact_add.tpl
 
{if $smarty.session.user_id eq ''}                                        <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/add/">{$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" href="{$estate_folder}/add/">{$L_ADD_ADV}</a>{else}

код прочитали так, если не правиль то поправьте

если пользователь не авторизирован то при нажатии на кнопку "добавить объявление" его перенаправляет на адрес-ссылку href="{$estate_folder}/add/

иначе (получается что авторизован) то при нажатии на кнопку "добавить объявление" его перенаправляет на адрес href="{$estate_folder}/account/data/?do=new" и дает возможность перенаправлять через личный кабинет на подачу нового объявления.

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

Подскажите, что куда внести правку в код, что написать и что сделать чтобы кнопка осталась, но при нажатии на нее подача без регистрации была не возможна, и перебрасывало на форму регистрации и авторизации

прикладываем фото 

и как сделать так чтобы эти "изменения" и "добавки" самодеятельной правки, не затерлись при ОБНОВЛЕНИЯХ

post-3195-0-54104500-1455635587_thumb.jp

post-3195-0-61137700-1455635589_thumb.jp

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


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

Тогда можно так сделать

{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}

Этот вариант будет выдавать форму авторизации при попытке добавить объявление неавторизованному.

Для авторизованных будет в лк вести.

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


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

возник еще "правильный" вопрос.

как сделать еще и так и куда вставить какой код, и куда и в какой файл внести изменения
чтобы  не только сверху но еще и снизу пользователи не смогли добавлять объявления без регистрации?
спрашивается на тот случай если нижнюю форму не захотели бы убирать совсем

вообщем все на рисунке

post-3195-0-15775200-1455916581_thumb.pn

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


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

и еще один вопрос хотелось бы задать знатокам

к примеру все возможности для "обычных" пользователей так сказать "заглушили", то есть нажимая кнопочки пользователь не сможет подать объявление без регистрации, и в случае нажатия будет перекидываться на форму регистрации/авторизации

 

но как быть с "продвинутыми" или с теми кто перешел по прямой ссылке /add
как запретить добавление через эту ссылку?

вопрос знатокам -как сделать так, чтобы даже зайдя по прямой ссылке выходило либо предложение зарегистрировать/войти
либо выходила надпись -что то типа "добавление объявлений отключено администратором" или "добавление не возможно" или "ошибка 404 страница не найдена" и т.д

так сказать на "всегда" для пользователей закрыть возможность добавления без регистрации, но естественно не на всегда -а по желанию администратора :) :)

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


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

Настройки - Общее

 

post-58-0-65678900-1455917618_thumb.png

 

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

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


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

попробовали в админке в общих настройках включить данное поле, получили следующий результат

при попытке подать объявление без регистрации-кидает на страницу 404 (вроде как не очень понятно для пользователя и посетителя) -данное удобство было бы актуально если например продвинутый пользователь заходил по прямой ссылке браузера

Но как сделать еще и так чтобы при нажатии на кнопку добавить объявление пользователь переходил бы на модальную форму -регистрации/авторизации это было бы интереснее и без значительной правки кода

Так вот опять помощь -что куда вписать какой код в какой файл и так далее. Всем спасибо
 

post-3195-0-34357000-1455973950_thumb.pn

post-3195-0-83341800-1455974067_thumb.pn

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


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

http://www.etown.ru/s/topic/1498-шаблон-realia-добавление-объявлений-без-регистраци/?p=27681

 

Так вот жеж Дмитрий показал пример как должна формироваться кнопка. Это применимо к любой кнопке, которая должна отсылать на подачу объявления, что вверху, что внизу. Весь секрет в том, что ставится в атрибут href ссылки и двух специфичных атрибутах data-...

 

 

 

(вроде как не очень понятно для пользователя и посетителя)

 

Непонятно потому, что ссылка на /add фигурирует в странице. Но если вы отключаете гостевое добавление, то этой ссылки быть не должно на странице - ее нужно убирать. А если кто по ней перешел, прямым набором например, то вполне естественно, что 404, так как этот адрес только под добавление объявлений и его функционал погашен - значит этой страницы не существует.

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


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

http://www.etown.ru/s/topic/1498-шаблон-realia-добавление-объявлений-без-регистраци/?p=27681

 

Так вот жеж Дмитрий показал пример как должна формироваться кнопка. Это применимо к любой кнопке, которая должна отсылать на подачу объявления, что вверху, что внизу. Весь секрет в том, что ставится в атрибут href ссылки и двух специфичных атрибутах data-...

 

 

Непонятно потому, что ссылка на /add фигурирует в странице. Но если вы отключаете гостевое добавление, то этой ссылки быть не должно на странице - ее нужно убирать. А если кто по ней перешел, прямым набором например, то вполне естественно, что 404, так как этот адрес только под добавление объявлений и его функционал погашен - значит этой страницы не существует.

 

 

мало что поняли из того что вы написали поэтому попробуем разделить сообщение на 2 подраздела

 

1) решили поэксперементировать и сделать следующее в файле main.tpl в разделе  слоя 

<div class="bottom-inner row"> сделали следующий код- а оригинал закомментили (кстати как правильно то комментить когда временно что то не нужно?)

внесли вот такой код и вот так написали

 

<div class="bottom-inner row">

<div class="item span4">

<div class="address decoration"></div>

<h2><a>{$LT_ADD_YOUR_OWN}</a></h2>

<p>{$LT_ADD_YOUR_OWN_DESC}</p>

<!-- <a href="{$estate_folder}/add/" class="btn btn-primary">{$LT_VIEW_DETAILS}</a> -->

{if $smarty.session.user_id eq ''}

<a class="btn btn-primary" data-toggle="modal" data-target="#prettyLogin">{$LT_VIEW_DETAILS}</a>

{else}

<a class="btn btn-primary" href="{$estate_folder}/account/data/?do=new">{$LT_VIEW_DETAILS}</a>

{/if}

</div><!-- /.item -->

вроде как что то получилось-правильно ли сделали или нет?

2) часть вопроса вы писали ----- Весь секрет в том, что ставится в атрибут href ссылки и двух специфичных атрибутах data-...

объясните пожалуйста это так как не поняли совсем про что это

спасибо

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


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

объясните пожалуйста это так как не поняли совсем про что это

спасибо

 

Если у ссылки указан атрибут href с адресом ссылки, то по нажатию на нее произойдет переход по этому адресу.

Если не указан, то будут\могут быть выполнены другие действия. Так как на ссылке указано data-toggle="modal" data-target="#prettyLogin" - то будет открыто модельное окно регистрации-авторизации.

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


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

Если у ссылки указан атрибут href с адресом ссылки, то по нажатию на нее произойдет переход по этому адресу.

Если не указан, то будут\могут быть выполнены другие действия. Так как на ссылке указано data-toggle="modal" data-target="#prettyLogin" - то будет открыто модельное окно регистрации-авторизации.

а первый пункт  правильно сделан?

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


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

С точки зрения логики кода - да. Неавториированный получит окошко, авторизированный пойдет в ЛК.

 

 

 

кстати как правильно то комментить когда временно что то не нужно?

 

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

{* тут комментарий *}

т.е. простые блоки кода можно оборачивать так. Если блоки длинные, то я иногда ставлю учловие

{if 1==0}тут то что нужно убрать. так как 1 не равно 0, то внутренний блок получается неисполняемым. так хорошо комментировать блоки где много смарти операторов - этих всех штучек с фигурными скобками{/if}

Комментировать с помошью хтмл комментариемв <!-- ФФФ --> не стоит. Особенно какую-то важную техинформацию. Они не "не выводят", а выводят, но просто не показывают на странице. Т.е. данные есть на странице, просто глазам их не видно.

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


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

С точки зрения логики кода - да. Неавториированный получит окошко, авторизированный пойдет в ЛК.

 

 

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

{* тут комментарий *}

т.е. простые блоки кода можно оборачивать так. Если блоки длинные, то я иногда ставлю учловие

{if 1==0}тут то что нужно убрать. так как 1 не равно 0, то внутренний блок получается неисполняемым. так хорошо комментировать блоки где много смарти операторов - этих всех штучек с фигурными скобками{/if}

Комментировать с помошью хтмл комментариемв <!-- ФФФ --> не стоит. Особенно какую-то важную техинформацию. Они не "не выводят", а выводят, но просто не показывают на странице. Т.е. данные есть на странице, просто глазам их не видно.

везде комментировали как 

{!--  тут все что угодно для комментирования --}

как теперь узнать где-что-как (и в каких файлах) комментировали что бы поменять на правильное комментирование ?

чтобы поменять на правильное комментирование вида

{*  тут все что угодно для комментирования *}

и еще если надо несколько строк закомментировать существует способ какой то ? чтобы по одной горизонтальной строке не комментировать, например нам нужно 10-15 строк закомментировать

пока приходилось только какждую строку комментировать

до условия 

{if 1==0} тут то что нужно убрать. так как 1 не равно 0, то внутренний блок получается неисполняемым. так хорошо комментировать блоки где много смарти операторов - этих всех штучек с фигурными скобками {/if}

руки не доходили да и не правильно это как то думали-хотя такие блоки встречали в кодах

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


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

Поиском по тексту в файлах любым текстовым редактором, который это поддерживает. Другого способа нет наверное.

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


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

подскажите еще такой вопрос на счет правильного "закомментировать"

вы выше писали как правильно комментировать
но наткнулись на такое "закомментировать"

берем у себя наприме файл header_contact_add.tpl и видим что в коде 

<div class="info">
<div class="site-email">
<a href="mailto:info@site.ru">info@sait.RU</a>
</div><!-- /.site-email -->

<div class="site-phone">
<span>8 800 250 96 33</span>
</div><!-- /.site-phone -->
</div><!-- /.info -->

 

закомментировано как 
<!-- /.info -->
следовательно а как все же правильно через 

<!-- тут код что нужно закоментировать-->
или же через 
<* тут код что нужно закоментировать *>

если комментим через * то на сайте оторбражается, а если через <!---коммент--> то нет
даже не знаем что теперь правильно
к примеру стояло через !-  не выводило
<!-- {if $smarty.session.user_id eq ''} -->
<!-- <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/add/">{$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" href="{$estate_folder}/add/">{$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} *>

как быть и как правильно "комментить"

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


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

Это вы нашли комментарии HTML. Они комментируют в том смысле, что просто скрывают со страницы. Например

<!-- скрытый комментарий -->

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

 

Комментарии вида

{* скрытый комментарий *} 

- это комментарии Смарти - шаблонизатора. Суть их в том, что они обрабатываются на сервере, а не в браузере. Так что эти комменты до браузера не дойдут вообще и никто не увидит их никак.

 

Вот и вся разница.

 

ПС.

<* {if $smarty.session.user_id eq ''} *>

а вот таких тегов в хтмл вообще не существует, так что браузер выводит это as is.

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


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

В tpl коментируетсч <!-- .... -->

Подключения include после {* include.... *}

В php блокируем /* ... */ , так же и в css

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


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

В tpl коментируетсч <!-- .... -->

Подключения include после {* include.... *}

В php блокируем /* ... */ , так же и в css

разъясните пожалуйта поподробнее

то есть сейчас мы понимаем так

1) если комментарий идет в файлах .tpl

то комментируем так -не важно что     пишем

<!-- тут то что желаем закоментить (включая любые условия любые данные внутри {})   -->

2) если комментарий идет в таких скобках {} то комментируем так

{* тут код, условие или еще что то *}

3) если комментарий идет в файлах .php  пишем

/*  тут то что желаем закоментить (включая любые условия любые данные внутри {})   */

правильно ли понимаем?

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


Ссылка на сообщение
Поделиться на других сайтах
<!-- тут то что желаем закоментить (включая любые условия любые данные внутри {})   -->

Да. Но все что внутри <!--   --> все равно выведется в страницу, просто браузер не покажет этого в окно, а только в Просмотр кода страницы. Поэтому ничто важное не должно так комментироваться.

Например так делать нельзя:

<!-- {$user_data|print_r}   -->

===============================

{* тут код, условие или еще что то *}

Верно. Но для сложных блоков нужно осторожно

{*if $a==10*}<a href="{$b}">{$a}</a>{*/if*}

Закомментировав так вы выключите только условие, а вот <a href="{$b}">{$a}</a> так и выйдет в страницу.

--------------------------------------------

/*  тут то что желаем закоментить (включая любые условия любые данные внутри {})   */

В пхп все верно.

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


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

ребята подскажите в какой номер строки файла main.tpl я должен вставить код <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/add/">{$L_ADD_ADV}</a>  что бы снова появилась кнопка добавить объявления!? Шаблон realia .

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


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, Даниэль сказал:

ребята подскажите в какой номер строки файла main.tpl я должен вставить код <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/add/">{$L_ADD_ADV}</a>  что бы снова появилась кнопка добавить объявления!? Шаблон realia .

вопрос решен ответ здесь находиться

 

 

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


Ссылка на сообщение
Поделиться на других сайтах
В 17.02.2016 в 01:28, rumantic сказал:

Тогда можно так сделать


{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}

Этот вариант будет выдавать форму авторизации при попытке добавить объявление неавторизованному.

Для авторизованных будет в лк вести.

как это осуществить для шаблона Ipotekus? 
здесь нет header_contact_add.tpl

спасибо

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


Ссылка на сообщение
Поделиться на других сайтах
В 08.07.2019 в 15:44, NikL сказал:

как это осуществить для шаблона Ipotekus? 
здесь нет header_contact_add.tpl

спасибо

У шаблона ipotekus все тоже самое делаем в шаблоне top_fixed_menu.tpl.html

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


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

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

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

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

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

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

Войти

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

Войти сейчас