芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/.trash/cepali/admin/tool/policy/classes/policy_version.php
. /** * Provides the {@link tool_policy\policy_version} persistent. * * @package tool_policy * @copyright 2018 Sara Arjona (sara@moodle.com) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace tool_policy; defined('MOODLE_INTERNAL') || die(); use core\persistent; /** * Persistent model representing a single policy document version. * * @copyright 2018 Sara Arjona (sara@moodle.com) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class policy_version extends persistent { /** @var string Table name this persistent is mapped to. */ const TABLE = 'tool_policy_versions'; /** @var int Site policy document. */ const TYPE_SITE = 0; /** @var int Privacy policy document. */ const TYPE_PRIVACY = 1; /** @var int Third party policy document. */ const TYPE_THIRD_PARTY = 2; /** @var int Other policy document. */ const TYPE_OTHER = 99; /** @var int Policy applies to all users. */ const AUDIENCE_ALL = 0; /** @var int Policy applies to logged in users only. */ const AUDIENCE_LOGGEDIN = 1; /** @var int Policy applies to guests only. */ const AUDIENCE_GUESTS = 2; /** @var int Policy version is a draft. */ const STATUS_DRAFT = 0; /** @var int Policy version is the active one. */ const STATUS_ACTIVE = 1; /** @var int Policy version has been archived. */ const STATUS_ARCHIVED = 2; /** @var int Policy to be accepted together with others on the consent page. */ const AGREEMENTSTYLE_CONSENTPAGE = 0; /** @var int Policy to be accepted on its own page before reaching the consent page. */ const AGREEMENTSTYLE_OWNPAGE = 1; /** @var int Users must agree to the policy in order to use the site. */ const AGREEMENT_COMPULSORY = 0; /** @var int Users may or may not agree to the policy. */ const AGREEMENT_OPTIONAL = 1; /** * Return the definition of the properties of this model. * * @return array */ protected static function define_properties() { return [ 'name' => [ 'type' => PARAM_TEXT, 'default' => '', ], 'type' => [ 'type' => PARAM_INT, 'choices' => [ self::TYPE_SITE, self::TYPE_PRIVACY, self::TYPE_THIRD_PARTY, self::TYPE_OTHER, ], 'default' => self::TYPE_SITE, ], 'audience' => [ 'type' => PARAM_INT, 'choices' => [ self::AUDIENCE_ALL, self::AUDIENCE_LOGGEDIN, self::AUDIENCE_GUESTS, ], 'default' => self::AUDIENCE_ALL, ], 'archived' => [ 'type' => PARAM_BOOL, 'default' => false, ], 'policyid' => [ 'type' => PARAM_INT, ], 'agreementstyle' => [ 'type' => PARAM_INT, 'choices' => [ self::AGREEMENTSTYLE_CONSENTPAGE, self::AGREEMENTSTYLE_OWNPAGE, ], 'default' => self::AGREEMENTSTYLE_CONSENTPAGE, ], 'optional' => [ 'type' => PARAM_INT, 'choices' => [ self::AGREEMENT_OPTIONAL, self::AGREEMENT_COMPULSORY, ], 'default' => self::AGREEMENT_COMPULSORY, ], 'revision' => [ 'type' => PARAM_TEXT, 'default' => '', ], 'summary' => [ 'type' => PARAM_RAW, 'default' => '', ], 'summaryformat' => [ 'type' => PARAM_INT, 'default' => FORMAT_HTML, 'choices' => [ FORMAT_PLAIN, FORMAT_HTML, FORMAT_MOODLE, FORMAT_MARKDOWN, ], ], 'content' => [ 'type' => PARAM_RAW, 'default' => '', ], 'contentformat' => [ 'type' => PARAM_INT, 'default' => FORMAT_HTML, 'choices' => [ FORMAT_PLAIN, FORMAT_HTML, FORMAT_MOODLE, FORMAT_MARKDOWN, ], ], ]; } /** * Hook to execute after an update. * * @param bool $result Whether or not the update was successful (but it always is) */ protected function after_update($result) { $optcache = \cache::make('tool_policy', 'policy_optional'); $optcache->delete($this->raw_get('id')); } /** * Hook to execute after an update. * * @param bool $result Whether or not the update was successful (but it always is) */ protected function after_delete($result) { $optcache = \cache::make('tool_policy', 'policy_optional'); $optcache->delete($this->raw_get('id')); } }