Exemple #1
0
function add_to_wish_list($app, $db, $params)
{
    if (isset($params['id'], $params['attributes'])) {
        $pid = filter_var($params['id'], FILTER_VALIDATE_INT, array('min_range' => 1)) ? $params['id'] : NULL;
        if (empty($params['attributes']) || $params['attributes'] === '0') {
            // product don't have attributes
            $attributes = NULL;
        } elseif ($params['attributes'] === '1') {
            // product needs attributes
            $app->flash('info', 'You need to choose the attributes of your product before adding it to your Wish List.');
            $category = \Data\ProductsRepository::get_category($db, $pid);
            $app->redirect($app->view()->url('/products/' . $category . '/' . $pid));
        } else {
            // actual attributes string
            $attributes = $params['attributes'];
        }
    }
    if (isset($pid, $params['action']) && $params['action'] == 'add') {
        $stmt = \Data\WishListRepository::add_to_wish_list($db, $_SESSION['user_id'], $pid, 1, $attributes);
        $app->flash('info', 'Your Wish List have been updated. A new product have been added.');
        $app->redirect($app->view()->url('/shop/wishlist'));
    } elseif (isset($pid, $params['action']) && $params['action'] == 'remove') {
        $stmt = \Data\WishListRepository::remove_from_wish_list($db, $_SESSION['user_id'], $pid, $attributes);
        $app->flash('info', 'Your Wish List have been updated. The selected product have been removed.');
        $app->redirect($app->view()->url('/shop/wishlist'));
    } elseif (isset($pid, $params['action'], $params['qty']) && $params['action'] == 'move') {
        $qty = filter_var($params['qty'], FILTER_VALIDATE_INT, array('min_range' => 1)) ? $params['qty'] : 1;
        $stmt = \Data\WishListRepository::remove_from_wish_list($db, $_SESSION['user_id'], $pid, $attributes);
        $stmt = \Data\CartRepository::add_to_cart($db, $_SESSION['user_id'], $pid, $qty, $attributes);
        $app->flash('info', 'Your Wish List have been updated. The product selected have been moved to your Cart.');
        $app->redirect($app->view()->url('/shop/wishlist'));
    } elseif (isset($params['action']) && $params['action'] == 'clear') {
        $stmt = \Data\WishListRepository::clear_wish_list($db, $_SESSION['user_id']);
        $app->flash('info', 'Your Wish List have been updated. Your Wish List is now empty.');
        $app->redirect($app->view()->url('/shop/wishlist'));
    } else {
        // show Wish List
        $wish_list_items = \Data\WishListRepository::get_wish_list_contents($db, $_SESSION['user_id']);
        $wish_list = NULL;
        if ($wish_list_items && count($wish_list_items)) {
            $wish_list = \Helpers\Util::parse_wish_list_items($wish_list_items);
        }
        $app->view()->set_template('layouts/basic.php');
        $app->render('shop/wishlist.php', array('page_title' => 'Your WishList', 'wish_list' => $wish_list));
    }
}
 public static function update_cart($db, $uid, $pid, $qty, $attributes)
 {
     if ($qty > 0) {
         if ($attributes == NULL) {
             $query = 'UPDATE carts SET quantity=:qty, date_modified=NOW()
       WHERE user_id=:uid AND product_id=:pid AND attributes IS NULL;';
         } else {
             $query = 'UPDATE carts SET quantity=:qty, date_modified=NOW()
       WHERE user_id=:uid AND product_id=:pid AND attributes=:attributes;';
         }
         $stmt = $db->prepare($query);
         if ($attributes == NULL) {
             $stmt->execute(array('uid' => $uid, 'pid' => $pid, 'qty' => $qty));
         } else {
             $stmt->execute(array('uid' => $uid, 'pid' => $pid, 'qty' => $qty, 'attributes' => $attributes));
         }
         return $stmt;
     } elseif ($qty == 0) {
         return \Data\CartRepository::remove_from_cart($db, $uid, $pid, $attributes);
     }
 }
        }
    } else {
        $pathInfo = $env['PATH_INFO'] . (substr($env['PATH_INFO'], -1) !== '/' ? '/' : '');
        // extract lang from PATH_INFO
        foreach ($availableLangs as $availableLang) {
            $match = '/' . $availableLang;
            if (strpos($pathInfo, $match . '/') === 0) {
                $lang = $availableLang;
                $env['PATH_INFO'] = substr($env['PATH_INFO'], strlen($match));
                if (strlen($env['PATH_INFO']) == 0) {
                    $env['PATH_INFO'] = '/';
                }
            }
        }
    }
    $base_url = $config['base_url'];
    if ($app->environment()['slim.url_scheme'] == 'https') {
        define('BASE_URL', str_replace('http', 'https', $base_url));
    } else {
        define('BASE_URL', $base_url);
    }
    $uid = \Helpers\User::user_id();
    $cart_items = \Data\CartRepository::get_shopping_cart_contents($db, $uid);
    if ($cart_items && count($cart_items)) {
        $cart = \Helpers\Util::parse_cart_items($cart_items);
    }
    $app->view()->setLang($lang);
    $app->view()->setAvailableLangs($availableLangs);
    $app->view()->setPathInfo($env['PATH_INFO']);
    $app->view()->appendData(array('page_title' => NULL, 'cart' => isset($cart) ? $cart : NULL, 'db' => $db));
});
Exemple #4
0
    $flash = $app->view()->getData('flash');
    $errors = isset($flash['errors']) ? $flash['errors'] : array();
    $app->view()->set_template('layouts/basic.php');
    $app->render('session/login.php', array('page_title' => $app->view()->tr('pages.login'), 'errors' => $errors));
});
$app->post('/session/login', $require_ssl, function () use($app, $db) {
    include BASE_URI . DS . 'routes' . DS . 'validators' . DS . 'login.php';
    $data = $app->request()->post();
    $errors = validate($data);
    if ($errors) {
        $app->flash('error', $app->view()->tr('session.login.errors'));
        $app->redirect($app->view()->url_secure('/session/login'));
    }
    $user = \Data\UserRepository::get_user_by_email_and_password($db, $data['email'], $data['password']);
    if ($user) {
        \Data\CartRepository::clear_cart($db, $_SESSION['user_id']);
        // remove past items
        \Data\WishListRepository::clear_wish_list($db, $_SESSION['user_id']);
        // remove past items
        if ($user['type'] == 'admin') {
            session_regenerate_id(true);
            $_SESSION['admin'] = true;
        }
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['username'] = $user['username'];
        $_SESSION['logged_in'] = true;
        $app->flash('info', 'Welcome to our store ' . $user['username'] . '. Enjoy!');
        $app->redirect($app->view()->url('/'));
    } else {
        $app->flash('error', $app->view()->tr('session.login.match.error'));
        $app->redirect($app->view()->url_secure('/session/login'));