【问题标题】:Display content in two columns with fixed height in drupal在drupal中以固定高度在两列中显示内容
【发布时间】:2010-10-27 06:41:11
【问题描述】:

我需要一些指向正确的方向...

我有一个包含几种不同内容类型的网站。我想以类似书本的布局显示此内容。这本书应该具有固定的宽度和高度,并且页面应该填充尽可能多的节点。它应该分两列,左列在右列之前填充。

我应该如何处理这个问题?

我一直在考虑几个解决方案,不知道哪些是可能的,哪个是最好的,或者我可以结合哪个。

  1. 我可以创建一个视图来选择比需要更多的节点。然后检查节点在主题层中的时间,并丢弃不需要的节点。寻呼机也需要修复。

  2. 如果可能的话,将面板与视图结合使用以在两列中显示一个视图。需要一种方法来根据内容长度确定每个页面上显示的节点数量。

  3. 为视图编写一个插件/处理程序,以便我可以选择具有最大、预定、最大内容长度的节点数量。

  4. 为视图编写新的显示样式,以固定高度的两列显示内容。

  5. 编写一个自定义模块,将视图和面板排除在外,并使用 db_queries 自己完成所有工作。

非常感谢和指导。不是在寻找一个完整的解决方案,我不害怕编码,如果我创建了其他人可以使用的东西(比如视图插件),我会做出贡献。只需要有人指引我正确的方向:)

【问题讨论】:

    标签: drupal drupal-views drupal-theming drupal-panels


    【解决方案1】:

    最难的事情是弄清楚你需要多少内容才能填满空间。也没有真正的好方法,因为它取决于标记和样式。

    我能想到的最佳解决方案是使用 javascript 加载节点,或者只是将它们用作 javascript 变量。这样您就可以将节点一一插入到您的页面中。然后你可以在JS中看到所有节点的总高度,一旦这个高度大于x,你只需要删除最后一个插入的节点。

    这不是一个完美的解决方案,但我认为你应该考虑用 JavaScript 来做这件事。唯一的问题是,它不会很好地优雅地降级。

    【讨论】:

    • 没想过用 JavaScript 来做。肯定会考虑的。如果我能够获得包含该节点的 div 的高度,它可以解决很多选择要输出多少节点的问题。还可以使用 javascript 操作寻呼机。我可以从书的每一页上具有 5 个节点的视图开始,然后将节点从第一页移动到第二页,并根据需要从第二页中删除节点。如果禁用 javascript,用户会得到一本尺寸奇特的书,但这不是世界末日。谢谢!
    【解决方案2】:

    Drupal 帮助您快速构建,它看起来很有前途,但未能满足客户、设计师和程序员的需求。您需要编写一个模块页面,以及一些功能。

    您提供的第 5 个解决方案比其他解决方案几乎没有问题。编写一个具有“类似预告片”行为的函数,我将根据其类型返回格式化节点。不要躺在drupal 的预告系统上。如果预告片有不同的高度,请在预告片函数中添加高度。

    【讨论】:

    • 我不想以任何方式裁剪节点。我想显示完整的内容。不过,它现在倾向于完全自定义的模块......
    【解决方案3】:

    我没有直接的答案,但有一些事情要你考虑。

    在我看来,您正在寻找的是 CSS3 多列布局(例如参见 http://www.quirksmode.org/css/multicolumn.html)和将显示内容限制为固定高度的组合。

    我的第一个想法是创建一个比您需要的更多的视图,使用 CSS3 列显示它,并设置溢出:隐藏;对于容器,以便隐藏额外的文本。

    如果您需要更具体,您可能需要深入查看视图渲染系统,以根据已渲染的字符数限制节点总数。

    但是由于您想要的约束比面向数据更直观,我认为最实用的方法是使用 javascript 来检测文本高度和溢出状态。

    您的要求有一些不清楚的地方。这两种内容类型的目的是什么?一个显示在左边,另一个显示在右边吗?或者这只是两种不同的内容类型,它们的行为方式应该相同,但我们在给定页面上一次只能看到一种内容类型?溢出的内容应该怎么办?是否应该动态显示在第 2 页、第 3 页、第 4 页,以此类推?

    一个分离的想法:也许将您想要翻页的所有内容直接加载到浏览器。也许让它开始隐藏。然后用javascript显示,格式化成列,也用javascript处理分页。

    【讨论】:

    • 感谢您的回答。将看看css。该网站看起来像一本书。它将由几种内容类型组成。它们将在内容类型之后排序。例如,可能首先是日记,然后是电影引用,然后可能是 coden-ps。一旦用户翻阅了所有日记帖子,这本书应该开始列出电影引用等。可能存在这样一种情况,即左列有一个内容类型,而右侧有一个内容类型。不能有用于页面更改的 js。需要有可以引用书中某个页面的url。不过感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多