Esempio n. 1
0
 public function vm_userfield()
 {
     $pk = 'fieldid';
     $destination_table =& JTable::getInstance('userfields', 'Table');
     //Load destination Table
     $excludeids = $this->getAlreadyTransferedIds();
     // Load already transfered items
     $where = 'sys <> 1';
     $items = $this->getItems2BTransfered($this->vmTablePrefix . '_userfield', $pk, $excludeids, $where);
     //Get a list of source objects to be transfered
     if (!$items) {
         $this->logInfo(JText::_('NOTHING_TO_TRANSFER'));
         return false;
     }
     foreach ($items as $i => $item) {
         $srcid = $item[$pk];
         //Set the primary key
         $srccode = $item['name'];
         $record = new stdClass();
         //$record->virtuemart_userfield_id = 0;
         $record->virtuemart_vendor_id = $item['vendor_id'];
         $record->userfield_jplugin_id = 0;
         $record->name = $item['name'];
         $title = $item['title'];
         //Transform some labels that were updated in VM2
         if (strpos($title, 'PHPSHOP_') === 0) {
             $title = str_replace('PHPSHOP_', 'COM_VIRTUEMART_', $title);
         }
         $record->title = $title;
         $record->description = $item['description'];
         $record->type = $item['type'];
         $record->maxlength = $item['maxlength'];
         $record->size = $item['size'];
         $record->required = $item['required'];
         $record->cols = $item['cols'];
         $record->rows = $item['rows'];
         $record->value = $item['value'];
         $record->default = $item['default'];
         $record->published = $item['published'];
         $record->registration = $item['registration'];
         $record->shipment = $item['shipping'];
         $record->account = $item['account'];
         $record->readonly = $item['readonly'];
         $record->calculated = $item['calculated'];
         $record->sys = $item['sys'];
         //$record->params = $item['params'];
         $record->ordering = $item['ordering'];
         $record->shared = 0;
         $record_values = new stdClass();
         try {
             $this->destination_db->transactionStart();
             $this->insertOrReplace('#__virtuemart_userfields', $record, 'name');
             if ($record->type != 'delimiter') {
                 $type = $destination_table->formatFieldType(JArrayHelper::fromObject($record));
                 VMMigrateHelperDatabase::AddColumnIfNotExists('#__virtuemart_userinfos', $srccode, $type);
                 VMMigrateHelperDatabase::AddColumnIfNotExists('#__virtuemart_order_userinfos', $srccode, $type);
                 VMMigrateHelperDatabase::AlterColumnIfExists('#__virtuemart_userinfos', $srccode, $srccode, $type);
                 VMMigrateHelperDatabase::AlterColumnIfExists('#__virtuemart_order_userinfos', $srccode, $srccode, $type);
                 $this->insert_field_values($item['fieldid'], $record);
             }
             $this->destination_db->transactionCommit();
             $this->logRow($srcid, $item['title']);
         } catch (Exception $e) {
             $this->destination_db->transactionRollback();
             $this->logError($e->getMessage(), $srcid);
         }
     }
     if ($this->moreResults) {
         return true;
     }
 }