Виджет обратной связи для сайта WriteMe 2.X

4180
Доброго всем дня, уважаемое сообщество!

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

Вчера понадобился виджет обратной связи для одного из своих сайтов на ICMS 2, решил написать с нуля (да и искать было лень). А потому сейчас делюсь им с Вами, может кому то пригодиться.



Модуль имеет небольшое количество настроек в админке:
- указание получателя
- куда слать копии писем
- выбор обязательных полей
- и выбор места отображения (право или лево)

Письма через форму отправляются через ajax, без перезагрузки страницы. Имя, мыло и телефон (поля) проходят проверку на правильность заполнения.

Немного скринов:
Виджет обратной связи для сайта WriteMe

Виджет обратной связи для сайта WriteMe

Виджет обратной связи для сайта WriteMe

Виджет обратной связи для сайта WriteMe

Виджет обратной связи для сайта WriteMe


Виджет для версии ICMS 2.1.2. На версиях ниже не тестировался
Пользуйтесь на здоровье.

Спойлер
Ограничение минимального числа символов Фамилии и Имени при регистрации | Компонент Вопросы и ответы FREE - ICMS2
Комментарии (51)
WowChih 2 марта 2015 в 14:10 +2
Классная штука) Буквально на днях искал что-то подобное) Спасибо!
WowChih 11 марта 2015 в 13:35 0
вот какой вопрос возник...

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

А прямоугольничек как убрать?

Шаблон, самый дефолтный, без малейших правок и изменений
Rossoman 11 марта 2015 в 13:38 0
расположите виджет в любой другой позиции.
прямоугольник остается от того, что в сайдбаре каждому виджет присваивается свойство css padding.
Просто поставьте виджет в другую позицию. В дефолтном шаблоне я ставил в позицию меню
WowChih 11 марта 2015 в 14:13 0
Спасибо добрый человек!
Alexprofi 2 марта 2015 в 14:32 +1
Спасибо, пригодится! +
Fuze 2 марта 2015 в 15:08 +5
Коллеги, разработчики!
Очень прошу добавлять (дублировать) выкладываемые виджеты, плагины, компоненты, шаблоны в раздел дополнений. Пользователям будет проще искать.
Rossoman, добавьте пожалуйста свой виджет сюда.
Rossoman 2 марта 2015 в 15:09 0
Ок, хотел, да забыл. Спасибо Fuze
Val 2 марта 2015 в 16:49 +3
Уважаемый Fuze,
скажите пожалуйста есть ли в планах администрации/разработчиков сайта создать/переделать хороший современный раздел дополнений (по функционалу напоминающий Google PLay или AppStore)?
Чтобы можно было легко и просто добавлять различные дополнения, обновлять их при выпуске новых версий (а не создавать новую запись), вести диалог с пользователями (feedback), пользователям оценивать выложенные расширения и т.д.
Так же я за то, чтобы администрация/разработчики InstantCMS брали свой фиксированный процент с продажи платных дополнений через такой магазин.
Fuze 2 марта 2015 в 17:59 +5
Да, это в планах есть, но когда это будет сказать не могу.
Val 2 марта 2015 в 19:33 +1
Спасибо!!!! dance
Очень ждём!!!
eoleg 3 марта 2015 в 19:09 0
Может быть если вывести "Новое в дополнениях" также как "Новое в блогах" и добавить возможность поднятия кармы автору то начнут добавлять туда сразу.
Колёк 2 марта 2015 в 17:55 +2
Rossoman, почему пишется ошибка отправки? Хотя сообщения отправляются... Где собака зарыта?


