Перейти к публикации

Не корректно выводиться форма заказа на базе модуля обратной связи


Рекомендованные сообщения

На сайте http://создаем-сайт.рф не корректно выводиться форма заказа на базе модуля обратной связи. В частности, после правильного заполнения полей и отправки заказа, как обычно, выводиться сообщение об успешной отправки сообщения. Но вслед за данным сообщением снова выводиться форма заказа, которую выводить уже не нужно и убрать его никак не получается. Если попробуете сформировать заказ, то увидите о чем я здесь пишу.

Как все делалось:

Взял файлы {THEME}/feedback.tpl, engine/modules/feedback.php, engine/ajax/feedback.php внес небольшие корректировки и сохранил как {THEME}/order.tpl, engine/modules/order.php, engine/ajax/order.php. По сути добавил туда обязательное поле "Телефон", а поле "Email" сделал необязательным.

В /engine/engine.php добавил строчки:


case "order" :

	 include_once ENGINE_DIR . '/modules/order.php';

break;

Т.е. создал дополнительный модуль заказа. После чего, данный модуль можно было использовать по ссылке /index.php?do=order Далее было решено выводить данный модуль внизу главной страницы и во всех страницах вывода полных новостей. Выяснил, что вставка конструкции {include file="{THEME}/order.tpl"} в файл main.tpl ничего не дает, и пришлось внести следующие изменения:

В файле index.php после:

require_once ROOT_DIR . '/engine/init.php';

Добавил:

require_once(ENGINE_DIR. '/modules/order.php');

После:

$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );

Добавил:

$tpl->set('{order}', $tpl->result['order']);


В файле engine/modules/order.php добавил:

$tpl->load_template('order.tpl');

А в конце файла заменил:

$tpl->compile('content');

на

$tpl->compile('order');

В итоге я смог подключить данный модуль заказа в файл main.tpl простой конструкцией:

[aviable=main|showfull]				  

   {order}

[/aviable]

Проверив в работе заметил, что модуль при отправке сообщения очищает на странице весь контент и выводит сообщение об успешной отправке, но не убирает отображение самого модуля. Как это реализовать в самом модуле я не смог разобраться. Констркции через [aviable=main|showfull] или {custom} ничего не дают, потому что нет никакого редиректа при отправке сообщения. К слову, раз модуль проверяет и выводит данные в виде ajax, то категорически не хочу вставлять костыли через редирект.

Подскажите кто знает, как правильно убрать отображение данного модуля после формирования заказа в самом файле engine/ajax/order.php. Файл этот по сути тот же оригинальный engine/ajax/feedback.php + пара своих строк.

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

Пока что отключил показ модуля заказа через костыль на JS:


<script language="JavaScript" type="text/javascript">

function showhide(id_div)

{document.getElementById(id_div).style.display="none";}

</script>

Но вопрос остался открытым!

Я конечно плохо знаком с DLE (делаю только 3-й сайт на этом движке). Но естественно важно правильное решение данной задачи.

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

Более менее правильно проблему решил следующим образом:


В файле engine/ajax/order.php к строчке вывода успешной отправки заказа:

msgbox( $lang['feed_ok_1'], "{$lang['feed_ok_2']} <a href=\"{$config['http_home_url']}\">{$lang['feed_ok_4']}</a>" );

добавил следующий JS-код:

<script>document.getElementById('order').style.display='none';</script>

теперь при успешной отправке заказа сервер инициализирует скрытие блока через JS-код.

2-й раз публикую свой вопрос в вашем форуме и никто не отвечает.

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

Изменено пользователем bull1251
Ссылка на сообщение
Поделиться на других сайтах

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

Это форум DLE, а не сторонних модулей DLE. Никто не будет искать где то в интернете тот сторонний модуль что вы поставили себе, изучать его, и помогать вам его исправить. По вопросам сторонних модулей, нужно получать помощь на сайтах авторов этих модулей. Этот модуль что вы используете возможно никто в глаза то и не видел, а вы спрашиваете здесь как его нужно править. Здесь нужно спрашивать по стандартным возможностям DLE.

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

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

Это форум DLE, а не сторонних модулей DLE. Никто не будет искать где то в интернете тот сторонний модуль что вы поставили себе, изучать его, и помогать вам его исправить. По вопросам сторонних модулей, нужно получать помощь на сайтах авторов этих модулей. Этот модуль что вы используете возможно никто в глаза то и не видел, а вы спрашиваете здесь как его нужно править. Здесь нужно спрашивать по стандартным возможностям DLE.

Когда это форма обратной связи стало сторонним модулем для DLE? Я пользовался только тем что есть в дистрибутиве данного скрипта.

Внимательнее читайте мой первый пост.

Изменено пользователем bull1251
Ссылка на сообщение
Поделиться на других сайтах

Когда это форма обратной связи стало сторонним модулем для DLE?

А с каких пор файлы engine/modules/order.php и engine/ajax/order.php стали входить в состав DLE? А ведь именно данные файлы осуществляют вывод информации в данном случае. А стандартный модуль обратной связи не имеет вышеописанных вами проблем. А что вы там наделали на основе стандартного модуля, никому не известно. Но сделали явно неверно, потому как стандартный модуль обратной связи работает корректно и форму когда отправлено сообщение не выводит второй раз.

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

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

Думаю, не стоит писать тем кто просит помощи, что никто не будет изучать ваш модуль и помогать вам его исправлять, мол у нас все работает и наша хата с краю. Я знаю, что стандартные модули прекрасно работают, но часто некоторые задачи требуют расширения стандартных возможностей модулей. Ибо сайты строятся согласно тех. заданию, и не ограничиваются только возможностями движка. Значит при разработке сайтов следует дополнять и расширять возможности стандартных модулей согласно поставленным задачам. В данном случае я постарался сделать так, как считал наиболее оптимальным, Но в связи с затруднениями в отображении модуля обратился в данный форум за помощью. При этом постарался наиболее наглядно описать все шаги своих действий.

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

