/** * Save recursively the values. * @param Array $values */ public function doSave($values) { foreach ($values as $field => $value) { if (isset($this->embeddedForms[$field])) { $this->doSave($value); } else { sfPlopConfigPeer::addOrUpdate($field, $value); } } }
protected function execute($arguments = array(), $options = array()) { $databaseManager = new sfDatabaseManager($this->configuration); $con = $databaseManager->getDatabase($options['connection'])->getConnection(); if (isset($options['email'])) { $validatorEmail = new sfValidatorEmail(); try { $options['email'] = $validatorEmail->clean($options['email']); } catch (Exception $e) { throw new sfCommandException('The email is invalid.'); } $emails = array('sf_plop_messaging_from_email', 'sf_plop_messaging_to_email'); foreach ($emails as $email) { sfPlopConfigPeer::addOrUpdate($email, $options['email'], $con); } } if (isset($options['email'])) { $validatorName = new sfValidatorString(); try { $options['name'] = $validatorName->clean($options['name']); } catch (Exception $e) { throw new sfCommandException('The name is invalid.'); } $names = array('sf_plop_messaging_from_name', 'sf_plop_messaging_to_name'); foreach ($names as $name) { sfPlopConfigPeer::addOrUpdate($name, $options['name'], $con); } } if (isset($options['username'])) { $user = sfGuardUserQuery::create()->findOneByUsername($options['username']); if ($user) { if (isset($options['email'])) { $user->getProfile()->setEmail($options['email']); } $names = explode(' ', $options['name']); $firstName = $names[0]; unset($names[0]); $lastName = implode(' ', $names); $user->getProfile()->setFirstName($firstName); $user->getProfile()->setLastName($lastName); $user->getProfile()->save(); } else { throw new sfCommandException('There is no user whith username "' . $options['username'] . '".'); } } }
/** * Load a Plop plugin which can contain modules and slots * @param Array $options */ public static function loadPlugin($options) { if (self::is_set() && self::is_ready()) { $plugin_options = array('modules' => 'sf_plop_loaded_modules', 'slots' => 'sf_plop_loaded_slots', 'themes' => 'sf_plop_loaded_themes', 'links' => 'sf_plop_loaded_links'); foreach ($plugin_options as $plugin_option => $plugin_config) { if (isset($options[$plugin_option])) { $loaded_options = sfPlop::get($plugin_config); foreach ($options[$plugin_option] as $name => $desc) { $loaded_options[$name] = $desc; } sfPlopConfigPeer::addOrUpdate($plugin_config, $loaded_options); } } } }
/** * Get or set a value thanks to the given key. * @param sfWebRequest $request * @return String */ public function executeWsConfig(sfWebRequest $request) { $key = $request->getParameter('key'); $value = $request->getParameter('value'); $return = false; $this->forward404Unless($request->isXmlHttpRequest() && $key && $this->isUserAdmin); if ($request->isMethod($request::POST)) { $this->forward404Unless($value); sfPlopConfigPeer::addOrUpdate($key, $value); $return = true; } elseif ($request->isMethod($request::GET)) { $return = sfPlop::get($key); } $this->setLayout(false); $this->key = $key; if (!is_bool($return)) { return $this->renderText($return); } elseif ($return === false) { return sfView::ERROR; } }