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

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


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

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


Демо:
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст




1. Клубы
закинуть файл php в папку \components\clubs\ajax
закинуть файлы .tpl в папку с шаблонами
2. Блоги
закинуть файлы php в папку \components\blogs\ajax
обновить файл frontend.php (одна новая строчка добавилась), комментарий в строке "//sjen добавил для аякса", можно заменить только ее если у вас файл отличается от стандартного.
закинуть файлы .tpl в папку с шаблонами
3. Пользователи
закинуть файлы php в папку \components\users\ajax
закинуть файлы .tpl в папку с шаблонами
4. Стена
закинуть файлы php в папку \components\users\ajax
закинуть файлы .tpl в папку с шаблонами
5. Лента
закинуть файлы php в папку \components\actions
закинуть файлы .tpl в папку с шаблонами

Перед обновлением файлов нужно сделать копии всего, что меняется. Для того, чтобы вернуть все обратно при необходимости.
Все это проверено на версии 1.9 и предлагается "как есть".
+5
sotastroy sotastroy 12 лет назад #
Спасибо за внедрение аякса!
+3
WALTERZ WALTERZ 12 лет назад #
Ухты-ухты, большое спасибо!
Теперь могу изучить код и сам что-нибудь сделать с сие чудом :)
+3
Black-Raven90 Black-Raven90 12 лет назад #
Багов больше нет? ;)
+4
SJen SJen 12 лет назад #
"Язык" в блогах, клубах и блогах исправлен, подгрузка блогов с ссылкой "редактировать" тоже. Пользователей можно в демке проверить.
+4
Black-Raven90 Black-Raven90 12 лет назад #
Спасибо! Установилось отлично)
+4
prosis prosis 12 лет назад #
большое спасибо! удачи вам во всем!
+3
Алхимик Алхимик 12 лет назад #
А если у меня изменены .tpl я же не могу заменить эти файлы.. ((
+8
SJen SJen 12 лет назад #
Если tpl изменены, тогда нужно добавить в ваш файл вручную строки, показываю на примере ленты активности.
Добавить вначало шаблона код javascript (пример из ленты)
Спойлер
Найти в моем файле код для кнопки и добавить его в свой шаблон
Спойлер
Добавится еще проблема, шаблон для аяксовой подгрузки может сильно отличаться от вашего. Но тут уж ничем не могу помочь - можете сами попробовать поколдовать.

Для других пунктов (блоги, клубы, юзера) схема такая же:
1. добавить вначало код javascript
2. добавить в нужное место код для кнопки.
+3
Алхимик Алхимик 12 лет назад #
спасибо за разработку, попробую установить!
0
Максим Шкутин Максим Шкутин 12 лет назад #
У меня на стене кнопка лайк стоит только на 10 записях, а дальше прапала, че делать?
Вот пример: http://fun-net.ru/users/klas
+2
SJen SJen 12 лет назад #
там стоит автоподгрузка
записи подгружаются автоматически - когда все загрузятся - кнопка исчезает
+2
SJen SJen 12 лет назад #
ааа, лайк.. ясно
ну надо смотреть скрипты, видимо надо вызывать скрипт для этой кнопки после загрузки по аяксу новых событий
+2
WALTERZ WALTERZ 12 лет назад #
Такая же проблема со стилями...первые записи с моими стилями, остальное без стилей грузит.
+2
WALTERZ WALTERZ 12 лет назад #
Ох, понял как это работает :)
Максим Шкутин , Вам нужно в файле com_users_view_ajax.tpl вставить код лайков.
Т.е. сначала подгружается цикл с com_users_view.tpl, затем уже аналогичный com_users_view_ajax.tpl
+1
Роман Роман 12 лет назад #
Отлично! Продолжайте радовать нас новыми изобретениями в том же духе :))
0
Максим Шкутин Максим Шкутин 12 лет назад #
"лайк" это плагин
+2
Алхимик Алхимик 12 лет назад #
а где найти плагин Лайк?
+1
Максим Шкутин Максим Шкутин 12 лет назад #
покупать надо
+2
Максим Шкутин Максим Шкутин 12 лет назад #
Тут можно купить extcms.tk
+2
Алхимик Алхимик 12 лет назад #
спасибо))
+2
Алексей Алексей 12 лет назад #
спасибо)
+2
WALTERZ WALTERZ 12 лет назад #
У меня у одного некорректно работает?
Повторяются.
Это с заменой файлов, не изменяя их.
+2
WALTERZ WALTERZ 12 лет назад #
+2
SJen SJen 12 лет назад #
автоподгрузка при прокрутке страницы вниз?
или по кнопке "показать еще"?
+2
WALTERZ WALTERZ 12 лет назад #
У меня так с автоподгрузкой.
При помощи кнопки работает нормально.
+2
SJen SJen 12 лет назад #
значит несколько раз срабатывает загрузка одной и той же страницы.
Можно попробовать добавить строку с удалением счетчика (в файл com_users_view.tpl):
После строки
var nextpage = $('#nextpageusers').html();
добавить
$('#nextpageusers').remove();

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

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

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

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

Понял, что вы хотите - возможность, конечно, есть. Возможности вообще безграничны.. было бы желание
+1
Санечек Санечек 12 лет назад #
у кого есть желание? мне кажется нужная вещь.
+1
letsgo letsgo 12 лет назад #
Главное чтобы у Sjen было желание сделать)
+1
GarikKR GarikKR 12 лет назад #
Вот бы для видео такое-же((
0
Lukasss Lukasss 12 лет назад #
Модуль лента активности - при отключенном в настройках показывает сообщения с форума!
Как быть?
0
SJen SJen 12 лет назад #
настройки берутся с компонента "Лента активности"
Вариант решения - переписать файл для обновления load.php
точнее сделать для модуля свой файл
0
Lukasss Lukasss 12 лет назад #
Не совсем понимаю о чем речь....
Подсобите, пожалуйста, в этом не легком для меня вопросе!
0
SJen SJen 12 лет назад #
да тут сложно подсказать, тем более если вопрос "нелегкий".
Надо переписать файл load.php - на пальцах тут не объяснить.. просто переделать обновление контента для модуля. Могу предложить поменять настройка в компоненте Лента Событий - может поможет.
0
Lukasss Lukasss 12 лет назад #
Настройки менял, не помогло... ((
0
SJen SJen 12 лет назад #
ясно, ну значит так просто не получится это исправить
нужно брать файл и переписывать, сейчас к сожалению не могу заняться этим
помечу на будущее..
0
GarikKR GarikKR 12 лет назад #
Сегодня пользователи заметили и указали на такую штуку в блогах, если входиш в блог-все записи-рубрика блога: а в рубрике нажимаешь показать еще, то показывает не продолжение рубрики а все скопом. Может кто знает как это поправить?
0
CROSS ツ CROSS ツ 12 лет назад #
Как сделать подгрузку по аяксу для компонента каталог статей!?
Закинуть скрипт самого аякса в components\content\ajax?
Нужно добавить переменную в components\content\frontend.php?
создать шаблон подгрузки по аяксу?
добавить скрипт с переменной из frontend.php
и добавить кнопку! Так?

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

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

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

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

Еще от автора

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