Мой подарок сообществу ко Всемирному дню авторского права

1467
Приветствую!
Сегодня в мире отмечается Всемирный день книг и авторского права (подробности тут). В связи с чем хочу поделиться одной из своих разработок по внедрению аякса на сайты InstantCMS.


Выкладываю в общий доступ свою разработку для замены стандартной пагинации на аякс подгрузку контента. Она состоит из пяти абсолютно независимых частей.
1. список клубов (/clubs) скачать
2. список записей блогов (общего списка и конкретного блога) (/blogs и /blogs/user) скачать
3. список пользователей (при любой сортировке) (/users) скачать
4. стена клуба и стена пользователя (users/sjen и clubs/15 ) скачать
5. "Лента активности" - модуль и компонент (/actions) скачать

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


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



Инструкция
Все это проверено на версии 1.9 и предлагается "как есть".
"Система переписки", что дальше? | Кэширование, теория и практика (часть 1)
Теги: аякс
Комментарии (56)
sotastroy 23 апреля 2012 в 16:55 +5
Спасибо за внедрение аякса!
WALTERZ 23 апреля 2012 в 17:04 +3
Ухты-ухты, большое спасибо!
Теперь могу изучить код и сам что-нибудь сделать с сие чудом :)
Black-Raven90 23 апреля 2012 в 17:07 +3
Багов больше нет? ;)
SJen 23 апреля 2012 в 17:19 +4
"Язык" в блогах, клубах и блогах исправлен, подгрузка блогов с ссылкой "редактировать" тоже. Пользователей можно в демке проверить.
Black-Raven90 23 апреля 2012 в 17:52 +4
Спасибо! Установилось отлично)
prosis 23 апреля 2012 в 17:34 +4
большое спасибо! удачи вам во всем!
Алхимик 23 апреля 2012 в 18:02 +3
А если у меня изменены .tpl я же не могу заменить эти файлы.. ((
SJen 23 апреля 2012 в 18:14 +8
Если tpl изменены, тогда нужно добавить в ваш файл вручную строки, показываю на примере ленты активности.
Добавить вначало шаблона код javascript (пример из ленты)
Спойлер
Найти в моем файле код для кнопки и добавить его в свой шаблон
Спойлер
Добавится еще проблема, шаблон для аяксовой подгрузки может сильно отличаться от вашего. Но тут уж ничем не могу помочь - можете сами попробовать поколдовать.

Для других пунктов (блоги, клубы, юзера) схема такая же:
1. добавить вначало код javascript
2. добавить в нужное место код для кнопки.
Алхимик 24 апреля 2012 в 11:15 +3
спасибо за разработку, попробую установить!
Максим Шкутин 23 апреля 2012 в 21:17 0
У меня на стене кнопка лайк стоит только на 10 записях, а дальше прапала, че делать?
Вот пример: http://fun-net.ru/users/klas
SJen 23 апреля 2012 в 21:32 +2
там стоит автоподгрузка
записи подгружаются автоматически - когда все загрузятся - кнопка исчезает
SJen 23 апреля 2012 в 21:37 +2
ааа, лайк.. ясно
ну надо смотреть скрипты, видимо надо вызывать скрипт для этой кнопки после загрузки по аяксу новых событий
WALTERZ 24 апреля 2012 в 03:11 +2
Такая же проблема со стилями...первые записи с моими стилями, остальное без стилей грузит.
WALTERZ 24 апреля 2012 в 04:13 +2
Ох, понял как это работает :)
Максим Шкутин , Вам нужно в файле com_users_view_ajax.tpl вставить код лайков.
Т.е. сначала подгружается цикл с com_users_view.tpl, затем уже аналогичный com_users_view_ajax.tpl
Роман 24 апреля 2012 в 04:01 +1
Отлично! Продолжайте радовать нас новыми изобретениями в том же духе :))
Максим Шкутин 24 апреля 2012 в 09:36 0
"лайк" это плагин
Алхимик 24 апреля 2012 в 09:41 +2
а где найти плагин Лайк?
Максим Шкутин 24 апреля 2012 в 09:43 +1
покупать надо
Максим Шкутин 24 апреля 2012 в 09:44 +2
Тут можно купить extcms.tk
Алхимик 24 апреля 2012 в 11:13 +2
спасибо))
Алексей 24 апреля 2012 в 16:08 +2
спасибо)
WALTERZ 24 апреля 2012 в 18:18 +2
У меня у одного некорректно работает?
Повторяются.
Это с заменой файлов, не изменяя их.
WALTERZ 24 апреля 2012 в 18:18 +2
SJen 24 апреля 2012 в 18:22 +2
автоподгрузка при прокрутке страницы вниз?
или по кнопке "показать еще"?
WALTERZ 24 апреля 2012 в 18:28 +2
У меня так с автоподгрузкой.
При помощи кнопки работает нормально.
SJen 24 апреля 2012 в 18:36 +2
значит несколько раз срабатывает загрузка одной и той же страницы.
Можно попробовать добавить строку с удалением счетчика (в файл com_users_view.tpl):
После строки
var nextpage = $('#nextpageusers').html();
добавить
$('#nextpageusers').remove();

