/** * @param $args * @return string */ public function renderAdminPosition($args = array()) { // init vars $elements = array(); $output = array(); $layout = $this->_layout; $style = isset($args['style']) ? $args['style'] : 'adminedit'; $this->_order = isset($args['order']) ? $args['order'] : $this->_order; $shipping = $this->_order->getShipping(); // render elements $shippingFields = $this->_order->getShippingFields(); foreach ($shippingFields as $identifier => $data) { if ($element = $this->_order->getShippingFieldElement($identifier)) { if ($shipping && !$shipping->hasShippingField($identifier)) { continue; } $element->bindData($data); $params = array_merge(array('_layout' => $this->_layout, '_index' => $identifier), $args); $elements[] = compact('element', 'params'); } } foreach ($elements as $i => $data) { $output[$i] = parent::render('element.' . $style, array('element' => $data['element'], 'params' => array_merge(array('first' => $i == 0, 'last' => $i == count($elements) - 1), $data['params']))); } // restore layout $this->_layout = $layout; return implode(PHP_EOL, $output); }