|
Правила •
Регистрация •
Справка Сообщения за день • Поиск |
|
|
|
Опции темы | Опции просмотра |
): ǝҺɐни dиw ɐн иd⊥оwɔ
![]() |
Кирюха, какой ты все таки нудный, дал бы ссылку, нет, издеваться будет неделю
![]() Напильник для RUNCMS Строим помаленьку Для гурманов Мебель для дома |
||||
|
|
Участник
|
наглядный пример в модуле news в файле index.php
Пробовал сделать для модуля photo (чтобы на главной модуля вывоилось не только последние n фоток, а то бывает и по 100-200 фоток в разные категории лью, а пользователь только последние 20 видит) и пока не получилось. Может в photo и не получится? Последний раз редактировалось disshaman, 12-25-2008 в 12:01 |
||||
|
|
Участник
|
Выложил index.php Сам модуль лежит тут (на всякий случай)
Первую переменную в pagenav понял как сделать, собственно из кода и выдернул, а далее хз. Знаний не хватает. |
||||
|
|
[исход]
![]() |
Усама не написал главного – как получать из базы данных нужные записи.
Приведу пример на основе модуля новостей (RUNCMS 1.6.1): Смотрим файл /modules/news/index.php Этот файл обрабатывает две GET или POST переменные: $start – это номер строки (записи) в таблице, с которой начинается выборка данных. и $storynum - максимальное количество возвращаемых строк из таблицы. Другими словами, сколько новостей выводим на страницу. соответственно строка 15: PHP код:
PHP код:
В других модулях подобные переменные, как правило, имеют другие имена. ------------------ Еще раз – допустим у нас имеются 4 страницы новостей и мы выводим на каждую страницу по 10 новостей, то тогда значения $start и $storynum для каждой страницы будут следующими: 1 страница - $start =0; $storynum=10 (выводим первые 10 строк) 2 страница - $start =10; $storynum=10 (выводим 10 строк, начиная с 10 строки) 3 страница - $start =20; $storynum=10 (выводим 10 строк, начиная с 20 строки) 4 страница - $start =30; $storynum=10 (выводим 10 строк, начиная с 30 строки) Так как мы говорим про модуль новостей то количество новостей на страницу можно устанавливать динамически (через тулбар выбора разделов), в других же модулях аналог $storynum может быть фиксированной величиной, поэтому она не обязательно будет передаваться в GET или POST запросе. Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
[исход]
![]() |
Теперь на основе $start и $storynum мы должны получать из базы нужные записи.
Смотрим /modules/news/index.php строку 70 PHP код:
Первый параметр у нас $storynum – сколько новостей выводим, второй $start – с какой строки делаем выборку, третий id раздела. В других модулях для получения данных из базы, используются совершенно другие классы или же прямые SQL запросы. Например, в модуле статей – sections, вместо $start используется переменная $show, а вместо $storynum – переменная $limit А выборка из базы данных проводится так: PHP код:
PHP код:
$limit – количество строк (в данном случае статей) $show – сколько статей показываем на страницу) Ну и т.д. в каждом модуле (где есть разбивка на страницы) по разному Последний раз редактировалось LARK, 12-30-2008 в 00:44 Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
[исход]
![]() |
Идем дальше
Обязательно подключаем класс XoopsPageNav. В нашем случае (модуль новостей, файл /modules/news/index.php) это 43 строка PHP код:
в модуле новостей не совсем правильно это сделано поэтому я приведу свой вариант более верный: PHP код:
Первый аргумент - $storycount – сколько всего записей в таблице (т.е. сколько всего новостей) $storycount в модуле новостей мы получаем с помощью метода countByTopic (71 строка) PHP код:
Второй $storynum и третий $start аргументы уже упоминались Четвертый аргумент XoopsPageNav() представляет собой имя параметра в URL строке содержащего значение номера строки в таблице, с которой начинается выборка данных, т.е. в нашем случае это start (в других модулях соответственно и имя другое). Пятый аргумент содержит дополнительные параметры URL строки (если это необходимо) т.е. это все, что идет после _http://www.xxx.ru/modules/news/index.php? Шестой аргумент введен недавно и устанавливает, нужно ли делать ЧПУ (человеко-понятные-урлы) или нет. После всего этого, ссылка на другую страницу будет выглядеть примерно так: _http://www.xxx.ru/modules/news/index.php?storytopic=0&storynum=10&start=10 В других модулях это будет по другому: Теперь осталось вывести панель навигации, в модуле новостей это 159 строка PHP код:
Последний раз редактировалось LARK, 12-30-2008 в 16:27 Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
|
|
|
![]() |
Powered by: vBulletin Version 3.0 Copyright ©2000-2025, Jelsoft Enterprises Ltd. |
Все разделы прочитаны - Руководство форума - Архив - Вверх |