Заблокирован(а)
Сообщений: 18,519
+ 10,956
12,586/6,453
– 307
539/385
|
Цитата:
Сообщение от JIN
Доброе время суток! Дорогие мастера сайтов помогите написать скрипть! Ни дано написал Админку для своего сайта все работает хорошо, ну вот не могу написать скрипт разделитель статьи по страницам! Спасибо заранее!!!
|
Например, за минуту в Яндексе —
PHP код:
function PagePrint($variable) {
global $beginPage, $endPage;//------Объявляем глобальные переменные, отвечающие за ссылку на первую и последнюю страницу
$href='';//-----Перемменная содержащая в себе постраничный вывод
$separator=' ';//-----Переменная задающая разделитель между ссылками, по умолчанию пробел
$style='style="text-decoration:none" style="color:orange" style="font-weight:bold"';//-------Задаёт стиль текущей страницы
$stylePage='style="text-decoration:none" style="color:blue" style="font-weight:bold"';//------Задаёт стиль ссылки на первую и последнюю страницу
if(is_array($variable))://------Проверяем тип array
#Перебираем массив и присваиваем $number - количество записей, $start - точка извлечения, $pageCount - количество записей, $andere - другие свойства ссылки, $class - стиль для ссылок, $showLink - количество ссылок на странице
list($number, $start, $pageCount, $andere, $class, $showLink)=$variable;
#Обрабатывам $start
if(empty($start) && !is_int($start) && !is_numeric($start)) $start=0;
else $start=$start;
#Обрабатываем $number
if(empty($number) && !is_int($number) && !is_numeric($number)) $number=10;
else $number=$number;
$page=(($start/10)+1);//-------Рассчитывавем номер страницы
$count=ceil($pageCount/$number);//------Количество страниц
#Вывод сслыки на первую и последнюю страницы
if($count!==1) :
$beginPage="<a href="".getenv(' PHP _SELF')."?start=0".$andere."" ".$stylePage.">перв</a>";//--------Первая страница
$endPage="<a href="".getenv(' PHP _SELF')."?start=".(($count-1)*10).$andere."" ".$stylePage.">посл</a>";//-----Последняя страница
else: FALSE;
endif;
if($pageCount==10): return False;
else:
# Постраничный вывод
$begin=$page - intval($showLink/2);//------Определяет номер страницы с которой выводить
for($j=0; $j<=$showLink; $j++):
$i=$begin+$j;//------Номер страницы
#Защищает скрипт если $<0, будет до тех пор увеличивать пока $showPage=1
if($i<1):
$showLink++;
continue;
endif;
# Постраничный вывод
if($i>$count) break;//-----Защита если количество $i>возможных записей
if($i==$page) $href=$href." <a ".$style." >".$i."</a>";//------Вывод текущей страницы
else $href=$href." <a href="".getenv('PHP_SELF')."?start=".(($i - 1)*10).$andere."" ".$class.">".$i."</a> ";//------Вывод следующих страниц
endfor;
return $href;
endif;
endif;
}
Цитата:
Входным параметром функции является массив из шести элементов:
$number - количество отображаемых сообщений на странице
$start - точка извлечения из базы данных, т.е номер сообщения с которого начинается зивлечение данных
$pageCount - общее количество записей, т.е сколько всего содержит база записей
$andere - другие параметры ссылки, будь то новые переменные или что-либо ещё
$class - данный параметр задаёт внешний вид ссылок, т.е ссылки на страницы
$showLink - количество ссылок на странице
Первый параметр может быть передан через метод @$_GET['number'], только в том случае, если Вы захотите чтобы пользователь мог изменять количество сообщений на странице.
Второй параметр обязательно передаётся в массив методом @$_GET['start'], так как параметр $start всё время меняется когда пользователь кликает по ссылке на страницу.
Если, Вы вдруг не захотите, передавать первый, третий, четвёртый, пятый элемент массива вместо них необходимо передать пустоту - '', без пробела между кавычками.
Как Вы можете видеть функция сильно расширяет возможности при создании постраничного вывода . Теперь Вы можете разместить свой постраничный вывод на маленьком участке страницы, регулируя количество отображаемых ссылок параметром $showLink. Всё это удобно при создании галлерей, поиска по каталогу сайта или чего-нибудь ещё.
Ниже будут приведены примеры вызова функции:
PagePrint('', @$_GET['start'], 90, '', '', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок
PagePrint(@$_GET['number'], @$_GET['start'], 90, '', '', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок и есть возможность изменять количество отображаемых записей на странице
PagePrint(@$_GET['number'], @$_GET['start'], 90, '&category=1', '', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок, есть возможность изменять количество отображаемых записей на странице и ссылка передаёт дополнительную переменную category со значением 1
PagePrint(@$_GET['number'], @$_GET['start'], 90, '&category=1', 'style="color:black"', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок, есть возможность изменять количество отображаемых записей на странице, ссылка передаёт дополнительную переменную category со значением 1 и ссылки на странице будут чёрного цвета.
Надеюсь приведённые ниже объяснения и комментарии внутри функции помогут разобраться Вам с принципом работы функции.
|
|