разбитие массива по странично

left В продолжение прошлого поста еще один класс.
На этот раз для разбиения массива по странично.

Для чего использывать думаю догадаетесь) например постраничный вывод новостей или гостевой)
Пример вызова:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$map=new StartPage;//инициализация класса
$arr=$map->StartPageMas($array, $page, $count, $url);
#$arr - Массив результата работы класса;
#$array - Массив для разбивки;
#$page - Имя переменной GET с номером страницы (page);
#$count - Количество записей на страницу;
#$url - Адрес к страницам (/map.php?page=)
#Обработка
echo '
<ul>'
;
foreach($arr as $v){
echo "
    <li><a href="
$v[link]">$v[name]</a></li>
"
;
}
echo '</ul>
'
;
#Вывод навигатора
echo $map->NextPageMas();

Код самого класса

Внешний вид навигатора настраивается в NextPageMas()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
class StartPage{
var $masiv;
var $urls;
var $kol;
var $page;function StartPageMas($mas, $url, $kol, $page){
$this-&gt;masiv = $mas;
$this-&gt;urls  = $url;
$this-&gt;kol    = $kol;
$this-&gt;page   = $page;

if($_GET[$this-&gt;urls]&gt;(count($this-&gt;masiv)/$this-&gt;kol))$_GET[$this-&gt;urls]=$url=0;
if(!isset($_GET[$this-&gt;urls])) $_GET[$this-&gt;urls]=0;
$start = $this-&gt;kol * $_GET[$this-&gt;urls];
$startp = $this-&gt;kol * $_GET[$this-&gt;urls] + $this-&gt;kol;
$kolvo = count( $this-&gt;masiv );
if($startp &lt;= $kolvo) $stop = $startp;
else if($kolvo &lt; $startp) $stop = $kolvo;
$s=0;
foreach($this-&gt;masiv as $key=&gt;$val){
if($start&lt;=$s)$mm[$key]=$this-&gt;masiv[$key];
$s++;
if($s==$stop) break;
}
return $mm;
}
function NextPageMas(){
$start = $this-&gt;kol * $_GET[$this-&gt;urls];
$startp = $this-&gt;kol * $_GET[$this-&gt;urls] + $this-&gt;kol;
$kolvo = count( $this-&gt;masiv );
$sh=$this-&gt;kol;
if($start==0) $start=1;
if($startp &lt;= $kolvo) $stop = $startp;
else if($kolvo &lt; $startp) $stop = $kolvo;
$namber=0;
$url_namber=1;
$list=$start_ter='';
$list= '
<div class="str">Страницы: '
;
if($_GET[$this-&gt;urls]&gt;0){
$num=$_GET[$this-&gt;urls] - 1;
$list.= '<a href="'.$this-&gt;page.$num.'">предыдущая</a> ';
}
for($i=0; $i &lt; $kolvo; $i=$i+$sh){

if($namber==$_GET[$this-&gt;urls]){
$list.= '<span><strong>'.$url_namber.'</strong></span> ';
$namber++;
$url_namber++;
}else{
$list.= '<a href="'.$this-&gt;page.$namber.'">'.$url_namber.'</a> ';
$namber++;
$url_namber++;
}
}
if($_GET[$this-&gt;urls]*$sh+$sh&lt;$kolvo){
$num=$_GET[$this-&gt;urls] + 1;
$list.= '<a href="'.$this-&gt;page.$num.'">следующая</a> ';
}
return $start_ter.$list.'</div>
'
;
}
}
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong
нужна разработка сайтов?

Читай с RSS. Не пропусти интересное)

Теги:

Вторник, 24 Фев 2009 PHP, Мой скрипт

Комментариев пока нет.

Ваш отзыв

Читать в Яндекс.Ленте
регистрация доменов
Зарегистрируй себе домен!
.RU - 99 рублей в год
www.
Блогун - реклама в блогах. Хостинг для блогов

Поиск

 

Комментарии