public function listHtml()
 {
     $cache = Ajde_Cache::getInstance();
     $cache->disable();
     if (Ajde::app()->getRequest()->has('edit') || Ajde::app()->getRequest()->has('new')) {
         return $this->editDefault();
     }
     if (Ajde::app()->getRequest()->has('output') && Ajde::app()->getRequest()->get('output') == 'table') {
         Ajde::app()->getDocument()->setLayout(new Ajde_Layout('empty'));
     }
     $crud = $this->getCrudInstance();
     /* @var $crud Ajde_Crud */
     if (!$crud) {
         Ajde::app()->getResponse()->redirectNotFound();
     }
     $session = new Ajde_Session('AC.Crud');
     $session->setModel($crud->getHash(), $crud);
     $viewSession = new Ajde_Session('AC.Crud.View');
     $sessionName = $crud->getSessionName();
     if ($viewSession->has($sessionName)) {
         $crudView = $viewSession->get($sessionName);
     } else {
         $crudView = new Ajde_Collection_View($sessionName, $crud->getOption('list.view', array()));
     }
     $viewParams = Ajde::app()->getRequest()->getParam('view', array());
     $crudView->setOptions($viewParams);
     $viewSession->set($sessionName, $crudView);
     $crud->getCollection()->setView($crudView);
     $view = $crud->getTemplate();
     $view->assign('crud', $crud);
     return $view->render();
 }
Ejemplo n.º 2
0
 public static function set($key, $value)
 {
     // Disable the cache, as setting a flashed string means doing some operation with side-effects
     Ajde_Cache::getInstance()->disable();
     $session = new Ajde_Session('AC.Flash');
     $session->set($key, $value);
 }
Ejemplo n.º 3
0
 public function getAuthenticationURL($returnto = '')
 {
     $connection = $this->getProvider();
     // set returnto in session, google is very strict with callback urls
     $returntoSession = new Ajde_Session('returnto');
     $returntoSession->set('url', $returnto);
     return $connection->createAuthUrl();
 }
 public function formUploadHtml()
 {
     $options = $this->getOptions();
     $optionsId = md5(serialize($options));
     $session = new Ajde_Session('AC.Form');
     $session->set($optionsId, $options);
     $this->setAction('form/upload');
     $this->getView()->assign('name', $this->getName());
     $this->getView()->assign('optionsId', $optionsId);
     $this->getView()->assign('optionsMultiple', issetor($options['multiple'], false));
     $this->getView()->assign('inputId', $this->getInputId());
     $this->getView()->assign('extraClass', $this->getExtraClass());
     return $this->render();
 }
Ejemplo n.º 5
0
 public static function markFormTime()
 {
     $time = time();
     $session = new Ajde_Session('AC.Form');
     $session->set('formTime', $time);
     return $time;
 }
Ejemplo n.º 6
0
Archivo: Crud.php Proyecto: nabble/ajde
 /**
  * @param array       $viewParams
  * @param bool|string $persist
  *
  * @return Ajde_Collection_View
  */
 public function getCollectionView($viewParams = [], $persist = 'auto')
 {
     if (!$this->getCollection()->hasView()) {
         $viewSession = new Ajde_Session('AC.Crud.View');
         $sessionName = $this->getSessionName();
         if ($viewSession->has($sessionName)) {
             $crudView = $viewSession->get($sessionName);
         } else {
             $crudView = new Ajde_Collection_View($sessionName, $this->getOption('list.view', []));
             $crudView->setColumns($this->getOption('list.show', $this->getFieldNames()));
         }
         // somehow, when altering crudView, the instance in the session gets updated as well, and we don't want that
         $crudView = clone $crudView;
         if (empty($viewParams)) {
             $viewParams = Ajde::app()->getRequest()->getParam('view', []);
             // if we have params, but no columns, assume a reset
             if (!empty($viewParams) && !isset($viewParams['columns'])) {
                 $viewParams['columns'] = $this->getOption('list.show', $this->getFieldNames());
             }
         }
         $crudView->setOptions($viewParams);
         if ($persist == 'auto' && $this->getOperation() == 'list' || $persist === true) {
             $viewSession->set($sessionName, $crudView);
         }
         $this->getCollection()->setView($crudView);
     }
     return $this->getCollection()->getView();
 }
