Drupal的结构布局 -- panels 领域 和 theming 领域 drupal 相关 的问题

Structured layout in Drupal


2
vote

问题

中文

我很难了解如何在Drupal中接近布局。我想创建一个(授权)用户没有设计技能的用户可以通过简单地添加内容选择特定内容类型来添加内容。

所以例如我想拥有一种类型的页面,该页面包括许多部分(行),在一侧上的图像(应该是替换哪一侧)和另一侧的标题和文本。如果标题和文本在右侧,标题应该在文本之上,而不是在左侧的图像之上。

应该可以添加任意数量的部分/行。

我设法用面板和迷你面板做这样的事情。但似乎我努力实现感觉相当基本的东西......在任何情况下,我所做的是我添加了一个页面选择面板,其中包含1列布局。这允许我任意添加行。这里的第一个问题是,最终用户必须自己选择这一点,我本来希望拥有预设的内容类型。

其次,我创建了一些迷你面板,内容可以添加到面板页面的部分。更多问题:要创建这些迷你面板并使它们如上所述置于我必须创建一个2列格式的迷你面板,省略标题,仅使用添加自定义内容选择将图像添加到其中一个列 - 没有标题,并将标题和某些文本添加到另一栏。

所有这一切都是相当复杂的只是为了实现这个布局。它让我思考只需使用WYSIWYG编辑器更容易,并手动将其全部放入。但这只是我想要避免的事情。最终用户会提出各种布局,创建一个没有结构化感觉的网站...

以前我只在php和codeigniter框架中完成了站点,在那里我自然地拥有完全控制,可以只添加我想要的div,使用960或蓝图来帮助使用布局,用css单独使用它。但这依赖于自己自己或至少只有其他了解某些网络设计的人。我不知道是否基于960的模块或类似的内容,因为我需要能够任意添加部分等?我所看到的只是面板,但也许我错了?

那么你如何在Drupal接近这个?任何帮助都会受到大欣赏的,因为我真的很难了解Drupal中的布局的基本思想...

编辑:

这是我参考的布局类型的一个很好的例子: http://www.teamworkpm.net /功能

英文原文

I'm having trouble understanding how to approach layout in Drupal. I want to create a structure where (authorized) users with no designing skills can add content by simply adding content selecting a particular content type.

So e.g. I want to have one type of page that consists of a number of sections (rows) with an image on one side (should be possible to alternate which side) and a heading and text on the other side. If the heading and text is on the right, the heading should be just above the text, and not above the image to the left.

An arbitrary number of sections/rows should be possible to add.

I've managed to do something like this with panels and mini-panels. But it seems like I'm trying very hard to achieve something that feels rather basic... In any case, what I did was I added a page selecting panels with the 1-column layout. This allows me to add rows arbitrarily. First problem here is, the end user would have to select this on their own, I would have liked to have a preset content type with this.

Secondly, I created some mini-panels with content that can be added to the sections of the panel page. More problems: to create these mini-panels and make them lay out as described I have to create mini-panels of a 2-column format, omit the title, add only an image to one of the columns using add custom content selection - no title, and add a title and some text to the other column.

All of this is rather complex just to achieve this layout. It makes me think it would be much easier to just use a wysiwyg editor and lay it all out manually instead. But that is just what I'm trying to avoid. End users would come up with all kinds of layouts, creating a site that does not have a structured feel at all...

Previously I have only done sites in php and CodeIgniter framework, where I naturally have full control and can just add the divs I want, using something like 960 or blueprint to help with layouts, and style it individually with css. But that is dependent on doing it all yourself or at least with only others who know at least some web design. I don't know if modules based on 960 or something like that would help, since I need to be able to add sections etc arbitrarily? All I've seen for this is panels, but maybe I'm wrong?

So how do you approach this in Drupal? Any help will be greatly appreciated, because I'm really having a hard time understanding the basic thinking of layout in Drupal...

Edit:

this is a good example of the type of layout I'm referring: http://www.teamworkpm.net/features

     

回答列表

3
 
vote

首先,我是一个大面板的粉丝,所以我肯定认为你应该使用它,但我不确定这是你试图实现的任务是最好的。

