答案很簡單:
我不相信這是可以與Paginator Helper。
如果你只是想一個鏈接到當前頁面,但不帶編號的鏈接內需要它,你可以使用
echo $this->Html->link($this->Paginator->counter('{:current}'), 'yourLinkHere');
但是,這並不是說非常有用,因爲你依靠分頁程序助手爲您照顧其他鏈接。
擴展答案/可能性
你可以像這樣的東西下面延伸PaginatorHelper。基本上,我只是刪除檢查,看看它是否是當前頁碼。然後,您必須使用MyPaginatorHelper
來建立鏈接。這也會使其忽略currentClass
選項等等。但是 - 通過對代碼進行更多的調整,你可以使它成爲同樣的東西,但也建立一個鏈接,而不是僅僅去除IF檢查。
class MyPaginatorHelper extends PaginatorHelper {
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'
);
$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']
);
$out = '';
$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') + 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') + array('before' => $separator));
}
}
}
return $out;
}
}
你正在使用cakephp的cersion? – 2012-07-13 07:32:13
嘗試讓分隔符錯誤並嘗試 – 2012-07-13 07:36:08
我嘗試將分隔符設置爲false,但它產生了相同的結果,並且我使用的是蛋糕2.0.5。 – cyphun 2012-07-13 07:59:47