public function componentMethodNotFound(sfEvent $event) { $actions = $event->getSubject(); $method = $event['method']; $args = $event['arguments']; if ($method == 'getEntityManager') { $databaseManager = $actions->getContext()->getDatabaseManager(); $names = $databaseManager->getNames(); if ($args) { $name = $args[0]; if (!in_array($name, $names)) { throw new sfException(sprintf('Could not get the entity manager for ' . 'the database connection named: "%s"', $name)); } $database = $databaseManager->getDatabase($args[0]); } else { $database = $databaseManager->getDatabase(end($names)); } $event->setReturnValue($database->getEntityManager()); return true; } else { if ($method == 'getEntityManagerFor') { $entityName = $args[0]; if (is_object($entityName)) { $entityName = get_class($entityName); } $databaseManager = $actions->getContext()->getDatabaseManager(); $names = $databaseManager->getNames(); foreach ($names as $name) { $em = $databaseManager->getDatabase($name)->getEntityManager(); $cmf = $em->getMetadataFactory(); if ($cmf->hasMetadataFor($entityName)) { $event->setReturnValue($em); return true; } } return false; } else { if ($method == 'getMetadataFor') { $entityName = $args[0]; if (is_object($entityName)) { $entityName = get_class($entityName); } $databaseManager = $actions->getContext()->getDatabaseManager(); $names = $databaseManager->getNames(); foreach ($names as $name) { $em = $databaseManager->getDatabase($name)->getEntityManager(); $cmf = $em->getMetadataFactory(); if ($cmf->hasMetadataFor($entityName)) { $event->setReturnValue($cmf->getMetadataFor($entityName)); return true; } } return false; } else { return false; } } } }
public static function listenToHandleHeader(sfEvent $event) { switch ($event['header']) { case 'AuthHeader': $event->setReturnValue(self::handleAuthHeader($event['data'])); break; case 'ExtraHeader': $event->setReturnValue(self::handleExtraHeader($event['data'])); break; default: return false; } return true; }
public function listenToContextMethodNotFoundEvent(sfEvent $event) { $parameters = $event->getParameters(); if ('getFacebook' != $parameters['method']) { return false; } if ($this->_facebook instanceof sfFacebook) { $event->setReturnValue($this->_facebook); return true; } $this->_facebook = new sfFacebook($this->dispatcher); $event->setReturnValue($this->_facebook); $this->dispatcher->notify(new sfEvent($this, 'facebook.configure')); return true; }
public function processApplicationConfirm(sfEvent $event) { $app = sfConfig::get('sf_app'); $invite = Doctrine::getTable('ApplicationInvite')->find($event['id']); if (!$invite) { return false; } $application = $invite->getApplication(); if ('pc_frontend' === $app) { if (!$application->getIsPc()) { return false; } } elseif ('mobile_frontend' === $app) { if (!$application->getIsMobile()) { return false; } } if ($event['is_accepted']) { $action = $event->getSubject(); if ($action instanceof sfAction) { $action->redirect('@application_add?id=' . $application->getId() . '&invite=' . $invite->getId()); } } else { $invite->delete(); $event->setReturnValue("You have just rejected request of invitation to app."); } return true; }
/** * Listens to component.method_not_found event. * * @param sfEvent A sfEvent instance * * @return Boolean true if the method has been found in this class, false otherwise */ public function listenToMethodNotFound(sfEvent $event) { if (!method_exists($this, $method = $event['method'])) { return false; } $event->setReturnValue(call_user_func(array($this, $method), $event->getSubject())); return true; }
public static function newMethod(sfEvent $event) { if ($event['method'] == 'newMethod') { $arguments = $event['arguments']; $event->setReturnValue($arguments[0]); return true; } }
/** * Adds 1.0 compatibility methods to the request object. * * @param sfEvent $event The event * * @return Boolean true if the method has been found here, false otherwise */ public static function call(sfEvent $event) { if (!in_array($event['method'], array('getError', 'getErrorNames', 'getErrors', 'hasError', 'hasErrors', 'removeError', 'setError', 'setErrors', 'getFile', 'getFileError', 'getFileName', 'getFileNames', 'getFilePath', 'getFileSize', 'getFileType', 'hasFile', 'hasFileError', 'hasFileErrors', 'hasFiles', 'getFileValue', 'getFileValues', 'getFileExtension', 'moveFile'))) { return false; } $event->setReturnValue(call_user_func_array(array('sfRequestCompat10', $event['method']), array_merge(array($event->getSubject()), $event['arguments']))); return true; }
public function listenToHelperMethodNotFoundEvent(sfEvent $event) { if (method_exists($this, $event['method'])) { $event->setReturnValue(call_user_func_array(array($this, $event['method']), $event['arguments'])); return true; } return false; }
public static function handleException(sfEvent $event) { $moduleName = sfConfig::get('sf_error_500_module', 'connexion'); $actionName = sfConfig::get('sf_error_500_action', 'error500'); sfContext::getInstance()->getRequest()->addRequestParameters(array('exception' => $event->getSubject())); $event->setReturnValue(true); sfContext::getInstance()->getController()->forward($moduleName, $actionName); }
public static function observeMethodNotFound(sfEvent $event) { if (method_exists('sfActionExtra', $event['method'])) { $args = array_merge(array($event->getSubject()), $event['arguments']); $ret = call_user_func_array(array('sfActionExtra', $event['method']), $args); $event->setReturnValue($ret); return $ret; } }
public function listenSetThemeFromRequest(sfEvent $event) { $context = $event['context']; if ($context->getModuleName() == 'controller' && $context->getActionName() == 'eventListener') { $event->setReturnValue('test_theme'); return true; } return false; }
/** * Listens to the component.method_not_found event. * * @param sfEvent $event An sfEvent instance * * @return bool True, if the method is the 'isSoapRequest', false otherwise */ public static function listenToComponentMethodNotFoundEvent(sfEvent $event) { if ($event['method'] == 'isSoapRequest') { $event->setReturnValue(self::isSoapRequest()); return true; } else { return false; } }
/** * Get the current tracker object. * * @param sfEvent $event * * @return bool */ public static function observe(sfEvent $event) { switch ($event['method']) { case 'getGemiusTrafficTracker': $event->setReturnValue(sfGemiusTrafficMixin::getTracker()); return true; case 'setGemiusTrafficTracker': sfGemiusTrafficMixin::setTracker($event['arguments'][0]); return true; } }
/** * Get the current tracker object. * * @param sfEvent $event * * @return bool */ public static function observe(sfEvent $event) { $subject = $event->getSubject(); switch ($event['method']) { case 'getTracker': $event->setReturnValue(sfGoogleAnalyticsMixin::getTracker($subject)); return true; case 'setTracker': sfGoogleAnalyticsMixin::setTracker($subject, $event['arguments'][0]); return true; } }
public static function processFriendConfirm(sfEvent $event) { $toMember = Doctrine::getTable('Member')->find($event['id']); $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($event['member']->id, $toMember->id); if (!$relation) { $relation = Doctrine::getTable('MemberRelationship')->create(array('member_id_from' => $event['member']->id, 'member_id_to' => $toMember->id)); } if (!$relation->isFriendPreTo()) { return false; } if ($event['is_accepted']) { $relation->setFriend(); $event->setReturnValue('You have just accepted %friend% link request.'); $params = array('subject' => sfContext::getInstance()->getI18N()->__('%1% accepted your %friend% link request', array('%1%' => $event['member']->getName())), 'member' => $event['member']); opMailSend::sendTemplateMail('friendLinkComplete', $toMember->getEmailAddress(), opConfig::get('admin_mail_address'), $params); } else { $event->setReturnValue('You have just rejected %friend% link request.'); $relation->removeFriendPre(); } return true; }
public function listenToMethodNotFound(sfEvent $event) { $parameters = $event->getParameters(); if ($parameters['method'] == 'defineCombinedAssets') { $this->loaded_assets = count($parameters['arguments']) > 0 ? $parameters['arguments'][0] : array(); $event->setProcessed(true); } if ($parameters['method'] == 'getCombinedAssets') { $event->setReturnValue($this->loaded_assets); $event->setProcessed(true); } }
/** * Listener method for method_not_found events * * @example * $extendedUser = new myExtendedUser(); // extends sfExtendClass * $dispatcher->connect('user.method_not_found', array($extendedUser, 'extend')); */ public function extend(sfEvent $event) { $this->_subject = $event->getSubject(); $method = $event['method']; $arguments = $event['arguments']; if (method_exists($this, $method)) { $result = call_user_func_array(array($this, $method), $arguments); $event->setReturnValue($result); return true; } else { return false; } }
/** * This method is here to inject the sms sender object in the context's * factories. We can not use only the "context.load_factories" event * because the sms sender object is needed before this event is fully * propagated. * * @return bool * @author Kevin Gomez <*****@*****.**> */ public function contextMethodNotFound(sfEvent $event) { if ($event['method'] !== 'getGaufrette') { return false; } $sf_context = $event->getSubject(); if ($sf_context->has('gaufrette')) { $gaufrette = $sf_context->get('gaufrette'); } else { $gaufrette = $this->setGaufretteService($sf_context); } $event->setReturnValue(call_user_func_array(array($gaufrette, 'get'), $event['arguments'])); return true; }
public function run(sfEvent $event) { if (isset($event['pager'])) { $pager = $event['pager']; $context = sfContext::getInstance(); $response = $context->getResponse(); $request = $context->getRequest(); $className = 'sf' . ucfirst($event['format']) . 'Feed'; if (!class_exists($className)) { return false; } $feed = sfFeedPeer::newInstance($event['format']); $feed->initialize(array('title' => $response->getTitle(), 'link' => $request->getUri())); $items = sfFeedPeer::convertObjectsToItems($pager->getResults()); $feed->addItems($items); $event->setProcessed(true); $event->setReturnValue($feed->asXml()); $request->setRequestFormat($event['format']); return true; } else { return false; } }
public function loadController(sfEvent $event) { $event->setReturnValue(array(array($this, 'execute'), array($this->dispatcher, $event['request']))); return true; }
public function listenToRecordPageMissingEvent(sfEvent $event) { $this->addModifiedRecord($event->getSubject())->update(); $event->setReturnValue(dmDb::table('DmPage')->findOneByRecordWithI18n($event->getSubject())); return true; }
public static function processJoinConfirm(sfEvent $event) { $communityMember = Doctrine::getTable('CommunityMember')->find($event['id']); if (!($communityMember && $communityMember->getIsPre())) { return false; } $i18n = sfContext::getInstance()->getI18N(); if ($event['is_accepted']) { $communityMember->setIsPre(false); $communityMember->save(); opCommunityAction::sendJoinMail($communityMember->getMember()->id, $communityMember->getCommunity()->id); $event->setReturnValue($i18n->__('You have just accepted joining to %1%', array('%1%' => $communityMember->getCommunity()->getName()))); } else { $communityMember->delete(); $event->setReturnValue($i18n->__('You have just rejected joining to %1%', array('%1%' => $communityMember->getCommunity()->getName()))); } return true; }
/** * Listen to component.method_not_fount event. * * Returns the Mondongo in actions and components: $this->getMondongo() * * @param sfEvent $event The event. * * @return bool If it returns the Mondongo. */ public function listenToComponentMethodNotFound(sfEvent $event) { if ('getMondongo' == $event['method']) { $event->setReturnValue($event->getSubject()->getContext()->get('mondongo')); return true; } return false; }
/** * Listens to the component.method_not_found event. * * @param sfEvent $event An sfEvent instance * * @return bool True, if the method is the DEFAULT_RESULT_CALLBACK, false otherwise */ public function listenToComponentMethodNotFoundEvent(sfEvent $event) { if ($event['method'] == self::DEFAULT_RESULT_CALLBACK) { $event->setReturnValue($this->{self::DEFAULT_RESULT_CALLBACK}($event->getSubject())); return true; } else { return false; } }
/** * Listens to the theme.set_theme_from_request event and sets the * theme to the admin theme if the current module is an admin module */ public function setThemeForAdminModule(sfEvent $event) { $module = $event['context']->getRequest()->getParameter('module'); $adminModules = sfSympalConfig::get('admin_modules', null, array()); if (array_key_exists($module, $adminModules)) { $event->setReturnValue($event->getSubject()->getOption('admin_theme')); return true; // Set the event as processed } return false; // Set the event as not processed }
$t = new lime_test(11); $subject = new stdClass(); $parameters = array('foo' => 'bar'); $event = new sfEvent($subject, 'name', $parameters); // ->getSubject() $t->diag('->getSubject()'); $t->is($event->getSubject(), $subject, '->getSubject() returns the event subject'); // ->getName() $t->diag('->getName()'); $t->is($event->getName(), 'name', '->getName() returns the event name'); // ->getParameters() $t->diag('->getParameters()'); $t->is($event->getParameters(), $parameters, '->getParameters() returns the event parameters'); // ->getReturnValue() ->setReturnValue() $t->diag('->getReturnValue() ->setReturnValue()'); $event->setReturnValue('foo'); $t->is($event->getReturnValue(), 'foo', '->getReturnValue() returns the return value of the event'); // ->setProcessed() ->isProcessed() $t->diag('->setProcessed() ->isProcessed()'); $event->setProcessed(true); $t->is($event->isProcessed(), true, '->isProcessed() returns true if the event has been processed'); $event->setProcessed(false); $t->is($event->isProcessed(), false, '->setProcessed() changes the processed status'); // ArrayAccess interface $t->diag('ArrayAccess interface'); $t->is($event['foo'], 'bar', 'sfEvent implements the ArrayAccess interface'); $event['foo'] = 'foo'; $t->is($event['foo'], 'foo', 'sfEvent implements the ArrayAccess interface'); try { $event['foobar']; $t->fail('::offsetGet() throws an InvalidArgumentException exception when the parameter does not exist');
/** * Filters a value by calling all listeners of a given event. * * @param sfEvent $event A sfEvent instance * @param mixed $value The value to be filtered * * @return sfEvent The sfEvent instance */ public function filter(sfEvent $event, $value) { foreach ($this->getListeners($event->getName()) as $listener) { $value = call_user_func_array($listener, array($event, $value)); } $event->setReturnValue($value); return $event; }
/** * Listener on the sympal.context.method_not_found event. * * Extends the sfSympalContext class. This handles * * ->getSite() */ public function handleContextMethodNotFound(sfEvent $event) { if ($event['method'] == 'getSite') { $event->setReturnValue($this->_sympalContext->getService('site_manager')->getSite()); return true; } return false; }
/** * Listens on "component.method_not_found" * * @param sfEvent $event * @return null */ public static function listenOnComponentMethodNotFoundEvent(sfEvent $event) { try { $callable = array(new sfViewCacheTagManagerBridge($event->getSubject()), $event['method']); $value = call_user_func_array($callable, $event['arguments']); $event->setReturnValue($value); $event->setProcessed(true); } catch (BadMethodCallException $e) { $event->setProcessed(false); } catch (sfException $e) { $event->setProcessed(true); self::notifyApplicationLog(__CLASS__, $e->getMessage(), sfLogger::NOTICE); } }
/** * Загружает объект обменника валют */ public static function getMyCurrencyExchange(sfEvent $event) { $params = $event->getParameters(); if ($params['method'] != 'getMyCurrencyExchange') { return false; } if (!self::$myCurrencyExchange) { self::$myCurrencyExchange = new myCurrencyExchange(); $currencies = Doctrine::getTable('Currency')->createQuery()->execute(array(), Doctrine::HYDRATE_ARRAY); foreach ($currencies as $currency) { // такого не должно быть по идее, но есть :-( if ($currency['rate'] != 0) { self::$myCurrencyExchange->setRate($currency['id'], $currency['rate'], myCurrencyExchange::BASE_CURRENCY); } } } // set return value and stop chain $event->setReturnValue(self::$myCurrencyExchange); return true; }