#81 2011.12.20 23:19

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

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

Математика у меня в pageMan::pageRange() неправильная, мне кажется.
Хотя там все работает верно.
Если расчитать все четко не получится, то увы. Будет как есть.

Отредактировано tipsun (2011.12.20 23:20)

Неактивен

#82 2011.12.21 09:13

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 805
Карма: 11
Профиль Веб-сайт

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

Я с телефона, и половины темы не осилил! Код обрезает ппц! Убери для вап версии, в стиле (забыл как называеется) скроулинг


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#83 2011.12.21 12:02

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

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

Nu3oN, уберу

Неактивен

#84 2011.12.23 15:54

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

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

Нет, чет лучше и проще никак не могу придумать. sad

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

Неактивен

#85 2011.12.23 19:28

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

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

Единственное, что в голову приходит - это оптимизация.
Сейчас поправки внесу и выложу.

Вот. (Этот гребаный виндовс завирусованный, после восстановления мои архивы пропали! >_<)

Код:

1
span style="color: #0000BB"><?php /** * pageMan::getPageRange() * Получение ближайшего отрезка номеров страниц для создания навигации вида: (10 11 [12] 13 14). * @return array */ public function getPageRange($range=null) { if (1 == $this->getPages()) return array(1); $range = (is_numeric($range) and 0 < $range) ? (int)$range : DEF_RANGE; //CONST DEF_RANGE = 3; $prev = $this->getPage() - $range; $next = $this->_page + $range; $start = $this->getPages() < $next ? $this->_pages - $next + $prev : $prev; $stop = 1 > $prev ? $next - $prev + 1 : $next; $start -= $this->_pages <= $stop ? 1 : 0; $stop += 1 >= $start ? 1 : 0; $start = 1 < $start ? $start : 1; $stop = $this->_pages > $stop ? $stop : $this->_pages; //не то! ^_^ я уже лучше придумал. if ($start == $stop) return array(1); $array = range($start, $stop); if (1 < $start) { array_unshift($array, 1); } if ($this->_pages > $stop) { $array[] = $this->_pages; } return $array; }?>

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

Неактивен

#86 2012.01.04 11:24

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

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

Akdmehp написал:


255, tipsun, смотрю навигацию в "живом" режиме.
Приятно, что используется
phpDoc - это плюс.
Итак, не совсем понял, зачем
делать так: $_count=null;
приравнивание переменной значению null равно её
удалению. То есть, ты
создаешь переменную, удаляя
её. Проще либо приравнивать
нулю или значениям по-
умолчанию, либо так: private $_count, $_page,
$_pages, $_start, $_tmpPage =
1, $_items = 10;
Не хватает для наглядности
примера использования.
Плохо, что нету конструктора, так было бы намного
нагляднее, советую добавить
конструктор.
Также по правилам хорошего
тона имя класса делаем с
большой. в phpDoc после * @param mixed
$count указываем что эта
переменная значит - по
правилам хорошего тона, ну и
после return указываем, что
именно возвращает. Советую использовать в
классе систему try/catch, это
будет намного логичнее, чем
генерировать ошибки.
Пример конструктора на твоем
коде, хотя я все равно бы код рефакторил:
__construct($count, $page,
$items);
Просмотрел. В принципе,
работы очень много, все можно
переделать короче и лучше, используя в два раза меньше
методов, так как это в свою
очередь запутывает код. В общем, работай дальше!

Благодаря Gemorroj'ю (насчет phpDoc) плюс заработал smile
Добавлено спустя   5 минут  51 секунду:
Я вот уже думаю насчет рефактора кода и конструктор, в принципе, добавить не проблема.
Добавлю конструктор а переменные буду обрабатывать методами, которые принимают данные.
try/catch даже не знаю че такое, придется учить.
Насчет $var = null; даже не знал.

Отредактировано tipsun (2012.01.04 11:34)

Неактивен

#87 2012.01.04 11:31

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

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

>> приравнивание переменной значению null равно её
удалению.
нет, это не так. если переменная существует (даже со значением null), под нее уже выделена память.
в остальном все так.
ссылки на стандарты кодирования
http://pear.php.net/manual/ru/standards.php
http://framework.zend.com/manual/ru/cod … ndard.html
я бы советовал придерживаться зендовских соглашений. PEAR отличается в мелочах.

Неактивен

#88 2012.01.04 11:41

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

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

Gemorroj, ок. Спс. smile

Неактивен

#89 2012.01.04 12:54

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

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

С телефона не комфортно читать... Потом с компа еще раз прочту.

Неактивен

#90 2012.01.04 19:40

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

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

Gemorroj написал:

phpDoc не совсем верные
@return object замени на @return pageMan
@param mixed $count на @param integer $count
и тд. так же убери pageMan::getTable() и проч, как будто ты описываешь статические методы.
а так, не вдаваясь в подробности выглядит норм.

Сделано.


Вложения

Отредактировано tipsun (2012.01.04 19:50)

Неактивен

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

forum.wapinet.ru

PunBB Mod v0.6.2
0.014 s