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

После создания новой записи (статьи, новости, файла или другого материала) появляется удобное окно, в котором можно выбрать — отправлять ли сообщение в чат. Скрипт автоматически формирует сообщение с названием материала и ссылкой на него, что позволяет быстро уведомить посетителей сайта о новых публикациях.
Возможности скрипта:

  • Автоматическое добавление новых материалов в чат
  • Формирование сообщения с названием и ссылкой на материал
  • Возможность редактировать шаблон сообщения перед отправкой
  • Кнопка быстрого перехода на страницу материала после публикации
  • Удобное всплывающее окно без перезагрузки страницы
  • Совместимость с системой добавления материалов uCoz


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

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

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


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

Код
var addInfoToChat = {
  _text: "",
  _url: "",
  showWindow: function () {
  var button = _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">' + button + '</div>'
  );
  },
  showAlert: function (type, content, name, timeout) {
  var iconClass;
  if (type) {
  iconClass = (type == "load") ? "myWinLoadS" : "myWinLoadSD";
  } else {
  iconClass = "myWinLoadSF";
  }
  var defaultText;
  if (content) {
  defaultText = content;
  } else if (type) {
  defaultText = (type == "load")
  ? "Пожалуйста подождите..."
  : '<span class="myWinSuccess">Успешно!</span>';
  } else {
  defaultText = '<span class="myWinError">Ошибка, попробуйте ещё раз!</span>';
  }
  _uWnd.alert(
  '<div style="padding:10px"><div class="' + iconClass + '" style="float:left"></div>' + defaultText + '</div>',
  "",
  {
  header: 0,
  close: 1,
  w: 280,
  h: 90,
  tm: timeout ? timeout : 20000,
  align: "left",
  name: "addInfoToChat_" + (name || "_" + Date.now())
  }
  );
  return type ? 1 : 0;
  },
  success: function (response) {
  var self = this;
  var html = $(response).text();
  var isSuccess = html.indexOf("myWinSuccess") !== -1 && /href="(.+?)"/.test(html);
  if (isSuccess) {
  _uWnd.close("addInfoToChat_ww");
  self._url = html.match(/href="(.+?)"/i)[1];
  this.showWindow();
  } else if ($(response)[0]) {
  self.showAlert(0, $(response).text(), "ww");
  }
  },
  parse: function (template) {
  var self = this;
  var title = $('#addEntForm [name="title"]').val() || self._url || false;
  var url = self._url || false;
  if (!title || !url) {
  console.error(title, url);
  return self.showAlert(0);
  }
  return template
  .replace("%TITLE%", title)
  .replace("%URL%", url);
  },
  init: function (template) {
  var self = this;
  var doc = $(document);
  self._text = template;
  doc.on("click", "#wsedrtgbhjnmk", function () {
  self.toggle("toggle");
  });
  doc.on("change", "#ddasdawq", function () {
  if ($(this).attr("checked")) {
  self.replace_button(false);
  } else {
  self.toggle("hide");
  self.replace_button(true);
  }
  });
  self.replace_button(false);
  $("#addEntForm")
  .removeAttr("onsubmit")
  .submit(function (e) {
  e.preventDefault();
  if (window.CKEDITOR) {
  CKEDITOR.instances.brief.updateElement();
  CKEDITOR.instances.message.updateElement();
  }
  if (window.uCoz && window.uCoz.uwbb) {
  $("[name=message], [name=brief]").sync();
  }
  _uPostForm("addEntForm", {
  success: function (response) {
  self.success(response);
  }
  });
  self.showAlert("load", 0, "ww", 0);
  });
  },
  replace_button: function (isDone) {
  var self = this;
  $(document)
  .off("click", "#dwewetew65et5v")
  .on("click", "#dwewetew65et5v", function () {
  if (isDone) {
  document.location.href = self._url;
  } else {
  self.showAlert("load", 0, "aq");
  self.postChat(self.parse(self._text));
  }
  });
  $("#dwewetew65et5v")
  .find("a")
  .html(isDone ? "Перейти на страницу материала" : "Добавить в чат");
  },
  postChat: function (message) {
  var self = this;
  if (!message) {
  console.error(message);
  return self.showAlert(0);
  }
  $.post("/mchat/", { mcmessage: message, a: 18, ajax: 1 }, function (response) {
  var html = $(response).text();
  if (html.indexOf("newEntryT") === -1) {
  console.error(html);
  return self.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);
  self.replace_button(true);
  _uWnd.getbyname("addInfoToChat").checksize();
  });
  },
  toggle: function (state) {
  state = state || "toggle";
  $("#dwdqwdqwrf").animate({ height: state, opacity: state }, 150, function () {
  _uWnd.getbyname("addInfoToChat").checksize();
  });
  }
};
addInfoToChat.init('Только что добавлен новый материал %TITLE% %URL%');