public static function dateDiff($time1, $time2, $precision = 7, $full = false) { // If not numeric then convert texts to unix timestamps if (!is_int($time1)) { $time1 = JO_Date::dateToUnix($time1); } if (!is_int($time2)) { $time2 = JO_Date::dateToUnix($time2); } // If time1 is bigger than time2 // Then swap time1 and time2 if ($time1 > $time2) { $ttime = $time1; $time1 = $time2; $time2 = $ttime; } // Set up intervals and diffs arrays $intervals = array('year', 'month', 'week', 'day', 'hour', 'minute', 'second'); $diffs = array(); // Loop thru all intervals foreach ($intervals as $interval) { // Set default diff to 0 $diffs[$interval] = 0; // Create temp time from time1 and interval $ttime = strtotime("+1 " . $interval, $time1); // Loop until temp time is smaller than time2 while ($time2 >= $ttime) { $time1 = $ttime; $diffs[$interval]++; // Create new temp time from time1 and interval $ttime = strtotime("+1 " . $interval, $time1); } } $count = 0; $times = array(); // Loop thru all diffs foreach ($diffs as $interval => $value) { // Break if we have needed precission if (!$full && $count >= $precision) { break; } // Add value and interval // if value is bigger than 0 if ($value > 0 || $full) { // Add s if value is not 1 if ($value != 1) { $interval .= "s"; } // Add value and interval to times array $times[] = array('key' => $interval, 'value' => $value); $count++; } } // Return string with times return $times; }
public static function getTotal($data = array()) { $db = JO_Db::getDefaultAdapter(); $query = $db->select()->from(array('o' => 'orders'), new JO_Db_Expr('COUNT(o.id), (o.price - o.receive) AS web_profit, (SELECT receive FROM orders WHERE order_id = o.id LIMIT 1) AS referral_sum, ((o.price - o.receive) - (SELECT receive FROM orders WHERE order_id = o.id LIMIT 1)) AS web_profit2'))->joinLeft(array('u' => Model_Users::getPrefixDB() . 'users'), 'o.user_id = u.user_id', array())->joinLeft(array('u2' => Model_Users::getPrefixDB() . 'users'), 'o.owner_id = u2.user_id', array()); ////////////filter if (isset($data['filter_id']) && $data['filter_id']) { $query->where('o.id = ?', (int) $data['filter_id']); } if (isset($data['filter_order_id']) && $data['filter_order_id']) { $query->where('o.order_id = ?', (int) $data['filter_order_id']); } if (isset($data['filter_name']) && $data['filter_name']) { $query->where('o.item_name LIKE ?', '%' . $data['filter_name'] . '%'); } if (isset($data['filter_username']) && $data['filter_username']) { $query->where('u.username LIKE ?', '%' . $data['filter_username'] . '%'); } if (isset($data['filter_owner']) && $data['filter_owner']) { $query->where('u2.username LIKE ?', '%' . $data['filter_owner'] . '%'); } if (isset($data['filter_price']) && $data['filter_price']) { $data['filter_price'] = html_entity_decode($data['filter_price'], ENT_QUOTES, 'utf-8'); if (strpos($data['filter_price'], '<>') === 0) { $query->where('o.price != ?', (double) substr($data['filter_price'], 2)); } elseif (strpos($data['filter_price'], '>') === 0) { $query->where('o.price > ?', (double) substr($data['filter_price'], 1)); } elseif (strpos($data['filter_price'], '<') === 0) { $query->where('o.price < ?', (double) substr($data['filter_price'], 1)); } else { $query->where('o.price = ?', (double) $data['filter_price']); } } if (isset($data['filter_receive']) && $data['filter_receive']) { $data['filter_receive'] = html_entity_decode($data['filter_receive'], ENT_QUOTES, 'utf-8'); if (strpos($data['filter_receive'], '<>') === 0) { $query->where('o.receive != ?', (double) substr($data['filter_receive'], 2)); } elseif (strpos($data['filter_receive'], '>') === 0) { $query->where('o.receive > ?', (double) substr($data['filter_receive'], 1)); } elseif (strpos($data['filter_receive'], '<') === 0) { $query->where('o.receive < ?', (double) substr($data['filter_receive'], 1)); } else { $query->where('o.receive = ?', (double) $data['filter_receive']); } } if (isset($data['filter_web_receive']) && $data['filter_web_receive']) { $data['filter_web_receive'] = html_entity_decode($data['filter_web_receive'], ENT_QUOTES, 'utf-8'); if (strpos($data['filter_web_receive'], '<>') === 0) { $query->where('web_profit2 != ?', (double) substr($data['filter_web_receive'], 2)); } elseif (strpos($data['filter_web_receive'], '>') === 0) { $query->where('web_profit2 > ?', (double) substr($data['filter_web_receive'], 1)); } elseif (strpos($data['filter_web_receive'], '<') === 0) { $query->where('web_profit2 < ?', (double) substr($data['filter_web_receive'], 1)); } else { $query->where('web_profit2 = ?', (double) $data['filter_web_receive']); } } if (isset($data['filter_item_id']) && $data['filter_item_id']) { $query->where('o.item_id = ?', (int) $data['filter_item_id']); } if (isset($data['filter_paid']) && in_array($data['filter_paid'], array('true', 'false'))) { $query->where('o.paid = ?', $data['filter_paid']); } if (isset($data['filter_extended']) && in_array($data['filter_extended'], array('true', 'false'))) { $query->where('o.extended = ?', $data['filter_extended']); } if (isset($data['filter_type']) && $data['filter_type']) { $query->where('o.type = ?', $data['filter_type']); } if (isset($data['filter_from']) && JO_Date::dateToUnix($data['filter_from'])) { $query->where('DATE(o.datetime) >= ?', JO_Date::getInstance($data['filter_from'], 'yy-mm-dd', true)->toString()); } if (isset($data['filter_to']) && JO_Date::dateToUnix($data['filter_to'])) { $query->where('DATE(o.datetime) <= ?', JO_Date::getInstance($data['filter_to'], 'yy-mm-dd', true)->toString()); } if (isset($data['filter_paid_from']) && JO_Date::dateToUnix($data['filter_paid_from'])) { $query->where('DATE(o.paid_datetime) >= ?', JO_Date::getInstance($data['filter_paid_from'], 'yy-mm-dd', true)->toString()); } if (isset($data['filter_paid_to']) && JO_Date::dateToUnix($data['filter_paid_to'])) { $query->where('DATE(o.paid_datetime) <= ?', JO_Date::getInstance($data['filter_paid_to'], 'yy-mm-dd', true)->toString()); } return $db->fetchOne($query); }
public static function returnHtml($pin, $recache = false) { static $view = null, $model_images = null, $request = null; if ($view === null) { $view = JO_View::getInstance(); } if ($model_images === null) { $model_images = new Helper_Images(); } if ($request === null) { $request = JO_Request::getInstance(); } $view->image_no_cache = JO_Date::dateToUnix($pin['date_modified']); if (!JO_Registry::get('isMobile')) { $cache_file = Model_Pins::generateCachePatch($pin); if ($cache_file && file_exists($cache_file)) { if (JO_Date::dateToUnix($pin['date_modified']) >= JO_Date::dateToUnix(filemtime($cache_file))) { $recache = true; } } $content = false; if (!$recache) { //CACHE OFF if ($cache_file && file_exists($cache_file)) { $content = Model_Pins::getCache($cache_file); if ($content && $content['html'] && $content['date_added'] > JO_Date::dateToUnix($pin['date_modified'])) { return $content['html']; } } } } //$image=''; //error_log("INICIO IMAGE thumb _B (): ".self::udate("Y-m-d H:i:s.u")); //$image = Helper_Uploadimages::pin($pin, '_B'); //if($image) { //$pin['thumb'] = $image['image']; //$pin['thumb_width'] = $image['width']; //$pin['thumb_height'] = $image['height']; //$pin['original_image'] = $image['original']; //} else { //return ''; //} //cogemos la extensión del fichero $extension = substr(strrchr($pin['image'], '.'), 1); //ahora la quitamos $nombreSextension = substr($pin['image'], 0, strlen($pin['image']) - strlen($extension) - 1); if ($pin["store"] == "amazons3") { $host = "http://images.amatteur.com/"; $sufijo = "_B."; //$img_size = @getimagesize($host.$nombreSextension."_B.".$extension); $pin['thumb'] = $host . $nombreSextension . $sufijo . $extension; if ($pin['width'] != 0) { $pin['thumb_width'] = $pin['width']; $pin['thumb_height'] = $pin['height']; } else { $pin['thumb_width'] = 194; $pin['thumb_height'] = $pin['height']; } $pin['original_image'] = $host . $pin['image']; } else { $host = "/uploads"; $sufijo = "."; $image = Helper_Uploadimages::pin($pin, '_B'); if ($image) { $pin['thumb'] = $image['image']; $pin['thumb_width'] = $image['width']; $pin['thumb_height'] = $image['height']; $pin['original_image'] = $image['original']; } else { return ''; } } //error_log("FIN IMAGE thumb _B (): ".self::udate("Y-m-d H:i:s.u")); //error_log("INICIO IMAGE thumb _D (): ".self::udate("Y-m-d H:i:s.u")); //$image = Helper_Uploadimages::pin($pin, '_D'); //if($image) { //$pin['popup'] = $image['image']; //$pin['popup_width'] = $image['width']; //$pin['popup_height'] = $image['height']; //$pin['original_image'] = $image['original']; //}else { //return ''; //} if ($pin["store"] == "amazons3") { $host = "http://images.amatteur.com/"; $sufijo = "_D."; } else { $host = "/uploads"; $sufijo = "."; } $pin['popup'] = $host . $nombreSextension . $sufijo . $extension; //$pin['popup_width'] = $pin['width']; //$pin['popup_height'] = $pin['height']; $pin['original_image'] = $host . $pin['image']; //error_log("FIN IMAGE thumb _D (): ".self::udate("Y-m-d H:i:s.u")); $date_dif = array_shift(WM_Date::dateDiff($pin['date_added'], time())); $pin['date_dif'] = $date_dif; $pin['description'] = self::descriptionFix($pin['description']); //$pin['description'] = $pin['user']; $pin['href'] = WM_Router::create($request->getBaseUrl() . '?controller=pin&pin_id=' . $pin['pin_id']); if (JO_Session::get('user[user_id]')) { $pin['url_like'] = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=like&pin_id=' . $pin['pin_id']); $pin['url_repin'] = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=repin&pin_id=' . $pin['pin_id']); $pin['url_comment'] = WM_Router::create($request->getBaseUrl() . '?controller=pin&pin_id=' . $pin['pin_id']); $pin['comment'] = WM_Router::create($request->getBaseUrl() . '?controller=pin&pin_id=' . $pin['pin_id']); $pin['edit'] = JO_Session::get('user[user_id]') == $pin['user_id'] ? WM_Router::create($request->getBaseUrl() . '?controller=pin&action=edit&pin_id=' . $pin['pin_id']) : false; } else { $pin['url_like'] = $pin['url_repin'] = $pin['url_comment'] = $pin['comment'] = WM_Router::create($request->getBaseUrl() . '?controller=landing'); $pin['edit'] = false; } $pin['onto_href'] = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . $pin['user_id'] . '&board_id=' . $pin['board_id']); $pin['price_formated'] = WM_Currency::format($pin['price']); $view->author = $pin['user']; if ($pin["user"]["store"] == "amazons3") { $host = 'http://' . JO_Registry::get('bucklet') . '.' . trim(JO_Registry::get('awsDomain'), '.') . '/'; //$host="http://images.amatteur.com/"; $sufijo = "_A."; } else { $host = "/uploads"; $sufijo = "."; } if ($pin["user"]["avatar"] == "") { $imageUser = "******"; } else { //cogemos la extensión del fichero $extension = substr(strrchr($pin["user"]["avatar"], '.'), 1); //ahora la quitamos $nombreSextension = substr($pin["user"]["avatar"], 0, strlen($pin["user"]["avatar"]) - strlen($extension) - 1); $imageUser = $host . $nombreSextension . $sufijo . $extension; } $view->author['avatar'] = $imageUser; //$avatar = Helper_Uploadimages::avatar($pin['user'], '_A'); //$avatar=''; //$view->author['avatar'] = $avatar['image']; $view->author['profile'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $pin['user_id']); if (JO_Session::get('user[user_id]')) { //error_log("entra"); $imageProp = JO_Session::get('user'); if ($imageProp["store"] == "amazons3") { //$host='http://' . JO_Registry::get('bucklet') . '.' . trim(JO_Registry::get('awsDomain'),'.') . '/'; $host = "http://images.amatteur.com/"; $sufijo = "_A."; } else { $host = "/uploads"; $sufijo = "."; } if ($imageProp["avatar"] == "") { $imageUser = "******"; } else { //cogemos la extensión del fichero $extension = substr(strrchr($imageProp["avatar"], '.'), 1); //ahora la quitamos $nombreSextension = substr($imageProp["avatar"], 0, strlen($imageProp["avatar"]) - strlen($extension) - 1); $imageUser = $host . $nombreSextension . $sufijo . $extension; } $view->author_self = $imageUser; //$avatar = Helper_Uploadimages::avatar(JO_Session::get('user'), '_A'); //$avatar=''; //$view->author_self = $avatar['image']; $view->profile_self = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')); } if ($pin['latest_comments']) { foreach ($pin['latest_comments'] as $key => $comment) { if (!isset($pin['latest_comments'][$key]['user']['store'])) { unset($pin['latest_comments'][$key]); continue; } if ($pin['latest_comments'][$key]['user']["store"] == "amazons3") { //$host='http://' . JO_Registry::get('bucklet') . '.' . trim(JO_Registry::get('awsDomain'),'.') . '/'; $host = "http://images.amatteur.com/"; $sufijo = "_A."; } else { $host = "/uploads"; $sufijo = "."; } if ($pin['latest_comments'][$key]['user']["avatar"] == "") { $imageUser = "******"; } else { //cogemos la extensión del fichero $extension = substr(strrchr($pin['latest_comments'][$key]['user']["avatar"], '.'), 1); //ahora la quitamos $nombreSextension = substr($pin['latest_comments'][$key]['user']["avatar"], 0, strlen($pin['latest_comments'][$key]['user']["avatar"]) - strlen($extension) - 1); $imageUser = $host . $nombreSextension . $sufijo . $extension; } $pin['latest_comments'][$key]['user']['avatar'] = $imageUser; //$avatar = Helper_Uploadimages::avatar($pin['latest_comments'][$key]['user'], '_A'); //$avatar=''; //$pin['latest_comments'][$key]['user']['avatar'] = $avatar['image']; $pin['latest_comments'][$key]['user']['profile'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $comment['user_id']); $pin['latest_comments'][$key]['delete'] = ''; if (JO_Session::get('user[user_id]')) { if (JO_Session::get('user[is_admin]') || JO_Session::get('user[user_id]') == $comment['user_id']) { $pin['latest_comments'][$key]['delete'] = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=deleteComment&comment_id=' . $comment['comment_id']); } } } } $view->via = array(); if ($pin['via']) { $view->via = array('profile' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $pin['via']), 'fullname' => $pin['user_via']['fullname']); } $view->loged = (int) JO_Session::get('user[user_id]'); $view->site_name = JO_Registry::get('site_name'); $view->history_id = isset($pin['history_id']) ? $pin['history_id'] : ''; $view->history_action = isset($pin['history_action']) ? ' ' . $pin['history_action'] : ''; $view->pin = $pin; $response = $view->render('pinBox', 'pin'); //CACHE OFF if (!JO_Registry::get('isMobile')) { if ($cache_file && file_exists($cache_file)) { Model_Pins::generateCache($cache_file, $response); } } return $response; }