Esempio n. 1
0
 /**
  * Function to update a Shopper Entry
  * (uses who have perms='shopper')
  */
 function update(&$d)
 {
     global $my, $perm, $sess, $vmLogger, $page;
     $auth = $_SESSION['auth'];
     $db = new ps_DB();
     if (@$d["user_id"] != $my->id && @$d["user_id"] != $auth['user_id'] && $auth["perms"] != "admin") {
         $vmLogger->crit("Tricky tricky, but we know about this one.");
         return False;
     }
     require_once CLASSPATH . 'ps_user.php';
     if (!empty($d['username'])) {
         $_POST['username'] = $d['username'];
     } else {
         $_POST['username'] = $my->username;
     }
     $_POST['name'] = $d['first_name'] . " " . $d['last_name'];
     $_POST['id'] = $auth["user_id"];
     $_POST['gid'] = $my->gid;
     $d['error'] = "";
     if (VM_REGISTRATION_TYPE != 'NO_REGISTRATION') {
         ps_user::saveUser($d);
     }
     if (!empty($d['error'])) {
         return false;
     }
     if (!$this->validate_update($d)) {
         return false;
     }
     $user_id = $auth["user_id"];
     /* Update Bill To */
     // Get all fields which where shown to the user
     $userFields = ps_userfield::getUserFields('account', false, '', true);
     $skip_fields = ps_userfield::getSkipFields();
     $fields = array('mdate' => time());
     foreach ($userFields as $userField) {
         if (!in_array($userField->name, $skip_fields)) {
             $fields[$userField->name] = ps_userfield::prepareFieldDataSave($userField->type, $userField->name, vmGet($d, $userField->name, strtoupper($userField->name)));
         }
     }
     $fields['user_email'] = $fields['email'];
     unset($fields['email']);
     $db->buildQuery('UPDATE', '#__{vm}_user_info', $fields, " WHERE user_id=" . $user_id . " AND address_type='BT'");
     // Run the query!
     $db->query();
     // UPDATE #__{vm}_shopper group relationship
     $q = "SELECT shopper_group_id FROM #__{vm}_shopper_vendor_xref ";
     $q .= "WHERE user_id = '" . $user_id . "'";
     $db->query($q);
     if (!$db->num_rows()) {
         //add
         $shopper_db = new ps_DB();
         // get the default shopper group
         $q = "SELECT shopper_group_id from #__{vm}_shopper_group WHERE ";
         $q .= "`default`='1'";
         $shopper_db->query($q);
         if (!$shopper_db->num_rows()) {
             // when there is no "default", take the first in the table
             $q = "SELECT shopper_group_id from #__{vm}_shopper_group";
             $shopper_db->query($q);
         }
         $shopper_db->next_record();
         $my_shopper_group_id = $shopper_db->f("shopper_group_id");
         if (empty($d['customer_number'])) {
             $d['customer_number'] = "";
         }
         $q = "INSERT INTO #__{vm}_shopper_vendor_xref ";
         $q .= "(user_id,vendor_id,shopper_group_id) ";
         $q .= "VALUES ('";
         $q .= $_SESSION['auth']['user_id'] . "','";
         $q .= $_SESSION['ps_vendor_id'] . "','";
         $q .= $my_shopper_group_id . "')";
         $db->query($q);
     }
     $q = "SELECT user_id FROM #__{vm}_auth_user_vendor ";
     $q .= "WHERE user_id = '" . $_SESSION['auth']['user_id'] . "'";
     $db->query($q);
     if (!$db->num_rows()) {
         // Insert vendor relationship
         $q = "INSERT INTO #__{vm}_auth_user_vendor (user_id,vendor_id)";
         $q .= " VALUES ";
         $q .= "('" . $_SESSION['auth']['user_id'] . "','";
         $q .= $_SESSION['ps_vendor_id'] . "') ";
         $db->query($q);
     }
     return True;
 }
Esempio n. 2
0
 /**
  * Updates a Shipping Adress for the specified user info ID
  *
  * @param array $d
  * @return boolean
  */
 function update(&$d)
 {
     global $perm, $VM_LANG;
     require_once CLASSPATH . 'ps_userfield.php';
     $db = new ps_DB();
     $timestamp = time();
     if (!$this->validate_update($d)) {
         return false;
     }
     // Get all fields which where shown to the user
     $shippingFields = ps_userfield::getUserFields('shipping', false, '', true);
     $skip_fields = ps_userfield::getSkipFields();
     foreach ($shippingFields as $userField) {
         if (!in_array($userField->name, $skip_fields)) {
             $fields[$userField->name] = ps_userfield::prepareFieldDataSave($userField->type, $userField->name, vmGet($d, $userField->name, strtoupper($userField->name)));
         }
     }
     // These are pre-defined fields.
     $fields['user_id'] = !$perm->check("admin,storeadmin") ? $_SESSION['auth']['user_id'] : (int) $d["user_id"];
     $fields['address_type'] = 'ST';
     $fields['mdate'] = time();
     $db->buildQuery('UPDATE', '#__{vm}_user_info', $fields, "WHERE user_info_id='" . $db->getEscaped($d["user_info_id"]) . "'" . (!$perm->check("admin,storeadmin") ? " AND user_id=" . $_SESSION['auth']['user_id'] : ''));
     if ($db->query() === false) {
         $GLOBALS['vmLogger']->err($VM_LANG->_('VM_USERADDRESS_UPDATED_FAILED'));
         return false;
     }
     $GLOBALS['vmLogger']->info($VM_LANG->_('VM_USERADDRESS_UPDATED'));
     vmRequest::setVar('ship_to_info_id', $d['user_info_id']);
     return true;
 }
