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