Замена модальных диалогов на инлайн панели для версии 1.10.3

+45
2.88K

Заменяет модальные окна при отправке сообщений и написании записей на стену + статус пользователя.

Добавлены две функции в /core/js/common.js, там же исправлены функции для добавления на стену.
Исправлена функция в /components/users/js/profile.js отправка сообщений.
Правки минимальны.



Скачиваем АРХИВ, распаковываем с заменой файлы.
Архив обновлен.

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

Открываем файл /public_html/components/users/frontend.php
Находим (~43 строка)
  1.  
  2. $inPage->addHeadJsLang(array('CONFIRM_CLEAN_CAT','CHOOSE_RECIPIENT','SEND_TO_USER','FRIENDSHIP_OFFER','STOP_FRIENDLY','REALY_STOP_FRIENDLY','ENTER_STATUS','HAVE_JUST'));
  3.  
добавляем к массиву CHANGE_STATUS, чтобы получилось так:
  1.  
  2. $inPage->addHeadJsLang(array('CONFIRM_CLEAN_CAT','CHOOSE_RECIPIENT','SEND_TO_USER','FRIENDSHIP_OFFER','STOP_FRIENDLY','REALY_STOP_FRIENDLY','ENTER_STATUS','HAVE_JUST', 'CHANGE_STATUS'));
  3.  
Находим блок (начало ~481 строка)
  1.  
  2. if(!cmsUser::checkCsrfToken()) { cmsCore::error404(); }
  3.  
  4. // Кому отправляем
  5. $usr = cmsUser::getShortUserData($id);
  6. if (!$usr) { cmsCore::halt(); }
  7.  
  8. $message = cmsCore::parseSmiles(cmsCore::request('message', 'html', ''), true);
  9.  
  10. if (mb_strlen($message)<2){
  11. cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['ERR_SEND_MESS']));
  12. }
  13.  
перемешаем верхнюю строку вниз блока (исправит ошибку при повторной отправке пустого сообщения):
  1.  
  2. // Кому отправляем
  3. $usr = cmsUser::getShortUserData($id);
  4. if (!$usr) { cmsCore::halt(); }
  5.  
  6. $message = cmsCore::parseSmiles(cmsCore::request('message', 'html', ''), true);
  7.  
  8. if (mb_strlen($message)<2){
  9. cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['ERR_SEND_MESS']));
  10. }
  11.  
  12. if(!cmsUser::checkCsrfToken()) { cmsCore::error404(); }
  13.  
проверяем как работает)

Если нужно применять в своём коде js
вызываем новую функцию core.panel( title, selector, where );
параметры:
title — Заголовок панели;
selector — селектор jQuery объекта до или после которого встраивается панель;
where — "after" || "before", "после" или "до" соответственно.

Для закрытия панели вызываем функцию core.panel_close(); без параметров
+2
Станислав Григорьевич (Мозголом) Станислав Григорьевич (Мозголом) 11 лет назад #
Большое спасибо Mike за ваши труды!
0
Patriot Patriot 11 лет назад #
Mike подскажи, как убрать модальное окно, для стены профиля в версии 1.10.1 ?
0
• Mike • • Mike • 11 лет назад #
Две функци новых скопировать из common.js и исправить в нем же addWall и doaddWall, больше вроде ничего менять не надо, три точнее
panel
panel_close
_show_pan
0
Aleks Shultz Aleks Shultz 11 лет назад #
Сударь, вы великолепны! Наиотличнейшее и архиполезное решение!

