2014-01-23 3 views
4

Я использую компонент Paginator и помощник.Cakephp Paginator Custom Styling

Мой блок кода для стилизации выглядит следующим образом.

<!-- Pagination --> 
    <div class="pagination"> 
     <ul class="pages"> 
      <li class="prev"><a href="#">&lt;</a></li> 
      <li><a href="#" class="active">1</a></li> 
      <li><a href="#">2</a></li> 
      <li><a href="#">3</a></li> 
      <li class="next"><a href="#">&gt;</a></li> 
     </ul> 
    </div> 

Когда я пытаюсь создать нумерацию страниц, используя следующую

<!-- Pagination --> 
<div class="pagination"> 
    <ul class="pages"> 
     <?php if($this->Paginator->hasPrev()) echo $this->Paginator->prev('&lt;', array('tag' => 'li', 'escape' => false)); ?> 
     <?php echo $this->Paginator->numbers(array('separator' => false, 'tag' => 'li', 'currentClass' => 'active')); ?> 
     <?php if($this->Paginator->hasNext()) echo $this->Paginator->next('&gt;', array('tag' => 'li', 'escape' => false)); ?> 
    </ul> 
</div> 

Активный класс дается в li tag, но мой шаблон использует активный класс к a-href tag

есть ли способ я могу сделать торт дать его a tag?

+0

Вы не можете изменить свой css? Используйте перемещение. – Rikesh

+0

@Rikesh Я использую шаблон и не хочу. если я смогу сделать это через торт –

ответ

1

Для этого вам необходимо расширить и переопределить метод PaginatorHelper::number().

Затем используйте свое настроенное вспомогательное приложение для paginator, используя функцию сглаживания, чтобы сделать его доступным как $ this-> Paginator в ваших представлениях, чтобы заменить его во всех представлениях.

public $helpers = array(
    'Paginator' => array(
     'className' => 'MyPaginator', 
    ) 
); 

Вместо того, чтобы перезаписать весь метод, который вы могли бы сделать это так:

public function numbers($options = array()) { 
    $numbers = parent::numbers($options); 
    /* see explanation below */ 
    return $numbers; 
} 

Объяснение: Использование DOM или регулярное выражение для поиска, редактирования и заменить элемент <li class="active"><a></a></li> активным <li> с модификацией. Это может быть лучшим способом, потому что, если изменение основного поведения вам просто нужно использовать вместо вашей логики замены вместо того, чтобы выяснить, что изменилось в коде и обновить ваш метод. This bootstrap paginator helper does it this way.

+0

проклятый. я думаю, что его проще просто добавить новый класс: P –