如何将附加到当前节点的文件/图像引用移动到其他节点? -- 7 领域 和 nodes 领域 和 hooks 领域 和 entities 领域 drupal 相关 的问题

How do you move a file/image reference attached to a current node to a different node?


2
vote

问题

中文

我找到了上一个问题 ,但我正在努力使它适应我想要完成的事情。

如何使用附加到一个节点的文件/图像,并将其移动到另一个节点或创建新节点并在那里附加它?

英文原文

I found this previous question, but I'm struggling to adapt it to what I want to accomplish.

How can you take a file/image that is attached to one node, and move it to another or create a new node and attach it there?

           

回答列表

1
 
vote
vote
最佳答案
 

我不能将此推荐为已完成的代码,并且我当然不能担保它的安全/可用性,但我能够通过以下方式完成:

  <?php function testymod_node_presave($node){      if($node->type == 'image_gallery'){         $nl = $node->language;//to shorten lines          if(isset($node->field_image,$node->field_image[$nl],$node->field_image[$nl][1])){             //Leave the first file, but move all the rest to indidivual nodes of their own             for($i=1;$i<count($node->field_image[$nl]);$i++){                 $tmpNode = new stdClass();//Create a node object                  $tmpNode->uid = $node->uid;                      //Use the current node data                                     $tmpNode->type = $node->type;                 $tmpNode->title = $node->title;                 $tmpNode->language = $nl;                  //Set some defaults                 node_object_prepare($tmpNode);                  //Add the file                 $tmpNode->field_image[$nl][0] = (array) unserialize(serialize($node->field_image[$nl][$i]));//Only way I know to do a deep clone                  $tmpNode = node_submit($tmpNode); // prep for saving                  node_save($tmpNode); // Should have an nid now             }             //Remove attachments from the original             $node->field_image[$nl] = array_slice($node->field_image[$nl], 0,1);         }      } } ?>   

我可能会尝试将其开发到可用模块中,其中包含内容类型的开关,以便为给定的内容类型启用它,但我需要弄清楚如何自动复制任何相关字段。

 

I can't recommend this as finished code, and I certainly can't vouch for it's safety/usability, but I was able to accomplish this with:

<?php function testymod_node_presave($node){      if($node->type == 'image_gallery'){         $nl = $node->language;//to shorten lines          if(isset($node->field_image,$node->field_image[$nl],$node->field_image[$nl][1])){             //Leave the first file, but move all the rest to indidivual nodes of their own             for($i=1;$i<count($node->field_image[$nl]);$i++){                 $tmpNode = new stdClass();//Create a node object                  $tmpNode->uid = $node->uid;                      //Use the current node data                                     $tmpNode->type = $node->type;                 $tmpNode->title = $node->title;                 $tmpNode->language = $nl;                  //Set some defaults                 node_object_prepare($tmpNode);                  //Add the file                 $tmpNode->field_image[$nl][0] = (array) unserialize(serialize($node->field_image[$nl][$i]));//Only way I know to do a deep clone                  $tmpNode = node_submit($tmpNode); // prep for saving                  node_save($tmpNode); // Should have an nid now             }             //Remove attachments from the original             $node->field_image[$nl] = array_slice($node->field_image[$nl], 0,1);         }      } } ?> 

I may try to develop this into a usable module with a switch in the content type to enable it for a given content type, but I'd need to figure out how to automatically copy any relevant fields over as well.

 
 

相关问题

10  如何在自定义模块中定义和使用外部数据库连接  ( How to define and use an external database connection in a custom module ) 
我正在开发一个将依赖于外部数据库查询的模块。是否有最佳实践可以在整个模块中定义和使用外部数据库连接? 此页告诉我如何建立连接,但不是将它放在模块中的位置(特定的钩子?)所以我只需要定义一次。此外,它总是有必要做"db_set_active('yourdatabasekey');" 或者我可以传递一个参数,将设置D...

4  如何列出并存储隐藏的暴露过滤器对匿名用户的几个视图的值?  ( How to list and store the value of hidden exposed filter of several views for an ) 
我需要将词汇术语列为文本链接,然后存储匿名用户的选择。然后,几个视图的曝光过滤器应获得存储值。最简单的方法是什么? ...

4  如何在网站标题块中有HTML不仅仅是SitEname或徽标? (通过次节或优选地编辑在Drupal中)  ( How to have html not just sitename or logo in site heading block via subtheme ) 
有人可以赋予使用HTML的例子,而不仅仅是网站标题中的文本字符串或徽标图形? 我问,因为我想使用多个网络排版字体来制作LOGP而不是位图。 更新 编辑"在drupal中编辑" - 会很好,很抱歉调整问题。谢谢你到目前为止的答案。 ...

1  模块或模板Mod用于制作开发站点看起来与实时站点不同  ( Module or template mod for making development site look different from live site ) 
当我在同一个浏览器中打开我的开发和实时站点时,我有时会混合起来,因为它们看起来也一样。 你们都用什么伎俩来区分它们? ...

1  如何使用可选值设置生日字段  ( How to setup birthdate field with optional values ) 
我希望为我的用户拥有一个"出生日期" 字段。它应该是可选的,进入一年或约会。 如果选择了一年,我想展示年龄。如果输入日期,我想显示出生日期。 如果我使用日期字段并使它可选,我可以具有空默认值。但是,一旦我进入一年,它也需要日期和月份,也有虎钳。 任何解决方案? ...

1  Drupal 7中节点库的替代方案? [关闭]  ( Alternative for node gallery in drupal 7 ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

1  用户个人资料CCK Integer字段  ( User profile cck integer fields ) 
我建立了自定义用户配置文件。我想要显示的所有值都是正确输出的,条栏。字段之间的唯一区别是不呈现的一个是一个整数,而那些做渲染的唯一差异是varchars。 如果它是一个int?,则有一种特定的方式来抓住字段的值 我正在使用以下内容: MYSITE.install6 然后用这个输出它们: MYSITE.in...

1  节点内的特色内容块  ( Featured content block inside node ) 
我正在使用drupal 7并尝试在写入和注释之间包含特色内容块,即我希望它在节点内。 我尝试了该方法解释在这里,但没有得到块。< / p> 这是我在我的node.tpl.php 中使用的代码 $block = module_invoke('featured_content', 'block_view', '1')...

1  如何在表单的文本字段中按“Enter”刷新页面刷新?  ( How do i stop the page refresh on pressing enter in a forms text field ) 
如何在表单文本字段中按"Enter" 时停止页面刷新? ...

1  使用Drupal [关闭]的房地产网站  ( A real estate website using drupal ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

2  使用Google帐户注册[已关闭]  ( Sign up using google account ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

1  drupal 7 hook_theme()未加载模板文件  ( Drupal 7 hook theme not loading template file ) 
我正在尝试使用drupal的hook_theme()加载模板文件的一个非常简单的模块。它几乎可以像你可以想象的那么简单。 function sectionheader_theme ( $existing, $type, $theme, $path ) { return array( 'sectionh...

1  文章“查看”  ( Article page view ) 
如何为通过Drupal 7中的标准文章内容类型创建的文章节点进行视图? 我觉得我应该制作一个页面查看,但是它想要一个URL,它应该从文章节点中存在。我不确定如何用视图正确地钩住它 ...

2  Joomla到Drupal模块 - 迁移问题  ( Joomla to drupal module migrating issues ) 
注意:Drupal 7.x. Joomla到Drupal模块版本1.0 alpha3 我正在玩Joomla到Drupal模块,目前处于Alpha。我使用此工具从Joomla安装中导入了大约100个内容项。但是,对一些内容进行了更改正在产生错误,因此我决定开始新鲜;我删除了所有导入的内容。 然后我试图重做导入,但是...

2  导入饲料进入实体?  ( Importing feeds into an entity ) 
我正在尝试使用ubercart创建商店。与我网站上的大多数其他东西一样,我有大量数据存储在一个CSV文件中,我从另一个站点(客户端原始站点)中下载了PHPMyadmin,我需要上传到我的新网站。我正试图将其上传为产品,但问题是"列出价格" ,"成本" ,"卖价" 和"SKU" 编号是实体,这些字段不会出现Feeds ...

0  视图页面上出错。任何想法这意味着什么?  ( Error on views page any idea what this means ) 
未捕获的异常在会话处理程序中抛出。 pdoException:sqlstate [08s01]:通信链路失败:1153得到了一个 大于'max_allowed_pa​​cket'字节的数据包:更新 {sessions} set uid =:db_update_placeholder_0, 缓存=:db...

2  可以使用“或”而不是“和”具有2个上下文过滤器?  ( Possible to have 2 contextual filters with or rather than and ) 
我想创建一个查看,显示当前登录用户创建的所有节点,或者当前登录的用户已注释。 d6有一个视图_or 模块,但它没有移植到7. 是否有任何简单的解决方案? ...

3  是否可以基于路径隐藏菜单项?  ( Is it possible to hide menu items based on path ) 
我正在寻找基于耦合页面的路径隐藏菜单项。它类似于如何在路径上显示或未显示块。我的初步尝试透露,菜单的缓存不允许一个人能够删除每页加载菜单项。 hook_menu_alter()只在缓存清除后运行一次,然后从缓存中检索菜单。有没有人有任何关于如何实现这一目标的想法,或者是徒劳的尝试吗? 谢谢。 ...

0  从D7中的Page.tpl.php访问$内容['link']  ( Access to contentlinks from page tpl php in d7 ) 
我了解如何在Page.tpl.php文件中打印节点字段和自定义字段,但是如何添加$ content ['links'],(或者我假设$ content ['注释],但我真的只是在寻找链接),就像它在node.tpl.php? 我看了一个节点对象,我没有在那里看到它。我想最终有两个地方打印的节点链接,其中一个地方最容...

7  如何在节点内部嵌入视图?  ( How do i embed a view inside a node ) 
在Drupal 6中,可以将视图嵌入到节点中,如下所示: $viewName = 'LatestNews'; print views_embed_view($viewName); 这不适用于Drupal 7.在Drupal 7中嵌入视图的功能是什么? ...




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


Licensed under cc by-sa 3.0 with attribution required.