Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter | Личный кабинет | Карта сайта | RSS ленты
О проекте | Скачать CMS | Видеоуроки | Документация | Плагины | Форум | Идеи | Новости | Веб-мастеру | Контакты

Вывод постраничного листинга 2 раза

Предложения идей, расширение функционала, внедрение технологий

Вывод постраничного листинга 2 раза

Сообщение Max » 27 окт 2010, 20:51

Каким образом можно вывести на сайте листинг 2 раза? Т.е. до новостей и после новостей ради удобства.
Первый листинг отображает, второй полностью игнорирует.

P.S. - листинг указан в system_kids.php
Говорят, что персональный компьютер - это такая жуткая черная дыра, куда сначала проваливаются деньги, потом время, а потом - сам хозяин этих денег и времени.
Аватара пользователя
Max
Знаток
 
Сообщения: 65
Зарегистрирован: 20 сен 2010, 23:34
Откуда: Киров

Правила вывода листинга

Сообщение Admin » 27 окт 2010, 20:55

Напрямую в шаблоне листинг работать не будет, т.к. проверяет наличие данных в переменной $document и по переменным строит линейку страниц. Листинг нуждается в переменных: $count - всего страниц, $folio - текущий номер страницы, $max - кол-во ссылок которое выводится на странице. Если бы Вы использовали его в каком-то плагине, и выполнили все условия, то я бы возможно смог подсказать как сделать листинг сверху и внизу страницы.
YaPro - мы делаем мир удобнее
Аватара пользователя
Admin
Администратор
 
Сообщения: 477
Зарегистрирован: 15 фев 2008, 21:36
Откуда: Москва

Re: Вывод постраничного листинга 2 раза

Сообщение Max » 27 окт 2010, 20:57

Плагин system_kids.php Всем спасибо, решение нашлось.
Говорят, что персональный компьютер - это такая жуткая черная дыра, куда сначала проваливаются деньги, потом время, а потом - сам хозяин этих денег и времени.
Аватара пользователя
Max
Знаток
 
Сообщения: 65
Зарегистрирован: 20 сен 2010, 23:34
Откуда: Киров

Как решили задачу?

Сообщение Admin » 27 окт 2010, 21:02

Интересно, как решили данную проблему, расскажите про свой способ, думаю будет интересен другим пользователям.
YaPro - мы делаем мир удобнее
Аватара пользователя
Admin
Администратор
 
Сообщения: 477
Зарегистрирован: 15 фев 2008, 21:36
Откуда: Москва

Re: Вывод постраничного листинга 2 раза

Сообщение Max » 27 окт 2010, 21:05

/inner/file.php
Код: Выделить всё
<?
/////////////////
$max = $max_system_kids? $max_system_kids : 5;// максимальное количество
$listing = 3;// вид листинга
$where = isset($where_system_kids)? $where_system_kids : "parent_id=".$this->id;
include($_SERVER['DOCUMENT_ROOT'].'/inner/libraries/folio.php');
$start = $folio * $max;// показываем записи начиная с start
$r = @mysql_fetch_row(mysql_query($this->sql('COUNT(*)', $where)));
$count = $r['0'];
///////////////////////////////
$parent_url_without_ext="clientlist";
if($count>$max)
{
      $n = 0;
      for($i=0; $i<$count; $i+=$max)
      {
         if($n==$folio)
         {
            $separator .= '<span style="background-color: rgb(231, 120, 23); color: rgb(255, 255, 255); padding: 3px;margin-right:4px;"><strong>'.($n+1).'</strong></span>';
         }
         else
         {
            $separator .= '<a href="'.($n? $parent_url_without_ext.'.'.$n.$GLOBALS['SYSTEM']['config']['9'] : ( ($this->id==$GLOBALS['SYSTEM']['config']['4'])?'/':$parent_url_without_ext.$GLOBALS['SYSTEM']['config']['9']) ).'">'.($n+1).'</a>&nbsp;&nbsp';
         }
         $n++;
      }
      if($n<2)
      {
      $separator = '';
      }
   
   }
   print('<div style="margin: 0px 0px 10px; font-size: 11px;">'.$separator.'</div>');
?>


В шаблоне
Код: Выделить всё
{~$where_system_kids='parent_id=5696';~AND~file.php~}


Для моей задачи подошло, а простое подключение 2 раза листинга результата не дало.
Говорят, что персональный компьютер - это такая жуткая черная дыра, куда сначала проваливаются деньги, потом время, а потом - сам хозяин этих денег и времени.
Аватара пользователя
Max
Знаток
 
Сообщения: 65
Зарегистрирован: 20 сен 2010, 23:34
Откуда: Киров

Так тоже можно решить задачку, однако..

Сообщение Admin » 27 окт 2010, 21:12

Сразу видно, что код позаимствован из скрипта листинга, и стоит заметить, что это решение получилось с лишним SQL запросом, без доп. проверок, которые могли бы сделать его более универсальным, хотя я конечно придираюсь, вообще молодцом!
Кстати, т.к. Вы применяете код листинга второй раз, то в начале своего скрипта стоит добавить обнуление переменных, которые Вы удалили из кода листинга:

Код: Выделить всё
$last = $separator = $next = '';


Вообще, более простым, будет наверное такое решение:

Код: Выделить всё
<?php
$max = 5;// максимальное количество
$listing = 3;// вид листинга
$where = 'parent_id=5696';// условия вывода

include($_SERVER['DOCUMENT_ROOT'].'/inner/libraries/folio.php');

$r = @mysql_fetch_row(mysql_query($this->sql('COUNT(*)', $where)));
$count = $r['0'];

$document = ' ';
include($_SERVER['DOCUMENT_ROOT'].'/inner/libraries/listing.php');
?>
YaPro - мы делаем мир удобнее
Аватара пользователя
Admin
Администратор
 
Сообщения: 477
Зарегистрирован: 15 фев 2008, 21:36
Откуда: Москва

Re: Вывод постраничного листинга 2 раза

Сообщение Max » 27 окт 2010, 21:43

Работает. Спасибо.
Говорят, что персональный компьютер - это такая жуткая черная дыра, куда сначала проваливаются деньги, потом время, а потом - сам хозяин этих денег и времени.
Аватара пользователя
Max
Знаток
 
Сообщения: 65
Зарегистрирован: 20 сен 2010, 23:34
Откуда: Киров

Более правильное решение если использовать system_kids и т.п

Сообщение Admin » 27 окт 2010, 21:49

Пожалуйста, но если Вы будете использовать плагин вида system_kids.php, то решение может быть более простым.

В скрипте system_kids.php, после кода:

Код: Выделить всё
$count = $r['0'];

написать код:

Код: Выделить всё
$document = ' ';
include($_SERVER['DOCUMENT_ROOT'].'/inner/libraries/listing.php');

Таким образом код листинга будет сверху и снизу.
YaPro - мы делаем мир удобнее
Аватара пользователя
Admin
Администратор
 
Сообщения: 477
Зарегистрирован: 15 фев 2008, 21:36
Откуда: Москва

Re: Вывод постраничного листинга 2 раза

Сообщение Max » 27 окт 2010, 21:51

Благодарю. Объясните еще пожалуйста этот пункт $listing = 3;// вид листинга
Говорят, что персональный компьютер - это такая жуткая черная дыра, куда сначала проваливаются деньги, потом время, а потом - сам хозяин этих денег и времени.
Аватара пользователя
Max
Знаток
 
Сообщения: 65
Зарегистрирован: 20 сен 2010, 23:34
Откуда: Киров

Виды листинга

Сообщение Admin » 27 окт 2010, 22:04

Вид листинга бывает 3 видов:

1 - линейка страниц ссылками, вида: (1 - 2 - 3 - и т.д.)

2 - только ссылки, вида: « К настоящему | В прошлое »

3 - ссылки + линейка страниц, вида: « К настоящему (1 - 2 - 3 - и т.д.) В прошлое »
YaPro - мы делаем мир удобнее
Аватара пользователя
Admin
Администратор
 
Сообщения: 477
Зарегистрирован: 15 фев 2008, 21:36
Откуда: Москва


Вернуться в Идеи и новые технологии

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron