/** * solo acepta pattern + location + stats, category * */ public function getPremiums($max = 2) { $premium_sql = $this->_makeSQLPremium($max); // make premium sql $result = $this->dao->query($premium_sql); $items = $result->result(); $mStat = ItemStats::newInstance(); foreach ($items as $item) { $mStat->increase('i_num_premium_views', $item['pk_i_id']); } return Item::newInstance()->extendData($items); }
public function getPremiums($max = 2) { $this->order(sprintf('order_premium_views', DB_TABLE_PREFIX), 'ASC'); $this->page(0, $max); $this->addField(sprintf('sum(%st_item_stats.i_num_premium_views) as total_premium_views', DB_TABLE_PREFIX)); $this->addField(sprintf('(sum(%st_item_stats.i_num_premium_views) + sum(%st_item_stats.i_num_premium_views)*RAND()*0.7 + TIMESTAMPDIFF(DAY,%st_item.dt_pub_date,\'%s\')*0.3) as order_premium_views', DB_TABLE_PREFIX, DB_TABLE_PREFIX, DB_TABLE_PREFIX, date('Y-m-d H:i:s'))); $this->addTable(sprintf('%st_item_stats', DB_TABLE_PREFIX)); $this->addConditions(sprintf('%st_item_stats.fk_i_item_id = %st_item.pk_i_id', DB_TABLE_PREFIX, DB_TABLE_PREFIX)); $this->addConditions(sprintf("%st_item.b_premium = 1", DB_TABLE_PREFIX)); $items = $this->doSearch(false); $mStat = ItemStats::newInstance(); foreach ($items as $item) { $mStat->increase('i_num_premium_views', $item['pk_i_id']); } return Item::newInstance()->extendData($items); }
/** * Mark an item * @param int $id * @param string $as */ public function mark( $id, $as ) { switch ($as) { case 'spam': $column = 'i_num_spam'; break; case 'badcat': $column = 'i_num_bad_classified'; break; case 'offensive': $column = 'i_num_offensive'; break; case 'repeated': $column = 'i_num_repeated'; break; case 'expired': $column = 'i_num_expired'; break; } ItemStats::newInstance()->increase( $column, $id ); }
/** * return number of views of current item * * @return int */ function osc_item_views() { $item = osc_item(); if (isset($item['i_num_views'])) { return (int) osc_item_field("i_num_views"); } else { return ItemStats::newInstance()->getViews(osc_item_id()); } }