コード例 #1
0
ファイル: loader.php プロジェクト: aldegtyarev/stelsvelo
 public static function getUserFields($address_type = 'BT', &$cart = null)
 {
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php';
     $umodel = OPCmini::getModel('user');
     //new VirtuemartModelUser();
     $virtuemart_userinfo_id = 0;
     $currentUser = JFactory::getUser();
     $uid = $currentUser->get('id');
     $new = false;
     if ($uid != 0) {
         $userDetails = $umodel->getUser();
         $virtuemart_userinfo_id = $umodel->getBTuserinfo_id();
     } else {
         $virtuemart_userinfo_id = 0;
     }
     $layoutName = 'edit';
     $task = JRequest::getVar('task');
     $userFields = null;
     $view = JRequest::getVar('view', '');
     if ((strpos($task, 'cart') || strpos($task, 'checkout') || $view == 'cart') && empty($virtuemart_userinfo_id)) {
         //New Address is filled here with the data of the cart (we are in the cart)
         if (empty($cart)) {
             if (!class_exists('VirtueMartCart')) {
                 require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php';
             }
             $cart = VirtueMartCart::getCart();
         }
         $fieldtype = $address_type . 'address';
         if (!empty($cart->{$address_type})) {
             if (is_array($cart->{$address_type})) {
                 if (count($cart->{$address_type}) > 2) {
                     $new = false;
                 }
             }
         }
         $saved = OPCloader::copyAddress($cart->{$address_type});
         require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'userfields.php';
         OPCUserFields::populateCart($cart, $address_type, true);
         /*
         if (method_exists($cart, 'prepareAddressDataInCart'))
         	    $cart->prepareAddressDataInCart($address_type, $new);
         
         if (method_exists($cart, 'prepareAddressFieldsInCart'))
         $cart->prepareAddressFieldsInCart();
         */
         if (!empty($cart->{$address_type})) {
             OPCloader::restoreDataInCart($cart->{$address_type}, $saved);
         }
         $userFields = $cart->{$fieldtype};
         $task = JRequest::getWord('task', '');
     } else {
         $userFields = $umodel->getUserInfoInUserFields($layoutName, $address_type, $virtuemart_userinfo_id);
         $userFields = $userFields[$virtuemart_userinfo_id];
         $task = 'editaddressST';
     }
     return $userFields;
 }
