コード例 #1
0
ファイル: loader.php プロジェクト: aldegtyarev/stelsvelo
    function getSTfields(&$obj, $unlg = false, $no_wrapper = false, $dc = '')
    {
        static $isUpdated;
        include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php';
        if (OPCloader::logged($obj->cart) && empty($unlg)) {
            return $this->getUserInfoST($obj);
        }
        if (!class_exists('VirtueMartCart')) {
            require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php';
        }
        if (!empty($obj->cart)) {
            $cart =& $obj->cart;
        } else {
            $cart = VirtueMartCart::getCart();
        }
        if (!empty($dc)) {
            $default_shipping_country = $dc;
        } else {
            $default_shipping_country = OPCloader::getDefaultCountry($cart);
        }
        if ($cart->ST === 0) {
            if (isset($cart->savedST)) {
                $cart->ST = $cart->savedST;
                if (isset($cart->ST['shipto_virtuemart_country_id'])) {
                    $default_shipping_country = $cart->ST['virtuemart_country_id'];
                }
            }
        }
        $type = 'ST';
        $this->address_type = 'ST';
        // for unlogged
        // for unlogged
        $virtuemart_userinfo_id = 0;
        //$this->virtuemart_userinfo_id = 0;
        $new = 1;
        if (!empty($unlg)) {
            $new = false;
        }
        $fieldtype = $type . 'address';
        $savedST = OPCloader::copyAddress($cart->ST);
        if (!empty($cart->ST) && count($cart->ST) > 2) {
            $new = false;
        }
        if (method_exists($cart, 'prepareAddressDataInCart')) {
            $cart->prepareAddressDataInCart($type, $new);
        }
        if (method_exists($cart, 'prepareAddressFieldsInCart')) {
            $cart->prepareAddressFieldsInCart();
        }
        OPCloader::restoreDataInCart($cart->ST, $savedST);
        OPCloader::setRegType();
        $op_disable_shipto = OPCloader::getShiptoEnabled($cart);
        if (!class_exists('VirtuemartModelUserfields')) {
            require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'userfields.php';
        }
        $corefields = VirtueMartModelUserfields::getCoreFields();
        $userFields = $cart->{$fieldtype};
        //foreach ($corefields as $f)
        if (!empty($userFields['fields'])) {
            foreach ($userFields['fields'] as $key => $uf) {
                OPCloader::$fields_names['shipto_' . $key] = $userFields['fields'][$key]['title'];
                $userFields['fields'][$key]['formcode'] = str_replace('vm-chzn-select', '', $userFields['fields'][$key]['formcode']);
                if (!empty($corefields)) {
                    foreach ($corefields as $k => $f) {
                        if ($f == $uf['name']) {
                            unset($userFields['fields'][$key]);
                            unset($corefields[$k]);
                        }
                    }
                }
                if (empty($custom_rendering_fields)) {
                    $custom_rendering_fields = array();
                }
                if (in_array($uf['name'], $custom_rendering_fields)) {
                    unset($userFields['fields'][$key]);
                    continue;
                }
                $userFields['fields'][$key]['formcode'] = str_replace('class="virtuemart_country_id required"', 'class="virtuemart_country_id"', $userFields['fields'][$key]['formcode']);
                $userFields['fields'][$key]['formcode'] = str_replace('required>', '', $userFields['fields'][$key]['formcode']);
                $userFields['fields'][$key]['formcode'] = str_replace(' required ', '', $userFields['fields'][$key]['formcode']);
                $userFields['fields'][$key]['formcode'] = str_replace('required"', '"', $userFields['fields'][$key]['formcode']);
                if ($key == 'address_type_name') {
                    $userFields['fields'][$key]['formcode'] = str_replace('Shipment', JText::_('COM_VIRTUEMART_SHOPPER_FORM_SHIPTO_LBL'), $userFields['fields'][$key]['formcode']);
                }
                if (!empty($userFields['fields'][$key]['required'])) {
                    $userFields['fields'][$key]['required'] = false;
                }
                if (!empty($shipping_obligatory_fields)) {
                    if (in_array($key, $shipping_obligatory_fields)) {
                        $userFields['fields'][$key]['required'] = true;
                    }
                }
                // let's add a default address for ST section as well:
                if ($key == 'virtuemart_country_id') {
                    if (empty($unlg) || !empty($default_shipping_country)) {
                        $userFields['fields'][$key]['formcode'] = str_replace('selected="selected"', '', $userFields['fields'][$key]['formcode']);
                        $search = 'value="' . $default_shipping_country . '"';
                        $replace = ' value="' . $default_shipping_country . '" selected="selected" ';
                        $userFields['fields'][$key]['formcode'] = str_replace($search, $replace, $userFields['fields'][$key]['formcode']);
                    }
                }
                if ($key == 'virtuemart_country_id') {
                    $userFields['fields'][$key]['formcode'] = str_replace('name=', ' autocomplete="off" name=', $userFields['fields'][$key]['formcode']);
                }
                //if (false)
                if (isset($userFields['fields'][$key])) {
                    if ($key == 'virtuemart_state_id') {
                        if (!empty($cart->ST['virtuemart_country_id'])) {
                            $c = $cart->ST['virtuemart_country_id'];
                        } else {
                            $c = $default_shipping_country;
                        }
                        if (empty($c)) {
                            $vendor = OPCloader::getVendorInfo($cart);
                            $c = $vendor['virtuemart_country_id'];
                        }
                        $html = $this->getStateHtmlOptions($cart, $c, 'ST');
                        if (!empty($cart->ST['virtuemart_state_id'])) {
                            $html = str_replace('value="' . $cart->ST['virtuemart_state_id'] . '"', 'value="' . $cart->ST['virtuemart_state_id'] . '" selected="selected"', $html);
                        } else {
                            if (!empty($cart->ST['shipto_virtuemart_state_id'])) {
                                $html = str_replace('value="' . $cart->ST['shipto_virtuemart_state_id'] . '"', 'value="' . $cart->ST['shipto_virtuemart_state_id'] . '" selected="selected"', $html);
                            }
                        }
                        if (!empty($userFields['fields'][$key]['required'])) {
                            $userFields['fields']['virtuemart_state_id']['formcode'] = '<select class="inputbox multiple opcrequired" id="shipto_virtuemart_state_id" opcrequired="opcrequired" size="1"  name="shipto_virtuemart_state_id" >' . $html . '</select>';
                        } else {
                            $userFields['fields']['virtuemart_state_id']['formcode'] = '<select class="inputbox multiple" id="shipto_virtuemart_state_id"  size="1"  name="shipto_virtuemart_state_id" >' . $html . '</select>';
                        }
                        //$f2 = $userFields['fields'][$key];
                        //unset($userFields['fields'][$key]);
                        $userFields['fields']['virtuemart_state_id']['formcode'] = str_replace('id="virtuemart_state_id"', 'id="' . $userFields['fields']['virtuemart_state_id']['name'] . '"', $userFields['fields']['virtuemart_state_id']['formcode']);
                    }
                    //$orig = $userFields['fields'][$key]['name'];
                    //$new = 'sa_'.strrev($orig);
                    //$userFields['fields'][$key]['name'] = $new;
                    //$userFields['fields'][$key]['formcode'] = $this->reverseId($userFields['fields'][$key]['formcode'], $orig, $new );
                }
            }
        }
        require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php';
        $this->_model = OPCmini::getModel('user');
        //new VirtuemartModelUser();
        $layout = 'default';
        $hidden = array();
        $hidden_html = '';
        if (!empty($userFields['fields'])) {
            foreach ($userFields['fields'] as $key => $val) {
                if (!empty($val['hidden'])) {
                    $hidden[] = $val;
                    $hidden_html .= $val['formcode'];
                    unset($userFields['fields'][$key]);
                }
            }
        }
        $vars = array('rowFields' => $userFields, 'cart' => $cart, 'opc_logged' => $unlg);
        $html = $this->fetch($this, 'list_user_fields_shipping.tpl', $vars);
        $html .= $hidden_html;
        $html = $this->addListeners($html);
        if (empty($custom_rendering_fields)) {
            $custom_rendering_fields = array();
        }
        if (in_array('virtuemart_country_id', $custom_rendering_fields)) {
            $html .= '<input type="hidden" id="shipto_virtuemart_country_id" name="shipto_virtuemart_country_id" value="' . $default_shipping_country . '" />';
        }
        if (in_array('virtuemart_state_id', $custom_rendering_fields)) {
            $html .= '<input type="hidden" id="shipto_virtuemart_state_id" name="shipto_virtuemart_state_id" value="0" />';
        }
        $html = str_replace('class="required"', 'class=" "', $html);
        $vars = array('op_shipto' => $html);
        if (!empty($only_one_shipping_address_hidden) && !empty($unlg)) {
            $html2 = '<input type="hidden" id="sachone" name="sa" value="adresaina" /><div id="ship_to_wrapper"><div id="idsa">' . $html . '</div></div>';
        } else {
            $html2 = $this->fetch($this, 'single_shipping_address.tpl', $vars);
            if (empty($html2) && !empty($unlg)) {
                // if the new theme file not found:
                $html2 = '<div id="ship_to_wrapper"><input type="checkbox" id="sachone" name="sa" value="adresaina" onkeypress="javascript: Onepage.showSA(this, \'idsa\');" onclick="javascript: Onepage.showSA(this, \'idsa\');" autocomplete="off" />' . OPCLang::_('COM_VIRTUEMART_USER_FORM_ADD_SHIPTO_LBL') . '<div id="idsa" style="display: none;">
								  ' . $html . '</div></div>';
            }
        }
        // if theme does not exists, return legacy html
        if (empty($html2) || !empty($no_wrapper)) {
            return $html;
        }
        return $html2;
    }
