/** * 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; }