Drupal 7日期 - 如果已经存在数据,有没有办法改变现场设置? -- 7 领域 和 entities 领域 和 datetime 领域 和 migration 领域 drupal 相关 的问题

Drupal 7 Date - Is there a way to change field settings if there is data in it already?


2
vote

问题

中文

目前我正在使用drupal 7的日期模块,我已经在现有日期字段中拥有存储的数据。我想通过添加"重复日期" 来对日期字段进行更改,但显然我无法在已经存在数据。我想出的选项是:

  1. 为内容类型创建一个完整的新日期字段,其中包含附加的"重复日期" 功能。然后将所有旧日期复制到新字段中(我不确定如何轻松执行此操作)

  2. 通过phpmyadmin或mysql控制台修改现有日期字段表。

更新已经有数据的现有字段的建议方式是什么?

英文原文

Currently I am using the date module for drupal 7 and I already have stored data in the existing date field. I want to make changes to the date field by adding "Repeating Dates", but obviously I cannot since I have data in there already. The options I came up with are:

  1. Create a completely new date field for the content type with the additional "Repeating Dates" feature. Then copy all the old dates into the new field (im not sure how to do this easily)

  2. Modify the existing Date field table via phpmyadmin or mysql console.

What is the suggested way to go about updating an existing field that already has data?

           
 
 

回答列表

0
 
vote
vote
最佳答案
 

你也可以看看这个贡献模块 https://www.drupal.org/project/entity_recur

 

You could take a look at this contrib module too https://www.drupal.org/project/entity_recur

 
 
2
 
vote

我通过执行以下操作而获得此工作,而无需编写任何代码。请记住,我只为日期类型字段执行此操作:

示例:

我的旧字段:field_eventdate

我的新字段:Field_PlaceHolder

  1. 创建具有不同名称和所需选项的相同字段类型。
  2. 打开phpmyadmin
  3. goto表:field_config
  4. 搜索您创建的新字段(Field_PlaceHolder)
  5. 单击数据列BLOB并下载。
  6. 搜索和编辑 field_eventdate并上传您下载的文件,其中包含新设置。
  7. 对表进行相同的确切操作: field_config_instance
  8. 现在我们必须更新字段的表结构以包含这些更改。我首先检查了我创建的新领域的质量,看看旧桌子缺失了什么。一旦您下来,在新字段中的旧字段中创建缺少的列。
  9. 再次做#8,但这是修订表的时间。在我的情况下,它是: field_revision_eventdate
  10. 通过内容类型页面删除Field_PlaceHolder,因为您不再需要它。

让我知道这也适用于其他人。

 

I got this working by doing the following without having to write any code. Keep in mind im only doing this for the DATE type fields:

example:

my old field: field_eventdate

my new field: field_placeholder

  1. create the same field type with a different name and the options you want.
  2. open up phpmyadmin
  3. goto the table: field_config
  4. search for the new field you created (field_placeholder)
  5. click on the data column blob and download that.
  6. search and edit field_eventdate and upload the file you downloaded which contains the new settings.
  7. do the same exact thing for the table: field_config_instance
  8. now we have to update the table structures of the field to encompass these changes. I first inspected the strucuture of the new field i created and see what the old table was missing. Once you have that down, create the missing columns in the old field that exists in the new field.
  9. Do #8 again but this time for the revisions table. In my case it would be: field_revision_eventdate
  10. delete the field_placeholder via the content type page as you wont need it anymore.

let me know if this worked for anyone else too.

 
 
     
     
2
 
vote

比触摸数据库更安全的方式...

  1. 首先使用重复日期创建新字段,让我们调用它字段_event_date
  2. 然后将来自第一个字段(Field_Date)的所有内容复制到新的一个

代码:

  $query = new EntityFieldQuery();  $query->entityCondition('entity_type', 'node')   ->entityCondition('bundle', {your_content_type})   ->addMetaData('account', user_load(1));  $result = $query->execute(); foreach($result['node'] as $nid => $n) {   $node = node_load($nid);   $node->field_event_date = $node->field_date;  // Copy one field to another   node_save($node); }     
 

A more secure way than touching the database...

  1. First create your new field with the repeating date, let's call it field_event_date
  2. Then copy everything from the first field (field_date) to your new one

Code:

$query = new EntityFieldQuery();  $query->entityCondition('entity_type', 'node')   ->entityCondition('bundle', {your_content_type})   ->addMetaData('account', user_load(1));  $result = $query->execute(); foreach($result['node'] as $nid => $n) {   $node = node_load($nid);   $node->field_event_date = $node->field_date;  // Copy one field to another   node_save($node); }   
 
 
 
 
1
 
vote

我通过使用功能首先捕获原始日期字段来了解它。然后,我创建了一个像我想要的字段(类似于你用占位符完成的东西)和功能导出它。我比较了导出的代码并更新了原始字段的功能导出代码,SQL-转储来自Field_Data_Field_的数据。表,通过管理字段屏幕删除原始字段,将要重新转换为已修改的功能导出代码,然后是SQL导入从我的出口。 voila!

 

I went about it by first capturing the original Date field with Features. Then, I created a field like I would like to target (similar to what you'd done with the placeholder) and Features-exported it. I compared the exported code and updated the original field's Feature export code, SQL-dumped the data from the field_data_field_.. table, deleted the original field by Manage Fields screen, feature-reverted to the modified Features export code, and then SQL-imported from my export. voila!

 
 

相关问题

4  在Drupal 7中,其中存储的现场设置数据在哪里? (不是现场数据)  ( In drupal 7 where is field settings data stored not the field data ) 
我试图通过phpmyadmin手动更新我的字段的数据表结构,因为我无法通过字段设置页面修改它,因为我有数据。事是,我在哪里更新"字段设置" 来包含这些表结构的变化? ...

1  您可以根据当前用户角色过滤视图用户列表结果  ( Can you filter views user list result based on the current users role ) 
是否可以使视图用户列表的结果仅包含具有当前用户的特定角色的用户? 我不熟悉看法,但它似乎符合比标配的更好的看起来和更具可用的用户列表,而不是用Drupal来说。但是,我需要将用户列表过滤。 i设置由特定角色标识的多个用户组(如组Member - A组)。该组的管理员用户具有额外的管理角色(如组管理器),但在使用...

1  规则组件的特定权限  ( Specific permissions for rules components ) 
我创建了两个规则组件,但我找不到任何模块来为角色设置特定权限。 我想让一些角色的用户允许运行第一个组件但不是第二个组件。 谢谢。 ...

0  旁路自定义模块中的权限  ( Bypass permissions in custom module ) 
我已经写了一个自定义模块,当提交WebForm并将其邮寄给管理员时,会生成PDF。我正在使用打印模块来生成pdf。问题是,在生成PDF时似乎使用用户的权限,而不是管理员。这通常可以用于经过身份验证的用户,但对于访客来说,它只是完全失败。 我已启用"访问PDF版本" 和"访问自己的WebForm提交" 的所有用户(匿名...

3  基于国家的城市名单选择  ( Country based city list selection ) 
我可以使用分层选择模块,但它包含很多在输入数据时的手动工作。我想要所有国家/地区他们的城市名单。怎么做 ? 是否有任何模块,有助于根据国家选择显示城市列表?有一种自定义方式吗?提前谢谢 ...

1  如何将多值图像字段转换为UL  ( How to turn multi value image field into a ul ) 
我有一个多价图像字段。我想在UL / Li中输出图像。我应该在preprocess_field中添加前缀和后缀吗? ...

0  需求数据可以是drupal hook_token_info中的数组吗?  ( Can needs data be an array in drupal hook token info ) 
功能 hook_token_info() 具有用于需求数据的数组? hook_token_info() { $type = array( 'name' => t('ABC Settings'), 'description' => t('Token...

0  有一条路径有两种类型的视图  ( Having two types of view for one path ) 
我需要一个分类术语的视图,它将任何子项术语显示为链接和标记为术语的产品节点表,但我只能解决如何应用一个或另一个。 任何帮助感谢! 编辑以获取清晰度:对于路径分类/术语/术语/%,我需要向子项术语或儿童术语显示与该术语相关联的所有产品(节点)的子项。我已经假设将这两个两者相结合到一个视图中,以某种方式将这两个人组合在一...

0  具有日期字段的面板页面标题  ( Panel page title with date field ) 
我有一个面板页面,标题设置为%node:field_pub_year从替换列表。 Field_pub_year是要选择发布年份的日期字段。我的问题是,这是一个完整的日期,如'2012-01-01 00:00:00'作为标题。是否可以仅显示"2012" 作为标题。 谢谢。 ...

1  将创建内容菜单项显示为Ananymous用户,但在点击中致电登录/注册弹出窗口的URL  ( Show create content menu item to ananymous users but call url for login register ) 
我认为这样做会很简单,但在很多搜索后,我找不到精确的解决方案。 所以问题是,我有2-3个主菜单项,我必须向匿名用户展示,但必须调用URL(用于登录/注册弹出窗口)&如果单击它们,请提示登录或注册。 我找到的最佳解决方案我找到了创建内容链接"node / add / node类型" 是类似的 - fu...

1  多个提交处理程序  ( Multiple submit handlers ) 
我有以下代码: function corporate_form_alter(&$form, &$form_state, $form_id) { switch ($form_id) { case 'user_login_block': { unset($form['links'])...

0  curdate()返回错误的结果  ( Curdate return wrong result ) 
我在drupal中写下SQL查询看起来像这样。 让我们假设今天的日期是2013-07-24,节点总数为4 。 $query = "SELECT COUNT(*) amount FROM {node} n LEFT JOIN {flagging} f ON n.nid = f...

0  如何禁用特定节点的CKEditor?  ( How to disable ckeditor for a particular node ) 
我想在特定节点内的内容进行风格,但CKEDITOR似乎通过引入不必要的标记而干扰。 在drupal 6中,您可以通过在节点形式上添加生成的ID来禁用它,以至于CKEditor的配置文件设置。 我可以在drupal 7版本中找到没有类似的设置。 我在这里缺少一些东西吗?是否有Drupal 7类似的配置? 或者我应该使用...

1  失去使用节点加载与Ajax表单提交中的参数使用节点加载的能力  ( Lose ability to use node load with an argument in ajax form submit ) 
我有这样的基本形式,这实际上只是一个提交按钮: function mymodule_form($form, &$form_state) { $form = array(); $form['submit'] = array( '#type' => 'submit', ...

1  如何在OG中添加标签项,显示与该组相关的内容类型?  ( How may i add a tab item in an og that shows a content type related to that grou ) 
我们有Drupal Commons 3(在Drupal 7)。在我们的团队中,我想在Group的标题附近添加标签,该标签链接到某个内容类型。我准备好了一个看法。如何将该视图添加到OG选项卡? 更新和屏幕镜头: 所以我有这个视图: 我跳起来在这里创建一个新选项卡: 通过使用此设置: ...

3  哪个钩子或TPL文件控制视图的输出(以操纵结果)?  ( Which hook or tpl file controls the output of a view to manipulate the results ) 
我正在创建一个反复出现的事件视图页面,但是当前我的视图的输出正在显示同一日期事件的多个引用。我也没有使用字段作为输出,我正在使用内容|预告片。 我已经提出了2个解决这个问题的方法,但是要澄清哪个是最好的,怎么走它。 查找输出视图行的钩子,然后写入条件以比较每行并删除重复项。 创建一个tpl文件并在视图输出上...

0  如何为视图上的每个链接设置一个变量,未格式化列表  ( How to set one variable for each link on a views un formatted list ) 
我正在尝试创建一个变量来放入l()函数。这是下面的$ Rellink。 <?php print l('<span class="link-spanner"></span>', "$rellink", array ('html' => TRUE)); ?> 我有一个内容节点列表,我在未格式化的视图中显示。我希...

0  从SQL转储导入内容类型  ( Import content types from sql dump ) 
我最近在我目前正在努力的网站上崩溃。我正在运行sqlite,崩溃锁定了db。无论我尝试了什么,我无法再次访问数据库(杀死进程,导出到新的DB,重新安装Drupal)。所以我决定迁移到mysql。我将SQL转储从旧数据库转换为MySQL语法,没有太多问题。我可以像罚款一样重复导入我的节点,但是我无法获取我的内容类型,面...

1  是否有任何方法可以使用jQuery覆盖来确认/拒绝节点删除?  ( Is there any way to use a jquery overlay to confirm reject node deletion ) 
当我删除一个节点(任何类型的节点,概括)时,我想通过jQuery的是/否对话框来实现确认,而不是在页面上突破,而不是被重定向到单独的页面"此操作无法撤消" 消息。这是21世纪和所有... http://bootboot.com/ 似乎是处理对话框的好候选人,但问题是如何将其绑定到表单和节点删除过程中,理想情况下...

21  自定义视图处理程序没有表  ( Custom views handler without table ) 
首先似乎很容易,但我在这件事上失去了头发。 我只是想添加一个使用没有表的自定义视图处理程序。 我试图用作php提出的php,$ data ['peews'] ['mycustomfield']在hook_views_data中,但仍然是"mycustomfield colum未找到" 。 任何帮助?谢谢! ...




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


Licensed under cc by-sa 3.0 with attribution required.