Приветствую!
Сегодня в мире отмечается Всемирный день книг и авторского права (подробности тут). В связи с чем хочу поделиться одной из своих разработок по внедрению аякса на сайты 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 и предлагается "как есть".
Сегодня в мире отмечается Всемирный день книг и авторского права (подробности тут). В связи с чем хочу поделиться одной из своих разработок по внедрению аякса на сайты 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 в папку с шаблонами
Перед обновлением файлов нужно сделать копии всего, что меняется. Для того, чтобы вернуть все обратно при необходимости.
Реклама #
sotastroy 12 лет назад #
WALTERZ 12 лет назад #
Теперь могу изучить код и сам что-нибудь сделать с сие чудом :)
Black-Raven90 12 лет назад #
SJen 12 лет назад #
Black-Raven90 12 лет назад #
prosis 12 лет назад #
Алхимик 12 лет назад #
SJen 12 лет назад #
Добавить вначало шаблона код javascript (пример из ленты)
Для других пунктов (блоги, клубы, юзера) схема такая же:
1. добавить вначало код javascript
2. добавить в нужное место код для кнопки.
Алхимик 12 лет назад #
Максим Шкутин 12 лет назад #
Вот пример: http://fun-net.ru/users/klas
SJen 12 лет назад #
записи подгружаются автоматически - когда все загрузятся - кнопка исчезает
SJen 12 лет назад #
ну надо смотреть скрипты, видимо надо вызывать скрипт для этой кнопки после загрузки по аяксу новых событий
WALTERZ 12 лет назад #
WALTERZ 12 лет назад #
Максим Шкутин , Вам нужно в файле com_users_view_ajax.tpl вставить код лайков.
Т.е. сначала подгружается цикл с com_users_view.tpl, затем уже аналогичный com_users_view_ajax.tpl
Роман 12 лет назад #
Максим Шкутин 12 лет назад #
Алхимик 12 лет назад #
Максим Шкутин 12 лет назад #
Максим Шкутин 12 лет назад #
Алхимик 12 лет назад #
Алексей 12 лет назад #
WALTERZ 12 лет назад #
Повторяются.
Это с заменой файлов, не изменяя их.
WALTERZ 12 лет назад #
SJen 12 лет назад #
или по кнопке "показать еще"?
WALTERZ 12 лет назад #
При помощи кнопки работает нормально.
SJen 12 лет назад #
Можно попробовать добавить строку с удалением счетчика (в файл com_users_view.tpl):
После строки
var nextpage = $('#nextpageusers').html();
добавить
$('#nextpageusers').remove();
Это исключит повторную загрузку
Алхимик 12 лет назад #
в файле com_users_view.tpl я не нашёл эту строку, где добавить $('#nextpageusers').remove(); ..
SJen 12 лет назад #
"var nextpage = " - но это должно быть так же.
и добавить нужно соответственно (в зависимости от того, какая там переменная)
$('#nextpageusers').remove(); //для юзеров
$('#nextpageblogs').remove(); //для блогов
$('#nextpageclubs').remove(); //для клубов
Алхимик 12 лет назад #
в остальном, помогло)) спасибо
SJen 12 лет назад #
Поэтому могли такого бага и не заметить
Def 12 лет назад #
SJen 12 лет назад #
у меня такая строка почти в самом низу шаблона com_users_view.tpl
if (isset($pagebar) && ($orderby!='karma'||$orderto!='asc'))} {$pagebar}{/if}
просто удалить ее, либо закомментить и страниц не будет
WALTERZ 12 лет назад #
SJen 12 лет назад #
Санечек 12 лет назад #
SJen 12 лет назад #
посмотрите ссылку "Модуль активности компонент (вариант с автоподгрузкой )" - в топике.
Санечек 12 лет назад #
SJen 12 лет назад #
я, если честно, не фанат социальной сети вконтакте)
Понял, что вы хотите - возможность, конечно, есть. Возможности вообще безграничны.. было бы желание
Санечек 12 лет назад #
letsgo 12 лет назад #
GarikKR 12 лет назад #
Lukasss 12 лет назад #
Как быть?
SJen 12 лет назад #
Вариант решения - переписать файл для обновления load.php
точнее сделать для модуля свой файл
Lukasss 12 лет назад #
Подсобите, пожалуйста, в этом не легком для меня вопросе!
SJen 12 лет назад #
Надо переписать файл load.php - на пальцах тут не объяснить.. просто переделать обновление контента для модуля. Могу предложить поменять настройка в компоненте Лента Событий - может поможет.
Lukasss 12 лет назад #
SJen 12 лет назад #
нужно брать файл и переписывать, сейчас к сожалению не могу заняться этим
помечу на будущее..
GarikKR 12 лет назад #
CROSS ツ 12 лет назад #
Закинуть скрипт самого аякса в components\content\ajax?
Нужно добавить переменную в components\content\frontend.php?
создать шаблон подгрузки по аяксу?
добавить скрипт с переменной из frontend.php
и добавить кнопку! Так?
Вопросы! Переменную любую добавлять? И сколько их должно быть!?
Есть готовые решения?!
SJen 12 лет назад #
1. добавить скрипт в шаблон для вызова аякс подгрузки
2. написать скрипт который будет догружать контент и шаблон к нему
в общем, все по аналогии с тем, что у меня написано
Alex9 12 лет назад #
SJen 12 лет назад #
Bubble Gumoff 12 лет назад #
SJen 12 лет назад #
это для вас он формируется через аякс, но это не мешает ему формироваться стандартным образом для поисковых систем. У меня там много чего работает "через аякс" - без этого сейчас никак.
Def 12 лет назад #
VopisUVD 12 лет назад #