Изменено пользователем bull1251
Ссылка на сообщение
Поделиться на других сайтах

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

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

А что касается меня лично, то я нахожусь здесь на работе и выполняю свои обязанности по технической поддержке скрипта. Ваш вопрос например вне компетенции тех. поддержки, поэтому я не отвечаю на подобные вопросы. Лично я со стороны тех. поддержки DLE решаю только вопросы описанные на странице http://dle-news.ru/support.html

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

Считаю, что вы не совсем правы насчет других. Лично я стараюсь делиться своими знаниями, давать советы и указывать наиболее правильные пути решения в тех вопросах, где я в определенной степени разбираюсь. И по мере своих возможностей и времени стараюсь вникать задачи других пользователей. Не из за альтруистских побуждений как вы сказали, а в связи с тем, что мне самому бывает интересно разбираться в чужих задачах. Изучая чужой код и варианты решения других пользователей частенько можно узнать для себя новые методы и алгоритмы, ранее о которых ты не задумывался. Это позволяет получить новые знания и расширяет кругозор. И я убежден, что не мало таких же людей, кто имеет подобные представления.

Мне интересно другое - это официальное мнение вашего форума, что никому нет дела до других, или вы просто пытаетесь отписаться (избавиться) от неугодного вам пользователя? Ибо если это официальное мнение вашего форума, тогда вновь становиться актуальным мой вопрос - нафик тогда вам такой форум поддержки, где никто и никому не хочет помогать?

Странно что вы пытаетесь писать от имени своих пользователей, что им не интересно, что они не собираются тратить свое время...

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

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

Изменено пользователем bull1251
Ссылка на сообщение
Поделиться на других сайтах

Считаю, что вы не совсем правы насчет других. Лично я стараюсь делиться своими знаниями, давать советы и указывать наиболее правильные пути решения в тех вопросах, где я в определенной степени разбираюсь. И по мере своих возможностей и времени стараюсь вникать задачи других пользователей. Не из за альтруистских побуждений как вы сказали, а в связи с тем, что мне самому бывает интересно разбираться в чужих задачах. Изучая чужой код и варианты решения других пользователей частенько можно узнать для себя новые методы и алгоритмы, ранее о которых ты не задумывался. Это позволяет получить новые знания и расширяет кругозор. И я убежден, что не мало таких же людей, кто имеет подобные представления.

В том то и дело, что вы не заинтересовали своим вопросом никого. Потому как тот кто знает ответ и может помочь, четко видит по самому вашему первому топику, что проблема в коде стороннего файла. Этого кода вы не привели, и человек не будет тратить время на расспросы о том а что у вас там в коде, приведите его и т.д. Зачем ему тратить на это время? Это вы должны позаботиться чтобы у человека было все перед глазами, и тогда если у кого то будет время и желание поможет вам. А ваша тема выглядит в глазах постороннего человека примерно так: "Я тут что намудрил, помогите мне. А заодно и попросите меня написать вам полный код моего модуля.".

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

Мне интересно другое - это официальное мнение вашего форума, что никому нет дела до других, или вы просто пытаетесь отписаться (избавиться) от неугодного вам пользователя? Ибо если это официальное мнение вашего форума, тогда вновь становиться актуальным мой вопрос - нафик тогда вам такой форум поддержки, где никто и никому не хочет помогать?

Вы не можете быть мне неугодным в данном вопросе. Потому как ваша первоначальная тема и ваш вопрос вне моей компетенции и обязанностей. Здесь я вам лишь ответил исключительно только на один ваш вопрос:

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

О том что никто из других пользователей форума, не счел нужным вам помогать. А вы почему то решили что они вам обязаны помогать. Нет не обязаны. Потому как форум это площадка для общения различных людей, которые также являются такими же пользователями скрипта, как и вы. И они не захотели вам отвечать, почему не захотели, я лишь предположил выше. А вы почему то рассматриваете форум как место где вам обязаны отвечать на ваши вопросы и решать данный ваш вопрос. Нет не обязаны, потому как это форум. И если никто не захотел, то значит вы не заинтересовали их.

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

Мне интересно другое - это официальное мнение вашего форума, что никому нет дела до других, или вы просто пытаетесь отписаться (избавиться) от неугодного вам пользователя? Ибо если это официальное мнение вашего форума, тогда вновь становиться актуальным мой вопрос - нафик тогда вам такой форум поддержки, где никто и никому не хочет помогать?

Официальное мнение форума таково, что если вам не ответили на ваш вопрос, то не нужно при этом пенять на сам форум и писать вопросы "Нафик вам такой форум поддержки, если никто и никому не хочет помогать?". Не захотели помогать вам с данным вашим конкретным вопросом, а не то как вы пишите что никто и никому не помогает. Изучите другие темы на форуме. Люди друг другу здесь помогают. Соответственно вопрос если уж и писать, то ставить его корректно, а именно "Нафик вам такой форум поддержки, если никто мне лично не хочет помогать?". И я вам пишу от имени не от имени пользователей, а от имени администрации вашего форума, в ответ на данный один конкретный вопрос, который касается уже администрации форума.

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

Топикстартер сделайте проще, после отправки формы перекидывайте посетителя на страницу с благодарностью за оставленную заявку или что там у вас. А от туда он прямиком на главную.

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

Топикстартер сделайте проще, после отправки формы перекидывайте посетителя на страницу с благодарностью за оставленную заявку или что там у вас. А от туда он прямиком на главную.

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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...