Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Настройка модуля Privatemsg

Настройка модуля Privatemsg
, by

Доброго времени суток всем

Есть сайт, на котором реализовано общение между зарегистрировавшимися на нем пользователями, с помощью модуля Privatemsg. Все работает хорошо, но возникла идея, а именно сделать так:

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

Это реализуемо с помощью Node.js, тем более, что даже есть модуль для Privatemsg для связи его с Node.js, но так как я на виртуальном хостинге это реализовать не возможно на нем.

Конечно я понимаю, что можно как то сделать с помощью простого Ajax, но с этой технологией я не знаком. Может там и кода то особо и не много и решается как то быстро.

Вообщем хотелось бы узнать как это можно сделать, может есть какие модули готовые или сможете предложить готовое решение, реализуемое кем то ранее или вами.

Заранее спасибо

P/S: Googl-ом я пользовался)) Нашел реализацию этой идеи для node и других страниц:

1. Один вариант здесь - http://www.drupal.ru/node/82316

2. Второй здесь - http://frantsuzzz.com/content/ajax-zaprosy-po-taymeru-v-drupal-7

3. Третий здесь, готовый модуль, который может подгружать с помощью ajax измененную информацию указанных типов материалов - https://www.drupal.org/project/ajax_reload

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

 

1 answer
votes: 1270
Answer

Я делал через этот модуль уведомления для Private messages:
https://www.drupal.org/project/pmgrowl

Можете посмотреть как там отлавливаются события нового сообщения и на странице с сообщениями выполнять ajax на добавление и или изменение и полностью перестраивать вывод. Хотя боюсь, что private messages до сих пор не интегрировали со Views,  придется все вручную писать. 


У меня стоит  Private Message Growl, хороший модуль, все стабильно и быстро. 

Я вообще нашел решение, которое делает сайт полностью ajax загружаемым - https://www.drupal.org/project/ajax_pages. Пробовал устанавливать и запускать, действительно все быстро, но что то как то пугает, что полностью сайт загружается на ajax...)) Там у них в примерах есть 2 сайта, можно посмотреть в работе модуль, не устанавливая его.

А вот то, что с Views пока еще не интегрировали - плохо, решило все бы вопросы махом.

Я пока еще ищу решения, вручную пока сам не потяну, знаний маловато.

Если решений так и не найду, возможно ли к вам обратиться, за реализацией этой идеи вами на платной основе?

 


Похоже что этот модуль реализует целиком и полностью, то что вам нужно Private message with node.js:

https://www.drupal.org/project/privatemsg_nodejs 


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

Это реализуемо с помощью Node.js, тем более, что даже есть модуль для Privatemsg для связи его с Node.js, но так как я на виртуальном хостинге это реализовать не возможно на нем.

, поэтому и возник такой вопрос, как это сделать без Node.js

 

 


http://javascript.ru/tutorial/events/intro
Вот цикл статей по событиям, вам он поможет, чтобы опрашивать друпал через javascript о новых сообщениях.


Вот еще Listeners, чтобы прослушивать события. Ну и ajax нужен будет чтобы посылать запросы к друпалу и обратно.