Exemple #1
0
 /**
  * Import module from given array datas
  *
  * @param array $data The module datas to import
  * @param array $params The import parameters.
  * 		array(
  * 				module	=> false|true : the module to create rows (required)
  * 				create	=> false|true : create missing objects (default : true)
  * 				update	=> false|true : update existing objects (default : true)
  * 				files	=> false|true : use files from PATH_TMP_FS (default : true)
  * 			)
  * @param CMS_language $cms_language The CMS_langage to use
  * @param array $idsRelation : Reference : The relations between import datas ids and real imported ids
  * @param string $infos : Reference : The import infos returned
  * @return boolean : true on success, false on failure
  * @access public
  */
 static function fromArray($data, $params, $cms_language, &$idsRelation, &$infos)
 {
     if (!isset($params['module'])) {
         $infos .= 'Error : missing module codename for rows importation ...' . "\n";
         return false;
     }
     $module = CMS_modulesCatalog::getByCodename($params['module']);
     if ($module->hasError()) {
         $infos .= 'Error : invalid module for rows importation : ' . $params['module'] . "\n";
         return false;
     }
     $return = true;
     foreach ($data as $rowDatas) {
         $importType = '';
         if (isset($rowDatas['uuid']) && ($id = CMS_rowsCatalog::rowExists($params['module'], $rowDatas['uuid']))) {
             //row already exist : load it if we can update it
             if (!isset($params['update']) || $params['update'] == true) {
                 $row = CMS_rowsCatalog::getByID($id);
                 $importType = ' (Update)';
             }
         } else {
             //create new row if we can
             if (!isset($params['create']) || $params['create'] == true) {
                 //create row
                 $row = new CMS_row();
                 $importType = ' (Creation)';
             }
         }
         if (isset($row)) {
             if ($row->fromArray($rowDatas, $params, $cms_language, $idsRelation, $infos)) {
                 $return &= true;
                 $infos .= 'Row ' . $row->getLabel() . ' successfully imported' . $importType . "\n";
             } else {
                 $return = false;
                 $infos .= 'Error during import of row ' . $rowDatas['id'] . $importType . "\n";
             }
         }
     }
     return $return;
 }