Вывод "Ленты активности" как ВКонтакте

2067
Приветствую!

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

Суть доработки в том, что при прокрутке ленты активности (в модуле либо в компоненте) события подгружаются сами через аякс. От посетителя требуется лишь прокручивать колесико мышки.

Важно: Тестировалось на версии 1.9. Про работу в более старых ничего сказать не могу.

Что меняется:
1. добавляется один php файл, который отвечает за аякс загрузку
2. редактируется шаблон com_actions_view.tpl - для работы аякса в компоненте на странице /actions
3. редактируется шаблон mod_actions.tpl - для работы аякса в модуле "Лента активности"
4. добавляется еще файл шаблона com_actions_view_ajax.tpl - в котором прописан формат возвращаемых данных.


Демо (модуль) :
Скрытый текст виден только зарегистрированным пользователям

Демо (компонент):
Скрытый текст виден только зарегистрированным пользователям


Свое время на подготовку этого творения я оцениваю в 100 рублей. Сумма скорее символическая - но может и жене на мини подарок к 8му марта насобираю glasses

PS не торопитесь, посмотрите внимательно как работает - может будут какие-то пожелания по доработке. Ну а все запросы на покупку - пожалуйста в личку. Во вторник днем подготовлю архив и инструкцию для обновления.
Хак "Оптимизация вывода комментариев" | Звук в Плагине "Новые сообщения" и баг в хаке "Оптимизация вывода комментариев"
Теги: ajax
Комментарии (38)
deltas 6 марта 2012 в 01:53 +4
Красиво, быстро,... но у меня не хватило терпения чтобы увидеть футер страницы :)
SJen 6 марта 2012 в 01:55 +1
а нечего на него смотреть, там кроме счетчика статистики ничего нет:)
Black-Raven90 6 марта 2012 в 02:02 0
Для компонента классно придумано, очень привычно будет для тех, кто сидит в контакте. А футер в этом случае не обязательно видеть)
А вот зачем такой вывод записей модулю - непонятно. В модулях обычно либо самое свежее, либо самое популярное. Если вывести на главную страницу, то до футера не добраться, а у некоторых там дополнительное меню.
SJen 6 марта 2012 в 02:10 +1
Ну вы же понимаете, что тут вопрос в том - изменять шаблон для модуля или нет. Мне, например, хочется видеть возможность прокрутить события на главной странице (там где у меня модуль "Лента активности"), а ссылок на компонент у меня и нет совсем, не вижу надобности.

Вам не нравится в модуле - ну вы можете просто оставить шаблон модуля как есть, а поменять только шаблон компонента - вот и все. На любителя, механизм довольно универсальный.
deltas 6 марта 2012 в 02:52 0
ну да, я образно... для компонента ничего так, но для модуля лишнее ИМХО
Hunter (Роман) 6 марта 2012 в 03:51 0
Футер-мутер - если счетчик посмотреть надо можно и на другую страницу перейти чтобы увидеть. Больше просмотров заодно будет
lezginka.ru 6 марта 2012 в 01:56 0
+
очень быстро подгружается.
а почему не сделать "еще" "далее"

и еще, аякс не индексируется, а это будет влиять на поиск :(
SJen 6 марта 2012 в 02:06 +2
а что вы хотите индексировать в Ленте активности?)
Там же одно и то же, контента около нуля. Я бы ее специально запретил к индексации. Но я просто спрятал "страницы", а их можно и не убирать. То есть они будут параллельно с аяксом - это на любителя, всего одну строчку в шаблоне раскомментировать.

Про поиск спорно.. Лента активности не содержит уникального контента, поэтому на поиск может влиять только отрицательно. Если только ускорять индексацию новых материалов с помощью попадания в ленту - ну так последние 15 событий в ленте и так доступны поисковикам.

В общем - индексации это не помеха, но я бы ее запретил
Def 6 марта 2012 в 02:15 0
а если только к комментам в блогах применить? возможно?)
SJen 6 марта 2012 в 02:23 +2
Это решение подготовлено конкретно для ленты. Но комменты на очереди)
Def 6 марта 2012 в 02:29 0
а, т.е и в профиле юзера в ленте активности его друзей?)

пс. отправил в аську)
SJen 6 марта 2012 в 02:44 0
"Друзей" не делал так же - для меня это пока не так актуально
eoleg 6 марта 2012 в 02:19 +5
Во время посещения этого сайта выделяется слюна и желудок начинает проявлять активность! :=)
letsgo 6 марта 2012 в 04:11 0
Хорошая вещь! Плюс.
qwest 6 марта 2012 в 05:45 0
Что то у меня не срабатывает ничего и по страницам сайта не переходит, точнее не по всем.
Смотрю в ie 9 но по мне глючная java у вас какая то я бы с такого сайта сбежал.
Ваши пользователи не жаловались???
GarikKR 6 марта 2012 в 08:04 0
У меня все мгновенно открывает!!!Самый быстрый вкусный сайт!!
SJen 6 марта 2012 в 13:13 +1
Посмотрю, IE штука интересная - надо проверить.
Я обычно пользуюсь браузером, который поддерживает стандарты)
soxom 6 марта 2012 в 12:25 0
Отличная вещь! Просто отличнейшая!!! Огромный плюс
Крот 6 марта 2012 в 12:42 +1
расскажете потом как FullAjax на сайт прикручивали?
WALTERZ 8 марта 2012 в 05:12 0
+, тоже интересно
Anonim 6 марта 2012 в 13:14 0
Вы просто ГЕНИЙ! Давай дальше я буду генерировать вкусные идейки, а реализовывать!
За печенюку отдельный +1
А почему не печенюха?
Anonim 6 марта 2012 в 13:22 0
Жестокий мир, жестокие сердца! =(

Кстати, заплачу, Если сделаете "без пагинации" для блогов, форумов, юзверей и т.п.
Anonim 6 марта 2012 в 13:26 0
http://www.drupal.ru/node/59937
http://drupal.org/project/modules?filters=tid%3A89%20bs_project_sandbox%3A0&solrsort=sis_project_release_usage%20desc&text=infinite


Вот пример такой работы: http://gochicorgohome.com/shop/15975,242,49668

Вот здесь: http://www.drupal.ru/node/59937 - подробнейшее описание
SJen 6 марта 2012 в 13:46 +1
qwest:
Смотрю в ie 9 но по мне глючная java у вас какая то я бы с такого сайта сбежал. Ваши пользователи не жаловались???

Спасибо за наводку, проверю. Иногда забываю, что не все браузеры шагают в ногу со временем и поддерживают современные стандарты. Но процент посетителей с IE немаленький, исправим недочеты.

soxom:
Отличная вещь! Просто отличнейшая!!! Огромный плюс

Приятно слышать! Могу открыть маленький секрет - один из ваших проектов и послужил толчком к установке Инстанта на моем сайте)