コード例 #2
0
 public static function getRegistrationHhtml(&$obj, &$OPCloader)
 {
     // if (!empty($no_login_in_template)) return "";
     include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php';
     if (!class_exists('VirtueMartCart')) {
         require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php';
     }
     if (!empty($obj->cart)) {
         $cart =& $obj->cart;
     } else {
         $cart = VirtueMartCart::getCart();
     }
     $type = 'BT';
     // for unlogged
     $virtuemart_userinfo_id = 0;
     $new = 1;
     $fieldtype = $type . 'address';
     /*
     if (method_exists($cart, 'prepareAddressDataInCart'))
     $cart->prepareAddressDataInCart($type, $new);
     */
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'userfields.php';
     OPCUserFields::populateCart($cart, $type, true);
     /*
     if (method_exists($cart, 'prepareAddressFieldsInCart'))
     $cart->prepareAddressFieldsInCart();
     */
     OPCloader::setRegType();
     if (!class_exists('VirtuemartModelUserfields')) {
         require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'userfields.php';
     }
     $corefields = VirtueMartModelUserfields::getCoreFields();
     $userFields = $cart->{$fieldtype};
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php';
     $layout = 'default';
     foreach ($userFields['fields'] as $key => $uf) {
         if (!in_array($key, $corefields) || $key == 'agreed') {
             unset($userFields['fields'][$key]);
             continue;
         }
         if (!empty($opc_email_in_bt) || $OPCloader->isNoLogin() || $OPCloader->isNoLogin()) {
             if ($userFields['fields'][$key]['name'] == 'email') {
                 unset($userFields['fields'][$key]);
                 continue;
             }
         }
         if ($key == 'email') {
             $user = JFactory::getUser();
             $uid = $user->get('id');
             // user is logged, but does not have a VM account
             if (!OPCloader::logged($cart) && !empty($uid)) {
                 // the user is logged in only in joomla, but does not have an account with virtuemart
                 $userFields['fields'][$key]['formcode'] = str_replace('/>', ' readonly="readonly" />', $userFields['fields'][$key]['formcode']);
             }
         }
     }
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'userfields.php';
     OPCUserFields::getUserFields($userFields, $OPCloader, $cart);
     // lets move email to the top
     $copy = array();
     // we will reorder the fields, so the email is first when used as username
     $u = OPCLang::_('COM_VIRTUEMART_REGISTER_UNAME');
     //$e = OPCLang::_('COM_VIRTUEMART_USER_FORM_EMAIL');
     // disable when used for logged in
     if (!empty($userFields['fields'])) {
         /*
              if (empty($opc_email_in_bt) && (!empty($double_email)))
         {
           // email is in BT, let's check for double mail
         		
         		$email2 = $userFields['fields']['email'];
         		$email2['name'] = 'email2'; 
         		$title = OPCLang::_('COM_ONEPAGE_EMAIL2'); 
         		if ($title != 'COM_ONEPAGE_EMAIL2')
         		$email2['title'] = $title;
         		$email2['formcode'] = str_replace('"email', '"email2', $email2['formcode']); 
         		$email2['formcode'] = str_replace('id=', ' onblur="javascript: doublemail_checkMail();" id=', $email2['formcode']);
         		
         		$h = '<span style="display: none; position: relative; color: red; font-size: 10px; background: none; border: none; padding: 0; margin: 0;" id="email2_info" class="email2_class">';
         		$emailerr = OPCLang::_('COM_ONEPAGE_EMAIL_DONT_MATCH');
         		if ($emailerr != 'COM_ONEPAGE_EMAIL_DONT_MATCH')
         		$h .= $emailerr;
         		else $h .= "Emails don't match!";
         		$h .= '</span>';
         		$email2['formcode'] .= $h;
         }
         */
         /*
         	 if (!empty($opc_check_username))
         	 if ((!OPCloader::logged($cart)) && (empty($uid)))
         	 if (!empty($userFields['fields']['username']))
         {
          
            $un = $userFields['fields']['username']['formcode']; 
         		 $un = str_replace('id=', ' onblur="javascript: Onepage.username_check(this);" id=', $un);
         		 $un .=  '<span class="username_already_exist" style="display: none; position: relative; color: red; font-size: 10px; background: none; border: none; padding: 0; margin: 0;" id="username_already_exists">';
         		 $un .= OPCLang::sprintf('COM_VIRTUEMART_STRING_ERROR_NOT_UNIQUE_NAME', $u); 
         		 $un .= '</span>'; 
         		 $userFields['fields']['username']['formcode'] = $un; 
         }
         */
         /*
         if (!empty($opc_check_email))
         if ((!OPCloader::logged($cart)) && (empty($uid)))
         if (!empty($userFields['fields']['email']))
         {
         
            $un = $userFields['fields']['email']['formcode']; 
         		 $un = str_replace('id=', ' onblur="javascript: Onepage.email_check(this);" id=', $un);
         		 $un .=  '<span class="email_already_exist" style="display: none; position: relative; color: red; font-size: 10px; background: none; border: none; padding: 0; margin: 0;" id="email_already_exists">';
         		 $un .= OPCLang::sprintf('COM_ONEPAGE_EMAIL_ALREADY_EXISTS', OPCLang::_('COM_VIRTUEMART_USER_FORM_EMAIL')); 
         		 $un .= '</span>'; 
         		 $userFields['fields']['email']['formcode'] = $un; 
         }
         */
     }
     /*
     	$OPCloader->reorderFields($userFields); 
     */
     if (count($userFields['fields']) === 0) {
         // no fields found
         return '';
     }
     //if (empty($opc_email_in_bt) && (!empty($double_email)))
     //$OPCloader->insertAfter($userFields['fields'], 'email', $email2, 'email2');
     $vars = array('rowFields' => $userFields, 'cart' => $obj, 'is_registration' => true);
     $html = $OPCloader->fetch($OPCloader, 'list_user_fields.tpl', $vars);
     $html = str_replace("'password'", "'opc_password'", $html);
     $html = str_replace("password2", "opc_password2", $html);
     if (strpos($html, 'email_field') !== false) {
         $html .= '<input type="hidden" name="email_in_registration" value="1" id="email_in_registration" />';
     } else {
         $html .= '<input type="hidden" name="email_in_registration" value="0" id="email_in_registration" />';
     }
     return $html;
 }
