Donc permet de charger un helper depuis un contexte autre que depuis les templates:
sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
/** * Ad publication form for the users. * * @todo : Eventually save posted datas in session to be able to retrieve * values even when changer the main category of the ad. */ public function executePost($request) { // Default ad_base object $ad_base = $this->getAdBaseOrCreate($request); // Secure edition if (!$ad_base->isNew()) { $this->forward404Unless($ad_base && ($ad_base->getIpAdContact()->getCreatedBy() == $this->getUser()->getId())); } // Form and params $ip_ad_base_post = $request->getParameter('ip_ad_base'); $form = new ipAdPostForm($ad_base, $ip_ad_base_post); $category_refresh = isset($ip_ad_base_post['category_refresh']) ? $ip_ad_base_post['category_refresh'] : 0; // Refresh category and save submitted form values (without input validation) if ($category_refresh) { $ip_ad_base_post['category_refresh'] = 0; $form->setDefaults($ip_ad_base_post); } // Post and save form if (!$category_refresh && $this->isPost() && $ip_ad_base_post) { $form->bind($ip_ad_base_post, $request->getFiles('ip_ad_base')); if ($form->isValid()) { $form->save(); // Photo deletion if ($delete_flag = $form->hasDeletePhotoFlag() && !$ad_base->isNew()) { $ad_base->deletePhoto(); } // Photo upload if (!$delete_flag && $form->hasPhoto()) { $form->saveAndUploadPhoto($request); } // Send email to administrator if it is a new ad to validate //if ($form->getObject()->isNew()) //{ //ipTools::dump('send email', 'send email', 1); $form->getObject()->notifyWebmasterForNewAd(); //} // Redirect $this->getUser()->addNotice('Votre annonce a été sauvegardée, elle sera visible dès qu\'elle aura été validée par un administrateur'); $this->redirect('iposte_user/adsList'); } } // Pass form to template $this->form = $form; }
actions: { }
Typiquement pour une action Ajax:
if (!$this->user) { sfLoader::loadHelpers('Partial'); return $this->renderText(get_partial('member/rdv/list')); }
$action_instance = sfContext::getInstance()->getController()->getActionStack()->getFirstEntry()->getActionInstance();
$this->getRequest()->setParameter('confirm', true); $this->forward('users', 'index');
sfLoader::loadHelpers(array('First', 'Second'));
if ($this->getRequest()->getMethod() == sfRequest::POST) { // $this->actionWhenPosted() }
logs
8174.1 KB