"Лента активности" 2.0

2829
Приветствую

Доработка представляет собой хак модуля "Лента активности" (для инстанта 1.9), что добавлено

1. Автообновление ленты, новые события подгружаются сами через аякс.
2. Кнопка удаления события для админа - удаление через аякс, без обновления страницы
3. "Показать еще" - старый хак, немного подкорректированный. Добавил его сюда же.

демо тут.
В демо кнопка удаления событий появляется для ВСЕХ - чтобы можно было посмотреть как это работает. На рабочем сайте удаление работает только под администратором.

На демо сайт можно зайти под юзерами demo1, demo2, demo3, demo4, demo5 (пароль 12345). Либо через соц сеть.

А проверить автообновление можно так: в одном окне открыть главную страницу демо сайта, а во второй поменять аватар у своего пользователя. И проверить добавление события на закладке Ленты.

Скачать архив

Инструкция:

Скачать и разархивировать архив с заменой всех файлов.
Если название шаблона отличается от _default_, то закинуть файлы шаблонов нужно будет вручную (по аналогии - то что у меня в архиве в папке _default_ закинуть в папку со своим шаблоном)
Почистить кэш (чтобы открывался новый шаблон "ленты активности")
Меняются только файлы модуля (module.php и mod_actions.tpl) + несколько новых файлов.
Анонс компонента iRSS (публикация постов из RSS лент) | Плагин ULogin 2.0 (склейка профилей)
Комментарии (30)
Patriot 6 октября 2012 в 17:52 0
Спасибо SJen, поставил работает отлично!
Patriot 6 октября 2012 в 18:08 0
Автообновление ленты просто супер! +++
picaboo 6 октября 2012 в 18:38 +2
кнопку удаления лучше убрать на демке. количество неандертальцев - зашкаливает. никак не посмотреть возможности, поскольку не забить ленту событиями, какая то обезьяна постоянно жмет удалить в ленте :)
SJen 6 октября 2012 в 18:40 0
да, заметил такой момент)
сейчас придумаю как обойти - как вариант конечно, отменить удаление - то есть эффект исчезания будет, но событие реально не удалится
SJen 6 октября 2012 в 18:42 0
Сделал - события физически удаляются теперь только админом
остальные могут только нажать на кнопку и посмотреть эффект исчезновения события из списка - реального удаления не будет
Def 6 октября 2012 в 19:23 0
отличная вещь!

а улогин получилось припилить чтобы склейку делать?_)
SJen 6 октября 2012 в 19:26 0
нет, до ulogin'а не добрался еще.. не склеивает
• Mike • 11 октября 2012 в 16:00 0
Код JS:
  1. $('.actions_list').everyTime('30s', function(i) { ///нет такой функции )
может где-то в другом js подгружается?
SJen 11 октября 2012 в 16:33 +1
я похоже упустил, что нужно подключить плагин jquery.timers.js, потому что у многих(да и у меня тоже) он используется в других плагинах..
Нужно добавить строчку(можно в шаблон ленты)
Код PHP:
  1. <script type="text/javascript" src="/includes/jquery/jquery.timers.js"></script>
• Mike • 11 октября 2012 в 17:45 0
благодарствую )
ver2hay 28 октября 2012 в 21:38 0
для тех у кого нет в библиотеке файла jquery.timers.js берем здесь
Def 7 октября 2012 в 16:31 0
странно, перезалил, но не робит. может какой другой файл отвечает за ленту активности?) я ставил твой мод с подгрузкой на аяксе ранее
SJen 7 октября 2012 в 19:32 0
так там в архиве много файлов..
может кэш почистить?) - а то ведь если шаблон модуля берется из кэша, то ничего не будет работать. Добавлю этот пункт в инструкцию
Def 7 октября 2012 в 19:39 0
кэш чистл, но чтото не помогло:(
Алфей 7 октября 2012 в 18:18 +1
Sjen вообще малорик! Я на днях думал об этом, чтоб не плохо бы сделать так. Просто мысли мои прочитал:) Ведь как раз и хотел обратится за этим к Sjen.
Алфей 7 октября 2012 в 22:08 0
SJen, а можно сделать чтобы время в ленте активности обновлялось через какое то время, если никто не добавляет ничего. Правда это не столь важно, но было бы неплохо.
SJen 8 октября 2012 в 05:01 0
время - это в смысле "5 минут назад", "8 часов назад"? - я бы предложил поменять формат даты и выводить "когда" было событие, а не сколько минут назад оно было.