Esempio n. 3
0
 /**
  * This function allows you to get an object list of user fields
  *
  * @param string $section The section the fields belong to (e.g. 'registration' or 'account')
  * @param boolean $required_only
  * @param mixed $sys When left empty, doesn't filter by sys
  * @return array
  */
 function getUserFields($section = 'registration', $required_only = false, $sys = '', $exclude_delimiters = false, $exclude_skipfields = false)
 {
     $db = new ps_DB();
     $q = "SELECT f.* FROM `#__{vm}_userfield` f" . "\n WHERE f.published=1";
     if ($section != 'bank' && $section != '') {
         $q .= "\n AND f.`{$section}`=1";
     } elseif ($section == 'bank') {
         $q .= "\n AND f.name LIKE '%bank%'";
     }
     if ($exclude_delimiters) {
         $q .= "\n AND f.type != 'delimiter' ";
     }
     if ($required_only) {
         $q .= "\n AND f.required=1";
     }
     if ($sys !== '') {
         if ($sys == '1') {
             $q .= "\n AND f.sys=1";
         } elseif ($sys == '0') {
             $q .= "\n AND f.sys=0";
         }
     }
     if ($exclude_skipfields) {
         $q .= "\n AND FIND_IN_SET( f.name, '" . implode(',', ps_userfield::getSkipFields()) . "') = 0 ";
     }
     $q .= "\n ORDER BY f.ordering";
     $db->setQuery($q);
     $userFields = $db->loadObjectList();
     return $userFields;
 }