コード例 #2
0
ファイル: ajaxhelper.php プロジェクト: aldegtyarev/stelsvelo
 public static function createDefaultAddress(&$ref, &$cart)
 {
     include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php';
     require_once JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'loader.php';
     $vendor = OPCloader::getVendorInfo($cart);
     if (empty($cart->BT)) {
         $cart->BT = array();
         $GLOBALS['opc_cart_empty'] = true;
     }
     if (empty($cart->BT['zip'])) {
         $GLOBALS['opc_zip_empty'] = true;
         if (!empty($op_default_zip)) {
             $cart->BT['zip'] = $op_default_zip;
         } else {
             if ($op_default_zip === 0) {
                 $cart->BT['zip'] = '';
             } else {
                 $cart->BT['zip'] = $vendor['zip'];
             }
         }
     }
     if (empty($cart->BT['virtuemart_country_id'])) {
         $GLOBALS['opc_country_empty'] = true;
         // ok, here we decide on default country:
         $default_shipping_country = OPCloader::getDefaultCountry($cart);
         if (!empty($default_shipping_country)) {
             $cart->BT['virtuemart_country_id'] = $default_shipping_country;
         } else {
             $cart->BT['virtuemart_country_id'] = $vendor['virtuemart_country_id'];
         }
     }
     if (empty($cart->BT['virtuemart_state_id'])) {
         $GLOBALS['opc_state_empty'] = true;
         // this will set taxes to zero:
         if (!empty($opc_usmode)) {
             $cart->BT['virtuemart_state_id'] = ' ';
         }
     }
     // we need to check the ST address as well
     if (!empty($cart->ST)) {
         if (empty($cart->ST['zip'])) {
             $GLOBALS['st_opc_zip_empty'] = true;
             if (!empty($op_default_zip)) {
                 $cart->ST['zip'] = $op_default_zip;
             } else {
                 if ($op_default_zip === 0) {
                     $cart->ST['zip'] = '';
                 } else {
                     $cart->ST['zip'] = $vendor['zip'];
                 }
             }
         }
         if (empty($cart->ST['virtuemart_country_id'])) {
             $GLOBALS['st_opc_country_empty'] = true;
             // ok, here we decide on default country:
             $default_shipping_country = OPCloader::getDefaultCountry($cart);
             if (!empty($default_shipping_country)) {
                 $cart->ST['virtuemart_country_id'] = $default_shipping_country;
             } else {
                 $cart->ST['virtuemart_country_id'] = $vendor['virtuemart_country_id'];
             }
         }
         // we will not do the state for now
         if (empty($cart->ST['virtuemart_state_id'])) {
             $GLOBALS['st_opc_state_empty'] = true;
             if (!empty($opc_usmode)) {
                 $cart->ST['virtuemart_state_id'] = ' ';
             }
         }
     }
 }