在节点编辑表单中动态更改窗口小部件类型 -- 7 领域 和 entities 领域 和 javascript 领域 和 location 领域 drupal 相关 的问题

Dynamically change widget type in node edit form


2
vote

问题

中文

我有一个带有geofield的内容类型。我正在使用OpenLayers Map作为输入小部件。该地图允许用户放置标记并将其填充GEOFIELD与LON / LAT坐标。然而,在某些情况下,优选地手动输入LON / LAT而不是使用地图。

如何在节点编辑表单中提供一个选项,以动态切换从OpenLayers映射到Lon / LAT的地理区域的显示小部件,或者从LON / LAT到地图?

英文原文

I have a content type with a geofield. I'm using an Openlayers Map as the input Widget. The map allows the user to place a marker and it populates the geofield with the lon/lat coordinate. In some cases, however, it would be preferred to input the lon/lat manually as opposed to using the map.

How would you provide an option in the node edit form to dynamically switch the display widget for the geofield from the Openlayers map to lon/lat, or from lon/lat to a map?

           
 
 

回答列表

2
 
vote

您描述的用例是特定的,但您在标题中实际要求的问题更为通用。我在标题中回答了这个问题。

据我所知,目前没有用于Drupal 7或更早版本的输入小部件切换器模块,但实际上需要。有类似的模块,例如显示套件更改显示的输出一个节点,包括使用不同的显示格式(示例:将与简短日期格式显示相同的日期字段,并在完整节点显示中作为长日格式),但没有任何类似的节点输入表格小部件。

drupal 8具有实现这样的内容所需的底层结构,称为表单模式(基本上输入形式等效于视图模式,例如完整 Vs。预告值,显示套件构建的套件)。但是,虽然有一个UI来创建它们,但我的知识目前没有目前在核心中使用它们或在形式模式之间切换的能力。

如上所说,形式模式控制模块用于D8似乎提供了这种能力。它允许基于角色或权限以及节点(或实体)创建 VS的表单模式之间切换。修改(例如,创建GEOFIELD的小部件可能是LOT / LONG,HTML5 GPS地理位置启用但是,在修改切换到使用的不同形式模式,例如,OpenLayers映射窗口小部件,使已经存在的位置标记可以在地图上移动)。

还有类似的表单模式管理器模块(仅限D8),它有点不同,但它只在本写作时的alpha中,而形成模式控制在发布候选2中,因此更好地生产网站。

 

The use case you describe is specific in nature, but the question you actually asked in the title is more general purpose. Ixe2x80x99m answering the question in the title.

To the best of my knowledge, there is not at present an Input Widget Switcher module for Drupal 7 or earlier, but there really needs to be. There are similar modules such as Display Suite for altering the displayed output of a node, including using different display formatters (example: showing the same date field as a short date format in a Teaser and as a long date format in a full node display), but nothing analogous for node input form widgets.

Drupal 8 has the underlying structure needed to implement something like this, known as Form Modes (basically the input form equivalent of View Modes such as Full vs. Teaser, which Display Suite builds on). But while there is a UI for creating them, there is not at present to the best of my knowledge an ability to use them or switch between Form Modes in core.

That said, the Form Mode Control module for D8 does seem to provide this ability. It allows switching between Form Modes based on Role or Permission and on Node (or Entity) Creation vs. Modification (for instance, on Creation the Widget for a GeoField might be Lat/Long with HTML5 GPS Geolocation enabled, but on Modification switch to a different Form Mode that uses, say, OpenLayers Map Widget so that the already-existing location marker can be moved on a map).

Therexe2x80x99s also the similar Form Mode Manager module (also D8 only) that works a bit differently, but itxe2x80x99s only in Alpha at the time of this writing, while Form Mode Control is in Release Candidate 2 and thus better for production sites.

 
 
0
 
vote

我不确定你正在寻找完全相同的东西,但看看这里 https://drupal.org/sandbox/gwenmahe/2055375 我仍在开发它,所以如果你注意到一些错误,因为它尚不完美!

 

I'm not sure you are looking for the exact same thing but have a look here https://drupal.org/sandbox/GwenMahe/2055375 I am still developing it, so if you notice some bug it's because it's not perfect yet !

 
 

相关问题

