【问题标题】:Cakephp Paginator Custom StylingCakephp 分页器自定义样式
【发布时间】:2014-01-23 22:04:34
【问题描述】:

我正在使用分页器组件和助手。

我的样式代码块如下。

    <!-- 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>

Active 类提供给 li tag,但我的模板将活动类用于 a-href tag

有什么方法可以让我把蛋糕送给a tag

【问题讨论】:

  • 你不能改变你的css吗?使用遍历。
  • @Rikesh 我正在使用模板但不想这样做。如果我能通过蛋糕完成它

标签: cakephp pagination cakephp-2.4


【解决方案1】:

为此,您必须扩展和覆盖 PaginatorHelper::number() 方法。

然后使用您自定义的分页器助手应用程序,通过使用别名功能使其在您的视图中用作 $this->Paginator 以在所有视图中替换它。

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

您也可以这样做,而不是覆盖整个方法:

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

说明:使用DOM 或正则表达式查找、修改&lt;li class="active"&gt;&lt;a&gt;&lt;/a&gt;&lt;/li&gt; 活动&lt;li&gt; 元素并将其替换为您的修改。这可能是更好的方法,因为如果核心行为发生变化,您只需要熟练使用替换逻辑,而不必弄清楚代码中发生了什么变化并更新您的方法。 This bootstrap paginator helper does it this way.

【讨论】:

  • 该死的。我认为添加一个新类更容易:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
  • 1970-01-01
  • 2019-12-10
相关资源
最近更新 更多