Это исключит повторную загрузку
Алхимик 5 мая 2012 в 19:41 0
не помогло, в автоподгрузке клубов и в списке блогов записи повторяются. ((
в файле com_users_view.tpl я не нашёл эту строку, где добавить $('#nextpageusers').remove(); ..
SJen 5 мая 2012 в 21:10 0
в клубах и блогах строка выглядит чуть по-другому (другое название переменной)
"var nextpage = " - но это должно быть так же.

и добавить нужно соответственно (в зависимости от того, какая там переменная)
$('#nextpageusers').remove(); //для юзеров
$('#nextpageblogs').remove(); //для блогов
$('#nextpageclubs').remove(); //для клубов
Алхимик 5 мая 2012 в 21:59 0
это мне понятно, но внесение изменения в com_blog_view.tpl не помогает, записи блогов всё равно повторяются..
в остальном, помогло)) спасибо
SJen 24 апреля 2012 в 18:40 +2
в основном те кто это ставит - делают загрузку по кнопке)
Поэтому могли такого бага и не заметить
Def 24 апреля 2012 в 21:22 +2
а как всеже убрать в конце списка юзеров "Страницы: 1 2 3 4 Следующая Последняя"?)
SJen 24 апреля 2012 в 22:03 +2
удалить из шаблона вывод переменной {$pagebar}

у меня такая строка почти в самом низу шаблона com_users_view.tpl
if (isset($pagebar) && ($orderby!='karma'||$orderto!='asc'))} {$pagebar}{/if}

просто удалить ее, либо закомментить и страниц не будет
WALTERZ 24 апреля 2012 в 22:05 +2
Вообще это
Код PHP:
{if (isset($pagebar) && ($orderby!='karma'||$orderto!='asc'))} {$pagebar}	{/if}
Но лучше оставить, вдруг человеку надо в середину списка залезть, не будет же он 150 раз тыкать на эту "Показать ещё" :)
SJen 24 апреля 2012 в 22:11 +3
я оставил примерно из этих же соображений, ну и плюс для индексации профилей (для меня самого это не имеет смысла - профили закрыты для гостей, но может кому пригодится)
Санечек 25 апреля 2012 в 14:52 +1
спасибо, а подскажите, есть ли такая возможность чтобы лента активности подгружалась сама? (как новости в контакте)
SJen 25 апреля 2012 в 17:15 +1
так она и подгружается сама
посмотрите ссылку "Модуль активности компонент (вариант с автоподгрузкой )" - в топике.
Санечек 25 апреля 2012 в 17:40 +1
она подгружает прошлые события, вспомните как новости вк работают, они там обновляются сами, если новая появилась...
SJen 25 апреля 2012 в 17:48 +1
мне то самому нечего вспоминать
я, если честно, не фанат социальной сети вконтакте)

