コード例 #1
0
                  $commsy_version = utf8_decode((string)$xml_object->version);

                  $current_commsy_version = getCommSyVersion();
                  if ( $current_commsy_version != $commsy_version ) {
                     $params = array();
                     $params['environment'] = $environment;
                     $params['with_modifying_actions'] = true;
                     $params['width'] = 500;
                     $errorbox = $class_factory->getClass(ERRORBOX_VIEW,$params);
                     unset($params);
                     $errorbox->setText($translator->getMessage('PREFERENCES_BACKUP_WARNING_VERSION',$current_commsy_version,$commsy_version));
                     $page->add($errorbox);
                  }
                  foreach ($xml_object->data->children() as $list) {
                     $name = str_replace('_list','',$list->getName());
                     $manager = $environment->getManager(DBTable2Type($name));
                     $success = false;
                     $success = $manager->backupDataFromXMLObject($list);
                     if (!isset($success) or !$success) {
                        $params = array();
                        $params['environment'] = $environment;
                        $params['with_modifying_actions'] = true;
                        $params['width'] = 500;
                        $errorbox = $class_factory->getClass(ERRORBOX_VIEW,$params);
                        unset($params);
                        $errorbox->setText($translator->getMessage('PREFERENCES_BACKUP_ERROR_MODULE',$name));
                        $page->add($errorbox);
                     } else {
                        $form_view->setItemIsSaved();
                        $is_saved = true;
                     }
コード例 #2
0
      or $tbl == 'section'
    ) {
    $query .= ' ORDER BY '.$tbl.'.version_id DESC';
 }
 $query .= ';';
 $result = select($query);
 $saved_item_ids = array();
 while ($row = mysql_fetch_assoc($result) ) {
    if ( !in_array($row['item_id'],$saved_item_ids) ) {
       $query  = 'INSERT INTO items SET';
       $query .= ' item_id="'.$row['item_id'].'"';
       $query .= ' ,context_id="'.$row['context_id'].'"';
       if ( $tbl == 'room' ) {
          $query .= ' ,type="'.$row['type'].'"';
       } else {
          $query .= ' ,type="'.DBTable2Type($tbl).'"';
       }
       if ( !empty($row['deleter_id']) ) {
          $query .= ' ,deleter_id="'.$row['deleter_id'].'"';
       }
       if ( !empty($row['deletion_date']) ) {
          $query .= ' ,deletion_date="'.$row['deletion_date'].'"';
       }
       if ( !empty($row['modification_date']) ) {
          $query .= ' ,modification_date="'.$row['modification_date'].'";';
       }
       $result2 = insert($query);
    }
    update_progress_bar($count);
    $saved_item_ids[] = $row['item_id'];
 }
コード例 #3
0
ファイル: cs_manager.php プロジェクト: a2call/commsy
 function _updateFromBackup($data_array)
 {
     $success = false;
     // get columns form database table
     if (!isset($this->_key_array)) {
         $query = 'SHOW COLUMNS FROM ' . $this->addDatabasePrefix($this->_db_table);
         $result = $this->_db_connector->performQuery($query);
         if (!isset($result)) {
             include_once 'functions/error_functions.php';
             trigger_error('Problem get colums from table ' . $this->_db_table . '.', E_USER_ERROR);
         } else {
             $this->_key_array = array();
             foreach ($result as $query_result) {
                 $this->_key_array[] = $query_result['Field'];
             }
             unset($result);
         }
     }
     // perform update
     $query = '';
     $query .= 'UPDATE ' . $this->addDatabasePrefix($this->_db_table) . '';
     $query .= ' SET ';
     $first = true;
     foreach ($data_array as $key => $value) {
         if ($key != 'item_id' and $key != 'files_id' and $key != 'version_id' and in_array($key, $this->_key_array)) {
             if ($first) {
                 $first = false;
             } else {
                 $query .= ',';
             }
             $query .= $key . '="' . encode(AS_DB, $value) . '"';
         }
     }
     if (!isset($data_array['deleter_id']) or empty($data_array['deleter_id'])) {
         $query .= ',deleter_id=NULL';
     }
     if (!isset($data_array['deletion_date']) or empty($data_array['deletion_date'])) {
         $query .= ',deletion_date=NULL';
     }
     if (DBTable2Type($this->_db_table) == CS_FILE_TYPE) {
         $query .= ' WHERE files_id="' . encode(AS_DB, $data_array['files_id']) . '"';
     } elseif (DBTable2Type($this->_db_table) == CS_LINKHOMEPAGEHOMEPAGE_TYPE or DBTable2Type($this->_db_table) == CS_TAG2TAG_TYPE) {
         $query .= ' WHERE link_id="' . encode(AS_DB, $data_array['link_id']) . '"';
     } else {
         $query .= ' WHERE item_id="' . encode(AS_DB, $data_array['item_id']) . '"';
     }
     if (isset($data_array['version_id'])) {
         $query .= ' AND version_id="' . encode(AS_DB, $data_array['version_id']) . '"';
     } elseif (DBTable2Type($this->_db_table) == CS_MATERIAL_TYPE) {
         $query .= ' AND version_id="0"';
     }
     $query .= ';';
     $result = $this->_db_connector->performQuery($query);
     if (!isset($result) or !$result) {
         include_once 'functions/error_functions.php';
         trigger_error('Problem backuping item.', E_USER_ERROR);
     } else {
         $success = true;
         unset($result);
     }
     return $success;
 }