Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Шаблон feedback

Шаблон feedback


     25.07.2012    feedback, tpl, шаблон, info    Все вопросы » Шаблоны (TPL)    10032

вопрос
Здравствуйте!
После удачной отправки письма через feedback форму, загружается страница, содержание которой такое:
1)шапка
2)инфо (с текстом об успешной отправке)
3)подвал

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

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

Копался в файлах, подозрения пали на feedback.php в папке ajax, там в конце есть подобное (примерно с 238 строки):

$tpl->result['info']

Пытался вставить там 'content', но не получилось.

Есть ли какое-то решение у данной задачи?

Ответил: softic


Вот решение открыть файл engine/modules/feedback.php

И заменить
msgbox( $lang['feed_ok_1'], "{$lang['feed_ok_2']} <a href=\"{$config['http_home_url']}\">{$lang['feed_ok_4']}</a>" );


На
msgbox( "<script type=\"text/javascript\">window.location = \"?do=feedback\"</script>" );



И если включен ajax
То открываем engine/ajax/feedback.php
И заменить
msgbox( $lang['feed_ok_1'], "{$lang['feed_ok_2']} <a href=\"{$config['http_home_url']}\">{$lang['feed_ok_4']}</a>" );


На
msgbox( "<script type=\"text/javascript\">window.location = \"?do=feedback\"</script>" );


Вот и будет вам переадрисация. Строго не судить делал на скорую руку.

10 комментариев

ПафНутиЙ
Админ

ПафНутиЙ - 25 июля 2012 08:49 -

а попробуйте в шаблон info.tpl в самый конец положить
[aviable=feddback]{custom ....}[/aviable]

Каков вопрос - таков и ответ. Просто помните об этом.

nowheremany
Эксперт

nowheremany - 25 июля 2012 12:35 -

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

Благодарность принимаю тут Связь

softic
Юзер

softic - 25 июля 2012 16:23 -

Напиши в ЛС помогу

Solaris
Юзер

Solaris - 25 июля 2012 18:00 -

ПафНутиЙ,
c aviable я тоже думал, но в info.tpl - отказывается работать.
Хотел для начала хотя бы методом css приукрасить, поменять название класса ошибки для feedback. Но там ни
 [aviable=feedback][/aviable]
ни
 [not-aviable=feedback][/not-aviable]
не работают.

Вот и подумал, что раз аякс генерирует результат отправки, то там и можно где-то оставить content.

nowheremany,
мне не обязательно с формой, хотя бы без неё даже, но либо с добавкой дивов, либо content

Всё дело в том, что шаблон самодельный и довольно сложный по структуре. Т.е. во многих стандартных - идет контент - и сбоку сайдбар, который инклудится и остается в любом случае после отправки, т.к. не входит в content. А у меня же content - это вся область по ширине, т.к. на главной - один вывод, на категории - другой и т.д.
Поэтому после удачной отправки - content сбрасывается, оставляя только info.
Переделывать шаблон не хочется из-за одного "косяка".

Solaris
Юзер

Solaris - 25 июля 2012 18:30 -

Небольшая поправка:
теги aviable и not-aviable - работают в info.tpl, но в моем случае только на странице с формой (К примеру если попытаться ввести неправильный логин или пароль).

А вот на страницу с сообщением-результатом правила не распространяются почему-то.

ПафНутиЙ
Админ

ПафНутиЙ - 25 июля 2012 21:11 -

Т.е. проблема во внешнем виде сайта после отправки сообщения?
можно "поплясать через jquery" вывести блок с новостями ниже контента и показывать его только после отправки сообщения.

Каков вопрос - таков и ответ. Просто помните об этом.

softic
Юзер

softic - 25 июля 2012 22:41 -

Вот решение открыть файл engine/modules/feedback.php

И заменить
msgbox( $lang['feed_ok_1'], "{$lang['feed_ok_2']} <a href=\"{$config['http_home_url']}\">{$lang['feed_ok_4']}</a>" );

На
msgbox( "<script type=\"text/javascript\">window.location = \"?do=feedback\"</script>" );


И если включен ajax
То открываем engine/ajax/feedback.php
И заменить
msgbox( $lang['feed_ok_1'], "{$lang['feed_ok_2']} <a href=\"{$config['http_home_url']}\">{$lang['feed_ok_4']}</a>" );

На
msgbox( "<script type=\"text/javascript\">window.location = \"?do=feedback\"</script>" );

Вот и будет вам переадрисация. Строго не судить делал на скорую руку.

Solaris
Юзер

Solaris - 26 июля 2012 01:09 -

Спасибо вам, но это не совсем то.
В этом случае пользователь не знает, отправлено ли его сообщение или нет.
Т.е. сообщения об отправке нет, и все поля, включая текст письма остаются заполненными.
На секунду мелькает аяксовское "подождите" и всё.

В стандарте же адрес после отправки остается тот же ?do=feedback, поэтому смысл на него переадресацию делать?

guardian_x
Юзер

guardian_x - 26 июля 2012 19:06 -

вот точно такая же проблема... везде прошарил - все норм... не могу докопаться!!!

Solaris
Юзер

Solaris - 4 сентября 2012 15:36 -

Я в итоге переделал вывод определенных страниц, в main.tpl с помощью aviable. Пришлось инклудить сайдбар отдельно, иначе он являлся бы частью content, которая и сбрасывается при удачной отправке письма!

грубо говоря, получилась следующая конструкция:


У меня закрытие id=content происходит в sidebar.tpl
Еще нужно не забыть в main.tpl запретить обычные content и info для страницы feedback.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх