/** * Convert order to new format * @param $page * @return bool */ public function convertItems($page) { $this->_migrate = $this->app->jbmigrate; $params = $this->_migrate->getParams(); $this->_fields = $this->_migrate->getOrderFields(); $this->_statusList = $this->_getStatusList(); $realStep = $page - $params->find('steps.system_steps'); $size = $params->find('steps.step'); if ($realStep <= 0) { return -1; } $orders = JBModelItem::model()->getList($params->get('app'), null, $params->get('type'), array('limit' => array(($realStep - 1) * $size, $size), 'published' => 0, 'state' => -1, 'order' => 'id')); if (count($orders) > 0) { foreach ($orders as $order) { if ($newOrder = $this->_convertOrder($order)) { JBModelOrder::model()->save($newOrder, true); } } return $page + 1; } return false; }
/** * Create form fields */ public function formFields() { $configModel = JBModelConfig::model(); $application = $this->_migrate->getCartApp(); $templatePath = null; $orderFields = null; if ($application) { $templatePath = $application->getTemplate()->getPath(); $orderFields = $this->_migrate->getOrderFields(); } if ($templatePath && $orderFields) { $posFile = $templatePath . '/renderer/item/positions.config'; $renderParams = array(); if (JFile::exists($posFile)) { $posFile = $this->app->data->create(json_decode(file_get_contents($posFile), true)); foreach ($posFile->get('jbuniversal.order.order', array()) as $position) { foreach ($position as $element) { $renderParams[$element['element']] = $element; } } } foreach ($renderParams as $elemId => $renderParam) { if (!isset($orderFields[$elemId])) { continue; } /** * @var AppData $config * @var AppData $renderParam */ $config = $this->app->data->create($orderFields[$elemId]); $renderParam = $this->app->data->create($renderParam); $elemType = isset($this->_elementMap[$config['type']]) ? $this->_elementMap[$config['type']] : 'text'; $orderElement = $this->_element->create($elemType, JBCart::ELEMENT_TYPE_ORDER, array('name' => $config->get('name'), 'description' => $config->get('description'), 'access' => $config->get('access'), 'default' => $config->get('default'), 'option' => $config->get('option'), 'multiple' => $config->get('multiple'))); $list = $configModel->getGroup('cart.field'); $list[JBCart::DEFAULT_POSITION][$orderElement->identifier] = (array) $orderElement->config; $configModel->setGroup('cart.field', $list); $renderElement = array('user_field' => '', 'showlabel' => '0', 'altlabel' => $renderParam->get('altlabel'), 'required' => $renderParam->get('required', 0), 'type' => $orderElement->getElementType(), 'group' => $orderElement->getElementGroup(), 'identifier' => $orderElement->identifier); $list = $configModel->getGroup('cart.field_tmpl.default'); $list[JBCart::DEFAULT_POSITION][] = $renderElement; $configModel->setGroup('cart.field_tmpl.default', $list); } } }