public static function pinThumbs($pin) { $thumb_sizes = Model_Upload_Abstract::pinThumbSizes(); $thumbs = array(); foreach ($thumb_sizes as $size => $prefix) { if (isset($pin['pin_thumb' . strtolower($prefix)]) && $pin['pin_thumb' . strtolower($prefix)] && count($thumb = explode('|||', $pin['pin_thumb' . strtolower($prefix)])) == 5) { $thumbs['thumb_image' . strtolower($prefix)] = $thumb[0]; $thumbs['thumb_original' . strtolower($prefix)] = $thumb[3]; $thumbs['thumb_width' . strtolower($prefix)] = $thumb[1]; $thumbs['thumb_height' . strtolower($prefix)] = $thumb[2]; $thumbs['thumb_mime' . strtolower($prefix)] = $thumb[4]; $thumbs['thumb_size' . strtolower($prefix)] = $prefix; $thumbs['thumb_pin_id' . strtolower($prefix)] = $pin['pin_pin_id']; } else { $image = Helper_Uploadimages::pin($pin, $prefix); if ($image) { foreach ($image as $k => $v) { $thumbs['thumb_' . $k . strtolower($prefix)] = $v; } } else { } } } return $thumbs; }
/** * @return Ambigous <JO_Db_Select, JO_Db_Select> */ public static function getListPinsQuery() { $db = JO_Db::getDefaultAdapter(); $rows_pins = self::describeTable('pins', 'pin_'); $rows_users = self::describeTable('users', 'user_'); $rows_via = self::describeTable('users', 'via_'); $rows_boards = self::describeTable('boards', 'board_'); /////other rows $rows_pins['pin_gift'] = new JO_Db_Expr('pins.price > 0.0000'); //$rows_boards['board_url'] = new JO_Db_Expr('('.$db->select()->from('url_alias', 'IF(`path`,`path`,`keyword`)')->where('query = CONCAT(\'board_id=\',boards.board_id)')->limit(1).')'); switch (Helper_Config::get('config_user_view')) { case 'username': $rows_users['user_fullname'] = new JO_Db_Expr('users.username'); $rows_via['via_fullname'] = new JO_Db_Expr('via.username'); break; case 'firstname': $rows_users['user_fullname'] = new JO_Db_Expr('users.firstname'); $rows_via['via_fullname'] = new JO_Db_Expr('via.firstname'); break; case 'fullname': default: $rows_users['user_fullname'] = new JO_Db_Expr('CONCAT(users.firstname, " ", users.lastname)'); $rows_via['via_fullname'] = new JO_Db_Expr('CONCAT(via.firstname, " ", via.lastname)'); break; } /*if(JO_Session::get('user[user_id]')) { $rows_pins['following_board'] = new JO_Db_Expr('('.$db->select()->from('users_following','COUNT(users_following_id)')->where('user_id = ?', JO_Session::get('user[user_id]'))->where('following_id = pins.user_id')->where('board_id = pins.board_id')->limit(1) .')'); $rows_pins['following_user'] = new JO_Db_Expr('('.$db->select()->from('users_following_user', 'COUNT(ufu_id)')->where('user_id = ?', JO_Session::get('user[user_id]'))->where('following_id = pins.user_id')->limit(1).')'); } else { $rows_pins['following_board'] = new JO_Db_Expr("'login'"); $rows_pins['following_user'] = new JO_Db_Expr("'login'"); }*/ if (JO_Session::get('user[user_id]')) { $rows_pins['pin_is_liked'] = new JO_Db_Expr('(' . $db->select()->from('pins_likes', 'COUNT(like_id)')->where('pin_id = pins.pin_id')->where('user_id = ?', JO_Session::get('user[user_id]'))->limit(1) . ')'); } else { $rows_pins['pin_is_liked'] = new JO_Db_Expr("0"); } /* is reported */ $query_is_reported = $db->select()->from('pins_reports', 'COUNT(pr_id)')->where('pin_id = pins.pin_id')->where('checked = 0')->limit(1); if ((string) JO_Session::get('user[user_id]')) { $query_is_reported->where("user_id = '" . (string) JO_Session::get('user[user_id]') . "' OR user_ip = '" . JO_Request_Server::encode_ip(JO_Request::getInstance()->getClientIp()) . "'"); } else { $query_is_reported->where("user_ip = ?", JO_Request_Server::encode_ip(JO_Request::getInstance()->getClientIp())); } $rows_pins['pin_is_reported'] = new JO_Db_Expr("(" . $query_is_reported . ")"); $thumbs = Model_Upload_Abstract::pinThumbSizes(); foreach ($thumbs as $size => $prefix) { $rows_pins['pin_thumb' . strtolower($prefix)] = new JO_Db_Expr('(' . $db->select()->from('pins_images', 'CONCAT_WS(\'|||\',image,width,height,original,mime)')->where('pin_id = pins.pin_id')->where('size = ?', $prefix)->limit(1) . ')'); } $thumbs = Model_Upload_Abstract::userThumbSizes(); foreach ($thumbs as $size => $prefix) { $rows_users['user_avatar' . strtolower($prefix)] = new JO_Db_Expr('(' . $db->select()->from('users_avatars', 'CONCAT_WS(\'|||\',image,width,height,original,mime)')->where('user_id = users.user_id')->where('size = ?', $prefix)->limit(1) . ')'); } $query = $db->select()->from('pins', $rows_pins)->joinLeft('users', 'pins.user_id = users.user_id', $rows_users)->joinLeft('boards', 'pins.board_id = boards.board_id', $rows_boards)->joinLeft(array('via' => 'users'), 'pins.via = via.user_id', $rows_via); //for public boards if (Helper_Config::get('config_private_boards')) { if (JO_Session::get('user[user_id]')) { $query->where('pins.user_id = ? OR IF(pins.user_id = ?, 1, pins.public) = 1', JO_Session::get('user[user_id]')); } else { $query->where('pins.public = 1'); } } return $query; }