Exemplo n.º 1
0
    }
    $flash = $app->view()->getData('flash');
    $review_errors = isset($flash['review_errors']) ? $flash['review_errors'] : array();
    $product = \Data\ProductsRepository::get_product($db, $category, $id);
    if ($product) {
        $reviews = \Data\ProductsRepository::get_review($db, $id);
        $reviews_rows = \Data\ProductsRepository::get_total_records($db);
        $rating_avg = \Data\ProductsRepository::get_rating($db, $id);
        $recommended_products = \Data\ProductsRepository::get_recommended_products($db, $id);
        if ($category == 'kits') {
            $products = \Data\ProductsRepository::get_kit_products($db, $id);
            $app->view()->set_template('layouts/basic.php');
            $app->render('products/detail/kit.php', array('page_title' => 'Kit', 'kit' => $product, 'products' => $products, 'category' => $category, 'recommended_products' => $recommended_products, 'review_errors' => $review_errors, 'reviews' => $reviews, 'reviews_count' => $reviews_rows['rows'], 'rating_avg' => $rating_avg));
        } else {
            if ($product['has_attributes'] == 1) {
                $attributes = \Data\ProductsRepository::get_product_attributes($db, $id);
            } else {
                $attributes = NULL;
            }
            $app->view()->set_template('layouts/basic.php');
            $app->render('products/detail/product.php', array('page_title' => ucfirst($category) . ' - ' . $id, 'row' => $product, 'attributes' => $attributes, 'category' => $category, 'recommended_products' => $recommended_products, 'review_errors' => $review_errors, 'reviews' => $reviews, 'reviews_count' => $reviews_rows['rows'], 'rating_avg' => $rating_avg));
        }
    } else {
        $app->notFound();
    }
});
$app->post('/products/review', function () use($app, $db) {
    $data = $app->request()->post();
    include BASE_URI . DS . 'routes' . DS . 'validators' . DS . 'review.php';
    $errors = validate($data);
    if ($errors) {
Exemplo n.º 2
0
    public static function get_kit_products($db, $id)
    {
        $query = '
      SELECT
        p2.id, p2.name, p2.description, p2.image, p2.stock,
        p2.price, sales.price AS sale_price, ak.quantity as quantity,
        IF(DATEDIFF(NOW(), p2.created) < 30, true, false) as is_new,
        IF(pa.product_id IS NULL, 0, 1) AS has_attributes
      FROM products p1
      INNER JOIN accessories_kits AS ak
        ON p1.id=ak.kit_id
      INNER JOIN products p2
        ON ak.accessory_id = p2.id
      INNER JOIN sales
        ON (sales.product_id=p2.id
          AND ((NOW() BETWEEN sales.start_date AND sales.end_date)
          OR (NOW() > sales.start_date AND sales.end_date IS NULL)))
      LEFT OUTER JOIN product_attribute pa
        ON p2.id = pa.product_id
      WHERE p1.id = :id
      GROUP BY p2.id

      UNION

      SELECT
        p2.id, p2.name, p2.description, p2.image, p2.stock,
        p2.price, sales.price AS sale_price, ek.quantity as quantity,
        IF(DATEDIFF(NOW(), p2.created) < 30, true, false) as is_new,
        IF(pa.product_id IS NULL, 0, 1) AS has_attributes
      FROM products p1
      INNER JOIN eliquids_kits AS ek
        ON p1.id=ek.kit_id
      INNER JOIN products p2
        ON ek.eliquid_id = p2.id
      INNER JOIN sales
        ON (sales.product_id=p2.id
          AND ((NOW() BETWEEN sales.start_date AND sales.end_date)
          OR (NOW() > sales.start_date AND sales.end_date IS NULL)))
      LEFT OUTER JOIN product_attribute pa
        ON p2.id = pa.product_id
      WHERE p1.id = :id
      GROUP BY p2.id
    ';
        $stmt = $db->prepare($query);
        $stmt->execute(array('id' => $id));
        $products = $stmt->fetchAll();
        if ($products) {
            foreach ($products as &$p) {
                if ($p['has_attributes'] == 1) {
                    $p['attributes'] = \Data\ProductsRepository::get_product_attributes($db, $p['id']);
                } else {
                    $p['attributes'] = null;
                }
            }
        }
        return $products;
    }