2010-10-27 84 views
1

我需要在这里向正确的方向指向一些的是...显示内容的Drupal

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

我该如何解决这个问题?

我一直在想几个解决方案,不知道哪一个是可能的,哪一个最好或哪个我可以组合。

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

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

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

  4. 为视图显示新的显示风格,显示固定高度的两栏中的内容。

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

希望和指导很多。不寻找完成的解决方案,我不害怕编码,如果我创建了别人可以使用的东西(比如视图插件),我会回馈。只需要有人引导我在正确的方向:)

回答

1

最困难的事情是弄清楚你需要多少内容来填充空间。这并不是一个好的方法,因为它取决于标记和样式。

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

这不是一个完美的解决方案,但我认为你应该看看用JavaScript做到这一点。唯一的问题是,它不会非常好地退化。

+0

还没有想过用JavaScript来做它。肯定会想到它。如果我能够获得包含该节点的div的高度,那么通过选择要输出的节点数来解决很多问题。也可以使用JavaScript来操纵传呼机。我可以从本书每页上的5个节点开始,然后将节点从第一页移动到第二页,并根据需要从第二页移除节点。如果javascript被禁用,用户会得到一本奇怪的尺寸的书,但那不是世界末日。谢谢! – Nasso 2010-10-27 09:13:58

0

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

您提供的第五种解决方案比其他解决方案有点麻烦。编写一个具有“前戏喜欢”行为的函数,我将根据其类型返回格式化节点。不要躺在Drupal的传情系统上。如果玩家将拥有不同的高度,请将高度添加到传情功能。

+0

我不想以任何方式裁剪节点。我想显示完整的内容。它现在倾向于一个完全自定义的模块,虽然... – Nasso 2010-10-27 06:56:08

0

我没有直接的答案,但有几件事情需要您思考。

在我看来,您所寻找的是CSS3多列布局(例如参见http://www.quirksmode.org/css/multicolumn.html)并将显示内容限制在固定高度。我的第一个想法是创建一个单一的视图,获取超过您的需要,使用CSS3列显示它,并设置溢出:隐藏;对于容器,这样多余的文本就会隐藏起来。

如果您需要更加特别,您可能需要深入到视图渲染系统,以根据呈现的字符数来限制节点的总数。

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

有些事情不清楚您的要求。这两种内容类型的用途是什么?一个显示在左边而另一个显示在右边?或者,这些只是2种不同的内容类型应该以同样的方式运行,但我们只能在给定页面上同时看到一种内容类型?内容溢出应该发生什么?它是否应该在第2页上动态显示,然后是3,然后是4等等?

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

+0

感谢您的回答。将看看CSS。该网站看起来像一本书。它将包含几种内容类型。他们将在内容类型后订购。例如,可以先记日记,然后是电影引用,然后可以有编码小数。一旦用户翻阅了所有日记文章,该书应该开始列出电影引用等等。可能会出现左列和右列有一种内容类型的情况。不能有js换页。需要有可以参考书中特定页面的网址。 (还是)感谢你的建议。 – Nasso 2010-11-15 07:31:55