Exemple #1
0
 public static function createUser($data)
 {
     $db = JO_Db::getDefaultAdapter();
     if (!$data['username'] || Model_Users::getByUsername($data['username'])) {
         return false;
     }
     if (!$data['email'] || Model_Users::getByEmail($data['email'])) {
         return false;
     }
     $db->insert(Model_Users::getPrefixDB() . 'users', array('username' => $data['username'], 'password' => $data['password'], 'email' => $data['email'], 'firstname' => $data['firstname'], 'lastname' => $data['lastname'], 'firmname' => $data['firmname'], 'profile_title' => $data['profile_title'], 'profile_desc' => $data['profile_desc'], 'register_datetime' => $data['register_datetime'], 'status' => 'activate'));
     $user_id = $db->lastInsertId();
     if ($user_id) {
         $upload_path = BASE_PATH . '/uploads';
         $user_path = '/users/' . JO_Date::getInstance($data['register_datetime'], 'yy/mm/')->toString() . $user_id . '/';
         $upload_path .= $user_path;
         if ($data['avatar'] && @getimagesize($data['avatar'])) {
             $name = basename($data['avatar']);
             if (copy($data['avatar'], $upload_path . $name)) {
                 $db->update('users', array('avatar' => $user_path . $name), array('user_id' => $user_id));
             }
         }
         if ($data['homeimage'] && @getimagesize($data['homeimage'])) {
             $name = basename($data['homeimage']);
             if (copy($data['homeimage'], $upload_path . $name)) {
                 $db->update('users', array('homeimage' => $user_path . $name), array('user_id' => $user_id));
             }
         }
         return Model_Users::getUser($user_id);
     }
 }
Exemple #2
0
 public function getPercentRow($user)
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from(Model_Users::getPrefixDB() . 'users', 'commission_percent')->where('user_id= ?', $user['user_id'])->limit(1, 0);
     $user_data = $db->fetchRow($query);
     if ($user_data && round($user_data['commission_percent']) > 0) {
         return array('percent' => floatval($user_data['commission_percent']), 'to' => 0);
     }
     $no_exclusive_author_percent = 30;
     if (JO_Registry::get('no_exclusive_author_percent')) {
         $no_exclusive_author_percent = (int) JO_Registry::get('no_exclusive_author_percent');
     }
     $exclusive_author_percent = 40;
     if (JO_Registry::get('exclusive_author_percent')) {
         $exclusive_author_percent = (int) JO_Registry::get('exclusive_author_percent');
     }
     if ($user['exclusive_author'] == 'false') {
         $percent = array('percent' => $no_exclusive_author_percent, 'to' => 0);
     } else {
         $query = $db->select()->from(Model_Users::getPrefixDB() . 'percents')->where("`from` <= ? AND (`to` > ? OR `to` = 0)", $user['sold']);
         $data = $db->fetchRow($query);
         if (count($data) == 0) {
             $percent = array('percent' => $exclusive_author_percent, 'to' => 0);
         } else {
             $percent = $data;
         }
     }
     return $percent;
 }
Exemple #3
0
 public static function getWithdraws($from, $to)
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from(Model_Users::getPrefixDB() . 'withdraw')->where("`paid` = 'true'")->order('paid_datetime');
     $d = explode('-', $from);
     if (count($d) == 3 && checkdate($d[1], $d[2], $d[0])) {
         $query->where('`paid_datetime` >= ?', $from);
     }
     $d = explode('-', $to);
     if (count($d) == 3 && checkdate($d[1], $d[2], $d[0])) {
         $query->where('`paid_datetime` <= ?', $to);
     }
     $results = $db->fetchAll($query);
     $return = array();
     if ($results) {
         foreach ($results as $result) {
             $date = explode(' ', $result['paid_datetime']);
             $date = $date[0];
             if (!isset($return[$date]['amount'])) {
                 $return[$date]['amount'] = 0;
             }
             $return[$date]['amount'] += $result['amount'];
         }
     }
     return $return;
 }
Exemple #4
0
 public static function add($action, $transactionID, $userID = 0)
 {
     if ($userID == 0) {
         $userID = JO_Session::get('user_id');
     }
     $db = JO_Db::getDefaultAdapter();
     $db->insert(Model_Users::getPrefixDB() . 'history', array('user_id' => $userID, 'action' => $action, 'transaction_id' => $transactionID, 'datetime' => new JO_Db_Expr('NOW()')));
     return true;
 }
Exemple #5
0
 public static function getTotal($where = '')
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('items_comments', 'COUNT(id)')->joinLeft(Model_Users::getPrefixDB() . 'users', 'items_comments.user_id = users.user_id', array())->limit(1);
     if ($where) {
         $query->where($where);
     }
     return $db->fetchOne($query);
 }