Ejemplo n.º 7
0
 public function resetPayment()
 {
     $transaction = new TransactionModel();
     $session = new Ajde_Session('AC.Shop');
     // Get transaction from ID if available
     if ($this->hasNotEmpty('id')) {
         if ($transaction->loadByField('secret', $this->getId()) !== false) {
             $session->set('currentTransaction', $transaction->getPK());
         }
     }
     if ($session->has('currentTransaction') && $transaction->loadByPK($session->get('currentTransaction'))) {
         $transaction->payment_provider = null;
         $transaction->payment_status = 'pending';
         $transaction->secret_archive = $transaction->secret_archive . $transaction->secret . PHP_EOL;
         $transaction->secret = $transaction->generateSecret();
         $transaction->save();
     }
     $this->redirect('shop/transaction:payment');
 }
 public function setupJson($source = false)
 {
     $request = Ajde::app()->getRequest();
     // Init vars
     $name = null;
     $email = null;
     $address = null;
     $zipcode = null;
     $city = null;
     $region = null;
     $country = null;
     $shipmentMethod = null;
     $comment = null;
     if ($source === false) {
         // Read request
         $name = $request->getPostParam('name', false);
         $email = $request->getPostParam('email', false);
         $address = $request->getPostParam('shipment_address', false);
         $zipcode = $request->getPostParam('shipment_zipcode', false);
         $city = $request->getPostParam('shipment_city', false);
         $region = $request->getPostParam('shipment_region', false);
         $country = $request->getPostParam('shipment_country', false);
         $shipmentMethod = $request->getPostParam('shipment_method', false);
         $comment = $request->getPostParam('comment', false);
     } else {
         if ($source instanceof Ajde_User) {
             // Read user
             $name = $source->fullname;
             $email = $source->email;
             $address = $source->address;
             $zipcode = $source->zipcode;
             $city = $source->city;
             $region = $source->region;
             $country = $source->country;
             $shipmentMethod = false;
             $comment = false;
         }
     }
     // Return when fields are not complete
     if ($source === false) {
         if (empty($name) || empty($email) || empty($address) || empty($zipcode) || empty($city) || empty($country)) {
             return array('success' => false, 'message' => __("Not all your details are filled out"));
         }
         if (Ajde_Component_String::validEmail($email) === false) {
             return array('success' => false, 'message' => __('Please provide a valid e-mail address'));
         }
         if (empty($shipmentMethod)) {
             return array('success' => false, 'message' => __('Please choose a shipment method'));
         }
     }
     // Check for current transaction
     Ajde_Model::register($this);
     $transaction = new TransactionModel();
     $session = new Ajde_Session('AC.Shop');
     if ($session->has('currentTransaction') && $transaction->loadByPK($session->get('currentTransaction'))) {
         // Edit existing transaction
         $method = 'save';
     } else {
         // Insert new transaction
         $method = 'insert';
     }
     // Update transaction info
     $transaction->name = $name;
     $transaction->email = $email;
     $transaction->shipment_address = $address;
     $transaction->shipment_zipcode = $zipcode;
     $transaction->shipment_city = $city;
     $transaction->shipment_region = $region;
     $transaction->shipment_country = $country;
     $transaction->shipment_method = $shipmentMethod;
     $transaction->comment = $comment;
     // Save info to user
     if ($user = $this->getLoggedInUser()) {
         if ($request->hasPostParam('save_details', false)) {
             $user->address = $address;
             $user->zipcode = $zipcode;
             $user->city = $city;
             $user->region = $region;
             $user->country = $country;
             $user->save();
             $user->login();
         }
         $transaction->user = $user->getPK();
     }
     // Update shipping total
     $shipping = new ShippingModel($transaction);
     $transaction->shipment_cost = 0;
     if (!empty($shipmentMethod) && $shipping->isAvailable($shipmentMethod)) {
         $transaction->shipment_cost = $shipping->getMethod($shipmentMethod)->getTotal();
     }
     // Insert new transaction
     if ($method === 'insert') {
         $this->updateFromCart($transaction);
         if ($transaction->insert()) {
             $session = new Ajde_Session('AC.Shop');
             $session->set('currentTransaction', $transaction->getPK());
             if (!$transaction->shipment_itemsqty > 0) {
                 return array('success' => false, 'message' => __("No items added to current transaction"));
             }
             return array('success' => true);
         }
         return array('success' => false, 'message' => __("Something went wrong"));
     }
     $transaction->payment_amount = $transaction->shipment_itemstotal + $transaction->shipment_cost;
     // Update current transaction
     if ($transaction->save()) {
         if (!$transaction->shipment_itemsqty > 0) {
             return array('success' => false, 'message' => __("No items added to current transaction"));
         }
         return array('success' => true);
     }
     // Everything else failed
     return array('success' => false, 'message' => __("Something went wrong"));
 }
Ejemplo n.º 9
0
 public static function set($key, $value)
 {
     $session = new Ajde_Session('AC.Flash');
     $session->set($key, $value);
 }
Ejemplo n.º 10
0
 public function forgotJson()
 {
     $user = new UserModel();
     $ident = Ajde::app()->getRequest()->getPostParam('user');
     $found = false;
     $return = [false];
     if (false !== $user->loadByField('email', $ident)) {
         $found = true;
     }
     if (false === $found && false !== $user->loadByField($user->usernameField, $ident)) {
         $found = true;
     }
     if (false !== $found) {
         if ($user->resetUser()) {
             Ajde_Session_Flash::alert(trans('A password reset link is sent to your e-mail address.'));
             $return = ['success' => true];
         } else {
             $return = ['success' => false, 'message' => trans('We could not reset your password. Please contact our technical staff.')];
         }
     } else {
         $session = new Ajde_Session('user');
         $attempts = $session->has('attempts') ? $session->get('attempts') : 1;
         $session->set('attempts', $attempts + 1);
         if ($attempts % 4 === 0) {
             sleep(5);
         }
         $return = ['success' => false, 'message' => trans('No matching user found')];
     }
     return $return;
 }