Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Портал > Модули и блоки

Ответ
 
Опции темы Опции просмотра
vigerLab вне форума vigerLab
Младший участник

Аватар для vigerLab

| Цитировать Старый #11 12-24-2008, 19:12

хм, если я правильно понял:

1) ввожу в код страницы код
PHP код:
include_once(XOOPS_ROOT_PATH.'/class/xoopspagenav.php'); 
2) ввожу далее
PHP код:
$pagenav    = new XoopsPageNav($peremennay_obshego_kol$per_skolko_na stranicy_vivesty$start""""); 
3) потом внизу файла прописываю
PHP код:
echo '<div align="center">'.$pagenav->renderNav(53).'</div>'
Всё правильно, или я туплю?

и ещё, не понял фразы
Цитата:
$start и $per_skolko_na stranicy_vivesty должны передаваться вашему запросу SQL "LIMIT ".$start.",".$per_skolko_na stranicy_vivesty.""
Ты уж извини, совсем не силён =(


www.vigerLab.ru - Всё обо Всём!
Посетить домашнюю страницу vigerLab
  Сообщения: 26 c 03.07.2008 | Репутация: 1
Usama вне форума Usama
Старший участник

Аватар для Usama

| Цитировать Старый #12 12-25-2008, 04:48

Ты в какой модуль запихивать собрался? Данные из базы берутся там есть запросы SQL в эти запросы и надо внедрять переменные.


Творческая работа - это прекрасный, необычайно тяжелый и изумительно радостный труд.
Николай Островский
Посетить домашнюю страницу Usama
  Сообщения: 1,404 c 10.12.2003 | Репутация: 82
pan вне форума pan
): ǝҺɐни dиw ɐн иd⊥оwɔ

Аватар для pan

| Цитировать Старый #13 12-25-2008, 04:58

Кирюха, какой ты все таки нудный, дал бы ссылку, нет, издеваться будет неделю


Напильник для RUNCMS
Строим помаленьку
Для гурманов
Мебель для дома
Посетить домашнюю страницу pan
  Сообщения: 4,777 c 15.03.2004 | Репутация: 121
disshaman вне форума disshaman
Участник


| Цитировать Старый #14 12-25-2008, 11:51

наглядный пример в модуле news в файле index.php
Пробовал сделать для модуля photo (чтобы на главной модуля вывоилось не только последние n фоток, а то бывает и по 100-200 фоток в разные категории лью, а пользователь только последние 20 видит) и пока не получилось. Может в photo и не получится?

Последний раз редактировалось disshaman, 12-25-2008 в 12:01

  Сообщения: 159 c 12.05.2007 | Репутация: 5
Usama вне форума Usama
Старший участник

Аватар для Usama

| Цитировать Старый #15 12-25-2008, 14:02

Файл выложи из photo


Творческая работа - это прекрасный, необычайно тяжелый и изумительно радостный труд.
Николай Островский
Посетить домашнюю страницу Usama
  Сообщения: 1,404 c 10.12.2003 | Репутация: 82
disshaman вне форума disshaman
Участник


| Цитировать Старый #16 12-25-2008, 20:52

Цитата:
Сообщение от Usama Посмотреть сообщение
Файл выложи из photo
Выложил index.php Сам модуль лежит тут (на всякий случай)
Первую переменную в pagenav понял как сделать, собственно из кода и выдернул, а далее хз. Знаний не хватает.
Вложения
Тип файла: zip index.zip (2.6 Кбайт, 4 просмотров)

  Сообщения: 159 c 12.05.2007 | Репутация: 5
vigerLab вне форума vigerLab
Младший участник

Аватар для vigerLab

| Цитировать Старый #17 12-29-2008, 21:49

Ребят, если честно ни фига не понял =( , может есть где полное описание, или сами расскажите? а то весч ну очень нужная, думаю не только мне...


www.vigerLab.ru - Всё обо Всём!
Посетить домашнюю страницу vigerLab
  Сообщения: 26 c 03.07.2008 | Репутация: 1
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #18 12-30-2008, 00:31

Усама не написал главного – как получать из базы данных нужные записи.

Приведу пример на основе модуля новостей (RUNCMS 1.6.1):

Смотрим файл /modules/news/index.php

Этот файл обрабатывает две GET или POST переменные:

$start – это номер строки (записи) в таблице, с которой начинается выборка данных.

и

$storynum - максимальное количество возвращаемых строк из таблицы. Другими словами, сколько новостей выводим на страницу.

соответственно строка 15:

PHP код:
$start = (int)$_REQUEST['start']; 
и строка 46:

PHP код:
$storynum intval$_REQUEST['storynum'] ? $_REQUEST['storynum'] : $newsConfig['storyhome'] ); 
т.е. если переменной $_REQUEST['storynum'] нет, то $storynum равняется значению $newsConfig['storyhome'] которое устанавливаем в админке новостей – это количество выводимых новостей на страницу.

В других модулях подобные переменные, как правило, имеют другие имена.

------------------

Еще раз – допустим у нас имеются 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 и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #19 12-30-2008, 00:34

Теперь на основе $start и $storynum мы должны получать из базы нужные записи.

Смотрим /modules/news/index.php строку 70

PHP код:
$sarray  NewsStory::getAllPublished($storynum$start$topic_id); 
В данном случае с помощью метода getAllPublished класса NewsStory мы получаем массив объектов с данными о конкретных новостях.

Первый параметр у нас $storynum – сколько новостей выводим, второй $start – с какой строки делаем выборку, третий id раздела.

В других модулях для получения данных из базы, используются совершенно другие классы или же прямые SQL запросы.

Например, в модуле статей – sections, вместо $start используется переменная $show, а вместо $storynum – переменная $limit

А выборка из базы данных проводится так:

PHP код:
$result $db->query("SELECT artid, title, byline, author, content, counter, date FROM ".$db->prefix(_MI_NSECCONT_TABLE)." WHERE secid=$secid"$limit$show); 
Т.е.

PHP код:
$result $db->query($query$limit$show); 
$query – это SQL запрос
$limit – количество строк (в данном случае статей)
$show – сколько статей показываем на страницу)

Ну и т.д. в каждом модуле (где есть разбивка на страницы) по разному

Последний раз редактировалось LARK, 12-30-2008 в 00:44


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #20 12-30-2008, 00:38

Идем дальше

Обязательно подключаем класс XoopsPageNav. В нашем случае (модуль новостей, файл /modules/news/index.php) это 43 строка

PHP код:
include_once(XOOPS_ROOT_PATH.'/class/xoopspagenav.php'); 
создаем экземпляр объекта XoopsPageNav (строка 72)

в модуле новостей не совсем правильно это сделано поэтому я приведу свой вариант более верный:

PHP код:
$pagenav    = new XoopsPageNav($storycount$storynum$start"start""topic_id=".$topic_id."&amp;storynum=".$storynumtrue); 
XoopsPageNav() принимает следующие аргументы:

Первый аргумент - $storycount – сколько всего записей в таблице (т.е. сколько всего новостей)

$storycount в модуле новостей мы получаем с помощью метода countByTopic (71 строка)

PHP код:
$storycount NewsStory::countByTopic($topic_id); 

Второй $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 код:
echo '<div class="center">'.$pagenav->renderNav(33).'</div>'
метод renderNav() имеет два аргумента, первый указывает, сколько цифр-номеров страниц будет показано в панели, а второй - это вид панели (может принимать всего два значения: 1 или любое другое )

Последний раз редактировалось LARK, 12-30-2008 в 16:27


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 100.67 Kb. compressed to 93.01 Kb. by saving 7.66 Kb. (7.61%)
Page generated in 0.12344 seconds with 11 queries