Обновлять время у всех отображаемых событий не очень хороший вариант.. событий может быть очень много.
Алфей 8 октября 2012 в 07:05 0
В принципе не столь важно как оно выводится, да и обновление времени по таймеру тоже не очень важно. Мне вообще удобна Лента 2.0 тем что на одном сайте у меня рядом два модуля стоят, Лента и Кричалка, пользователи предпочитают в кричалке общатся и при этом не видят что на сайте происходит. Лента 2.0 решила эту проблему, но вчера заметил этот момент, когда добавив комментарий пообщался с пользователями в кричалке полчаса, и обратил внимание что время последнего события так и стоит "меньше минуты назад"
Александр Корн 13 октября 2012 в 19:54 0
много раз приходила в голову такая же мысль - лучше писать время возникновения а не давность! лента активности от SJen - супер!
Defirus 7 октября 2012 в 22:30 0
Сообщение стирается, а дата нет. Где см?
SJen 8 октября 2012 в 04:58 0
а вы шаблоны руками не подправляли? - там удаляется целиком блок события(заголовок, дата, описание). Смотреть нужно верстку, а конкретнее - что с ней происходит при удалении.
SJen 8 октября 2012 в 05:25 0
если сами не разберетесь - кидайте в личку сайт. И мне нужен будет юзер с правами админа, чтобы проверить работу кнопки удаления.
Patriot 8 октября 2012 в 06:54 0
Defirus:
Где см?
А не судьба быть более уважительнее к автору? Он больше сделал и не сокращал описание в хаке.
BSB 11 октября 2012 в 09:30 0
SJen, благодарствую за полезность!
Одно "но": кнопка "Показать ещё" выдаёт аццкую смесь иероглифов (работает на UTF-8)
SJen 11 октября 2012 в 09:44 +1
Ну так это же логично, модуль то сделан под кодировку cp-1251(это в описание указано - для инстанта 1.9), а вы его на UTF запускаете.

Перекодируйте все файлы и в коде кодировку смените там где есть - и будет все отлично. У меня это стоит на двух проектах - один на UTF, второй на cp-1251.
BSB 13 октября 2012 в 18:44 0
Всё так, можно даже просто ограничиться, исправив кодировку в header. Спасибо!

Остаётся только вот такая проблема:
перед каждой страницей, создаваемой кнопкой, выскакивает сообщение:
со страницы:
Notice: Undefined index: target_link in /media/Data/www/core/classes/actions.class.php on line 450
Ошибка, получается в строке:
Код PHP:
  1. $action['message'] = sprintf($action['message'], $action['object_link'], $action['target_link']);
Зависимость такая: количество ошибок равно количеству страниц, созданных через кнопку "Ещё". Не пойму, где "собака порылась"
SJen 13 октября 2012 в 19:19 +1
это не ошибка, это "Notice" = извещение, сообщение, уведомление, предупреждение.
Собака зарыта в файле actions.class.php. Но его исправление выходит за рамки доработки модуля)

Так что вам нужно просто отключить вывод этих сообщений - которые ни на что не влияют.

Это можно сделать, добавив одну строчку в ваш корневой .htaccess
php_flag display_errors off

В самом модуле я не отключал такие сообщения..
fotpod 8 января 2013 в 12:09 0
Удобная штука, а для 1.10 будет?
Patriot 10 апреля 2013 в 23:15 +1
SJen , как бы его прикрутить к 1.10.1 ?
Anonim 4 ноября 2013 в 11:23 0
да, нужно