Example #1
0
 protected function parseExportCategories(SimpleXMLElement $xml)
 {
     if (false === ($exportCategories = $xml->xpath('//config:export_categories/config:export_category'))) {
         return;
     }
     $con = Propel::getWriteConnection(ExportCategoryTableMap::DATABASE_NAME);
     $con->beginTransaction();
     try {
         /** @var SimpleXMLElement $exportCategory */
         foreach ($exportCategories as $exportCategory) {
             $id = (string) $exportCategory->getAttributeAsPhp("id");
             $exportCategoryModel = ExportCategoryQuery::create()->findOneByRef($id);
             if ($exportCategoryModel === null) {
                 $exportCategoryModel = new ExportCategory();
                 $exportCategoryModel->setRef($id)->save($con);
             }
             /** @var SimpleXMLElement $child */
             foreach ($exportCategory->children() as $child) {
                 $locale = (string) $child->getAttributeAsPhp("locale");
                 $value = (string) $child;
                 $exportCategoryModel->setLocale($locale)->setTitle($value)->save($con);
             }
         }
         $con->commit();
     } catch (\Exception $e) {
         $con->rollBack();
         Tlog::getInstance()->error($e->getMessage());
     }
 }