一些选项,在我的感受是对你的有用的下降顺序。

  1. 由于它听起来有必要将多个字段混合到单个渲染元素中,您可以实现CTools"内容类型" 。 如何创建一个新的ctools插件应该在这里有所帮助。这易于允许您在每个实体上呈现字段的任何自定义逻辑。您仍应通过声明自己的模板来将逻辑分解逻辑。请参阅正确的方法来渲染通过a输出的模块模板?
  2. 如果您描述的输出完全占主导地位,那么移动渲染级别可能会有意义。面板"布局" -Plugin可能是有用的。来自上面的插件链接仍然是有关更多信息的源。
  3. 如果与个人字段合作有意义,我怀疑在您的情况下,自定义字段格式化器可能是您要查找的。查看如何制作字段x的输出看起来像y?
  4. 这个是大多数人的投机,我没有尝试过,但如果你正在使用一个字段集合< / a>,它是一个实体,也许你可以使用显示套件控制它的输出,然后有面板呈现内联。或者您可以跳过DS并直接模板FC实体。
 

First of all, I'm a big Panels fan, so I definitely think you should be using it, but I'm not sure it's the best for the task you are trying to achieve.

Some options, in what I feel is descending order of usefulness to you.

  1. Since it sounds like it's necessary for you to mix several fields into a single render element, you could implement a Ctools "content type". How does one create a new ctools plugin should be helpful here. This easily allows you any custom logic in rendering the fields on a per entity basis. You should still separete the logic from the rendering, by declaring your own template. See Correct way to render a modules output through a template?
  2. If the output you describe above completely dominates the page, then perhaps it would make sense to move the rendering up a level. A panels "layout"-plugin could be useful instead. The plugin link from above is still the source for more information.
  3. If it makes sense to work with individual fields, which I doubt in your case, a custom field formatter could be what you are looking for. See How do I make the output of field X look like Y?
  4. This one is mostly speculcation, I haven't attempted it, but if you are working with a Field collection, it being an entity, perhaps you can use Display suite to control it's output, and then have Panels render it inline. Or you could skip DS and directly template the FC entity.
 
 
   
   
0
 
vote

你看过内容类型吗?您可以使用您需要的字段类型定义自己的类型。一旦您可以调整CSS,可以调整您的CSS,可能是一些主题覆盖您的喜好。还有很多模块为内容类型和字段提供了额外的功能。

我也可以以像 zen 创建一个超自然的主题。

一些她非常有用的工具:

  • 主题开发人员轻松找到主题函数和模板名称)
  • 火bug (以防我不知道)
 

Did you have a look at content types? You can define you're own types with what ever field types you need. Once you have the data you can adjust your CSS and may be some theme overrides to your liking. There are also a lot of modules providing additional functionality for content types and fields.

I also sugest to start with a standar theme like zen and create a subtheme.

