コード例 #1
0
 public static function save()
 {
     $post = JRequest::get('post');
     if (!empty($post['firstname'])) {
         $post['bill_firstname'] = $post['firstname'];
     }
     if (!empty($post['lastname'])) {
         $post['bill_lastname'] = $post['lastname'];
     }
     $member_id = JRequest::getInt('member_id', 0);
     $billinfo = array();
     foreach ($post as $key => $value) {
         if (strstr($key, 'bill_')) {
             $billKey = str_replace('bill_', '', $key);
             $billinfo[$billKey] = $value;
         }
     }
     //oseExit($billinfo);
     $db = oseDB::instance();
     $query = " SELECT count(*) FROM `#__osemsc_billinginfo` WHERE user_id='{$member_id}'";
     $db->setQuery($query);
     $num = $db->loadResult();
     $my = JFactory::getUser();
     if (empty($num)) {
         $keys = array_keys($billinfo);
         $keys = '`' . implode('`,`', $keys) . '`';
         $fields = oseDB::getDBFields('#__osemsc_billinginfo');
         foreach ($billinfo as $key => $value) {
             if (!isset($fields['#__osemsc_billinginfo'][$key])) {
                 if ($my->get('gid') == 24 || $my->get('gid') == 25) {
                     $query = "ALTER TABLE `#__osemsc_billinginfo` ADD `{$key}` TEXT NULL DEFAULT NULL";
                     $db->setQuery($query);
                     if (!oseDB::query()) {
                         $result['success'] = false;
                         $result['title'] = JText::_('ERROR');
                         $result['content'] = JText::_('FAIL_SAVING_OSEMSC_USER_INFO');
                     }
                 } else {
                     unset($billinfo[$key]);
                 }
             }
         }
         foreach ($billinfo as $key => $value) {
             $billinfo[$key] = !empty($value) ? $db->Quote($value) : null;
         }
         $values = implode(',', $billinfo);
         $query = "INSERT INTO `#__osemsc_billinginfo` (`user_id`,{$keys}) VALUES ('{$member_id}',{$values});";
     } else {
         foreach ($billinfo as $key => $value) {
             $billinfo[$key] = "`{$key}`=" . $db->Quote($value);
         }
         $values = implode(',', $billinfo);
         $query = " UPDATE `#__osemsc_billinginfo` SET {$values}" . " WHERE `user_id` ={$member_id}";
     }
     //echo $query;exit;
     $db->setQuery($query);
     if (!oseDB::query()) {
         $result = array();
         $result['success'] = true;
         $result['title'] = JText::_('DONE');
         $result['content'] = JText::_('FAIL_SAVING_OSEMSC_USER_INFO');
     } else {
         $result = array();
         $result['success'] = true;
         $result['title'] = JText::_('DONE');
         $result['content'] = JText::_('SAVED_USER_BILLING_INFO');
     }
     return $result;
 }