1  ctools_ajax_command_redirect不再正常在成功提交时重定向Ajax表格  ( Ctools ajax command redirect is no longer working to redirect ajax form on succe ) 
我的ajax回调函数正在改变形式的函数在过去恰当地重定向,但现在没有更改此代码,它不再工作了。 function node_create_callback($form, &$form_state){ module_load_include('inc', 'node', 'node.pages'); ...

0  在远程Drupal网站上管理用户帐户? (开发团队所有需求访问)  ( Managing user accounts on remote drupal website dev team all needs access ) 
我的公司制作了许多Drupal网站,并且我所看到的最大烦恼必须每当别人想要工作时都必须将彼此添加到每个站点。我们都有相同的电子邮件地址域,因为我们使用Google文档。 我们目前使用OpenID并使用我们的Google帐户登录,但我们必须在每个站点上让每个用户都有一个用户,并且他们必须激活它。 是否有一些模块,如果...

0  无法将#ajax连接到块中显示的更改表单  ( Cant attach ajax to altered form displayed in block ) 
我有一个模块,它在块中显示现有的注册表单。 function my_contact_block_view($delta = '') { switch ($delta) { // Newsletter signup block case 'newsletter_signup...

2  如何在动态查询中跳过第一行?  ( How to skip first row in a dynamic query ) 
我尚未找到使用 - >范围($ offset,$ limit)在动态查询中的范围($ offset,$ limit),以跳过第一个结果,但不限于lesureset(limit子句) 。 我发现的唯一解决方法是使用高值限制,例如: ->range(1,99999999); (请参阅drupal api...

0  Drupal 7多站立白色屏幕[关闭]  ( Drupal 7 multisite setup white screen ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅介绍了编辑此帖。 关闭 7年前。 ...

2  如何正确更改索尔搜索模块的响应  ( How to properly alter response from solr search module ) 
我正在研究 Drupal Version 7.22 ,我正在尝试使用 solr搜索模块。 可以在此处找到特定的钩子: http://drupalcontrib.org/api/drupal/contributions!search_api_solr !apiech_api_solr.api.php/function/...

6  Drupal 7 WebForm模块未正确发送电子邮件  ( Drupal 7 webform module is not sending email properly ) 
我在我的Drupal 7站点中启用了此模块: 邮件系统 v7.x-2.34 mime mail v7.x-1.0-alpha2 smtp身份验证 v7.x-1.0 webform v7.x-3.19 我已将邮件系统配置为"格式化" MIME邮件和"邮件" ,并使用SMTP身份验证"邮件"...

2  从刚刚保存以更新不同节点的节点中获取信息  ( Get information from a node that has just been saved to update a different node ) 
我有2种不同的内容类型"工厂" 和与实体参考字段相关的"测量" 。我正在使用计算的字段将最新的测量存储为出厂内容类型的字段。问题是,为了使计算的字段是"重新计算" ,测量是指的是,需要更新测量的工厂节点。 我的第一个思想是以预定义的间隔批量更新所有工厂节点。这有一个非常重要的下行:工厂信息(以及我感兴趣的最新测量)...

3  表格API AJAX属性在性能方面擅长吗?它需要整个靴子吗?  ( Is form api ajax attribute good in performance does it require an entire boots ) 
ajax用于更好的用户体验,也用于WebApp中的更好性能(仅更改所请求的项目而不是整个页面)。 在我的情况下,表单将需要AJAX功能,与产品配置SOAP服务进行交互。 由于许多用户可以同时访问它,因此此表单的性能将是重要的。 但#ajax在drupal工作?它需要整个靴子吗?如果是这样,司布会在我的情况下成为一...

2  如何在矩阵模块中添加一个长文本字段?  ( How to add a long textfield in matrix module ) 
有谁知道如何将长文本添加到矩阵模块列? 我已经尝试过"自定义" 字段,但它不起作用。 任何想法? ...

4  我怎样才能发现下一个Cron将运行?  ( How can i find out when the next cron will run ) 
如何在下一步Cron运行时,我如何以编程方式找到才能将其呈现给作者调度的东西? 我正在使用终极cron和外部cron过程。 ...

-1  一些AJAX操作获得406错误[已关闭]  ( Getting 406 error for some ajax actions ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 关闭 3年前。 ...

0  用于节点的模板建议列表  ( List of template suggestion used for a node ) 
我正在构建一个模块,通过ajax向您返回HTML样式节点,但我有一个问题。 我想仅为此模块添加节点建议。怎么样? 所以Drupal必须检查: 存在[在活动主题] ajaxnode.tpl?和ajaxnode - nodetype.tpl?如果它们不存在选择正常的Drupal建议模板并呈现节点。 如何正确做到这一点...

3  如何使用视图挂钩 - 特别是hook_view_data()? [关闭]  ( How to use views hooks specifically hook view data ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

0  有机组:错误,网站遇到意外错误。  ( Organic groups error the website encountered an unexpected error ) 
我有og工作正常,除了我无法上传要显示的图像(但仍然保持PDF的文件字段为私有为私人)。 但是,我已经完成并删除了CKEDITOR模块,因为人们建议使用WYSIWYG与CKEDITOR(JS库),因此我移动了。 然后我也安装了imce - wysiwyg桥,并尝试了几件事来获得工作的图像。 他们正在工作,但我注意...

0  是否有可能自动为模块创建一个.install文件?  ( Is it possible to automatically create a install file for a module ) 
我有一个我想要安装的内容类型,作为模块的一部分或安装配置文件。无论如何都可以自动创建所有 field_create_field 和 field_create_instances 代码 hook_install 或者我必须手动完成所有这些吗? 是否有任何其他方法可以捕获内容类型的设置,以便我可以迁移它并将其包含在安装...

0  DB_DELETE在模块内容显示中的链接上单击链接  ( Db delete on click on a link in module contents display ) 
我制作了一个模块从数据库中显示一组字段。 我想在每行末尾添加"删除" 链接能够在单击"数据库" 中删除该行。我用以下代码在我的模块中完成了它: 测试。代码: <?php function tests_menu(){ $items = array(); $items['tests'] = array( ...

0  Commerce Cart表格更改以进行可用性检查  ( Commerce cart form alter to do an availability check ) 
我有一些我用作租用对象的节点,我想检查商务购物车页面上的可用性(由视图制作,您在 99887662 上看到的那个)。我还需要在用户被发送到付款之前最后一次检查它,但是对于视图购物车形式,实际函数实际处理数量更新?我可以看到 edit quantity 字段具有我的预先更新值作为 99887664 和新值作为 valu...

2  在直播网站上安装一个模块,建议吗?  ( Is installing a module on a live site ill advised ) 
我正在尝试安装我的网站上的代码。 我所要做的就是接受HTML5 WebGames的广告内容类型。 会涉及主题。 是不是去了吗? ...

3  在Drupal 7中,您如何快速克隆模块项目?  ( In drupal 7 how do you git clone a module project quickly ) 
似乎有任何好的文档,可以快速地克隆一个模块项目。我已经阅读了这个: https://drupal.org/project/examples/git-instructions < / a> 以下格式对我不起作用: git clone --branch 7.x-1.x http://git.drupal .org...




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


Licensed under cc by-sa 3.0 with attribution required.