• **Автор:** Евгений Корчевский (псевдоним — ReSLeaR).
  • **Платформа:** uCoz.
  • **Назначение:** автоматизация публикации анонсов новых материалов (статей, новостей, записей) в встроенном чате сайта.


### Краткое описание
Скрипт позволяет пользователям, модераторам и администраторам сайтов на платформе uCoz одним кликом отправлять в чат анонс нового материала — без ручного копирования ссылок и текста. После публикации статьи скрипт:

- перехватывает отправку формы;
- извлекает заголовок и URL новой страницы;
- подставляет их в заранее заданный шаблон сообщения;
- открывает модальное окно с подтверждением и кнопкой «Добавить в чат».

Это решение особенно полезно для сообществ, форумов и блогов, где важно оперативно информировать аудиторию о новом контенте.


### Ключевые функции

1. **`showAlert()`**
Отображает уведомления с иконками (загрузка, успех, ошибка) в стиле uCoz. Использует CSS‑классы типа `myWinLoadS` для визуальной обратной связи.

2. **`showWindow()`**
Создаёт диалоговое окно (ширина — 360 px) с опцией «Написать в чат». Позволяет:
- включить чекбокс для показа шаблона сообщения в `textarea`;
- переключать видимость предустановленного шаблона по клику на «(шаблон)».


3. **`parse()`**
Заменяет плейсхолдеры `%TITLE%` и `%URL%` в шаблоне на реальные данные (заголовок и URL материала).

4. **`postChat()`**
Отправляет AJAX‑запрос на `/mchat/` с параметрами:
- `mcmessage` — сформированное сообщение;
- `a=18`;
- `ajax=1`.
Если ответ содержит `newEntryT` (успех), обновляет интерфейс: скрывает элементы и меняет кнопку на «Перейти на страницу материала».


5. **`replace_button()`**
Динамически изменяет поведение кнопки `#dwewetew65et5v`: от отправки в чат к переходу по ссылке.

6. **`init()`**
Инициализирует скрипт, привязывая обработчики событий:
- клик по шаблону;
- изменение чекбокса;
- отправка формы (`submit`).
Поддерживает **CKEDITOR** и **uCoz.uwbb** для синхронизации полей.


### Установка

  • 1. Перейдите в **панель управления** uCoz.
  • 2. Выберите **редактирование шаблонов** модуля «Каталог файлов».
  • 3. Откройте шаблон **«Страница материала и комментария к нему»**.


4. Вставьте код в нужное место шаблона:

Код
<script src="/js/infotochat.js"></script>
<script>addInfoToChat.init('Только что добавлен новый материал %TITLE%');</script>


**Примечание:**
- `/js/infotochat.js` — путь к файлу скрипта;
- строка внутри `init()` — шаблон сообщения (можно изменить под свои нужды).


### Пример шаблона сообщения
По умолчанию используется шаблон:
`Только что добавлен новый материал %TITLE%`


Плейсхолдеры:

  • - `%TITLE%` — заголовок материала;
  • - `%URL%` — ссылка на страницу материала.


### Технические детали

  • - **Технология:** JavaScript + AJAX.
  • - **Интеграция:** форма добавления материалов (`#addEntForm`).
  • - **Зависимости:** библиотеки uCoz (`_uWnd`, `_uButton`, `_uPostForm`).
  • - **Обработка событий:** перехватывает `submit`, предотвращает стандартную отправку, использует AJAX для асинхронной обработки.


полный код для изучения.

