1

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

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

我应该如何处理这个?

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

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

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

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

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

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

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

4

3 回答 3

1

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

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

这不是一个完美的解决方案,但我认为您应该考虑使用 JavaScript 来执行此操作。唯一的问题是,它不会很好地优雅地降级。

于 2010-10-27T07:24:38.217 回答
0

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

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

于 2010-10-27T06:53:41.193 回答
0

我没有直接的答案,但有一些事情让你想想。

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

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

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

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

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

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

于 2010-11-14T20:02:41.887 回答