Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 11 Февраль, 2012, 07:28:51

  Просмотр сообщений
Страниц: [1]
1  Разное / Флейм / Дом флудера (говорит кто о чем хочет) — 7 : 04 Март, 2010, 02:18:17
а что пишете =)
2  Разное / Пыхокухня / Что будем на завтрок, сэр? Опять овсянку? : 03 Март, 2010, 06:58:03
гыовсянка на молоке на утро - бабушка племяшу моему готовит, и мне заодно.через час - кофе.
3  Разное / Флейм / Сходил я на мастер-класс по профессиональному javascpt'у от javascript.ru : 03 Март, 2010, 06:36:29
Цитата: "adw0rd" от 02 Март, 2010, 03:56:05 2) Фишки DOM, функции/замыкания, ООП - понятно и в деталях.может по сему пункту статью в блоге напишешь )?
4  Разное / Пыхослет / Пыхослет 2010 : 03 Март, 2010, 06:16:48
С вами реально поехать если надумаю? я из Питера ). я добрый. Осилил 11 страниц - ололо.вот тока с деньгами определиться надо - вечный вопрос на 11 страницах - СКОЛЬКО ЖЕ?
5  Разное / Флейм / Посоветуйте ченить посмотреь : 03 Март, 2010, 06:15:46
посмотрел "на игре" - понравилось
6  Установка и администрирование ПО / Разное ПО / Поднять свн : 03 Март, 2010, 06:08:09
я ставил на фряху по записям на http://lissyara.suhttp://www.lissyara.su/articles/freebsd/www/svn+apache+trac/
7  Пыхнуть хотите? / F.A.Q. / Постраничный вывод информации из БД (пагинатор) : 01 Март, 2010, 07:45:09
точнее так - это php5 ООП модуль пагинации - а то что в первом посту - просто набор функций которые в общем то создадут такую же пагинацию.
8  Пыхнуть хотите? / F.A.Q. / Постраничный вывод информации из БД (пагинатор) : 01 Март, 2010, 07:37:42
конкретика? )он в общем то по сути то же что в первом посту просто получше сделано.
9  Пыхнуть хотите? / F.A.Q. / Постраничный вывод информации из БД (пагинатор) : 01 Март, 2010, 07:19:18
я на своих проектах пользуюсь следующим классом пагинации:Код PHP<?php  class Pagination {  var $base_url     = ''; //ссылка по которой строим пагинацию   var $total_rows     = ''; //количество ссылок которые нам нужны  var $per_page     = 10; // сколько у нас на странице  var $num_links      =  2; // количество выводимых ссылок  var $cur_page     =  0;   var $first_link       = '&lsaquo; First'; //стиль первой ссылки  var $next_link      = '>';   //стиль следующей ссылки  var $prev_link      = '<';   //стиль предыдущей ссылки  var $last_link      = 'Last &rsaquo;'; //стиль последней ссылки//Обертки вокруг ссылок пагинации - чтобы было например <ul><li>первая ссылка</li> <li>2</li><li>3</li><li>последняя ссылка</li></ul>  var $full_tag_open    = '';             //обертка вокруг всех ссылок - тот самый <ul>  var $full_tag_close   = '';  var $first_tag_open   = '';            //первая страница  var $first_tag_close  = ' ';  var $last_tag_open    = ' '; //последняя страница  var $last_tag_close   = '';  var $cur_tag_open   = ' <b>'; //текущая страница  var $cur_tag_close    = '</b>';  var $next_tag_open    = ' ';  //следующая страница  var $next_tag_close   = ' ';  var $prev_tag_open    = ' '; //предыдущая страница  var $prev_tag_close   = '';  var $num_tag_open   = ' ';  //цыферы  var $num_tag_close    = '';  /**   * Constructor   *   * @param array initialization parameters   */  function Pagination($params = array())  {    if (count($params) > 0)    {      $this->initialize($params);       }      }    // --------------------------------------------------------------------    /**   * Initialize    *   * @param array initialization parameters   * @return  void   */  function initialize($params = array())  {    if (count($params) > 0)    {      foreach ($params as $key => $val)      {        if (isset($this->$key))        {          $this->$key = $val;        }      }       }  }    // --------------------------------------------------------------------    /**   * Generate the pagination links   *   * @return  string   */   function create_links()  {    // If our item count or per-page total is zero there is no need to continue.    if ($this->total_rows == 0 OR $this->per_page == 0)    {       return '';    }    // Calculate the total number of pages    $num_pages = ceil($this->total_rows / $this->per_page);    // Is there only one page? Hm... nothing more to do here then.    if ($num_pages == 1)    {      return '';    }    // Determine the current page number.       $page = isset($_GET['page']);    if ($page != 0)    {      $page = $_GET['page'];      $this->cur_page = $page;            // Prep the current page - no funny business!      $this->cur_page = (int) $this->cur_page;    }    $this->num_links = (int)$this->num_links;        if ($this->num_links < 1)    {     return 'Your number of links must be a positive number.';    }            if ( ! is_numeric($this->cur_page))    {      $this->cur_page = 0;    }        // Is the page number beyond the result range?    // If so we show the last page    if ($this->cur_page > $this->total_rows)    {      $this->cur_page = ($num_pages - 1) * $this->per_page;    }        $uri_page_number = $this->cur_page;    $this->cur_page = floor(($this->cur_page/$this->per_page) + 1);    // Calculate the start and end numbers. These determine    // which number to start and end the digit links with    $start = (($this->cur_page - $this->num_links) > 0) ? $this->cur_page - ($this->num_links - 1) : 1;    $end   = (($this->cur_page + $this->num_links) < $num_pages) ? $this->cur_page + $this->num_links : $num_pages;    // Add a trailing slash to the base URL if needed    $this->base_url = rtrim($this->base_url, '/') .'';      // And here we go...    $output = '';    // Render the "First" link    if  ($this->cur_page > $this->num_links)    {      $output .= $this->first_tag_open.'<a href="'.$this->base_url.'">'.$this->first_link.'</a>'.$this->first_tag_close;    }    // Render the "previous" link    if  ($this->cur_page != 1)    {      $i = $uri_page_number - $this->per_page;      if ($i == 0) $i = '';      $output .= $this->prev_tag_open.'<a href="'.$this->base_url.$i.'">'.$this->prev_link.'</a>'.$this->prev_tag_close;    }    // Write the digit links    for ($loop = $start -1; $loop <= $end; $loop++)    {      $i = ($loop * $this->per_page) - $this->per_page;                if ($i >= 0)      {        if ($this->cur_page == $loop)        {          $output .= $this->cur_tag_open.$loop.$this->cur_tag_close; // Current page        }        else        {          $n = ($i == 0) ? '' : $i;          $output .= $this->num_tag_open.'<a href="'.$this->base_url.$n.'">'.$loop.'</a>'.$this->num_tag_close;        }      }    }    // Render the "next" link    if ($this->cur_page < $num_pages)    {      $output .= $this->next_tag_open.'<a href="'.$this->base_url.($this->cur_page * $this->per_page).'">'.$this->next_link.'</a>'.$this->next_tag_close;    }    // Render the "Last" link    if (($this->cur_page + $this->num_links) < $num_pages)    {      $i = (($num_pages * $this->per_page) - $this->per_page);      $output .= $this->last_tag_open.'<a href="'.$this->base_url.$i.'">'.$this->last_link.'</a>'.$this->last_tag_close;    }    // Kill double slashes.  Note: Sometimes we can end up with a double slash    // in the penultimate link so we'll kill all double slashes.    $output = preg_replace("#([^:])//+#", "\\1/", $output);    // Add the wrapper HTML if exists    $output = $this->full_tag_open.$output.$this->full_tag_close;        return $output;     }}// END Pagination Class?>пример использования - возьмем эту страницу.Код PHP//конфигурация класса - можно конешно через сетторы (__set), но мне было удобнее массивом      $config['base_url'] = 'http://pyha.ru/forum/topic/299.';      $config['per_page'] = '15';      $config['num_links'] = 4;      $config['first_link'] = '&#171; В начало |';      $config['last_link'] = '| В конец &#187;';      $config['next_link'] = '>';      $config['prev_link'] = '<';      $config['full_tag_open'] = '<ul class="pagin">';      $config['full_tag_close'] = '</ul>';      $config['first_tag_open'] = '<li>';      $config['first_tag_close'] = '</li>';      $config['last_tag_open'] = '<li>';      $config['last_tag_close'] = '</li>';      $config['next_tag_open'] = '<li>';      $config['next_tag_close'] = '</li>';      $config['prev_tag_open'] = '<li>';      $config['prev_tag_close'] = '</li>';      $config['cur_tag_open'] = '<li class="active"><div>';      $config['cur_tag_close'] = '</div></li>';      $config['num_tag_open'] = '<li>';      $config['num_tag_close'] = '</li>';  $page = (empty($_GET['page']))? 0 : (int)$_GET['page'];   $topics = $Tred->getTopics('299', $page); //массив топиков. Получаем на конкретно нужной странице    $config['total_rows'] = $Tred->getCountTopics('299'); //всего допустим 74 топика,  $pagination = new Pagination();  $pagination->initialize($config);  echo $pagination->create_links();  foreach ($topics as $topic) {   //вывод топика }или пример 2. Код PHP  // конфиг как в примере 1  $page = (empty($_GET['page']))? 0 : (int)$_GET['page'];   $topics = $Tred->getTopics('299'); //массив топиков. Получаем все топики.    $config['total_rows'] = count($topics); //всего допустим 74 топика,  $topics = array_slice($topics, $page, $config['per_page']); //обрезаем массив чтобы выводил столько сколько нужно  $pagination = new Pagination();  $pagination->initialize($config);  echo $pagination->create_links();  foreach ($topics as $topic) {   //вывод топика }недостатки второго способа - при большом объеме массива он просто в памяти его будет держать.
Страниц: [1]