diff --git a/importexport/inc/class.bodefinitions.inc.php b/importexport/inc/class.bodefinitions.inc.php index a64506a6ac..01a481a0bb 100644 --- a/importexport/inc/class.bodefinitions.inc.php +++ b/importexport/inc/class.bodefinitions.inc.php @@ -147,8 +147,9 @@ class bodefinitions { */ public static function import( $_import_file ) { + $translation = CreateObject('phpgwapi.translation'); if ( !is_file( $_import_file ) ) { - throw new Exception("'$_import_file' is not a valid file" ); + throw new Exception("'$_import_file' does not exist or is not readable" ); } $data = arrayxml::xml2array( file_get_contents( $_import_file ) ); @@ -158,10 +159,10 @@ class bodefinitions { unset ( $data ); // convert charset into internal used charset - $definitions = $GLOBALS['egw']->translation->convert( + $definitions = $translation->convert( $definitions, $metainfo['charset'], - $GLOBALS['egw']->translation->charset() + $translation->charset() ); // save definition(s) into internal table @@ -170,7 +171,7 @@ class bodefinitions { // convert allowed_user $definition_data['allowed_users'] = import_export_helper_functions::account_name2id( $definition_data['allowed_users'] ); $definition_data['owner'] = import_export_helper_functions::account_name2id( $definition_data['owner'] ); - + $definition = new definition( $definition_data['name'] ); $definition_id = $definition->get_identifier() ? $definition->get_identifier() : NULL; diff --git a/importexport/inc/class.definition.inc.php b/importexport/inc/class.definition.inc.php index c0ab114978..6bbd22f010 100644 --- a/importexport/inc/class.definition.inc.php +++ b/importexport/inc/class.definition.inc.php @@ -96,6 +96,11 @@ class definition implements iface_egw_record { if (isset($identifiers[1])) { throw new Exception('Error: Definition: "'.$_name. '" is not unique! Can\'t convert to identifier'); } + if ( empty( $identifiers[0] ) ) { + // not a good idea, till we don't have different exceptions so far + // throw new Exception('Error: No such definition :"'.$_name.'"!'); + $identifiers = array( array( 'definition_id' => 0 ) ); + } return $identifiers[0]['definition_id']; } @@ -304,4 +309,4 @@ class definition implements iface_egw_record { unset($this->so_sql); } -} \ No newline at end of file +} diff --git a/importexport/inc/class.import_export_helper_functions.inc.php b/importexport/inc/class.import_export_helper_functions.inc.php index 182c85557c..be0d7a2e47 100755 --- a/importexport/inc/class.import_export_helper_functions.inc.php +++ b/importexport/inc/class.import_export_helper_functions.inc.php @@ -33,7 +33,7 @@ class import_export_helper_functions { $account_ids[] = $account_id; } } - return is_array( $_account_lids ) ? $account_ids : implode( ',', $account_ids ); + return is_array( $_account_lids ) ? $account_ids : implode( ',', (array)$account_ids ); } // end of member function account_lid2id @@ -50,7 +50,7 @@ class import_export_helper_functions { $account_lids[] = $account_lid; } } - return is_array( $_account_id ) ? $account_lids : implode( ',', $account_lids ); + return is_array( $_account_id ) ? $account_lids : implode( ',', (array)$account_lids ); } // end of member function account_id2lid /** @@ -66,7 +66,7 @@ class import_export_helper_functions { foreach ( $cat_ids as $cat_id ) { $cat_names[] = $cats->id2name( (int)$cat_id ); } - return is_array( $_cat_ids ) ? $cat_names : implode(',',$cat_names); + return is_array( $_cat_ids ) ? $cat_names : implode(',',(array)$cat_names); } // end of member function category_id2name /** @@ -92,7 +92,7 @@ class import_export_helper_functions { } $cat_ids[] = $cat_id; } - return is_array( $_cat_names ) ? $cat_ids : implode( ',', $cat_ids ); + return is_array( $_cat_names ) ? $cat_ids : implode( ',', (array)$cat_ids ); } // end of member function category_name2id diff --git a/importexport/setup/default_records.inc.php b/importexport/setup/default_records.inc.php index be7c97be9e..cd08b9fc52 100644 --- a/importexport/setup/default_records.inc.php +++ b/importexport/setup/default_records.inc.php @@ -10,8 +10,16 @@ */ require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.bodefinitions.inc.php'); +require_once(EGW_INCLUDE_ROOT. '/phpgwapi/inc/class.accounts.inc.php'); +require_once(EGW_INCLUDE_ROOT. '/phpgwapi/inc/class.translation.inc.php'); + +// some globals we need +if ( !is_object($GLOBALS['egw']->accounts) ) $GLOBALS['egw']->accounts = new accounts(); +if ( !is_object($GLOBALS['egw']->translation) ) $GLOBALS['egw']->translation = new translation(); +if ( !is_object($GLOBALS['egw']->db)) $GLOBALS['egw']->db = $GLOBALS['egw_setup']->db; // apps, whose definitions should be installed automatically +// i don't know how to ask setup which apps are / ore are going to be installed. $appnames = array ( 'addressbook', ); @@ -23,7 +31,7 @@ foreach ($appnames as $appname) { // step through each file in appdir while (false !== ($entry = $d->read())) { - $file = $appdir. '/'. $entry; + $file = $defdir. '/'. $entry; list( $filename, $extension) = explode('.',$entry); if ( $extension != 'xml' ) continue; bodefinitions::import( $file );