Не нравятся результаты поиска? Попробуйте другой поиск!

Шаблон feedback


     25.07.2012    Шаблоны (TPL)    5992

вопрос
Здравствуйте!
После удачной отправки письма через 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)

ПафНутиЙ
1065

3396 | 2434

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

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

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

nowheremany
192

1659 | 1292

nowheremany - 25 июля 2012 12:35 - Эксперт

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

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

softic
3

4 | 4

softic - 25 июля 2012 16:23 - Юзер

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

Solaris
6 | 6

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
6 | 6

Solaris - 25 июля 2012 18:30 - Юзер

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

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

ПафНутиЙ
1065

3396 | 2434

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

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

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

softic
3

4 | 4

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
6 | 6

Solaris - 26 июля 2012 01:09 - Юзер

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

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

guardian_x
18 | 17

guardian_x - 26 июля 2012 19:06 - Юзер

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

Solaris
6 | 6

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

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

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


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

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

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