示例#1
0
 /**
  * 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);
         }
     }
 }