有关如何在视图中包含显示处理程序中的一个选项的任何想法 -- views 领域 和 8 领域 和 entities 领域 drupal 相关 的问题

Any idea on how to include a an option in display handler in views


简体版||繁體版
4
vote

问题

中文

我想包括Pager选项下面的复选框,我以窗体改变实现。问题是如何检索或存储用户已选择的值,并在视图中使用该值 输入图像说明

英文原文

I want to include a check box below pager options i achieved it with form alter . The problem is how can i retrieve or store the value which user has selected and use that value for further process in views enter image description here

        

回答列表

4
 
vote
vote
最佳答案
 

由于您想要添加显示器的配置(这是插件),您有两个选项:

  1. 创建一个新的显示插件
  2. 更改现有页面插件的类。

这两个选项基本相同,因此您需要为视图显示创建自定义插件类。唯一的区别是如果您更改了插件管理器存储的内容或者定义新的区别。

您应该扩展现有的 DrupalviewsPluginviewsdisplayPage 类。

大多数东西,你不需要担心,但你需要扩展以下方法:

  • defineOptions
  • buildoptionsform
  • submentionsform

一个非常简单的新插件类的实现(完全未经测试的代码,而是应该使用小变更)

  use DrupalviewsPluginviewsdisplayPage  /**  * Custom page display to add more options.  *  * @ViewsDisplay(  *   id = "custom_page",  *   title = @Translation("Custom Page"),  *   help = @Translation("Display the view as a page, with a URL and menu links."),  *   uses_menu_links = TRUE,  *   uses_route = TRUE,  *   contextual_links_locations = {"page"},  *   theme = "views_view",  *   admin = @Translation("Custom Page")  * )  */ class CustomPage extends Page {    /**    * {@inheritdoc}    */   protected function defineOptions() {     $options = parent::defineOptions();     $options['custom'] = [       'contains' => [         'checkbox' => ['default' => FALSE],       ],     ];     return $options;   }    /**    * {@inheritdoc}    */   public function buildOptionsForm(&$form, FormStateInterface $form_state) {     parent::buildOptionsForm($form, $form_state);     // A bit tricky, since views uses a concept of sections. Either you need      // to define your own section or you can just add your config to an existing     // section. If you use an existing it will be a lot easier.   }    /**    * {@inheritdoc}    */   public function submitOptionsForm(&$form, FormStateInterface $form_state) {     parent::submitOptionsForm($form, $form_state);      switch ($form_state->get('section')) {       case '?':         $values = $form_state->getValue('?');         $this->setOption('custom', $values);         break;     }   } }   
 

Since you want to add the configuration of the display (which is a plugin), you have two options:

  1. Create a new display plugin
  2. Change the class of the existing page plugin.

The two options are essentially the same, in the sense that you need to create a custom plugin class for views display. The only difference is if you alter what the plugin manager has stored or if you define a new one.

You should extend the existing \Drupal\views\Plugin\views\display\Page class.

Most of the stuff, you don't need to worry about, but you need to extend the following methods:

  • defineOptions
  • buildOptionsForm
  • submitOptionsForm

A very simple implementation of a new plugin class (totally untested code, but should work with small alterations)

use Drupal\views\Plugin\views\display\Page  /**  * Custom page display to add more options.  *  * @ViewsDisplay(  *   id = "custom_page",  *   title = @Translation("Custom Page"),  *   help = @Translation("Display the view as a page, with a URL and menu links."),  *   uses_menu_links = TRUE,  *   uses_route = TRUE,  *   contextual_links_locations = {"page"},  *   theme = "views_view",  *   admin = @Translation("Custom Page")  * )  */ class CustomPage extends Page {    /**    * {@inheritdoc}    */   protected function defineOptions() {     $options = parent::defineOptions();     $options['custom'] = [       'contains' => [         'checkbox' => ['default' => FALSE],       ],     ];     return $options;   }    /**    * {@inheritdoc}    */   public function buildOptionsForm(&$form, FormStateInterface $form_state) {     parent::buildOptionsForm($form, $form_state);     // A bit tricky, since views uses a concept of sections. Either you need      // to define your own section or you can just add your config to an existing     // section. If you use an existing it will be a lot easier.   }    /**    * {@inheritdoc}    */   public function submitOptionsForm(&$form, FormStateInterface $form_state) {     parent::submitOptionsForm($form, $form_state);      switch ($form_state->get('section')) {       case '?':         $values = $form_state->getValue('?');         $this->setOption('custom', $values);         break;     }   } } 
 
 
0
 
vote

实现此作业的简单方法是使用变量来实现这项作业,例如您的变量Chaml有这个名字"your_views_machine_name_myfeature" 。

注册自定义表单提交allndler for alter suppy您的变量如果使用

等类似的东西
  $myvar = "your_views_machine_name_myfeature"; Drupal::config('mymodule.settings')       ->set($myvar, true)       ->save();   

,当您想要通过

加载它
  $value= Drupal::config('mymodule.settings')->get('your_views_machine_name_myfeature');   
 

Simple way to achieve this job is using variables for acheive this job, as example your variable chould has this name "your_views_machine_name_myfeature" .

register a custom form submit halndler in for alter save your variable if checked with something like

$myvar = "your_views_machine_name_myfeature"; \Drupal::config('mymodule.settings')       ->set($myvar, true)       ->save(); 

and when you want just load it by

$value= \Drupal::config('mymodule.settings')->get('your_views_machine_name_myfeature'); 
 
 
     
     

相关问题

6  是否有相当于表单编辑的视图模式?  ( Is there an equivalent of view modes for form editing ) 
我有一个包含很多字段的内容类型。最终用户需要创建此类型的内容,因此我想以简化的形式提供它们,以便他们可以在不知道大多数选项的情况下创建内容项并编辑它。然后那些想要潜入复杂性的人可以有一种先进的形式,它暴露了它们。 查看模式看起来像我想要做的那种东西,所以我使用 hook_entity_info_alter 来创建自定...

2  如何从文件字段中提取文件名和FilePath?  ( How do i extract filename and filepath from a file field ) 
这是我尝试解决的:我想允许通过默认的filefield上载内容类型上传zip文件。我正在使用hook_node_preSave拍摄zip文件,并从基于核心更新管理器的帮助函数中提取。我收到的错误是: 注意:未定义的索引:filefield_unzip_node_presave()中的文件名()(第18行) /s...

2  如何让Drupal 8忘记旧的删除字段?  ( How to make drupal 8 forget an old deleted field ) 
将Drupal 8站点部署到新服务器后,我们有一些子系统或其他人记住的旧删除字段的问题,导致此错误在Cron运行时被抛出: DrupalCoreDatabaseDatabaseExceptionWrapper: SQLSTATE[42S02]: Base table or view not found: 1146...

0  访问引用的节点字段 - 字段级别模板  ( Access a referenced nodes fields field level templating ) 
我的内容类型,具有参考字段到另一个内容类型。这允许无限量的条目。 我为此字段创建了一个模板: field--node--field-my-fields.html.twig 我希望能够访问我引用的节点的字段。通常您可以通过访问实体来执行此操作,但我似乎无法执行此操作。 {% for item in items...

4  有关如何在视图中包含显示处理程序中的一个选项的任何想法  ( Any idea on how to include a an option in display handler in views ) 
我想包括Pager选项下面的复选框,我以窗体改变实现。问题是如何检索或存储用户已选择的值,并在视图中使用该值 ...

2  没有类型配置实体的实体的捆绑字段未创建  ( Bundle fields for entity without type config entity not created ) 
我的实体具有在代码中定义的捆绑包( 99887761 ),并且不使用配置实体。它还定义 DrupalCoreEntityFieldableEntityInterface::bundleFieldDefinitions 中的每个套件的字段。但是,当我安装模块时,捆绑字段不会创建,只有基本字段。 根据文档,这是可能的,...

2  多语种分类观点 - 实体翻译  ( Multilingual taxonomy views entity translation ) 
我正在尝试使用 Entity翻译。到目前为止,即使在使用语言代码时,我也卡住了英语视图。 我正在寻找这个需要的步骤。最简单,我正在尝试根据语言创建分类术语的块或页面。 任何建议? ...

1  更新字段值,无需编辑页面  ( Update field value without edit page ) 
我需要创建一个按钮,该按钮将允许用户更新节点上的字段值而不访问编辑页面。我正在使用访问控制来限制对节点的访问,以及可以定义哪个用户看到按钮的角色。我需要更新的字段是自定义选择列表。 是有模块要这样做吗?我找不到一个。谢谢! (关于我的具体实施方式更多) 我的网站允许用户列出其他用户的资源。当用户希望预订项目时,他创建...

7  使用n'subfields创建n个字段  ( Creating n fields with n subfields ) 
我想创建一个内容类型"Enterprise" ,其中用户可以定义N服务,并且对于每个服务,n任务。我已经为此内容类型创建了其他字段(名称,描述,...,简单字段),但我不知道如何从服务和任务开始。 我希望能够以相同的形式创建服务和任务。什么是最好的方法? ...

0  复杂视图/野外收集问题  ( Complex views field collection question ) 
是有没有办法在视图中执行子查询,该视图是基于现场收集中的过滤器值过滤实体,而且还通过附加到该字段收集项的另一个值? 例如,人们正在搜索属性。房地产率存储在字段集中,参考日期,价格,以及可用的。 当用户使用视图并按特定日期搜索时,我只想返回那些在该字段收集项上的date 和和可用= 1的实体。只需在视图上添加"可用" ...




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