public function isDataValid() { if (!isClientLoggedIn()) { $this->message = "U moet ingelogd zijn om mee te kunnen doen aan een verloting!"; return false; } $product = new Product(); $product->loadByGUID($this->data['product']); if ($product->guid == null || $product->isgone == true) { $this->message = "Geen geldig product"; return false; } if ($product->user->guid == $_SESSION['guid']) { $this->message = "U kunt niet meedoen in de verloting van uw eigen product!"; return false; } $active_user = new User(); $active_user->loadByGUID($_SESSION['guid']); if ($product->isUserInLottery($active_user)) { $this->message = "U bent al ingeschreven voor deze verloting!"; return false; } $this->product = $product; $this->user = $active_user; return true; }
/** * * @param type $search_string * @param type $distance * @return Product[] */ function getSearchResult($search_string, $distance = null) { $words = explode(" ", $search_string); $name_result = array(); $desc_result = array(); foreach ($words as $word) { $sql = select_sql("SELECT guid FROM product WHERE name LIKE ?", 's', '%' . $word . '%'); if (!empty($sql)) { $name_result[$word] = toSingleArray($sql); } $sql2 = select_sql("SELECT guid FROM product WHERE description LIKE ?", 's', '%' . $word . '%'); if (!empty($sql2)) { $desc_result[$word] = toSingleArray($sql2); } foreach ($words as $word2) { $sql = select_sql("SELECT guid FROM product WHERE name LIKE ?", 's', '%' . $word . ' ' . $word2 . '%'); if (!empty($sql)) { $name_result[$word . ' ' . $word2] = toSingleArray($sql); } $sql2 = select_sql("SELECT guid FROM product WHERE description LIKE ?", 's', '%' . $word . ' ' . $word2 . '%'); if (!empty($sql2)) { $desc_result[$word . ' ' . $word2] = toSingleArray($sql2); } foreach ($words as $word3) { $sql = select_sql("SELECT guid FROM product WHERE name LIKE ?", 's', '%' . $word . ' ' . $word2 . ' ' . $word3 . '%'); if (!empty($sql)) { $name_result[$word . ' ' . $word2 . ' ' . $word3] = toSingleArray($sql); } $sql2 = select_sql("SELECT guid FROM product WHERE description LIKE ?", 's', '%' . $word . ' ' . $word2 . ' ' . $word3 . '%'); if (!empty($sql2)) { $desc_result[$word . ' ' . $word2 . ' ' . $word3] = toSingleArray($sql2); } } } } $final_result = array(); foreach ($name_result as $name => $guid_list) { foreach ($guid_list as $guid) { if (!array_key_exists($guid, $final_result)) { $final_result[$guid] = 3 * pow(count(str_split($name)), 2); } else { $final_result[$guid] += 3 * pow(count(str_split($name)), 2); } } } foreach ($desc_result as $desc => $guid_list) { foreach ($guid_list as $guid) { if (!array_key_exists($guid, $final_result)) { $final_result[$guid] = pow(count(str_split($desc)), 2); } else { $final_result[$guid] += pow(count(str_split($desc)), 2); } } } arsort($final_result); $actual_result = array(); foreach ($final_result as $key => $value) { $product = new Product(); $product->loadByGUID($key); array_push($actual_result, $product); } return $actual_result; }
<div class="row"> <div class="col-lg-12"> <h1 class="page-header">Recente verlotingen <small></small> </h1> </div> </div> <!-- /.row --> <?php $db = select_sql("SELECT guid FROM product WHERE isgone = 0 ORDER BY upload_date DESC LIMIT 9"); for ($i = 0; $i < 3; $i++) { echo '<div class="row">'; for ($j = 0; $j < 3; $j++) { if (count($db) - 1 < $i * 3 + $j) { continue; } $product = new Product(); $product->loadByGUID($db[$i * 3 + $j]['guid']); $product->echoProduct(); } echo '</div>'; } ?> </div> <!-- /.container --> <!-- Footer --> <?php include 'php/footer.php';
/** * * @param type $page_number * @param type $amount_per_page * @return Product[] */ public function getProductsForPage($page_number, $amount_per_page) { $sql = select_sql("SELECT p.guid FROM product p WHERE p.guid IN(SELECT product_guid FROM product_has_category phc WHERE phc.category_guid = ?) ORDER BY p.allot_date DESC LIMIT ?, ?", 'sii', array($this->guid, $page_number * $amount_per_page, $amount_per_page)); $result = array(); foreach ($sql as $s) { $product = new Product(); $product->loadByGUID($s['guid']); array_push($result, $product); } return $result; }