【问题标题】:Pimcore While localization of a field move existing data to localized en(english) languagePimcore 在字段本地化时将现有数据移动到本地化的英语(英语)语言
【发布时间】:2016-07-09 11:25:01
【问题描述】:

我有一个在 pimcore 3 上开发的现有项目。我在本地化类的现有字段时面临挑战,因为将字段移动到本地化的字段容器中意味着使用此字段的所有对象中的字段数据丢失班级。我不想丢失该数据,而是希望将该数据移动到该本地化字段容器的英语中。

假设我有一个包含以下字段的类“测试”:

  • 姓名(文字)
  • Desc (textarea)
  • 类型(文本)
  • 类别(对象)

假设现在我想本地化以下 3 个字段,分别是 English 、 French 和 German 。

  • 姓名(文字)
  • Desc (textarea)
  • 类别(对象)

但我不希望我现有的数据丢失,而是希望用现有数据填充该本地化领域的英语。

提前致谢。

【问题讨论】:

    标签: localization pimcore


    【解决方案1】:

    不幸的是,这并不完全简单。在最简单的情况下,您应该编写两个简单的脚本。

    遵循此工作流程:

    • 复制三个字段,例如。 NameTemp、DescTemp 和 CategoryTemp
    • 创建一个脚本,将数据从 Name 复制到 NameTemp,从 Desc 到 DescTemp 和 Category 到 CategoryTemp

    复制后执行此操作:

    • 将字段名称、描述、类别移动到本地化字段 -(您的数据是 仍留在 NameTemp、DescTemp 和 CategoryTemp 中)
    • 现在创建一个新脚本,将数据从 NameTemp 复制到 Name,将 DescTemp 复制到 Desc,CategoryTemp 复制到 Category

    示例脚本(未测试):

    // First run copyValueFromFieldsToTempFieldsAction(), 
    // then move the fields into localized field,
    // afterwards run copyValueFromTempFieldsToFieldsAction()
    // in the end remove temp fields
    public function copyValueFromFieldsToTempFieldsAction(){
      $this->disableViewAutoRender();
    
      $objectList = new \Pimcore\Model\YourObject\Listing();
      //$object_list->setObjectTypes(array(Object_Abstract::OBJECT_TYPE_VARIANT));
    
      /* @var $object Object_PrdktResetkeNaZalogi */
      foreach($objectList as $object){
          $object->setNameTemp($object->getName());
          $object->setDescTemp($object->getTemp());
          $object->setCategoryTemp($object->getCategory());
    
          $object->save();
      }
    }
    
    public function copyValueFromTempFieldsToFieldsAction(){
      $this->disableViewAutoRender();
    
      $objectList = new \Pimcore\Model\YourObject\Listing();
      //$object_list->setObjectTypes(array(Object_Abstract::OBJECT_TYPE_VARIANT));
    
      /* @var $object Object_PrdktResetkeNaZalogi */
      foreach($objectList as $object){
          $object->setTemp($object->getNameTemp());
          $object->setDesc($object->getTemp());
          $object->setCategory($object->getCategorTemp());
    
          $object->save();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 2023-04-08
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多