Ejemplo n.º 1
0
 function add($model = null, $id = null, $nb = 1)
 {
     $extract_data = array('products.model' => array('data.ShopCart.model', 'params.named.model', 'params.model', 'pass.model'), 'products.foreign_id' => array('data.ShopCart.id', 'params.named.id', 'params.id', 'pass.id'), 'products.nb' => array('data.ShopCart.nb', 'params.named.nb', 'params.nb', 'pass.nb'), 'back_encoded' => array('params.named.back', 'params.back'), 'redirect_encoded' => array('params.named.redirect', 'params.redirect'), 'redirect' => array('data.ShopCart.redirect'), 'back' => array('data.ShopCart.back'), 'products.SubItem' => array('data.ShopCart.SubItem'));
     App::import('Lib', 'Shop.SetMulti');
     $source = array('params' => $this->params, 'data' => $this->data, 'pass' => array('model' => $model, 'id' => $id, 'nb' => $nb));
     $opt = SetMulti::extractHierarchicMulti($extract_data, $source);
     if (!empty($opt['back_encoded'])) {
         App::import('Lib', 'Shop.UrlParam');
         $opt['back'] = UrlParam::decode($opt['back_encoded']);
         unset($opt['back_encoded']);
     }
     $redirect = array('action' => 'index');
     if (!empty($opt['redirect_encoded'])) {
         App::import('Lib', 'Shop.UrlParam');
         $opt['redirect'] = UrlParam::decode($opt['redirect_encoded']);
         unset($opt['redirect_encoded']);
     }
     if (!empty($opt['redirect'])) {
         $redirect = $opt['redirect'];
         $opt['redirect'] = false;
     }
     if (empty($opt['products']['foreign_id']) || empty($opt['products']['model'])) {
         $this->Session->setFlash(sprintf(__('Invalid %s', true), 'product'));
         $this->redirect($redirect);
     }
     $this->CartMaker->add($opt);
     $this->redirect($redirect);
 }