Код
/*
  @license
  ---
  скрипт: Объявление нового материала в чат
  автор : ReSLeaR- (Korchevskiy Evgeniy)
  ---
  https://vk.com/reslear
  https://upost.su/
  ---
*/
var addInfoToChat={_text:"",_url:"",showWindow:function(e){var t=_uButton(null,"button",{ext:1,text:"Добавить в чат",content:'id="dwewetew65et5v"'});new _uWnd("addInfoToChat","Добавление данных",360,200,{autosize:1,resize:1,modal:1,notaskbar:1,fadetype:2,fadespeed:200,fadeclosetype:1,fadeclosespeed:500,align:"center"},'<div class="myWinLoadSD" style="margin-top:20px"></div><div style="margin:20px 0">Материал успешно добавлен!</div><input type="checkbox" id="ddasdawq" checked><label for="ddasdawq">Написать в чат</label><a href="javascript:void(0);" id="wsedrtgbhjnmk" style="opacity:.5;margin-left:10px;cursor:pointer">(шаблон)</a><textarea style="width: 100%;min-height:50px;margin-top:20px;display:none" id="dwdqwdqwrf">'+this._text+'</textarea><div style="margin:20px 0 10px">'+t+"</div>")},showAlert:function(e,t,n,a){var o=e?"load"==e?"myWinLoadS":"myWinLoadSD":"myWinLoadSF",d=t||(e?"load"==e?"Пожалуйста подождите...":'<span class="myWinSuccess">Успешно!</span>':'<span class="myWinError">Ошибка, попробуйте ещё раз!</span>');return _uWnd.alert('<div style="padding:10px"><div class="'+o+'" style="float:left"></div>'+d+"</div>","",{header:0,close:1,w:280,h:90,tm:a?a:2e4,align:"left",name:"addInfoToChat_"+(n||"_"+Date.now())}),e?1:0},success:function(e){var t=this;e=$(e).text(),e.indexOf("myWinSuccess")!=-1&&/href="(.+?)"/.test(e)?(_uWnd.close("addInfoToChat_ww"),t._url=e.match(/href=\"(.+?)\"/i)[1],this.showWindow()):$(e)[0]&&t.showAlert(0,$(e).text(),"ww")},parse:function(e){var t=this,n=$('#addEntForm [name="title"]').val()||t._url||!1,a=t._url||!1;if(!n||!a)return console.error(n,a),t.showAlert(0);var o=e.replace("%TITLE%",n).replace("%URL%",a);return o},init:function(e){var t=this,n=$(document);t._text=e,n.on("click","#wsedrtgbhjnmk",function(){t.toggle("toggle")}),n.on("change","#ddasdawq",function(){$(this).attr("checked")?t.replace_button(!1):(t.toggle("hide"),t.replace_button(!0))}),t.replace_button(!1),$("#addEntForm").removeAttr("onsubmit").submit(function(e){e.preventDefault(),window.CKEDITOR&&(CKEDITOR.instances.brief.updateElement(),CKEDITOR.instances.message.updateElement()),window.uCoz&&window.uCoz.uwbb&&$("[name=message], [name=brief]").sync(),_uPostForm("addEntForm",{success:function(e){t.success(e)}}),t.showAlert("load",0,"ww",0)})},replace_button:function(e){var t=this;$(document).off("click","#dwewetew65et5v").on("click","#dwewetew65et5v",function(){e?document.location.href=t._url:(t.showAlert("load",0,"aq"),t.postChat(t.parse(t._text)))}),$("#dwewetew65et5v").find("a").html(e?"Перейти на страницу материала":"Добавить в чат")},postChat:function(e){var t=this;return e?void $.post("/mchat/",{mcmessage:e,a:18,ajax:1},function(e){var n=$(e).text();return n.indexOf("newEntryT")==-1?(console.error(n),t.showAlert(0)):(_uWnd.getbyname("addInfoToChat_aq").close(),$("#ddasdawq").before('<div style="margin:0 0 10px">Запись успешно добавлена в чат!</div>'),$("#wsedrtgbhjnmk, #dwdqwdqwrf, #ddasdawq, #ddasdawq + label").animate({opacity:0,height:0},300),$("#dwdqwdqwrf + div").css("margin-top",0),t.replace_button(!0),_uWnd.getbyname("addInfoToChat").checksize(),void 0)}):(console.error(e),t.showAlert(0))},toggle:function(e){e=e?e:"toggle",$("#dwdqwdqwrf").animate({height:e,opacity:e},150,function(){_uWnd.getbyname("addInfoToChat").checksize()})}};
«Объявление нового материала в чат» для платформы uCoz
Размер: 3.6 Kb

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
HTMLSTART » Скрипты UCOZ » Мини-чат » «Объявление нового материала в чат» для платформы uCoz