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(); }
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); }
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(); }
public static function markFormTime() { $time = time(); $session = new Ajde_Session('AC.Form'); $session->set('formTime', $time); return $time; }
/** * @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(); }
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")); }
public static function set($key, $value) { $session = new Ajde_Session('AC.Flash'); $session->set($key, $value); }
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; }