#31 2011.12.11 14:33

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Ок. Понял. СПС.
Хотя не совсем понял, в гугле посмотрю...

Отредактировано tipsun (2011.12.11 14:44)

Неактивен

#32 2011.12.11 15:35

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Вот насчет этого вроде понял, типа:

Код:

1
span style="color: #0000BB"><?phpself::countPages();//если будешь так использовать, значит надо эту функцию пометить как static?>

Отредактировано tipsun (2011.12.11 15:39)

Неактивен

#33 2011.12.11 16:27

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Private, protected переменную называть: $_name;
big_smile А я думал в phpdoc комментарии просто @param mixed _$var;
- - - -
Так теперь надо это все дело сделать...

Отредактировано tipsun (2011.12.11 16:28)

Неактивен

#34 2011.12.11 16:33

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Функция навигации по страницам

да, phpDoc - это просто комментарии. А Private, protected - это базовый ООП.

Неактивен

#35 2011.12.11 16:45

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Код:

1
span style="color: #0000BB"><?php/** * pageMan * * @package * @author TiPsun * @copyright TiPsun * @version 2011 * @access public */class pageMan { private $_method = null, $_count = null, $_page = null, $_tmpPage = 1, $_pages = null, $_start = null; private static $_items = 10; /** * pageMan::__construct() * * @param mixed $method * @param mixed $count * @param mixed $page * @param mixed $items * * @return void */ public function __construct($method, $count, $page, $items=null) { if (method_exists(__CLASS__, '_method' . $method)) { $this->_method = '_method' . $method; } else { trigger_error('Nonexistent method', E_USER_ERROR); } if (is_numeric($count) and 0 < $count) { $this->_count = (int)$count; } else { trigger_error('Value must be integer', E_USER_ERROR); } if (is_numeric($page) and 0 < $page) { $this->_tmpPage = (int)$page; } if (is_numeric($items)) { if (0 < $items) $this->_items = (int)$items; else $this->_items = $this->_count; } else { $this->_items = self::$_items; } } /** * pageMan::_countPages() * Расчет общего кол-ва страниц. * @return integer */ private static function _countPages() { if (null === $this->_pages) { $this->_pages = ceil($this->_count / $this->_items); } return $this->_pages; } /** * pageMan::getPages() * Получение общего числа страниц. * @return integer */ public function getPages() { return self::_countPages(); } /** * pageMan::_setPage() * Коррекция указанной/текущей страницы. * @return integer */ private static function _setPage() { if (null === $this->_page) { $this->_page = min($this->_tmpPage, self::_countPages()); } return $this->_page; } /** * pageMan::getPage() * Получение корректной текущей страницы. * @return integer */ public function getPage() { return self::_setPage(); } /** * pageMan::_setStart() * Расчет начальной точки отсчета показа записей в вашем цикле. * @return integer */ private static function _setStart() { if (null === $this->_start) { $this->_start = (self::_setPage() - 1) * $this->_items; } return $this->_start; } /** * pageMan::getStart() * Получение начальной точки отсчета показа записей в цикле. * @return integer */ public function getStart() { return self::_setStart(); } /** * pageMan::_methodArray() * Расчет конечной точки отсчета показа записей в цикле для массива данных. * @return integer */ private function _methodArray() { return min((self::_setStart() + $this->_items), $this->_count); } /** * pageMan::_methodTable() * Расчет конечной точки отсчета показа записей в цикле для данных в таблице (DB). * @return integer */ private function _methodTable() { return $this->_items; } /** * pageMan::getStop() * Получение конечной точки отсчета показа записей в цикле. * @return integer */ public function getStop() { return call_user_method($this->_method, $this); } /** * pageMan::prevPage() * Получение номера предыдущей страницы. * @return integer */ public function prevPage() { if (null === $this->_page) { self::_setPage(); } return 1 < $this->_page ? $this->_page - 1 : $this->_page; } /** * pageMan::nextPage() * Получение номера следующей страницы. * @return integer */ public function nextPage() { if (null === $this->_pages) { self::_countPages(); } if (null === $this->_page) { self::_setPage(); } return $this->_pages > $this->_page ? $this->_page + 1 : $this->_page; } }?>

Отредактировано tipsun (2011.12.11 16:58)

Неактивен

#36 2011.12.11 18:15

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Gemorroj написал:

А Private, protected - это базовый ООП.

В курсе smile Иначе я бы не применял все это.

Насколько я знаю...
protected/private - это если указать, то действует только в самом классе.

Код:

1
span style="color: #0000BB"><?php//т.е. его нельзя так вызвать:$myClass = new someClass();$myClass->myVar; //- со свойством$myClass->myMethod(); //- с методом//static типа вызывать вот так:self::myVar; //- внутри класса иmyClass::myVar; //- вне класса, если не private/protected и если $this не было использовано.self::myMethod(); //иmyClass::myMethod(); //если не private/protected и если $this не было использовано.?>

Отредактировано tipsun (2011.12.11 18:32)

Неактивен

#37 2011.12.11 20:51

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Бле... Чет я не то сделал.
Там же при static нельзя $this использовать...

Gemorroj, А где надо было static ставить?
До этого разве все правильно не было?

Отредактировано tipsun (2011.12.11 21:02)

Неактивен

#38 2011.12.11 21:04

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Функция навигации по страницам

либо вызывай метод как динамический, либо делай его статическим.

Неактивен

#39 2011.12.11 21:06

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Функция навигации по страницам

Gemorroj, ты про такой вызов?

Код:

1
span style="color: #0000BB"><?phppublic function getPages() { return self::_countPages(); }?>

И его надо переделать под это?

Код:

1
span style="color: #0000BB"><?phppublic function getPages() { return call_user_method('_countPages', $this); }?>

А под статический придется и переменные все переделать под self::

Отредактировано tipsun (2011.12.11 21:33)

Неактивен

#40 2011.12.11 21:53

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Функция навигации по страницам

Да блять.
смотри свой код из 25 поста.

Код:

1
2
3
4
public function getPages() {
return self::countPages();
}

отсюда следует, что метод countPages у тебя должен быть статическим.
если ты не хочешь делать его статическим, то вызывай его не как статический, а динамический. Т.е. $this->countPages();

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.016 s