如何主题视图暴露过滤器? -- views 领域 drupal 相关 的问题

How can I theme the Views Exposed Filter?


2
vote

问题

中文

我在drupal 7中创建一个视图显示一份书籍的集合,以及书籍类型的分类。然后我在我的观点中致电书型分类,它显示得很好。但是因为书类类型分类菜单有大约10个项目随时增加,我想显示3件书类型,当单击更多链接时显示其他链接,我不能仅在CSS中进行,而且我无法将Div添加到组中的另一部分列表..所以我该怎么做?

谢谢

当我尝试打印我的暴露过滤器阵列

  function MYMODULE_form_alter(&$form, $form_state, $form_id) {   if ($form_id == 'views_exposed_form') {      $view = $form_state['view'];      if ($view->name == 'taxonomybooktype' && $view->current_display == 'taxobooktype') {           $form['field_book_type_tid']['#options']['All'] = "All";                echo "<pre>";       print_r($form['field_book_type_tid']);       exit;             }     }   

}

输出:

  Array (   [#type] => select   [#options] => Array     (         [All] => All         [0] => stdClass Object             (                 [option] => Array                     (                         [7] => Chemical                     )              )          [1] => stdClass Object             (                 [option] => Array                     (                         [1] => computer                     )              )          [2] => stdClass Object             (                 [option] => Array                     (                         [6] => History                     )              )     ) [#size] =>  [#default_value] => All [#theme] => select_as_links   

但现在我如何在DIV中分组第一个牵引选项,并在另一个div或组中保持选项?

英文原文

I create a view in drupal 7 display a collection of books, and taxonomy for book types .. then I call book type taxonomy in my view and it displayed good .. But because book types taxonomy menu have about 10 items and maybe increased at any time, I want to display 3 items of book types and when click More link display a list of the others, I can't do it in css only, and I can't add a div to group the other part of the list .. so how can I do that?

thank you

when I try to print my exposed filter array

function MYMODULE_form_alter(&$form, $form_state, $form_id) {   if ($form_id == 'views_exposed_form') {      $view = $form_state['view'];      if ($view->name == 'taxonomybooktype' && $view->current_display == 'taxobooktype') {           $form['field_book_type_tid']['#options']['All'] = "All";                echo "<pre>";       print_r($form['field_book_type_tid']);       exit;             }     } 

}

output:

Array (   [#type] => select   [#options] => Array     (         [All] => All         [0] => stdClass Object             (                 [option] => Array                     (                         [7] => Chemical                     )              )          [1] => stdClass Object             (                 [option] => Array                     (                         [1] => computer                     )              )          [2] => stdClass Object             (                 [option] => Array                     (                         [6] => History                     )              )     ) [#size] =>  [#default_value] => All [#theme] => select_as_links 

)

but now how can I group first tow options in a div and remain options in another div or group?

  
 
 

回答列表

0
 
vote
vote
最佳答案
 

与MPD同意,但基本上如果您想要您也可以使用<代码> $form['#id']

您可以做的是,首先尝试使用 success1

获取 success0
  success2  

一旦你得到 success3 你可以添加一个条件,这样的东西

  success4  

让我知道,如果我可以用任何其他方式提供帮助: - )

 

Agreed with MPD, but basically if you want you can also go with $form['#id']

What you can do is, first try to get your $form['#id'] using form_alter

function MODULENAME_form_alter(&$form, &$form_state, $form_id) {     echo "<pre>";     print_r($form['#id']);     exit; } 

Once you get your $form['#id'] you can add a condition, something like this

function MODULENAME_form_alter(&$form, &$form_state, $form_id) {     if ($form['#id'] == 'YOUR_FORM_HASH_ID') {         // Your magic code goes here...     } } 

Let me know, if I can help you in any other way :-)

 
 
 
 
4
 
vote

曝光过滤器使用表单API,因此您可以实现 success5

  success6  

normal 表单api 过程然后应用。< / p>

 

Exposed filters use the form API, so you can implement a hook_form_FORM_ID_alter():

function MYMODULE_form_views_exposed_form_alter(&$form, &$form_state) {   $view = $form_state['view'];    if ($view->name == 'my_view' && $view->display == 'my_display') {     // do something awesome   } } 

Normal Form API procedures then apply.

 
 
   
   
3
 
vote

视图公开表单布局模块有助于查看外观表单主题。

 

Views exposed form layout module helps with Views exposed form theming.

 
 
1
 
vote

我通常建议使用更好的曝光过滤器模块有关与其有关的任何造型。它为您提供了有关UI受控样式的强大灵活性。

但如果我理解你的问题,那么你既不用建议的解决方案(form_alter)或bef完成。原因是您所暴露的分类学术语过滤器可能会将过滤器呈现为您不能轻易分成几个div的单个形式元素。

您可以尝试执行以下操作,假设您有3个"促销" 过滤器,您一直想要显示。然后,您可以添加一个类型的分类术语过滤器,将过滤器显示为复选框,并将有效选项限制为三个三个"促销" 术语并暴露过滤器。然后再次添加相同的过滤器,公开,但这时间将有效选项限制为除了三个"促销" 的所有其他术语之外。然后,您可以使用BeF例如将该第二滤波器放入辅助选项表单(这是一个BeF设置)或简单地使过滤器可折叠(也可以在BEF设置中设置)。

另一个解决方法在搜索接口中减少杂乱的解决方案,即我最近需要构建的一个项目,使用基于JavaScript的"减少" 方法(不知道如何调用它)。我有 如果您想看看它,请在github上发布: jquery-ui-referentoptions-插件。它最初将显示所有复选框,但提供了一旦提交表单(并使用新的默认设置或使用Ajax提交)重新加载未选择选项的交互方式。这可能不是一个真正的解决方案,但它有效漂亮,请参阅屏幕截图:

输入图像描述 输入图像描述

 

I usually recommend to use the Better Exposed Filters (BEF) module for anything styling related. It gives you a great deal of flexibility concerning UI controlled styling.

But if I understand your question right, then you're neither finished with the suggested solutions (form_alter) nor with BEF. The reason is that your exposed taxonomy term filter is probably rendering the filter as a single form element that you can't easily be split into several divs.

You could try to do the following, assuming you have, say, 3 "promoted" filters that you always want to show. Then you could add one filter of type taxonomy term, display the filter as checkboxes and limit the valid options to those 3 three "promoted" terms and expose the filter. Then add this same filter again, expose it, but this time limit the valid options to all other terms except the three "promoted" ones. You could then use BEF for example to put this second filter inside the secondary options form (this is a BEF setting) or simply make the filter collapsible (also possible so set in the BEF settings).

Another solution to reduce clutter in search interfaces that I recently needed to build for one of my projects uses a javascript based "reducing" approach (no idea how to call that really). I have published it on github if you want to have a look at it: jQuery-UI-reduceOptions-Plugin. It will initially show all checkboxes, but provides ways of interacting that allow to hide unselected options once the form has been submitted (and is reloaded with the new defaults set, or using ajax submission). It's probably not a real drop-in solution but it works pretty neat, see the screenshots:

enter image description here enter image description here

 
 
 
 

相关问题

0  在Drupal 6中,如何显示两个分组领域,如国家省?  ( In drupal 6 how to display two grouping fields such as country then province ) 
在Drupal 6中,我对某些物体有一个位置:国家和地点:省字段,都设置为排除显示;排序标准以按国家排序排序;和样式设置分组字段是位置:省。它以我想要的顺序显示所有对象,所有与同一国家分组的所有对象一起组合在一起,然后在每个国家对象中被省级/州分组,每个州的每个州的对象都标有状态的名称。 但是,我想拥有一个针对国家/...

0  设置一个数字字段以执行视图全局数学表达式计算  ( Set a numerical field to perform views global math expression calculations ) 
让我们说我有三个字段: Field1(十进制) Field2(另一个小数) 全球数学表达式 和全局数学表达式我想计算 [field1] + [field2] 。如何强制视图以了解本全局数学表达式中使用的替换字段作为计算的数字?就像它一样,它总是返回值0。 ...

0  无法创建新视图  ( Cant create a new view ) 
我正在遇到创建新视图。我只是测试了模块,但是当我点击"保存" 时,设置所有内容后,我收到以下错误: pdoException:sqlstate [hy000]:一般错误:1267非法混合 校集(UTF8_GENERAL_CI,隐式)和(UTF8_UNICODE_CI,隐式) for操作'=':从{ctoo...

0  首先在视图中显示父术语  ( Displaying the parent term first in views ) 
我已经设法使用分类模块组织我的内容,它是2级深。 Level 1 > Level 1-a > Level 1-a-i > Level 1-b > Level 1-b-ii Level 2 > Level 2-a > Level 2-...

-2  未定义的指数und错误  ( Undefined index und error ) 
我得到了未定义的索引:und错误。下面是我的代码 $photoItem = file_create_url($node->field_thumb_img[LANGUAGE_NONE][0]['uri']); ...

2  视图相关项目块当分类学术语不在URL上  ( Views related items block when taxonomy term is not on url ) 
我有一个"相关项目块" 问题,我认为很简单,但在过去的两个星期里,我的曲目中已经死了。我凭借了很多,很多"与之相关" ,无济于事,希望有人会努力帮助我。 这是一个样本内容节点: 标题:abc123(简单文本字符串) 形状:正方形(作为分类词汇称为"形状" ,可能的"方形/圆形/三角形" ) 颜色:红色(存储为分类词汇...

0  将视图块注入另一个视图模板  ( Injecting views blocks into another view template ) 
我有一个以非常标准的方式包含最新消息的视图(即:下方一个)...我想在某些点注射其他包含其他视图的块(即:最新消息标签),就像在此图片中: http://i.imgur.com/6wghpjh.jpg 一种简单但不切实际的方法是创造不同的观点:一个最新的2,然后一个用于另一个3个新闻,偏移为2,等等... 但...

1  Drupal视图网格备用每行模板预处理器的列数  ( Drupal views grids alternate number of columns per row template preprocessor ) 
IM使用网格显示选项的视图,但我的界面要求需要在3列之间交替,然后是2列。 任何人都可以推荐和模板挂钩,以便预处理器实现这一 ...

0  如何以这种方式过滤/排序耳机视图?  ( How can i filter sort a drupal view in this way ) 
我已经创建了一种名为PDF发布的内容类型,其中两个字段 - 允许上载一个文件的PDF文件上传字段和用户选择一个区域的术语参考字段。区域1区域2或区域3 我现在需要创建一个视图块,该块显示每个区域上传的最新PDF。因此,该块将显示三个PDF - 每个区域的PDF 我遵循指令 < / a>互联网上的其他论坛,但正在...

0  用标志>忽略用户内容>  ( Ignore users content with flags ) 
我正在为我们的非营利组织开发一个网站网络。 与任何会员地点一样,我们有一些议员,他们只是不相处,经常不相处,他们来回"戏剧" 将减损其他成员的积极支持体验。 而不是简单地禁止互相互相相处的成员,我们想为成员设定一条方式,以向成员悬挂和"静音" 它们,所以他们会看到他们的内容而不是看到他们的内容像"你已经静音这个成...

3  在视图列表中插入广告块  ( Insert advertisement block within views list ) 
我有一个视图,将内容节点输出为网格。 (Instigram样式)。如何在视图列表中的随机位置插入广告块。 节点 节点 。 。 广告 。 。 节点 节点 ...

3  SOLR搜索或视图暴露过滤器  ( Solr search or views exposed filters ) 
我有食物配方网站,它在主页上有一个搜索功能。 我的问题是: 一旦用户搜索了一些东西,它们就会"继续缩小结果" 。是否有可能视图暴露过滤器?或者我应该调查太阳能搜索面位导航和相关性调整。 另一个搜索界面。 ...

1  如何在视图页面中插入自定义搜索字段  ( How to insert a custom search fields in a views page ) 
我有一个显示一些书籍的视图,我希望在本页顶部的搜索标准进行高级搜索。搜索框应该在书页面或书籍内容类型内搜索。 ...

0  使用视图模块的Drupal 7 jumplist  ( Drupal 7 jumplist using views module ) 
我正在尝试在我的网站上设置 /en/title-of-a-node-in-english4 ,其中包含 /en/title-of-a-node-in-english5 术语的列表,从我称为类别。我有 /en/title-of-a-node-in-english6 正确显示,但是当我从列表中选择一个术语并导航到它时,我...

0  从300个节点的聚合/平均10个字段,并在页面上显示  ( Aggregate average 10 fields from 300 nodes and display on a page ) 
我有大约250个数据(可能会增长到300),我要聚合,以便用户可以看到每个字段的平均值。每个节点都包含大约40个字段,但我只需要在任何时间显示其中10的平均值。因此,我希望产生的最终视图(或页面)将显示10个字段,其中数据是250-300节点中的字段的平均值。将有4个类似的页面,每个页面从该250个节点绘制一个新的1...

1  “有机组:组节点”等效?  ( Organic groups group node equivalent ) 
我有几个使用"有机组:组节点" 关系的Drupal 6视图。有谁知道Drupal 7中的等同关系是什么?试图在Drupal 7中设置这一点,措辞令人困惑,因为我不知道什么。 ...

0  从视图中发送单个电子邮件  ( Sending a single email from a view ) 
我有一个景观,每个页面是合同。我的客户想要在页面上的一个按钮,说"发给我更多信息" 。按钮将发送两封电子邮件,一个给客户说"我们会回复你" 和一个到我的客户。我的客户端的电子邮件需要从视图中包含几个字段。 (用户电子邮件和名称和节点标题至少为。) 我已经看过各种方式来做这件事,而且没有很好。 视图发送打开消息表单...

0  Drupal观点API?  ( Drupal views api ) 
我知道有一个api - 但我正在寻找的是一种方法我可以通过机器名称传递视图并接收原始php数组(未呈现) - 显而易见的功能在哪里? :) ...

0  D7视图 - 修剪标签和它的内容?  ( D7 views trim a tag and its content ) 
在我的视图中,我有一个长文本字段。每个实体都有H1标签,我要删除(以及在H1中的内容)。有谁知道这样做的方法是什么? 基本上我想要这个: 标题 内容 成为这个: 内容 ...

0  在View Drupal 7中显示更重要的字段时,请勿显示一个字段  ( Dont show a field when a more important field is shown in a view drupal 7 ) 
在我的主页博客上显示了来自用户的消息。当用户添加YouTube电影和/或一个或多个图片时,这些图片被显示为预览。 虽然当用户选择电影和一个或多个图片时,主页邮件显示YouTube电影和图片。但是,当两者都添加到博客消息中时,我只想看到YouTube预览,所以youtube比图片更重要,所以不应显示图片。 当只有图片1...




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


Licensed under cc by-sa 3.0 with attribution required.