А так виджет супер...
Rossoman 2 марта 2015 в 18:07 +1
Скорее всего потому, что в админке не указан получатель копий писем.
Проверьте у Вас указан или нет.
Сейчас поправлю, чтобы копии игнорировались
Колёк 2 марта 2015 в 18:28 +1
Да так оно и было... Не было указано получателя копий.
Rossoman 2 марта 2015 в 18:25 +1
Архив обновлен. Сейчас должно быть все норм
Колёк 2 марта 2015 в 18:30 0
Так оно лучше будет, спасибо...
MegaRostov 2 марта 2015 в 20:53 0
Хороший виджет!!!! Спасибо.
SE7EN 2 марта 2015 в 21:15 0
не понял как виджет всплывающим сделать?
Rossoman 2 марта 2015 в 21:27 0
Он по умолчанию должен быть всплывающим.
У какой шаблон стоит? А лучше скиньте в личку сайт
SE7EN 2 марта 2015 в 22:49 +1
разобрался, сам файлы не туда куда надо закинул, теперь работает, спасибо.
reload 8 марта 2015 в 22:41 0
Rossoman, отличный виджет +

Скрытый текст виден только зарегистрированным пользователям
Rossoman 8 марта 2015 в 23:35 0
Передавать в текст письма?
Конечно можно
Rossoman 8 марта 2015 в 23:55 +1
Можно попробовать сделать так
Скрытый текст виден только зарегистрированным пользователям


Чтобы добавить тайтл страницы нужно сделать примерно все тоже самое, только изначально нужно будет получить тайтл страницы, например с помощью регулярного выражения.
Код PHP:
  1.  
  2. $page = file_get_contents ('http://ВАШ_САЙТ.ru');
  3. preg_match_all( "|<title>(.*)</title>|sUSi", $page, $title);
  4.  
а затем делаете все тоже самое как и в первом случае
Rossoman 8 марта 2015 в 23:57 0
Только это строка
Код PHP:
  1.  
  2. $page = file_get_contents ('http://ВАШ_САЙТ.ru');
  3.  
должна быть такого вида
Код PHP:
  1.  
  2. $page = file_get_contents ('http://ВАШ_САЙТ.ru'.$_SERVER['REQUEST_URI']);
  3.  
vikont 30 октября 2015 в 16:37 0
Не получается. Куда именно надо вставлять строки
Код PHP:
  1.  
  2. $page = file_get_contents ('http://ВАШ_САЙТ.ru'.$_SERVER['REQUEST_URI']);
  3. preg_match_all( "|<title>(.*)</title>|sUSi", $page, $title);
  4.  
Rossoman 30 октября 2015 в 19:51 0
Куда угодно.
Только потом переменную $title нужно передать в текст письма
blagpro 12 марта 2015 в 23:55 0
Подскажите как удалить компонент, всё в нём хорошо, да вот только на мобильном устройстве весь вид портит.
Rossoman 13 марта 2015 в 00:00 +1
Удалить из базы. По другому виджеты не удаляются.
Либо просто не выводить при просмотре с мобильника. Дописать пару строк кода в шаблон
blagpro 13 марта 2015 в 00:09 0
Спасибо! Разобрался.
Rossoman 13 марта 2015 в 00:10 +1
Например так (добавить в самый низ шаблона виджета):
Код PHP:
  1.  
  2. <script>
  3. $(document).ready(function(){
  4. var winw = $(window).width();
  5. if(winw < 1000)
  6. $('wdg_write_right').css('visibility', 'hidden');
  7. });
  8. </script>
  9.  
