选择文件名文件大小最后修改时间操作
[📄] 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 MemberConfigAccessBlockForm extends MemberConfigForm { protected $category = 'accessBlock', $blockedId = array(), $blockedRelationshipId = array(), $setBlockedId = array(); public function configure() { $relations = MemberRelationshipPeer::retrievesByMemberIdFrom($this->member->getId()); foreach ($relations as $relation) { if ($relation->getIsAccessBlock()) { $this->blockedId[] = $relation->getMemberIdTo(); $this->blockedRelationshipId[] = $relation->getId(); } } } public function saveConfig($name, $value) { if ($name !== 'access_block') { return parent::saveConfig($name, $value); } $value = $this->setBlockedIds; $key = 0; foreach ($value as $memberId) { $defaultId = 0; if ($key + 1 <= count($this->blockedId)) { $defaultId = $this->blockedId[$key]; } switch ($memberId) { case '': // delete if (!$defaultId) break; $relationship = MemberRelationshipPeer::retrieveByFromAndTo($this->member->getId(), $defaultId); if (!$relationship) break; $relationship->setIsAccessBlock(false); $relationship->save(); break; case $defaultId: // equal break; default: $relationship = MemberRelationshipPeer::retrieveByFromAndTo($this->member->getId(), $memberId); // update if ($defaultId) { if (!$relationship) { $relationship = MemberRelationshipPeer::retrieveByFromAndTo($this->member->getId(), $defaultId); } } // insert else { if (!$relationship) { $relationship = new MemberRelationship(); $relationship->setMemberIdFrom($this->member->getId()); } } $relationship->setMemberIdTo($memberId); $relationship->setIsAccessBlock(true); $relationship->save(); } if ($key >= count($this->blockedId)) break; $key++; } } public function bind($params) { $this->setBlockedIds = $params['access_block']; return parent::bind($params); } public function setMemberConfigWidget($name) { $result = parent::setMemberConfigWidget($name); if ($name === 'access_block') { $this->setDefault($name, $this->blockedId); $this->mergePostValidator(new sfValidatorCallback(array( 'callback' => array('MemberConfigAccessBlockForm', 'validate'), 'arguments' => array('ids' => $this->blockedId), ))); } return $result; } public static function validate($validator, $values, $arguments = array()) { $result = array(); $memberIds = array_merge($arguments['ids'], $values['access_block']); if (in_array(sfContext::getInstance()->getUser()->getMemberId(), $memberIds)) { throw new sfValidatorError($validator, 'invalid'); } foreach ($memberIds as $memberId) { if (!$memberId) { continue; } if (!MemberPeer::retrieveByPK($memberId)) { throw new sfValidatorError($validator, 'invalid'); } $result[] = $memberId; } $values['access_block'] = $result; return $values; } }