Спойлер
zst
0
• Mike • • Mike • 11 лет назад #
шаблон _default_?
0
Aleks Shultz Aleks Shultz 11 лет назад #
Да, _default_, единственное это сайт после миграции, не чистая установка
0
• Mike • • Mike • 11 лет назад #
если не на локалке сбросьте ссылку на сайт в личку
+2
• Mike • • Mike • 11 лет назад #
естественно, кэши везде нужно чистить и в броузерах откуда заходите и на сайте иначе js могут старые подгружаться…
0
Patriot Patriot 11 лет назад #
Благодарю, Mike! Теперь полный порядок )
0
Викторыч Викторыч 11 лет назад #
Подтверждаю: при нажатии "написать сообщение", в профиле под аватаром, ничего не происходит. Архив скачан пять минут назад, изменения установлены под Денвером на тестовом сайте, кэш чистил...
+1
• Mike • • Mike • 11 лет назад #
давайте вместе придумаем куда его тут прикреплять ))) или оставим старую функцию модалки если она не обнаруживает указанный селектор
+1
• Mike • • Mike • 11 лет назад #
Исправлено на вызов модалки если искомого селектора нет.
Архив обновлен.
0
Викторыч Викторыч 11 лет назад #
Только что закончил дела, и сразу сюда, знаю, что Майк не оставляет без внимания "непорядки" )) А вместе не получилось бы придумать, я на этом поле пас, супротив гуру. ) Спасибо за решение, заменил, появилось всплывающее окно, ну так, стало быть, все в порядке.
0
livecom livecom 10 лет назад #
"Написать на стене" и "Изменить статус" работают, а вот "Написать сообщение" пользователю, нет. По-прежнему выскакивает модальное окно. Сайт показать не могу, к сожалению он на локалке. Версия 1.10.3.
0
• Mike • • Mike • 10 лет назад #
давайте вместе придумаем куда его тут прикреплять ))) или оставим старую функцию модалки если она не обнаруживает указанный селектор
Исправлено на вызов модалки если искомого селектора нет. Архив обновлен.

— поэтому, работает в самих сообщениях, а…

"Написать сообщение" пользователю, нет. По-прежнему выскакивает модальное окно.
0
rol rol 10 лет назад #
Доброго часа!
установила как написано Замена модальных диалогов на инлайн панели для версии 1.10.3
И такая ситуация...
Фото здесь

Что делать? Как выявить ошибку?
Прошу Вашей помощи
0
Def Def 10 лет назад #
заменил, очистил кэш, но чтото вообще в профиле не сотавляются сообщения. т.е вспдылывает окно, в нем показывается гифка загрузки и не исчезает
0
• Mike • • Mike • 10 лет назад #
скорее всего конфликт с шаблоном или сторонними модулями, плагинами и т.п.
0
seocean seocean 10 лет назад #
Для 1.10.4. эта версия архива подойдет?
0
• Mike • • Mike • 10 лет назад #
Вполне возможно, но, именно для 1.10.4 не проверялось…
Сравните, там всего пара файликов в архиве…
0
seocean seocean 10 лет назад #
Mike, я проверила - сначала показалось что все работает, а потом нашла такую ошибку: при редактировании профиля - Мои настройки -> изменения -> сохранить -> Страница не найдена (http://prof.seocean.ru/users/1/editprofile.html)

Как бы поправить... такая полезная вещь...)
0
• Mike • • Mike • 10 лет назад #
скорее всего ошибка не связана с описываемыми в данном посте правками или изменнными js файлами
проверьте файлы шаблона ( сравните с дефолтными той версии которую используете )
и профиль админа может редактировать только сам админ ( с id == 1 ) в последних версиях…
0
lubov lubov 9 лет назад #
а для 1.10.6 подойдет
0
• Mike • • Mike • 9 лет назад #
нет, нужно делать новый вариант и проверять, естественно…
так как не было пока запросов на новую версию, я не делал
постараюсь на выходных посмотреть, если правок буде не много то обновлю.
0
Владимир Савенко ✝️ Владимир Савенко ✝️ 8 лет назад #
Как успехи с версией 1,10,6? Бывает, что приходят большие сообщения и что бы на них ответить приходится уменьшать масштаб страницы, что бы увидеть поле ответа, но тогда букв не разберешь...
Ждем решение для 1,10,6...
+1
• Mike • • Mike • 8 лет назад #
если нужно — значит сделаем … )
0
• Mike • • Mike • 8 лет назад #
добавлен новый архив, ссылка в самом посте под первой.
0
Владимир Савенко ✝️ Владимир Савенко ✝️ 8 лет назад #
Поставил, вроде все нормально, во всяком случае те "грабли" которые были при модальном окне ушли. Будем дальше тестировать. Спасибо за быстрое решение.

Еще от автора

Предварительный просмотр в BB редакторе для 1.10.4
В продолжение темы— Предварительный просмотр в стандартном редакторе с ББ-кодами для версии 1.
Расширенная постраничная навигация вер. 1.10.3+
Плагин расширенной постраничной навигации для версий выше 1.10.3
Модуль «Новые статьи с колонками» версия 1.10.Х
Модуль переработан под версию 1.10.3. В одноколонном режиме добавлен слайдер. Добавлены некоторые дополнительные настройки.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.