[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не наследуется от абстрактного класса
ilyasret
Почему-то в браузер вываливается ошибка что не найден класс pager??
Запускаю в браузере файл img.php и соответсвующая ошибочка

user posted image

img.php
Свернутый текст


require_once("class/class.pager_dir.php");

$obj = new pager_dir("photo", 3);

$arr = $obj->get_page();
for($i = 0; $i < count($arr); $i++)
{
echo "<img src={$arr[$i]}>   ";
}
echo "<br>";

echo $obj;


class.pager.php
Свернутый текст

abstract class pager
{
abstract function get_total();
abstract function get_pnumber();
abstract function get_page_link();
abstract function get_parameters();

// Ссылки на другие страницы
public function __toString()
{
// Строка для возвращаемого результата
$return_page = "";

// Через GET-параметр page передаётся номер
// текущей страницы

$page = intval($_GET['page']);
if(empty($page)) $page = 1;

// Вычисляем число страниц в системе
$number = (int)($this->get_total()/$this->get_pnumber());
if((float)($this->get_total()/$this->get_pnumber()) - $number != 0)
{
$number++;
}
// Проверяем есть ли ссылки слева
if($page - $this->get_page_link() > 1)
{
$return_page .= "<a href=$_SERVER[PHP_SELF]".
"?page=1{$this->get_parameters()} class=main_txt_lnk>[1-{$this->get_pnumber()}]</a>  ...  ";
// Есть
for($i = $page - $this->get_page_link(); $i<$page; $i++)
{
$return_page .= " <a href=$_SERVER[PHP_SELF]".
"?page=$i{$this->get_parameters()} class=main_txt_lnk>[".
((
$i - 1)*$this->get_pnumber() + 1).
"-".$i*$this->get_pnumber()."]</a> ";
}
}

else
{
// Нет
for($i = 1; $i<$page; $i++)
{
$return_page .= " <a href=$_SERVER[PHP_SELF]".
"?page=$i{$this->get_parameters()} class=main_txt_lnk>[".
((
$i - 1)*$this->get_pnumber() + 1).
"-".$i*$this->get_pnumber()."]</a> ";
}
}

// Проверяем есть ли ссылки справа
if($page + $this->get_page_link() < $number)
{
// Есть
for($i = $page; $i<=$page + $this->get_page_link(); $i++)
{
if($page == $i)
$return_page .= " [".
((
$i - 1) * $this->get_pnumber() + 1).
"-".$i*$this->get_pnumber()."] ";
else
$return_page .= " <a href=$_SERVER[PHP_SELF]".
"?page=$i{$this->get_parameters()} class=main_txt_lnk>[".
((
$i - 1)*$this->get_pnumber() + 1).
"-".$i*$this->get_pnumber()."]</a> ";
}
$return_page .= " ...  ".
"<a href=$_SERVER[PHP_SELF]".
"?page=$number{$this->get_parameters()} class=main_txt_lnk>[".
((
$number - 1)*$this->get_pnumber() + 1).
"-{$this->get_total()}]</a> ";
}
else
{
// Нет
for($i = $page; $i<=$number; $i++)
{
if($number == $i)
{
if($page == $i)
$return_page .= " [".
((
$i - 1)*$this->get_pnumber() + 1).
"-{$this->get_total()}] ";
else
$return_page .= " <a href=$_SERVER[PHP_SELF]".
"?page=$i{$this->get_parameters()} class=main_txt_lnk>[".(($i - 1)*$this->get_pnumber() + 1).
"-{$this->get_total()}]</a> ";
}
else
{
if($page == $i)
$return_page .= " [".
((
$i - 1)*$this->get_pnumber() + 1).
"-".$i*$this->get_pnumber()."] ";
else
$return_page .= " <a href=$_SERVER[PHP_SELF]".
"?page=$i{$this->get_parameters()} class=main_txt_lnk>[".(($i - 1)*$this->get_pnumber() + 1)."-".($i*$this->get_pnumber())."]</a> ";
}
}
}

return $return_page;
}

// Альтернативный вид постраничной навигации
public function print_page()
{
// Строка для возвращаемого результата
$return_page = "";

// Через GET-параметр page передаётся номер
// текущей страницы

$page = intval($_GET['page']);
if(empty($page)) $page = 1;

// Вычисляем число страниц в системе
$number = (int)($this->get_total()/$this->get_pnumber());
if((float)($this->get_total()/$this->get_pnumber()) - $number != 0)
{
$number++;
}

// Ссылка на первую страницу
$return_page .= "<a href='$_SERVER[PHP_SELF]?page=1{$this->get_parameters()}' class=main_txt_lnk><<</a> ... ";
// Выводим ссылку "Назад", если это не первая страница
if($page != 1) $return_page .= " <a href='$_SERVER[PHP_SELF]?page=".($page - 1)."{$this->get_parameters()}' class=main_txt_lnk><</a> ... ";

// Выводим предыдущие элементы
if($page > $this->get_page_link() + 1)
{
for($i = $page - $this->get_page_link(); $i < $page; $i++)
{
$return_page .= "<a href='$_SERVER[PHP_SELF]?page=$i' class=main_txt_lnk>$i</a> ";
}
}

else
{
for($i = 1; $i < $page; $i++)
{
$return_page .= "<a href='$_SERVER[PHP_SELF]?page=$i' class=main_txt_lnk>$i</a> ";
}
}

// Выводим текущий элемент
$return_page .= "$i ";
// Выводим следующие элементы
if($page + $this->get_page_link() < $number)
{
for($i = $page + 1; $i <= $page + $this->get_page_link(); $i++)
{
$return_page .= "<a href='$_SERVER[PHP_SELF]?page=$i' class=main_txt_lnk>$i</a> ";
}
}

else
{
for($i = $page + 1; $i <= $number; $i++)
{
$return_page .= "<a href='$_SERVER[PHP_SELF]?page=$i' class=main_txt_lnk>$i</a> ";
}
}


// Выводим ссылку вперёд, если это не последняя страница
if($page != $number) $return_page .= " ... <a href='$_SERVER[PHP_SELF]?page=".($page + 1)."{$this->get_parameters()}' class=main_txt_lnk>></a>";
// Ссылка на последнюю страницу
$return_page .= " ... <a href='$_SERVER[PHP_SELF]?page=$number{$this->get_parameters()}' class=main_txt_lnk>>></a>";

return $return_page;
}
}



class.pager_dir.php
Свернутый текст

class pager_dir extends pager
{
// Конструктор
public function __construct($dirname,
$pnumber = 10,
$page_link = 3,
$parameters = "")
{
// Удаляем последний символ /, если он имеется
$this->dirname = trim($dirname, "/");
$this->pnumber = $pnumber;
$this->page_link = $page_link;
$this->parameters = $parameters;
}
public function get_total()
{
$countline = 0;
// Открываем директорию
if(($dir = opendir($this->dirname)) !== false)
{
while(($file = readdir($dir)) !== false)
{
// Если текущая позиция является файлом
// подсчитываем её

if(is_file($this->dirname."/".$file)) $countline++;
}
// Закрываем директорию
closedir($dir);
}
return $countline;
}
// Возвращает массив строк файла, по
// номеру страницы $index

public function get_page()
{
// Текущая страница
$page = $_GET['page'];
if(empty($page)) $page = 1;
// Количество записей в файле
$total = $this->get_total();
// Вычисляем число страниц в системе
$number = (int)($total/$this->get_pnumber());
if((float)($total/$this->get_pnumber()) - $number != 0) $number++;
// Проверяем попадает ли запрашиваемый номер
// страницы в интервал от 1 до get_total()

if($page <= 0 || $page > $number) return 0;
// Извлекаем позиции текущей страницы
$arr = array();
// Номер, начиная с которого следует
// выбирать строки файла

$first = ($page - 1)*$this->get_pnumber();
// Открываем директорию
if(($dir = opendir($this->dirname)) === false) return 0;
$i = -1;
while(($file = readdir($dir)) !== false)
{
// Если текущая позиция является файлом
if(is_file($this->dirname."/".$file))
{
// Увеличиваем счётчик
$i++;
// Пока не достигнут номер $first
// досрочно заканчиваем итерацию

if($i < $first) continue;
// Если достигнут конец выборки
// досрочно покидаем цикл

if($i > $first + $this->get_pnumber() - 1) break;
// Помещаем пути к файлам в массив,
// который будет возвращён методом

$arr[] = $this->dirname."/".$file;
}
}

// Закрываем директорию
closedir($dir);

return $arr;
}
}





Спустя 5 минут, 10 секунд (5.08.2012 - 13:04) Winston написал(а):
require_once("class/class.pager.php");
require_once("class/class.pager_dir.php");

Спустя 33 минуты, 19 секунд (5.08.2012 - 13:37) ilyasret написал(а):
Цитата
require_once("class/class.pager.php");
require_once("class/class.pager_dir.php");


Если добавляю эти строчки в img.php вот такая вываливается
user posted image


Спустя 42 минуты, 48 секунд (5.08.2012 - 14:20) Winston написал(а):
Эти методы
abstract function get_pnumber();
abstract function get_page_link();
abstract function get_parameters();

Должны быть реализованы в классе pager_dir
Или же если не собираешься реализовывать
Напиши
public function get_pnumber(){}
public function get_page_link(){}
public function get_parameters(){}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.