Понял, что вы хотите - возможность, конечно, есть. Возможности вообще безграничны.. было бы желание
Санечек 25 апреля 2012 в 18:03 +1
у кого есть желание? мне кажется нужная вещь.
letsgo 25 апреля 2012 в 18:21 +1
Главное чтобы у Sjen было желание сделать)
GarikKR 27 апреля 2012 в 11:21 +1
Вот бы для видео такое-же((
Lukasss 4 мая 2012 в 13:00 0
Модуль лента активности - при отключенном в настройках показывает сообщения с форума!
Как быть?
SJen 4 мая 2012 в 13:05 0
настройки берутся с компонента "Лента активности"
Вариант решения - переписать файл для обновления load.php
точнее сделать для модуля свой файл
Lukasss 4 мая 2012 в 16:48 0
Не совсем понимаю о чем речь....
Подсобите, пожалуйста, в этом не легком для меня вопросе!
SJen 4 мая 2012 в 17:15 0
да тут сложно подсказать, тем более если вопрос "нелегкий".
Надо переписать файл load.php - на пальцах тут не объяснить.. просто переделать обновление контента для модуля. Могу предложить поменять настройка в компоненте Лента Событий - может поможет.
Lukasss 4 мая 2012 в 17:35 0
Настройки менял, не помогло... ((
SJen 4 мая 2012 в 17:42 0
ясно, ну значит так просто не получится это исправить
нужно брать файл и переписывать, сейчас к сожалению не могу заняться этим
помечу на будущее..
GarikKR 9 мая 2012 в 21:48 0
Сегодня пользователи заметили и указали на такую штуку в блогах, если входиш в блог-все записи-рубрика блога: а в рубрике нажимаешь показать еще, то показывает не продолжение рубрики а все скопом. Может кто знает как это поправить?
CROSS ツ 27 мая 2012 в 14:32 0
Как сделать подгрузку по аяксу для компонента каталог статей!?
Закинуть скрипт самого аякса в components\content\ajax?
Нужно добавить переменную в components\content\frontend.php?
создать шаблон подгрузки по аяксу?
добавить скрипт с переменной из frontend.php
и добавить кнопку! Так?

Вопросы! Переменную любую добавлять? И сколько их должно быть!?
Есть готовые решения?!
SJen 27 мая 2012 в 14:49 0
Garik:
Сегодня пользователи заметили и указали на такую штуку в блогах, если входиш в блог-все записи-рубрика блога: а в рубрике нажимаешь показать еще, то показывает не продолжение рубрики а все скопом. Может кто знает как это поправить?
Похоже, что вариант с рубрикой я просто не прописал.. надо править шаблон и скрипты.

CROSS:
Как сделать подгрузку по аяксу для компонента каталог статей!?
схему напишу -
1. добавить скрипт в шаблон для вызова аякс подгрузки
2. написать скрипт который будет догружать контент и шаблон к нему

в общем, все по аналогии с тем, что у меня написано
Вопросы! Переменную любую добавлять? И сколько их должно быть!? Есть готовые решения?!
надо просто взяться и делать, и не важно сколько и каких переменных - сколько нужно будет, столько и добавить. Готовых решений нет
Alex9 4 августа 2012 в 09:55 0
SJen, спасибо вам большое! Единственное что - почему-то кнопка Показать ещё в Ленте не работает в ie, просто останавливается на подгрузке. Хотя с Вашим сайтом в том же ie все в порядке..
SJen 13 октября 2012 в 06:51 0
надо фаербаг смотреть при загрузке.. так и не скажешь
Bubble Gumoff 12 октября 2012 в 22:41 0
url формируется через #ajax http://www.pechenuka.ru/users#ajax/news/category/pervye-blyuda/ хм..
SJen 13 октября 2012 в 05:49 0
И что вы хотите этим сказать?

это для вас он формируется через аякс, но это не мешает ему формироваться стандартным образом для поисковых систем. У меня там много чего работает "через аякс" - без этого сейчас никак.
Def 5 ноября 2012 в 17:41 +1
Да, для 1.10 было бы мегаполезно)
VopisUVD 11 декабря 2012 в 22:39 +1
согласен