コード例 #3
0
 public static function getUserInfoBT(&$ref, &$OPCloader)
 {
     include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php';
     /*
     			if (!class_exists('VirtuemartModelUser'))
     			require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'user.php');
     */
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php';
     $umodel = OPCmini::getModel('user');
     //new VirtuemartModelUser();
     $uid = JFactory::getUser()->id;
     $userDetails = $umodel->getUser();
     $virtuemart_userinfo_id = $umodel->getBTuserinfo_id();
     /*
     			if (!class_exists('VirtueMartModelState'))
     			 require(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'state.php'); 
     			if (!class_exists('VirtueMartModelCountry'))
     			require(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'country.php'); 
     */
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php';
     $countryModel = OPCmini::getModel('country');
     //new VirtueMartModelCountry();
     $stateModel = OPCmini::getModel('state');
     //new VirtueMartModelState();
     $userFields = $umodel->getUserInfoInUserFields('edit', 'BT', $virtuemart_userinfo_id);
     $userFieldsModel = OPCmini::getModel('userfields');
     /* opc 2.0.115+ */
     //  causes compatiblity issues in old vm versions
     $_userFields = $userFieldsModel->getUserFields('account', array('captcha' => true, 'delimiters' => true), array('delimiter_userinfo', 'user_is_vendor', 'username', 'password', 'password2', 'agreed', 'address_type'));
     /*
     $first = reset($userDetails->userInfo);
     
     $userfields = $userFieldsModel->getUserFieldsFilled(
     		 $_userFields
     		,$first
     );
     */
     //
     /* end opc 2.0.115+ */
     $_u = array();
     foreach ($_userFields as $k => $v) {
         if (isset($v->name)) {
             $_u[$v->name] = $v;
         }
     }
     // will set the BT address:
     $ref->cart->BT = null;
     if (method_exists($ref->cart, 'setPreferred')) {
         $ref->cart->setPreferred();
     }
     $db = JFactory::getDBO();
     $q = "select * from #__virtuemart_userinfos as uu, #__users as ju where uu.virtuemart_user_id = '" . $uid . "' and ju.id = uu.virtuemart_user_id and uu.address_type = 'BT' limit 0,1 ";
     $db->setQuery($q);
     $fields = $db->loadAssoc();
     //		echo $db->getErrorMsg();
     if (!empty($virtuemart_userinfo_id) && !empty($userFields[$virtuemart_userinfo_id])) {
         if (method_exists($umodel, 'getCurrentUser')) {
             $user = $umodel->getCurrentUser();
             foreach ($user->userInfo as $address) {
                 if ($address->address_type == 'BT') {
                     $ref->cart->BT = (array) $address;
                     continue;
                 }
             }
         }
     }
     //$ref->cart->BTaddress = $userFields[$virtuemart_userinfo_id]['fields'];
     // ok, the user is logged, in but his data might not be in $ref->cart->BT[$BTaddress[$k]['name']]
     // updated on vm2.0.26D
     /*
     				//$ref->cart->prepareAddressDataInCart('BTaddress', 0);
     				if (method_exists($ref->cart, 'prepareAddressDataInCart'))
     				$ref->cart->prepareAddressDataInCart('BT', 0);
     				
     				if (method_exists($ref->cart, 'prepareAddressFieldsInCart'))
     $ref->cart->prepareAddressFieldsInCart();
     */
     require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'userfields.php';
     OPCUserFields::populateCart($ref->cart, 'BT', true);
     if (isset($ref->cart->BTaddress)) {
         $BTaddress = $ref->cart->BTaddress['fields'];
     }
     if (empty($BTaddress)) {
         $userFieldsBT = $userFieldsModel->getUserFieldsFor('cart', 'BT');
         $BTaddress = $userFieldsModel->getUserFieldsFilled($userFieldsBT, $ref->cart->BT, '');
     }
     if (!empty($BTaddress['fields'])) {
         $BTaddress = $BTaddress['fields'];
     }
     // opc 2.0.115:
     // $BTaddress = $userfields['fields'];
     // end
     $useSSL = VmConfig::get('useSSL', 0);
     $edit_link = JRoute::_('index.php?option=com_virtuemart&view=user&task=editaddresscart&addrtype=BT&virtuemart_userinfo_id=' . $virtuemart_userinfo_id . '&cid[]=' . $uid, true, $useSSL);
     $ghtml = array();
     $OPCloader->getNamedFields($BTaddress, $fields, $_u);
     foreach ($BTaddress as $k => $val) {
         // let update the value per type
         if (isset($fields[$val['name']])) {
             $BTaddress[$k]['value'] = $fields[$val['name']];
         }
         //trim($BTaddress[$k]['value']);
         //if (empty($BTaddress[$k]['value']) && (!empty($ref->cart->BT)) && (!empty($ref->cart->BT[$BTaddress[$k]['name']]))) $BTaddress[$k]['value'] = $ref->cart->BT[$BTaddress[$k]['name']];
         if ($val['name'] == 'agreed') {
             unset($BTaddress[$k]);
         }
         if ($val['name'] == 'username') {
             unset($BTaddress[$k]);
         }
         if ($val['name'] == 'password') {
             unset($BTaddress[$k]);
         }
         if (empty($custom_rendering_fields)) {
             $custom_rendering_fields = array();
         }
         if (in_array($val['name'], $custom_rendering_fields)) {
             unset($BTaddress[$k]);
             continue;
         }
         $gf = array('city', 'virtuemart_state_id', 'virtuemart_country_id');
         if (in_array($val['name'], $gf)) {
             $a = array();
             if ($val['name'] == 'city') {
                 $a['name'] = 'city_field';
                 $a['value'] = $fields[$val['name']];
             } else {
                 if ($val['name'] == 'virtuemart_state_id') {
                     if (!empty($fields[$val['name']])) {
                         $a['name'] = 'virtuemart_state_id';
                         //$a['value'] = $fields[$val['name']];
                         $sid = (int) $fields[$val['name']];
                         $q = "select state_name from #__virtuemart_states where virtuemart_state_id = '" . $sid . "' limit 0,1";
                         $db->setQuery($q);
                         $state_name = $db->loadResult();
                         $a['value'] = OPCmini::slash($state_name);
                     } else {
                         $a['name'] = 'virtuemart_state_id';
                         $a['value'] = "";
                     }
                     // we will override the generated html in order to provide better autocomplete functions
                 }
             }
             /*
             else
             if (false)
             if ($val['name'] == 'virtuemart_country_id')
             {
             	if (!empty($fields[$val['name']]))
             						{
             						$a['name'] = 'virtuemart_country_id'; 
             						//$a['value'] = $fields[$val['name']];
             						$cid = (int)$fields[$val['name']];; 
             						$q = "select country_name from #__virtuemart_countries where virtuemart_country_id = '".$cid."' limit 0,1"; 
             						$db->setQuery($q); 
             						$c_name = $db->loadResult(); 
             						$a['value'] = OPCmini::slash($c_name, false); 
             						}
             						else
             						{
             								$a['name'] = 'virtuemart_country_id'; 
             								$a['value'] = "";
             
             						}
             
              
             }
             */
             if (!empty($a)) {
                 $ghtml[] = $a;
             }
         }
     }
     //check missing new fields
     $hasmissing = $OPCloader->hasMissingFields($BTaddress);
     $htmlsingle_all = $OPCloader->getBTfields($ref, true, false);
     $htmlsingle = '<div ';
     if (empty($hasmissing)) {
         $htmlsingle .= ' style="display: none;" ';
     }
     $htmlsingle .= ' id="opc_stedit_' . $virtuemart_userinfo_id . '">' . $htmlsingle_all . '</div>';
     $BTaddress = $OPCloader->setCountryAndState($BTaddress);
     $edit_link = '#" onclick="return Onepage.op_showEditST(' . $virtuemart_userinfo_id . ')';
     $google_html = '';
     if (!empty($ghtml)) {
         foreach ($ghtml as $ii) {
             $google_html .= '<input type="hidden" name="google_' . $ii['name'] . '" id="google_' . $ii['name'] . '" value="' . $ii['value'] . '" />';
         }
     }
     $OPCloader->txtToVal($BTaddress);
     $html = $OPCloader->fetch($OPCloader, 'customer_info.tpl', array('BTaddress' => $BTaddress, 'virtuemart_userinfo_id' => $virtuemart_userinfo_id, 'edit_link' => $edit_link));
     if (empty($op_disable_shipto)) {
         $html .= '<input type="hidden" name="default_ship_to_info_id" value="' . $virtuemart_userinfo_id . '" checked="checked" />';
     }
     $html .= '<input type="hidden" id="bt_virtuemart_userinfo_id" name="bt_virtuemart_userinfo_id" value="' . $virtuemart_userinfo_id . '" />';
     $html2 = $html . $google_html;
     $html = '<div ';
     if (!empty($hasmissing)) {
         $html .= ' style="display: none;" ';
     }
     $html .= ' id="opc_st_' . $virtuemart_userinfo_id . '">' . $html2 . '</div>' . $htmlsingle . '<input type="hidden" id="opc_st_changed_' . $virtuemart_userinfo_id . '" name="opc_st_changed_' . $virtuemart_userinfo_id . '" value="';
     if (!empty($hasmissing)) {
         $html .= '1';
     } else {
         $html .= '0';
     }
     $html .= '" />';
     $html = str_replace('password2', 'opc_password2', $html);
     return $html;
 }