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

+60
3.68K
Приветствую

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

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

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

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

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

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

Инструкция:

Скачать и разархивировать архив с заменой всех файлов.
Если название шаблона отличается от _default_, то закинуть файлы шаблонов нужно будет вручную (по аналогии — то что у меня в архиве в папке _default_ закинуть в папку со своим шаблоном)
Почистить кэш (чтобы открывался новый шаблон "ленты активности")
Меняются только файлы модуля (module.php и mod_actions.tpl) + несколько новых файлов.
0
Patriot Patriot 12 лет назад #
Спасибо SJen, поставил работает отлично!
0
Patriot Patriot 12 лет назад #
Автообновление ленты просто супер! +++
+2
picaboo picaboo 12 лет назад #
кнопку удаления лучше убрать на демке. количество неандертальцев - зашкаливает. никак не посмотреть возможности, поскольку не забить ленту событиями, какая то обезьяна постоянно жмет удалить в ленте :)
0
SJen SJen 12 лет назад #
да, заметил такой момент)
сейчас придумаю как обойти - как вариант конечно, отменить удаление - то есть эффект исчезания будет, но событие реально не удалится
0
SJen SJen 12 лет назад #
Сделал - события физически удаляются теперь только админом
остальные могут только нажать на кнопку и посмотреть эффект исчезновения события из списка - реального удаления не будет
0
Def Def 12 лет назад #
отличная вещь!

а улогин получилось припилить чтобы склейку делать?_)
0
SJen SJen 12 лет назад #
нет, до ulogin'а не добрался еще.. не склеивает
0
• Mike • • Mike • 12 лет назад #
Код JS:
  1. $('.actions_list').everyTime('30s', function(i) { ///нет такой функции )
может где-то в другом js подгружается?
+1
SJen SJen 12 лет назад #
я похоже упустил, что нужно подключить плагин jquery.timers.js, потому что у многих(да и у меня тоже) он используется в других плагинах..
Нужно добавить строчку(можно в шаблон ленты)
Код PHP:
  1. <script type="text/javascript" src="/includes/jquery/jquery.timers.js"></script>
0
• Mike • • Mike • 12 лет назад #
благодарствую )
0
ver2hay ver2hay 12 лет назад #
для тех у кого нет в библиотеке файла jquery.timers.js берем здесь
0
Def Def 12 лет назад #
странно, перезалил, но не робит. может какой другой файл отвечает за ленту активности?) я ставил твой мод с подгрузкой на аяксе ранее
0
SJen SJen 12 лет назад #
так там в архиве много файлов..
может кэш почистить?) - а то ведь если шаблон модуля берется из кэша, то ничего не будет работать. Добавлю этот пункт в инструкцию
0
Def Def 12 лет назад #
кэш чистл, но чтото не помогло:(
+1
Алфей Алфей 12 лет назад #
Sjen вообще малорик! Я на днях думал об этом, чтоб не плохо бы сделать так. Просто мысли мои прочитал:) Ведь как раз и хотел обратится за этим к Sjen.
0
Алфей Алфей 12 лет назад #
SJen, а можно сделать чтобы время в ленте активности обновлялось через какое то время, если никто не добавляет ничего. Правда это не столь важно, но было бы неплохо.
0
SJen SJen 12 лет назад #
время - это в смысле "5 минут назад", "8 часов назад"? - я бы предложил поменять формат даты и выводить "когда" было событие, а не сколько минут назад оно было.

Обновлять время у всех отображаемых событий не очень хороший вариант.. событий может быть очень много.
0
Алфей Алфей 12 лет назад #
В принципе не столь важно как оно выводится, да и обновление времени по таймеру тоже не очень важно. Мне вообще удобна Лента 2.0 тем что на одном сайте у меня рядом два модуля стоят, Лента и Кричалка, пользователи предпочитают в кричалке общатся и при этом не видят что на сайте происходит. Лента 2.0 решила эту проблему, но вчера заметил этот момент, когда добавив комментарий пообщался с пользователями в кричалке полчаса, и обратил внимание что время последнего события так и стоит "меньше минуты назад"
0
Александр Корн Александр Корн 12 лет назад #
много раз приходила в голову такая же мысль - лучше писать время возникновения а не давность! лента активности от SJen - супер!
0
Defirus Defirus 12 лет назад #
Сообщение стирается, а дата нет. Где см?
0
SJen SJen 12 лет назад #
а вы шаблоны руками не подправляли? - там удаляется целиком блок события(заголовок, дата, описание). Смотреть нужно верстку, а конкретнее - что с ней происходит при удалении.
0
SJen SJen 12 лет назад #
если сами не разберетесь - кидайте в личку сайт. И мне нужен будет юзер с правами админа, чтобы проверить работу кнопки удаления.
0
Patriot Patriot 12 лет назад #
Defirus:
Где см?
А не судьба быть более уважительнее к автору? Он больше сделал и не сокращал описание в хаке.
0
BSB BSB 12 лет назад #
SJen, благодарствую за полезность!
Одно "но": кнопка "Показать ещё" выдаёт аццкую смесь иероглифов (работает на UTF-8)
+1
SJen SJen 12 лет назад #
Ну так это же логично, модуль то сделан под кодировку cp-1251(это в описание указано - для инстанта 1.9), а вы его на UTF запускаете.

Перекодируйте все файлы и в коде кодировку смените там где есть - и будет все отлично. У меня это стоит на двух проектах - один на UTF, второй на cp-1251.
0
BSB BSB 12 лет назад #
Всё так, можно даже просто ограничиться, исправив кодировку в 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']);
Зависимость такая: количество ошибок равно количеству страниц, созданных через кнопку "Ещё". Не пойму, где "собака порылась"
+1
SJen SJen 12 лет назад #
это не ошибка, это "Notice" = извещение, сообщение, уведомление, предупреждение.
Собака зарыта в файле actions.class.php. Но его исправление выходит за рамки доработки модуля)

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

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

В самом модуле я не отключал такие сообщения..
0
fotpod fotpod 11 лет назад #
Удобная штука, а для 1.10 будет?
+1
Patriot Patriot 11 лет назад #
SJen , как бы его прикрутить к 1.10.1 ?
0
Anonim Anonim 11 лет назад #
да, нужно

Еще от автора

Обновление компонента "Мне нравится"
Приветствую. Закончил версию с исправлением ошибок и багов, всем пользователям обновление выслано на электронку.
Обновление компонента  "Каталог дополнений в админку"
Приветствую. Обновление самого популярного аддона из официального каталога дополнений.
Обновленный парсер Яндекс.Карт
Приветствую Изменения довольно значительны, поэтому имеет смысл оформить их отдельным постом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.