"1000"- это ширина экрана, меньше которого виджет показываться не будет. Можете изменить на сколько вам нужно
Это навскидку. Не проверял, но должно работать
blagpro 13 марта 2015 в 01:51 0
Добавил код. Всё работает! Спасибо!
Sergon 13 апреля 2015 в 07:10 0
blagpro, подскажи пожалуйста, что сделал? я пробую, не получается(((
Rossoman 13 марта 2015 в 02:48 +1
только тут
Код PHP:
  1.  
  2. $('wdg_write_right').css('visibility', 'hidden');
  3.  
точку надо поставить
Код PHP:
  1.  
  2. $('.wdg_write_right').css('visibility', 'hidden');
  3.  
Rossoman 13 марта 2015 в 02:49 +1
точнее не точку а #
facepalm
blagpro 13 марта 2015 в 03:12 0
это сделано)
Val 13 марта 2015 в 11:31 0
мне кажется это лучше через CSS media queries делать.
Код CSS:
  1. @media screen and (max-width: 1000px) {
  2. #wdg_write_right { visibility: hidden; }
  3. }
Rossoman 13 марта 2015 в 12:24 +1
Тогда уж лучше так)
Код PHP:
  1.  
  2. @media handheld,
  3. screen and ( max-width:600px ),
  4. screen and ( max-device-width:600px ) {
  5. #wdg_write_right { visibility: hidden; }
  6. }
  7.  
  8.  
а вообще кому что больше нравиться. Поскольку медиа запросы не будут работать в браузерах, не поддерживающих css3
Sergon 12 апреля 2015 в 13:29 0
положил в файл writeme.tpl.php
Код PHP:
  1.  
  2. <script>
  3. $(document).ready(function(){
  4. var winw = $(window).width();
  5. if(winw < 1000)
  6. $('#wdg_write_right').css('visibility', 'hidden');
  7. });
  8. </script>
  9.  
уменьшаю экран, но ничего не происходит((( подскажите, что не так пожалуйста
Джехутимери 12 апреля 2015 в 15:05 0
Ну конечно ничего не происходит, Вы ведь на $(document).ready() цепляете.
Попробуйте так.

<script>
var resizeandwidth = function () {
var winw = $(window).width();
if(winw < 1000)
$('#wdg_write_right').css('visibility', 'hidden');
};
$(document).ready(resizeandwidth);
$(window).resize(resizeandwidth);
</script>
Sergon 13 апреля 2015 в 07:08 0
нет, отображается все ровно
Man 12 апреля 2015 в 13:55 0
А для версии 1.9 есть что-то подобное?
Sergon 14 апреля 2015 в 07:24 0
прошу прощения, это моя невнимательность! Я виджет расположил слева и только потом обратил внимание что все подсказки сделаны на правое расположение (wdg_write_right).
Всем спасибо, все отлично работает!
Скела 8 сентября 2015 в 09:04 0
Подскажите... может кто то уже делал... Возможно ли его переработать, что бы окошко всплывало при нажатии кнопки, а не висело страницы?..
Krasn 2 января 2016 в 16:21 0
один из огромных плюсов, лично для меня, возможность расположить не на всех страницах подряд, а только на нужных. Спасибо разработчику!)
Алексей 5 февраля 2016 в 08:19 0
Подскажите пожалуйста в чем может быть проблема. Создал форму обратной связи, пытаюсь что то отправить но ошибка
Код PHP:
  1. Fatal error: Call to a member function getStringValue() on a non-object in /home/.../www/system/controllers/iforms/frontend.php on line 183
В чем проблема может быть?
Rossoman 7 февраля 2016 в 22:13 0
Скорее всего вы написали не в ту тему. Судя по пути у вас установлен виджет/компонент iforms
А у меня виджет имеет системное имя writeme
reneplus 1 августа 2016 в 13:07 0
Доброго времени! Помогите настроить кнопку пжл.!!!
лермонтов-кмв.рф
[email protected]/123456
reneplus 9 января 2017 в 11:01 +1
Перестал работать на 2.6.1. Не подскажете, что может быть!
reneplus 9 января 2017 в 11:04 +1
Ошибка отправки сообщения. Пожалуйста, попробуйте позже
Alexey 21 февраля 2017 в 13:34 +1
У меня тоже самое. Будет фикс?
@Rubi 30 апреля 2017 в 18:32 0
Добрый день, друзья помогите настроить виджет совместно с почтой, уже 2 день не получается. За ранее благодарен
Виджет:


Настройки>Почта: