2016-03-22 13 views
2

Ben pimcore içine alan hareketli olarak, bir sınıfın varolan alanları lokalize olurken ben bir zorlukla karşılaştığında am 3. geliştirilen mevcut proje Yerelleştirilmiş alan kapsayıcısı, bu sınıfı kullanan tüm nesnelerde alandan veri kaybını ifade eder. Bu verileri kaybetmek istemiyorum ve bunun yerine bu yerelleştirilmiş kapsayıcının ingilizce diline taşınmasını istedim.Pimcore bir alanın lokalizasyon tr lokalize mevcut verileri taşımak iken (ingilizce) dili

en aşağıda alanlarla bir sınıf "test" olduğunu varsayalım:

  • İsim (metin)
  • aza (textarea)
  • Tür (metin)
  • Kategori (nesne)

Şimdi ben İngilizce, Fransızca ve Almanca için 3 alanlarının altındaki lokalize istediğimizi varsayalım.

  • İsim (metin)
  • aza (textarea)
  • Kategori (nesne)

Ama kaybolmasına benim verilerini mevcut istemiyoruz, bunun yerine ingilizce dil istiyorum Bu yerelleştirme alanı mevcut verilerle doldurulacak.

Şimdiden teşekkürler.

cevap

2

Ne yazık ki bu tamamen basit değildir. En basit durumda, iki basit komut yazmalısınız.

  • örneğin üç alan çoğaltmak:

    bu iş akışını izleyin. NameTemp, DescTemp ve CategoryTemp

  • kopya NameTemp için adı verilerine, Desc gelen DescTemp ve Kategoriler CategoryTemp

için bunu kopyalandı sonra bir komut dosyası oluşturun:

  • hareket Adı alanları , Desc, Kategoriye yerelleştirilmiş alan - (verileriniz hala NameTemp, DescTemp ve CategoryTemp'de kaldı)
  • şimdi NameTemp'den Name'a, DescTemp'dan Desc'e ve CategoryTemp'den Catego'ya veri kopyalayan yeni bir betik oluşturun. ry

Numune komut dosyası (TEST DEĞİL):

// 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(); 
    } 
}