Exemple #6
0
 public static function getTotalUserBalanceByType($id)
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from(Model_Users::getPrefixDB() . 'deposit', new JO_Db_Expr("SUM(IF(`paid` = 'true', 1, 0)) AS `paid`,SUM(IF(`paid` = 'false', 1, 0)) AS `not_paid`"))->where('user_id = ?', (int) $id)->group('user_id');
     $result = $db->fetchRow($query);
     if (!$result) {
         return array('paid' => 0, 'not_paid' => 0);
     }
     return $result;
 }
Exemple #7
0
 public static function getCollections($data = array())
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('collections')->joinLeft(Model_Users::getPrefixDB() . 'users', 'collections.user_id = users.user_id', 'username')->order('id DESC');
     if (isset($data['start']) && isset($data['limit'])) {
         if ($data['start'] < 0) {
             $data['start'] = 0;
         }
         $query->limit($data['limit'], $data['start']);
     }
     return $db->fetchAll($query);
 }
Exemple #8
0
 public static function change_deposit($id)
 {
     $db = JO_Db::getDefaultAdapter();
     $row = $db->fetchRow('SELECT * FROM deposit WHERE id = ' . $db->quote($id));
     if ($row) {
         if ($row['paid'] === 'true') {
             return;
         }
         $db->update(Model_Users::getPrefixDB() . 'users', array('deposit' => new JO_Db_Expr('deposit + ' . $row['deposit']), 'total' => new JO_Db_Expr('total + ' . $row['deposit'])), array('user_id = ?' => (int) $row['user_id']));
         $db->update(Model_Users::getPrefixDB() . 'deposit', array('paid' => 'true', 'added' => 'true'), array('id = ?' => (int) $id));
     }
 }
Exemple #9
0
 public function getAllFront()
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from(Model_Users::getPrefixDB() . 'badges')->where('visible = ?', 'true');
     $return = array();
     foreach ($db->fetchAll($query) as $d) {
         if ($d['type'] == 'system') {
             $return[$d['type']][$d['sys_key']] = array('name' => $d['name'], 'photo' => $d['photo']);
         } elseif ($d['type'] == 'other') {
             $return[$d['type']][$d['id']] = array('name' => $d['name'], 'photo' => $d['photo']);
         } else {
             if (strpos($d['from'], '+') !== false) {
                 $key = (int) $d['from'] . '-2147483646';
             } else {
                 $key = $d['from'] . '-' . $d['to'];
             }
             $return[$d['type']][$key] = array('name' => $d['name'], 'photo' => $d['photo']);
         }
     }
     return $return;
 }
