【问题标题】:How to have different pagers on different pages on a drupal site如何在 drupal 站点的不同页面上使用不同的寻呼机
【发布时间】:2011-04-27 16:09:13
【问题描述】:

我了解如何使用 theme_pager() 创建自己的自定义寻呼机,但我将如何在不同页面上拥有不同样式/配置的页面。

例如。

首页样式:[首页] [] [末页>]

内页:[]

浏览量:[] [>>]

注意:

第一个寻呼机是默认寻呼机

第二页没有第一个/最后一个按钮

第 3 个寻呼机使用图像作为按钮,并且具有不同数量的可见页面链接

我最初的想法是在 theme_pager() 中测试路径以确定要渲染的样式。

我觉得这不对,有更好的方法吗?

【问题讨论】:

    标签: drupal drupal-6 pagination


    【解决方案1】:

    我建议进行您所说的修改的最简单方法是使用 CSS。由于您没有更改分页器列表中的项目数,因此这三种分页器样式的标记可能相同。

    用户 firebug 检查您主题中的现有分页器,以发现您的 css 中分页器样式的编码位置。如果您的主题已经为它们编码,那么只需修改现有代码。如果代码只是从drupal核心中提取,那么您可以通过在主题中声明一个新的来覆盖整个css文件,或者只是将css规则的新副本放在您的主题的css文件中。

    为了制作不同版本的寻呼机,您必须确定某种方法来隔离您希望以不同方式设置主题的寻呼机。这可以使用大多数 drupal 主题具有的主体类,或使用您尝试更改寻呼机的视图/块的类/ID 来完成。如果您有大量需要应用此分页器样式的视图,那么您可以使用类似 skinr 定义分页器样式,并将规则附加到适当的视图/块。

    主页样式看起来像默认的 drupal 东西。 内页:您只需要为第一个和最后一个链接添加 display:none。 视图:为此,您将需要使用 css 图像替换,如下所示:

    /* set up defaults for all buttons */
    .pager .next,
    .pager .previous,
    .pager .first,
    .pager .last {
      text-indent:-9999px; /* hide text on the link */
      text-align:left;
      overflow:none;
      height:20px;
      width:20px;
      line-height:20px;
      dislay:block;
      background: transparent url(../images/pager-sprite.png) no-repeat 0px 0px; /* set a background image */
    }
    /* for each button, offset the position of the background sprite image */
    .pager .previous {
      background-position: 20px 0px;
    }
    /* note that your sprite can also contain hover states for the images */
        .pager .previous:hover {
          background-position: 20px 20px;
        }
        .pager .next:hover {
          background-position: 0px 20px;
        }
    .pager .first {
      background-position: 40px 0px;
    }
        .pager .first:hover {
          background-position: 40px 20px;
        }
    .pager .last {
      background-position: 60px 0px;
    }
        .pager .last:hover {
          background-position: 40px 20px;
        }
    

    ** 注意:此代码不会按原样工作......这只是这个想法的粗略概述,您必须对其进行调整以使其适用于寻呼机。您应该将您的 css 选择器基于您在 drupal 核心或主题中找到的选择器。此外,您可能需要浮动分页器列表项或删除 display:block 属性,或根据您的需要进行其他调整等。

    如果视图样式分页器是最常见的,您可能希望将其设为您的默认分页器样式,但请注意,如果您这样做,那么您的更具体的样式将不得不取消设置已设置的所有其他属性这种定制的寻呼机样式。

    祝你好运……

    【讨论】:

    • 遗憾的是,要求之一是在寻呼机列表中有不同数量的项目。我已经修改了我的问题以反映这一点。不错的答案不过:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多