Some tools that her very helpfull:

  • Theme Developer (find theme functions and template names easily)
  • Fire Bug (just in case you don't know)
 
 
0
 
vote

您正在寻找像 Panopoly 。看看它。

 

You're looking for something like Panopoly. Take a look at it.

 
 
0
 
vote

面板和朋友(Panopoly等)可能是一个解决方案。 就个人而言,我是没有面板的人,所以我将在没有面板的情况下解释一个解决方案,以便多样。

所以例如我想拥有一种类型的页面,包括许多 一侧上的图像(行)部分(应该是可能的 替代侧面)和另一侧的标题和文本。

看起来像x"的每个节点相同的布局的典型情况。 因此,您可以使用某些字段(图像字段,文本字段)创建节点类型,然后使用显示套件安排这些东西。

似乎您希望两种不同的方式显示这些页面:图像位于左侧或右侧。这可以通过使用显示套件定义附加的"视图模式" 来完成,然后启用一个选项,您可以在其中选择每个节点的视图模式。

对于"部分" ,如果您想要的东西比仅仅是文本更奇特,您可以使用"块引用" 字段。更多关于这个这里。

这一切都取决于您想要允许客户端的要做程度,以及您认为太复杂,而且想要做自己,而不是向客户解释。

 

Panels and friends (panopoly, etc) could be a solution. Personally I am the no-panels man, so I am going to explain a solution without panels, for the sake of diversity.

So e.g. I want to have one type of page that consists of a number of sections (rows) with an image on one side (should be possible to alternate which side) and a heading and text on the other side.

Looks like a typical case of "same layout for each node of type X". So you could create a node type with some fields (an image field, a text field) and then use Display suite to arrange this stuff.

It seems you want two different ways to display these pages: Either the image is on the left or on the right. This can be done by defining an additional "View mode" with Display suite, and then enable an option where you can choose the View mode per node.

For the "sections", if you want something more fancy than just text, you could use a "block reference" field. More on this here.

This all depends on how much you want to allow the client to do, and what you consider too complicated and rather want to do yourself instead of explaining to the client.

 
 

相关问题

1  面板覆盖能力  ( Panels overlay capability ) 
我正在用D7建造,并寻找一种简单的方法来构建呈现为叠加的页面。 如果可以将面板配置为将其内容吐出到覆盖层 - 核心管理叠加层,则不会令人敬畏。 有人见过这样的东西吗?值得建设吗? ...

0  从菜单链接文本而不是标题字段拉动面包屑项目(D7)  ( Pulling breadcrumb items from the menu link text instead of title field d7 ) 
我的一些页面是从菜单链接文本中拉动最后一个面包屑项的文本。我的其余页面正在从标题字段中拉动最后一个面包屑项的文本。我想要的是所有面包屑从菜单链接文本中拉动。 我正在使用菜单面包卷模块(应用于问题的所有页面),这允许将页面的菜单链接文本添加到backcrumbs,但我没有启用此选项。我的主题(omega的衍生物)必须是...

1  使用面板并排的联系表格和GMAP  ( Side by side contact form and gmap using panels ) 
我需要一个"联系我们" 页面,该页面与联系人表格和谷歌地图并排。 因此,我启用了核心"联系人" 模块并安装了 gmap 模块。我也安装了 面板模块和 ctools 模块以创建具有两列布局的页面。 我成功将联系人表格添加到面板页面的左列中,但我无法将映射添加到右栏中。我以为我可以轻松地将GMAP块添加到列中,但我找不到...

1  我应该如何代码列布局?  ( How should i code a column layout ) 
我是德鲁佩尔的新手,我认为很多关于在我的级别刨专栏布局。在每列中,有一个节点的提示列表。我有一行用3列,接下来有2列......我无法上传样机,但我希望你想象我正在研究什么。重要的是将节点列表分组到不同的列。 那么我应该用什么来代码?块?意见?有面板的东西?目前我有点困惑所有这些选项... 问候 ...

0  以不同方式显示内容  ( Displaying content in different ways ) 
我在这里遇到一个问题,对于一个新的项目,一个主页可以具有不同的布局。 例如: ----------------- | N | C | | E | O | | W | N | | S | T | | | E | | | ...

2  如何在面板中嵌入编辑用户配置文件页面  ( How to embed edit user profile page in a panel ) 
我正在尝试嵌入编辑用户配置文件页面(即在URL Domain.Com/User/27/Edit处出现的内容)到面板中。我已经搜索了高低,但如何执行此操作,但我找不到任何信息。是否有可能做到这一点?有理由我问的是我想清理用户的个人资料页面,以便它看起来更专业,更容易使用。 任何人都可以指向我的正确方向,了解如何完成这...

2  将自定义表单添加到面板?  ( Add custom form to panels ) 
如何将自定义表单添加到Drupal 7中的面板页面? return drupal_get_form('my_custom_form'); 如果可能,我不希望使用PHP输入过滤器。 ...

0  如何在页面(面板)内构建动态的超链接?  ( How to build a dynamic hyperlink within a page panels ) 
在带有面板和令牌的Drupal 7站点上,我有一个内容类型的事件。对于我喜欢添加超链接/按钮的"页面" (面板),将事件添加到个人Google日历中。这需要在其中构建具有一些查询参数的超链接。例如: <a href="http://www.google.com/calendar/event?action= T...

15  改变面板生产的HTML:是否有可能?  ( Changing the html produced by panels is it possible ) 
我喜欢使用面板,但是面板是屁股疼痛的风格,因为它产生了大量的div。它适用于那些div的课程没有意义,也是太笨重的。导致我的前端的混淆。 向您展示它们生成的输出: 问题是我使用960.gs和面板添加了自己的课程和笨重的div结构,让我必须覆盖他们的课程。这是我不想做的事情,我想清理潜艇。有没有办法来做这个? ...

16  如何在豆子,盒子和现实的面板窗格之间进行选择?  ( How to choose between bean boxes and fieldable panels panes ) 
bean , boxes 和 Fieldable Panels Panes 所有这些都提供了类似的功能。我无法理解它们之间的差异是什么。 他们的优势/缺点彼此相比?他们是否适合不同用例? 我想在面板中使用某种块来添加自定义内容 - 内容编辑器还需要能够添加内容,在那个感觉中我需要的块不是纯粹的配置。但我也使用功能...

0  将内容从其他节点从其他节点拉到面板节点中  ( Pulling content from other nodes into a panel node ) 
我正在使用面板节点*让用户创建具有不同布局的内容。我想要在其中一个面板中显示另一个节点。 当我创建面板节点并转到创建新内容窗格时,我单击实体然后单击呈现节点。但是,实体下拉列表只列出"此节点" 。如果我单击节点,然后尝试插入节点内容面板内容类型,则节点下拉仍然是"此节点" 。我错过了什么? 我已经尝试了使用 enti...

0  将类添加到面板页面正文元素  ( Add a class to panel page body element ) 
如何将类添加到面板页面的正文元素,而无需在变体配置部分中手动添加它?我希望所有面板页面都有一个带有"面板页" 的主体元素。有一些像hook_panel_page()的钩子吗? ...

10  Ajax在CTools内容类型插件中调用?  ( Ajax calls in ctools content type plugin ) 
我正在构建一个ctools面板内容类型(即,在添加内容时插入面板的东西,而不是一个类型的节点),我正在尝试使用表单项的 #ajax 属性设置一些默认值。请参见下面的代码。 这一切都在内容类型的 my_module_content_type_edit_form($form, &$form_state) 呼叫的内部。 ...

0  查找面板节点的当前布局名称?  ( Find current layout name for a panels node ) 
我正在使用面板节点进行布局,其中一个是一个专门的布局,可以改变整体主题设计(即隐藏页眉和页脚)。 但是,我似乎无法找到一种方法来检测所使用的当前布局是 - 至少使用面板节点(Panels_page_get_current()仅使用面板页面,而不是面板节点)。请参阅: http://groups.drupal.org/...

19  面板为主题是什么好处?  ( What is the benefits of panels for a themer ) 
我从未想过大量的面板,因为我一直对写自己的主题很舒服。 但是,我已经看到了许多倡导面板美德的文章(从 lullabot &amp; 活动灯),所以我认为是时候重新审视它,特别是作为面板将在 drupal 8 我已经广泛地播放了它,我甚至看过这个有用的屏幕演员系列。 但我看不出有什么好处。 我通常构建非技术人员...

4  视图:使用URL的默认值for上下文过滤器,然后如果默认值为空,则显示所有值?  ( Views use default value from url for contextual filter then show all if defaul ) 
简短版本,一般问题:你想要在"默认值" 中,指定一个URL参数,以视图中的上下文过滤器。您还需要所有结果(完整未经过滤的视图)如果URL中的此参数是空的,则会显示。但是,"默认值" 和"如果为空" 设置中的"默认值" 和"显示所有行" 上下文过滤器是互斥的,默认情况下,如果未传递给过滤器即可显示任何内容。 如何实...

1  如何向面板页面添加特定的元标记?  ( How to i add specific meta tags to panels pages ) 
我有面板页面,我需要每页设置特定的元标记。元标签模块允许您设置默认值,但我需要每个URL的特定标记。 我似乎无法找到这个。 ...

0  查看视图编辑链接未出现  ( Problem with views edit link not appearing ) 
我已经创建了包含在其字段用户帐户信息(包括内容配置文件字段)中的视图(块)。除此之外,还有一个编辑配置文件信息的编辑链接。我遇到的问题是;登录为常规用户时,不会出现编辑链接。登录为用户1时它会出现。我认为这将是一个许可问题,但我看不到应该检查什么。我想我已经启用了所有必要的权限。默认情况下,用户无法编辑其配置文件? ...

5  如何使用带面板的Twitter Bootstrap?  ( How to use twitter bootstrap with panels ) 
我正在使用d7建立一个新网站。我正在使用Twitter Boostrap在我的网站中创建响应的主题。但我的大部分设计都必须用面板构建,面板不与Twitter引导响应的工作。我发现自适应主题可以与面板一起使用,以使其响应,但我的要求是使用Twitter Bootstrap进行响应的主题。 是否有机会,我可以通过Twit...

0  面板:“根本没有标记”默认  ( Panels no markup at all as default ) 
是否有一种方法可以为所有新面板显示并窗格为所有新面板设置"无标记" ?或者禁用其他样式,如"舍入" 等,根本? ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.