从现有节点的字段中获取数据,并将其设置为不同内容类型的字段的默认值

时间:2010-07-02 04:59:01

标签: drupal cck

我不知道我是否走在正确的轨道上,但我想让我的网站用户在我的网站上创建自己的页面版本。 基本上我想把我们的文档作为起点,他们只是在这个过程中添加细节并为自己创建一个新页面。 我有一个'book'内容类型,我已经使用CCK更改了一个'客户端编辑'内容类型,它使用来自URL小部件的nodereference将自身链接到book节点。

我所说的简单版本是我的书页上有一个链接,它使用客户端编辑内容类型创建节点。我想在客户端编辑内容类型上放置一些字段,这些字段采用其链接的书页中某些字段的值。

我确定我错过了一些东西,因为我以为有人会尝试过这个但是我甚至找不到如何解决这个问题的暗示。

如果我目前的想法是错误的,那么我真正需要的是一个正确的方向。 目前的想法是我使用PHP脚本来获取新节点添加屏幕上的字段的默认值,该屏幕拖动我正在链接的书中的字段的值。 我认为是这种情况,因为cck管理字段中的字段有一个默认值选项,允许您输入php值以返回字段的默认值。

我是在正确的轨道上还是已经有一个模块或流程可以完成我正在谈论的内容,而且我太愚蠢而无法找到它。

2 个答案:

答案 0 :(得分:0)

这听起来有点奇怪,您的客户端编辑是原始节点的差异还是仅仅是同步数据?

我愿意以一种更简单的方式做到这一点,只是拥有书籍节点,并且根据编辑者的不同而具有不同的字段(启用content_permissions模块)。这样您就可以使用node clone模块来创建用户副本。

您需要make a module来包含您的自定义PHP代码。

答案 1 :(得分:0)

我最终使用规则将用户和克隆节点的信息保存到隐藏字段中。 除非url以Clone结尾,否则在创建该类型的内容时将原始节点ID保存到字段中。这意味着在创建克隆时,原始节点ID将保留在字段中。 这使得使用视图参数变得容易,当用户访问原始页面时,该参数使用节点ID使克隆显示在原始文件的旁边。 第二个规则技巧是仅在保存克隆内容时计算从用户的配置文件中保存“商店名称”的字段。 这意味着克隆上存在一个存储信息的隐藏字段,因此我可以使用另一个视图参数将视图限制为仅在其配置文件中具有相同商店名称的人。 我对PHP不好,但我设法找到一个片段(不记得在哪里),它返回当前登录用户的商店名称作为参数。

global $user;

profile_load_profile($user);

return $user->profile_store_name;