Esempio n. 4
0
 /**
  * Updates a User Record
  *
  * @param array $d
  * @return boolean
  */
 function update(&$d)
 {
     global $my, $VM_LANG, $perm, $vmLogger;
     $ps_vendor_id = $_SESSION["ps_vendor_id"];
     $db = new ps_DB();
     $timestamp = time();
     if (!$this->validate_update($d)) {
         return False;
     }
     // Joomla User Information stuff
     if (vmIsJoomla('1.5', '>=')) {
         $this->save();
     } else {
         $this->saveUser($d);
     }
     // Update Bill To
     // Get all fields which where shown to the user
     $userFields = ps_userfield::getUserFields('account', false, '', true);
     $user_id = intval($d['id']);
     // Building the query: PART ONE
     // The first 7 fields are FIX and not built dynamically
     $db->query("SELECT COUNT(user_info_id) AS num_rows \n\t\t\t\t\tFROM #__{vm}_user_info WHERE user_id='" . $user_id . "'");
     if ($db->f('num_rows') < 1) {
         // The user is registered in Joomla, but not in VirtueMart; so, insert the bill to information
         return $this->add($d);
     } else {
         $q = "UPDATE #__{vm}_user_info SET\n\t                                `mdate` = '" . time() . "',\n\t                                `perms` = '" . $d['perms'] . "', ";
         $fields = array();
         $skip_fields = ps_userfield::getSkipFields();
         foreach ($userFields as $userField) {
             if (!in_array($userField->name, $skip_fields)) {
                 $d[$userField->name] = ps_userfield::prepareFieldDataSave($userField->type, $userField->name, @$d[$userField->name]);
                 $fields[] = "`" . $userField->name . "`='" . mysql_real_escape_string($d[$userField->name]) . "'";
             }
         }
         $q .= str_replace('`email`', '`user_email`', implode(",\n", $fields));
         $q .= " WHERE user_id=" . $user_id . " AND address_type='BT'";
         // Run the query now!
         $db->query($q);
     }
     if ($perm->check("admin")) {
         $vendor_id = $d['vendor_id'];
     } else {
         $vendor_id = $ps_vendor_id;
     }
     $db->query("SELECT COUNT(user_id) as num_rows FROM #__{vm}_auth_user_vendor WHERE vendor_id='" . $vendor_id . "' AND user_id='" . $d["user_id"] . "'");
     if ($db->f('num_rows') < 1) {
         // Insert vendor relationship
         $q = "INSERT INTO #__{vm}_auth_user_vendor (user_id,vendor_id)";
         $q .= " VALUES ";
         $q .= "('" . $d['user_id'] . "','{$vendor_id}') ";
         $db->query($q);
     } else {
         // Update the User- Vendor  relationship
         $q = "UPDATE #__{vm}_auth_user_vendor set ";
         $q .= "vendor_id='" . $d['vendor_id'] . "' ";
         $q .= "WHERE user_id='" . $d["user_id"] . "'";
         $db->query($q);
     }
     $db->query("SELECT COUNT(user_id) as num_rows FROM #__{vm}_shopper_vendor_xref WHERE vendor_id='" . $vendor_id . "' AND user_id='" . $d["user_id"] . "'");
     if ($db->f('num_rows') < 1) {
         // Insert Shopper -ShopperGroup - Relationship
         $q = "INSERT INTO #__{vm}_shopper_vendor_xref ";
         $q .= "(user_id,vendor_id,shopper_group_id,customer_number) ";
         $q .= "VALUES ('" . $d['user_id'] . "', '{$vendor_id}','" . $d['shopper_group_id'] . "', '" . $d['customer_number'] . "')";
     } else {
         // Update the Shopper Group Entry for this user
         $q = "UPDATE #__{vm}_shopper_vendor_xref SET ";
         $q .= "shopper_group_id='" . $d['shopper_group_id'] . "' ";
         $q .= ",vendor_id ='" . $vendor_id . "' ";
         $q .= "WHERE user_id='" . $d["user_id"] . "' ";
     }
     $db->query($q);
     $vmLogger->info($VM_LANG->_('VM_USER_UPDATED'));
     return True;
 }
        $types['yanc_subscription'] = $VM_LANG->_('VM_FIELDS_NEWSLETTER') . ' (YaNC)';
    }
    if (file_exists($mosConfig_absolute_path . '/components/com_anjel/anjel.php')) {
        $types['anjel_subscription'] = $VM_LANG->_('VM_FIELDS_NEWSLETTER') . ' (ANJEL)';
    }
    if (file_exists($mosConfig_absolute_path . '/components/com_letterman/letterman.php')) {
        $types['letterman_subscription'] = $VM_LANG->_('VM_FIELDS_NEWSLETTER') . ' (Letterman)';
    }
    if (file_exists($mosConfig_absolute_path . '/components/com_ccnewsletter/ccnewsletter.php')) {
        $types['ccnewsletter_subscription'] = $VM_LANG->_('VM_FIELDS_NEWSLETTER') . ' (ccNewsletter)';
    }
    $types['delimiter'] = $VM_LANG->_('VM_FIELDS_DELIMITER');
    $lists['type'] = ps_html::selectList('type', $db->f('type'), $types, 1, '', 'onchange="toggleType(this.options[this.selectedIndex].value);"');
}
$lists['webaddresstypes'] = ps_html::selectList('webaddresstypes', $db->f('rows'), $webaddrtypes);
if (in_array($db->f('name'), ps_userfield::getSkipFields())) {
    $lists['required'] = '<input type="hidden" name="required" class="inputbox" value="' . $db->sf('required') . '" />' . ($db->sf('required') ? $VM_LANG->_('PHPSHOP_ADMIN_CFG_YES') : $VM_LANG->_('PHPSHOP_ADMIN_CFG_NO'));
    $lists['published'] = '<input type="hidden" name="published" class="inputbox" value="' . $db->sf('required') . '" />' . ($db->sf('required') ? $VM_LANG->_('PHPSHOP_ADMIN_CFG_YES') : $VM_LANG->_('PHPSHOP_ADMIN_CFG_NO'));
    $lists['registration'] = '<input type="hidden" name="registration" class="inputbox" value="' . $db->sf('required') . '" />' . ($db->sf('required') ? $VM_LANG->_('PHPSHOP_ADMIN_CFG_YES') : $VM_LANG->_('PHPSHOP_ADMIN_CFG_NO'));
} else {
    $lists['required'] = ps_html::yesnoSelectList('required', $db->sf('required') ? $db->sf('required') : '0');
    $lists['published'] = ps_html::yesnoSelectList('published', $db->sf('published'));
    $lists['registration'] = ps_html::yesnoSelectList('registration', $db->sf('registration'));
}
$lists['readonly'] = ps_html::yesnoSelectList('readonly', $db->sf('readonly') != '' ? $db->sf('readonly') : '0');
$lists['shipping'] = ps_html::yesnoSelectList('shipping', $db->sf('shipping') != '' ? $db->sf('shipping') : '0');
$lists['account'] = ps_html::yesnoSelectList('account', $db->sf('account'));
?>
	<table cellpadding="4" cellspacing="0" border="0" width="100%">
		<tr>
			<td class="sectionname"><img src="<?php