Exemple #10
0
 public static function deleteItem($id, $message = '')
 {
     $db = JO_Db::getDefaultAdapter();
     $info = self::getItem($id);
     if (!$info) {
         return;
     }
     $path = BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/';
     self::unlink($path);
     $db->delete('items', array('id = ?' => (int) $id));
     $db->delete('items_attributes', array('item_id = ?' => (int) $id));
     $db->delete('items_collections', array('item_id = ?' => (int) $id));
     $db->delete('items_comments', array('item_id = ?' => (int) $id));
     $db->delete('items_faqs', array('item_id = ?' => (int) $id));
     $db->delete('items_rates', array('item_id = ?' => (int) $id));
     $db->delete('items_tags', array('item_id = ?' => (int) $id));
     $db->delete('items_to_category', array('item_id = ?' => (int) $id));
     $db->update(Model_Users::getPrefixDB() . 'users', array('items' => new JO_Db_Expr('items - 1')), array('user_id = ?' => $info['user_id']));
     /////////// send email
     $request = JO_Request::getInstance();
     $translate = JO_Translate::getInstance();
     $not_template = Model_Notificationtemplates::get('delete_item');
     $mail = new JO_Mail();
     if (JO_Registry::get('mail_smtp')) {
         $mail->setSMTPParams(JO_Registry::forceGet('mail_smtp_host'), JO_Registry::forceGet('mail_smtp_port'), JO_Registry::forceGet('mail_smtp_user'), JO_Registry::forceGet('mail_smtp_password'));
     }
     $mail->setFrom('no-reply@' . $request->getDomain());
     if ($not_template) {
         $user_info = Model_Users::getUser($info['user_id']);
         $title = $not_template['title'];
         $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8');
         $html = str_replace('{USERNAME}', $user_info['username'], $html);
         $html = str_replace('{ITEM}', $info['name'], $html);
         $html = str_replace('{MESSAGE}', $message, $html);
     } else {
         $title = "[" . $request->getDomain() . "] " . $info['name'];
         $html = nl2br($translate->translate('Item is deleted'));
     }
     $mail->setSubject($title);
     $mail->setHTML($html);
     $result = $mail->send(array($user_info['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail');
     unset($mail);
     //////////////////////
     self::deleteItemUpdate($id);
     self::unlink(BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/');
     self::unlink(BASE_PATH . '/uploads/cache/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/');
     //		$info = self::getItemUpdate($id);
     //		if(!$info) {
     //			return;
     //		}
     //
     //		$db->delete('temp_items', array('item_id = ?' => (int)$id));
     //		$db->delete('temp_items_tags', array('item_id = ?' => (int)$id));
 }
Exemple #11
0
 public static function deleteUserGroup($group_id)
 {
     $db = JO_Db::getDefaultAdapter();
     return $db->delete(Model_Users::getPrefixDB() . 'user_groups', array('ug_id = ?' => (int) $group_id));
 }
Exemple #12
0
 public static function CountUsers2($whereQuery = '')
 {
     $db = JO_Db::getDefaultAdapter();
     if ($whereQuery != '') {
         $whereQuery = " WHERE " . $whereQuery;
     }
     return $db->query("\r\r\n\t\t\tSELECT COUNT(user_id)\r\r\n\t\t\tFROM " . Model_Users::getPrefixDB() . "`users`\r\r\n\t\t\t{$whereQuery}\r\r\n\t\t")->fetchColumn();
 }
Exemple #13
0
 public function delete($item_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $info = self::get($item_id);
     if (!$info) {
         return;
     }
     $db->delete('items', array('id=?' => $item_id));
     $db->delete('temp_items', array('id=?' => $item_id));
     $db->delete('temp_items_tags', array('item_id=?' => $item_id));
     $db->delete('items_attributes', array('item_id=?' => $item_id));
     $db->delete('items_collections', array('item_id=?' => $item_id));
     $db->delete('items_comments', array('item_id=?' => $item_id));
     $db->delete('items_faqs', array('item_id=?' => $item_id));
     $db->delete('items_rates', array('item_id=?' => $item_id));
     $db->delete('items_tags', array('item_id=?' => $item_id));
     $db->delete('items_to_category', array('item_id=?' => $item_id));
     $db->update(Model_Users::getPrefixDB() . 'users', array('items' => new JO_Db_Expr('items - 1')), array('user_id = ?' => $info['user_id']));
     self::unlink(BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $item_id . '/');
     self::unlink(BASE_PATH . '/uploads/cache/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $item_id . '/');
 }
Exemple #14
0
 public function buy($item, $price, $extended = 'false')
 {
     $you = Model_Users::getUser(JO_Session::get('user_id'));
     $deposit = 0;
     $earning = 0;
     if ($you['deposit'] > $price) {
         $deposit = $price;
     } else {
         $deposit = $you['deposit'];
         $earning = floatval($price) - floatval($you['deposit']);
     }
     $db = JO_Db::getDefaultAdapter();
     $db->update(Model_Users::getPrefixDB() . 'users', array('deposit' => new JO_Db_Expr('deposit - ' . floatval($deposit)), 'earning' => new JO_Db_Expr('earning - ' . floatval($earning)), 'total' => new JO_Db_Expr('total - ' . floatval($price))), array('user_id =?' => $you['user_id']));
     JO_Session::set('deposit', floatval(JO_Session::get('deposit')) - floatval($deposit));
     JO_Session::set('earning', floatval(JO_Session::get('earning')) - floatval($earning));
     JO_Session::set('total', floatval(JO_Session::get('total')) - floatval($price));
     #ADD PRICE TO OWNER USER
     $user = Model_Users::getUser($item['user_id']);
     $percent = Model_Percentes::getPercentRow($user);
     $percent = $percent['percent'];
     $receiveMoney = floatval($price) * floatval($percent) / 100;
     $db->update(Model_Users::getPrefixDB() . 'users', array('earning' => new JO_Db_Expr('earning+' . floatval($receiveMoney)), 'total' => new JO_Db_Expr('total + ' . floatval($receiveMoney)), 'sold' => new JO_Db_Expr('sold + ' . floatval($price)), 'sales' => new JO_Db_Expr('sales+1')), array('user_id =?' => $user['user_id']));
     #ADD ORDER
     $currency = WM_Currency::getCurrency();
     $db->insert('orders', array('user_id' => (int) JO_Session::get('user_id'), 'owner_id' => (int) $item['user_id'], 'item_id' => (int) $item['id'], 'item_name' => $item['name'], 'price' => (double) $price, 'datetime' => new JO_Db_Expr('NOW()'), 'receive' => $receiveMoney, 'paid' => 'true', 'paid_datetime' => new JO_Db_Expr('NOW()'), 'extended' => $extended, 'type' => 'buy', 'currency_code' => $currency['code'], 'currency_value' => $currency['value'], 'module' => $item['module']));
     $order_id = $db->lastInsertId();
     if ($order_id && $you['referal_id'] != '0') {
         self::referalMoney(array('order_id' => $order_id, 'price' => $price, 'user_id' => JO_Session::get('user_id'), 'owner_id' => $item['user_id'], 'item_id' => $item['id'], 'item_name' => $item['name'], 'currency_code' => $currency['code'], 'currency_value' => $currency['value']), $you);
     }
     $db->update(Model_Users::getPrefixDB() . 'users', array('buy' => new JO_Db_Expr('buy+1')), array('user_id =?' => JO_Session::get('user_id')));
     #UPDATE ITEM
     $toadd = array('sales' => new JO_Db_Expr('sales+1'), 'earning' => new JO_Db_Expr('earning+' . $price));
     if ($extended == 'true') {
         $toadd['status'] = 'extended_buy';
     }
     $db->update('items', $toadd, array('id = ?' => $item['id']));
     return true;
 }
Exemple #15
0
 public function referalMoney($row, $you)
 {
     $db = JO_Db::getDefaultAdapter();
     $totals = Model_Users::getTotalReferals($you['user_id'], $you['referal_id']);
     if ((int) JO_Registry::get('referal_sum') && $totals + 1 > (int) JO_Registry::get('referal_sum')) {
         $db->update(Model_Users::getPrefixDB() . 'users', array('referal_id' => '0'), array('user_id = ?' => $you['user_id']));
         return false;
     }
     $referalMoney = floatval($row['price']) * (int) JO_Registry::get('referal_percent') / 100;
     $db->update(Model_Users::getPrefixDB() . 'users', array('earnings' => new JO_Db_Expr('earnings+' . $referalMoney), 'total' => new JO_Db_Expr('total+' . $referalMoney), 'referal_money' => new JO_Db_Expr('referal_money' + $referalMoney)), array('user_id = ?' => $you['user_id']));
     $db->insert('orders', array('order_id' => $row['id'], 'user_id' => $row['user_id'], 'owner_id' => $row['owner_id'], 'item_id' => $row['item_id'], 'item_name' => $row['item_name'], 'price' => $row['price'], 'datetime' => new JO_Db_Expr('NOW()'), 'receive' => $referalMoney, 'paid' => 'true', 'paid_datetime' => new JO_Db_Expr('NOW()'), 'type' => 'referal'));
     $db->insert(Model_Users::getPrefixDB() . 'users_referals_count', array('user_id' => $you['user_id'], 'referal_id' => $you['referal_id'], 'datetime' => new JO_Db_Expr('NOW()')));
 }
Exemple #16
0
 public static function addWithdrawal($data)
 {
     $db = JO_Db::getDefaultAdapter();
     $db->insert(Model_Users::getPrefixDB() . 'withdraw', array('user_id' => $data['user_id'], 'amount' => $data['amount'], 'method' => $data['method'], 'text' => $data['text'], 'australian' => $data['australian'], 'abn' => $data['abn'], 'acn' => $data['acn'], 'datetime' => new JO_Db_Expr('NOW()')));
 }
Exemple #17
0
    public function editItem($id, $data)
    {
        $db = JO_Db::getDefaultAdapter();
        $info = self::getItem($id);
        if (!$info) {
            return;
        }
        if (isset($data['free_file'])) {
            $db->update('items', array('free_file' => 'false'));
            self::addUserStatus($id, 'freefile');
        }
        $db->update('items', array('name' => $data['name'], 'description' => $data['description'], 'price' => $data['price'], 'free_file' => isset($data['free_file']) ? 'true' : 'false', 'weekly_from' => $data['weekly_from'] ? JO_Date::getInstance($data['weekly_from'], 'yy-mm-dd', true) : '0000-00-00', 'weekly_to' => $data['weekly_to'] ? JO_Date::getInstance($data['weekly_to'], 'yy-mm-dd', true) : '0000-00-00'), array('id = ?' => (int) $id));
        if (isset($data['set_status']) && $data['set_status'] == 'active') {
            $db->update('items', array('status' => $data['set_status']), array('id = ?' => (int) $id));
            $db->update(Model_Users::getPrefixDB() . 'users', array('items' => new JO_Db_Expr('items + 1')), array('user_id = ?' => $info['user_id']));
            /////////// send email
            $request = JO_Request::getInstance();
            $translate = JO_Translate::getInstance();
            $not_template = Model_Notificationtemplates::get('approval_item');
            $mail = new JO_Mail();
            if (JO_Registry::get('mail_smtp')) {
                $mail->setSMTPParams(JO_Registry::forceGet('mail_smtp_host'), JO_Registry::forceGet('mail_smtp_port'), JO_Registry::forceGet('mail_smtp_user'), JO_Registry::forceGet('mail_smtp_password'));
            }
            $mail->setFrom('no-reply@' . $request->getDomain());
            $href = '<a href="' . WM_Router::create($request->getBaseUrl() . '?module=' . $info['module'] . '&controller=items&item_id=' . $id) . '">' . $info['name'] . '</a>';
            if ($not_template) {
                $title = $not_template['title'];
                $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8');
                $html = str_replace('{USERNAME}', $info['username'], $html);
                $html = str_replace('{ITEM}', $info['name'], $html);
                $html = str_replace('{URL}', $href, $html);
            } else {
                $title = "[" . $request->getDomain() . "] " . $data['name'];
                $html = nl2br($translate->translate('Item') . ' 
				' . $href . ' ' . $translate->translate('approval'));
            }
            $mail->setSubject($title);
            $mail->setHTML($html);
            $result = $mail->send(array($info['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail');
            unset($mail);
            //////////////////////
        }
        if (isset($data['weekly_to']) && trim($data['weekly_to']) != '') {
            self::addUserStatus($id, 'featured');
        }
        $db->delete('items_to_category', array('item_id = ?' => (int) $id));
        if (isset($data['category_id'])) {
            foreach ($data['category_id'] as $category_id) {
                $categories = Model_Categories::getCategoryParents(Model_Categories::getCategories(array('filter_id_key' => true)), $category_id);
                $categories = explode(',', $categories);
                array_pop($categories);
                $categories = array_reverse($categories);
                $categories = ',' . implode(',', $categories) . ',';
                $db->insert('items_to_category', array('item_id' => (int) $id, 'categories' => $categories));
            }
        }
        $db->delete('items_attributes', array('item_id = ?' => (int) $id));
        if (isset($data['attributes']) && is_array($data['attributes'])) {
            foreach ($data['attributes'] as $cid => $value) {
                if (is_array($value)) {
                    foreach ($value as $val) {
                        $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $val, 'category_id' => (int) $cid));
                    }
                } elseif ($value) {
                    $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $value, 'category_id' => (int) $cid));
                }
            }
        }
        $db->delete('items_tags', array('item_id = ?' => (int) $id));
        if (isset($data['tags']) && $data['tags']) {
            $tags = explode(',', $data['tags']);
            foreach ($tags as $tag) {
                $tag = trim($tag);
                if ($tag) {
                    $tag_id = Model_Tags::getTagByTitleAndInsert($tag);
                    if ($tag_id) {
                        $db->insert('items_tags', array('item_id' => $id, 'tag_id' => (int) $tag_id, 'type' => ''));
                    }
                }
            }
        }
    }
Exemple #18
0
 public static function getTotalReportedComments($data = array())
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('items_comments', 'COUNT(id)')->join(Model_Users::getPrefixDB() . 'users', 'items_comments.report_by = users.user_id', array());
     return $db->fetchOne($query);
 }
Exemple #19
0
 public function get($id)
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('collections')->joinLeft(Model_Users::getPrefixDB() . 'users', 'users.user_id = collections.user_id', array('users.username', 'users.firstname', 'users.lastname'))->where('collections.id = ?', (int) $id);
     return $db->fetchRow($query);
 }
Exemple #20
0
 public static function editeWithdraw($id, $data)
 {
     $win = self::getWithdraw($id);
     if (!$win) {
         return false;
     }
     $user = self::getUser($win['user_id']);
     if (!$user) {
         return false;
     }
     $db = JO_Db::getDefaultAdapter();
     if ($data['earning'] > $user['earning']) {
         return false;
     }
     $db->update(Model_Users::getPrefixDB() . 'users', array('earning' => new JO_Db_Expr('earning - ' . (double) $data['earning']), 'total' => new JO_Db_Expr('total - ' . (double) $data['earning'])), array('user_id = ?' => $win['user_id']));
     $db->update(Model_Users::getPrefixDB() . 'withdraw', array('paid' => 'true', 'paid_datetime' => new JO_Db_Expr('NOW()')), array('id = ?' => (int) $id));
     return true;
 }