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;
 }
Exemple #9
0
 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;
 }
Exemple #21
0
 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;
 }