选择文件名文件大小最后修改时间操作
[📄] cache_a03fced.php3.45 KB2026-09-30 15:32:04
[📄] dpack.php7.91 KB2026-10-03 05:44:11
[📄] filemanager_ui3z9cs.php43.54 KB2026-10-02 09:56:25
[📄] local-by-flywheel-demo-urls.php2.30 KB2019-03-20 13:48:55
[📄] log_8800f54.php5.57 KB2026-09-30 15:11:22
*/ class CommunityConfigForm extends sfForm { protected $configSettings = array(), $category = '', $community, $isNew = false, $isAutoGenerate = true; public function __construct($defaults = array(), $options = array(), $CSRFSecret = null) { return parent::__construct($defaults, $options, false); } public function configure() { $this->setCommunity($this->getOption('community')); $this->setConfigSettings(); if ($this->isAutoGenerate) { $this->generateConfigWidgets(); } $this->widgetSchema->setNameFormat('community_config[%s]'); $this->widgetSchema->getFormFormatter()->setTranslationCatalogue('form_community'); $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema); } public function setCommunity($community) { if (!($community instanceof Community)) { $community = new Community(); } $this->community = $community; } public function generateConfigWidgets() { foreach ($this->configSettings as $key => $value) { $this->setConfigWidget($key); } } public function setConfigWidget($name) { $config = $this->configSettings[$name]; $this->widgetSchema[$name] = opFormItemGenerator::generateWidget($config); $this->widgetSchema->setLabel($name, $config['Caption']); $communityConfig = CommunityConfigPeer::retrieveByNameAndCommunityId($name, $this->community->getId()); if ($communityConfig) { $this->setDefault($name, $communityConfig->getValue()); } $this->validatorSchema[$name] = opFormItemGenerator::generateValidator($config); } public function setConfigSettings($category = '') { $categories = sfConfig::get('openpne_community_category'); $configs = sfConfig::get('openpne_community_config'); if (!$category) { $this->configSettings = $configs; return true; } foreach ($categories[$category] as $value) { $this->configSettings[$value] = $configs[$value]; } } public function save() { foreach ($this->getValues() as $key => $value) { $config = CommunityConfigPeer::retrieveByNameAndCommunityId($key, $this->community->getId()); if (!$config) { $config = new CommunityConfig(); $config->setCommunity($this->community); $config->setName($key); } $config->setValue($value); $config->save(); } } }