Вы не зашли.
Главная » PHP » Функция навигации по страницам
#81. tipsun Off (19)
Moderator
2011.12.20 23:11
Математика у меня в pageMan::pageRange() неправильная, мне кажется.
Хотя там все работает верно.
Если расчитать все четко не получится, то увы. Будет как есть.
Отредактировано tipsun (2011.12.20 23:11)
#82. Nu3oN Off (11)
Moderator
2011.12.21 09:09
Я с телефона, и половины темы не осилил! Код обрезает ппц! Убери для вап версии, в стиле (забыл как называеется) скроулинг
Я буду лучше голоден, но между креслом и рулем и на дороге.
#83. Gemorroj Off (107)
Administrator
2011.12.21 12:12
Nu3oN, уберу
#84. tipsun Off (19)
Moderator
2011.12.23 15:03
Нет, чет лучше и проще никак не могу придумать. sad
Отредактировано tipsun (2011.12.23 16:04)
#85. tipsun Off (19)
Moderator
2011.12.23 19:07
Единственное, что в голову приходит - это оптимизация.
Сейчас поправки внесу и выложу.

Вот. (Этот гребаный виндовс завирусованный, после восстановления мои архивы пропали! >_<)
Код:
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:08)
#86. tipsun Off (19)
Moderator
2012.01.04 11:11
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:11)
#87. Gemorroj Off (107)
Administrator
2012.01.04 11:11
>> приравнивание переменной значению null равно её
удалению.
нет, это не так. если переменная существует (даже со значением null), под нее уже выделена память.
в остальном все так.
ссылки на стандарты кодирования
http://pear.php.net/manual/ru/standards.php
http://framework.zend.com/manual/ru/cod … ndard.html
я бы советовал придерживаться зендовских соглашений. PEAR отличается в мелочах.
#88. tipsun Off (19)
Moderator
2012.01.04 11:11
Gemorroj, ок. Спс. smile
#89. tipsun Off (19)
Moderator
2012.01.04 12:12
С телефона не комфортно читать... Потом с компа еще раз прочту.
#90. tipsun Off (19)
Moderator
2012.01.04 19:07
Gemorroj написал:
phpDoc не совсем верные
@return object замени на @return pageMan
@param mixed $count на @param integer $count
и тд. так же убери pageMan::getTable() и проч, как будто ты описываешь статические методы.
а так, не вдаваясь в подробности выглядит норм.
Сделано.
Вложения
pageMan_test.zip 2kb [загрузок: 455]
Отредактировано tipsun (2012.01.04 19:07)
Страниц: 17 8 9 10 1116 Все
Главная
WEB
PunBB Mod v0.6.2
0.018 s