Hi! I have updated the numbers function, the bold areas are the updated 
parts, please tell me if I did wrong, or if you have better code to 
replace. I did this because currentTag was not available under numbers 
function so I had to add my self.


public function numbers($options = array()) {
if ($options === true) {
$options = array(
'before' => ' | ', 'after' => ' | ', 'first' => 'first', 'last' => 'last'
);
}

$defaults = array(
'tag' => 'span', 'before' => null, 'after' => null, 'model' => 
$this->defaultModel(), 'class' => null,
'modulus' => '8', 'separator' => ' | ', 'first' => null, 'last' => null, 
'ellipsis' => '...', 'currentClass' => 'current', *'currentTag' => null
* );
$options += $defaults;
$params = (array)$this->params($options['model']) + array('page' => 1);
unset($options['model']);
if ($params['pageCount'] <= 1) {
return false;
}
extract($options);
unset($options['tag'], $options['before'], $options['after'], 
$options['model'],
$options['modulus'], $options['separator'], $options['first'], 
$options['last'],
$options['ellipsis'], $options['class'], 
$options['currentClass'],*$options['currentTag']
* );
$out = '';
if ($modulus && $params['pageCount'] > $modulus) {
$half = intval($modulus / 2);
$end = $params['page'] + $half;
if ($end > $params['pageCount']) {
$end = $params['pageCount'];
}
$start = $params['page'] - ($modulus - ($end - $params['page']));
if ($start <= 1) {
$start = 1;
$end = $params['page'] + ($modulus - $params['page']) + 1;
}
if ($first && $start > 1) {
$offset = ($start <= (int)$first) ? $start - 1 : $first;
if ($offset < $start - 1) {
$out .= $this->first($offset, compact('tag', 'separator', 'ellipsis', 
'class'));
} else {
$out .= $this->first($offset, compact('tag', 'separator', 'class', 
'ellipsis') + array('after' => $separator));
}
}
$out .= $before;
for ($i = $start; $i < $params['page']; $i++) {
$out .= $this->Html->tag($tag, $this->link($i, array('page' => $i), 
$options), compact('class')) . $separator;
}
if ($class) {
$currentClass .= ' ' . $class;
} 

$out .= $this->Html->tag($tag, $params['page'], array('class' => 
$currentClass));
if ($i != $params['pageCount']) {
$out .= $separator;
}

$start = $params['page'] + 1;
for ($i = $start; $i < $end; $i++) {
$out .= $this->Html->tag($tag, $this->link($i, array('page' => $i), 
$options), compact('class')) . $separator;
}
if ($end != $params['page']) {
$out .= $this->Html->tag($tag, $this->link($i, array('page' => $end), 
$options), compact('class'));
}
$out .= $after;
if ($last && $end < $params['pageCount']) {
$offset = ($params['pageCount'] < $end + (int)$last) ? $params['pageCount'] 
- $end : $last;
if ($offset <= $last && $params['pageCount'] - $end > $offset) {
$out .= $this->last($offset, compact('tag', 'separator', 'ellipsis', 
'class'));
} else {
$out .= $this->last($offset, compact('tag', 'separator', 'class', 
'ellipsis') + array('before' => $separator));
}
}
} else {
$out .= $before;
for ($i = 1; $i <= $params['pageCount']; $i++) {
if ($i == $params['page']) {
*$options['class'] = $currentClass;
** $out .= $this->Html->tag($tag, $this->link($i, array('page' => $i)), 
$options);
* } else {
$out .= $this->Html->tag($tag, $this->link($i, array('page' => $i), 
$options), compact('class'));
}
if ($i != $params['pageCount']) {
$out .= $separator;
}
}
$out .= $after;
}
return $out;
}


-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to