Крот x64:
расскажете потом как FullAjax на сайт прикручивали?
Сделаю пост в блоге

Минона:
Вы просто ГЕНИЙ! Давай дальше я буду генерировать вкусные идейки, а реализовывать! За печенюку отдельный +1 А почему не печенюха?

Насчет названия - жена придумала, так получилось) Идейки всегда пожалуйста, ваш пост ускорил реализацию это "Ленты" - сам давно хотел, но тут наконец созрел и сделал)

Минона:
Жестокий мир

На эту разработку в честь 8го Марта всем девушкам обещаю скидку 100% :)
За ссылочки спасибо, но в них нет надобности. Вы же видите, что я это уже реализовал на Инстанте - так зачем мне инструкция для Друпал?))

Вроде на все ответил
soxom 6 марта 2012 в 15:13 0
Насчет названия - жена придумала, так получилось)
Как один из ваших конкурентов который имеет несколько проектов по данной тематике и наблюдает за вашим сайтом уже второй год, хотел узнать как вам удалось переехать с вордпресса на Инстант? Вернее кто этим занимался... )))
SJen 6 марта 2012 в 15:19 +2
Все технические вопросы на мне - разработка, "переезды" и тд.

Как удалось.. Для этого нужно было написать лишь один компонент, который бы и отображал старый контент. С позиции разработчика - ничего сверх сложного)
Anonim 6 марта 2012 в 16:57 0
Мы переезжали просто переносом данных.
SJen 6 марта 2012 в 17:19 +1
Я не стал ничего переносить, данные хранятся там же, где и хранились - ИнстантСМС написана так удобно, что нет никакой завсимости от названия таблиц и их формата. Но пользователей с паролями и комментариями я, конечно, перенес - не регаться же им второй раз)
Black-Raven90 6 марта 2012 в 17:24 0
Т.к. на вордпрессе в основном статьи, достаточно переопубликовать их на инстанте и сделать редирект со старых адресов статей на новые. С помощью файла custom_rewrite.php
А вот с комментариями сложней - мне пришлось ими пожертвовать.
SJen 6 марта 2012 в 17:33 +1
Комментарии переносятся одним запросом. Жертвовать не в нашем стиле)
Редирект кстати тоже не в нашем - никакого редиректа. Все адреса должны остаться неизменными.

У меня более 1000 посетителей и огромная куча комментариев, пожертвовать ими - значит как минимум убить свои позиции в поисковиках(из-за потери уникального набитого ключами контента в виде комментов) и потерять лояльность аудитории.
SJen 6 марта 2012 в 17:42 0
Кстати, добавлю - в wordpress более удобная система с рубриками - одна статья может находиться в неограниченном количестве рубрик. Так что это мы тоже оставили и все статьи как и раньше публикуются через админку wordpress.
Lana 6 марта 2012 в 18:08 0
А не скажите - я вот мучаюсь с редактором статей - на фотографии рецепта (фото внутри статьи) нужно вотремак накладывать и ресайз фото делать.
Приходится 2 редактора использовать Имперави (для ресайза и вотермарка фото) и FCK (редактировать текст) попеременно - не очень удобно. (Еще бы по клику фото увеличивалось, но это уже предел мечтаний).

У вас наверно редактор статей (рецептов, чтобы пользователи добавляли) самописный?
Или все-таки какой-то стандартный?
Буду благодарна за ответ.
Lana 6 марта 2012 в 18:22 0
Да лента на Explorer9 не прокручивается.
И еще регистрация на сайте с Explorer9 не прошла у меня (возможно мой глюк какой-то).
SJen 6 марта 2012 в 18:27 0
На эксплорере вообще как-то плохо все. Я сегодня отрубил открытие страниц на аяксе если браузер = Интернет Эксплорер. А вот про регистрацию даже не знаю - она стандартная инстантовская, никакого аякса и моих доработок.

Фаерфокс и хром все-таки не идут ни в какое сравнение с детищем майкрософта:)
Hunter (Роман) 6 марта 2012 в 17:44 +1
Установил ленту все отлично - работает спасибо
Lana 6 марта 2012 в 18:01 +1
Ух ты Печенюка и на Инстанте! Крутой сайт, есть на что равняться )

SJen:
На эту разработку в честь 8го Марта всем девушкам обещаю скидку 100% :)
Еще и подарок к 8 марта, вот спасибо!
Lana 6 марта 2012 в 18:38 +3
Подарок получила! :)))))

SJen - спасибо Вам большое ! ))))
Raven 16 марта 2012 в 05:55 +2
Ну вот так всегда... на 8 марта - подарки, а на 23 февраля - нифига... crazy =D