"Int", ); /** * * @var array */ private static $many_many = array( "ContentReviewGroups" => "Group", "ContentReviewUsers" => "Member", ); /** * * @return string */ public function getOwnerNames() { $names = array(); foreach ($this->OwnerGroups() as $group) { $names[] = $group->getBreadcrumbs(" > "); } foreach ($this->OwnerUsers() as $group) { $names[] = $group->getName(); } return implode(", ", $names); } /** * @return ManyManyList */ public function OwnerGroups() { return $this->owner->getManyManyComponents("ContentReviewGroups"); } /** * @return ManyManyList */ public function OwnerUsers() { return $this->owner->getManyManyComponents("ContentReviewUsers"); } /** * * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { $helpText = LiteralField::create("ContentReviewHelp", _t("ContentReview.DEFAULTSETTINGSHELP", "These content review settings will apply to all pages that does not have specific Content Review schedule.")); $fields->addFieldToTab("Root.ContentReview", $helpText); $reviewFrequency = DropdownField::create("ReviewPeriodDays", _t("ContentReview.REVIEWFREQUENCY", "Review frequency"), SiteTreeContentReview::get_schedule()) ->setDescription(_t("ContentReview.REVIEWFREQUENCYDESCRIPTION", "The review date will be set to this far in the future whenever the page is published")); $fields->addFieldToTab("Root.ContentReview", $reviewFrequency); $users = Permission::get_members_by_permission(array( "CMS_ACCESS_CMSMain", "ADMIN", )); $usersMap = $users->map("ID", "Title")->toArray(); asort($usersMap); $userField = ListboxField::create("OwnerUsers", _t("ContentReview.PAGEOWNERUSERS", "Users"), $usersMap) ->setMultiple(true) ->setAttribute("data-placeholder", _t("ContentReview.ADDUSERS", "Add users")) ->setDescription(_t("ContentReview.OWNERUSERSDESCRIPTION", "Page owners that are responsible for reviews")); $fields->addFieldToTab("Root.ContentReview", $userField); $groupsMap = array(); foreach (Group::get() as $group) { // Listboxfield values are escaped, use ASCII char instead of » $groupsMap[$group->ID] = $group->getBreadcrumbs(" > "); } asort($groupsMap); $groupField = ListboxField::create("OwnerGroups", _t("ContentReview.PAGEOWNERGROUPS", "Groups"), $groupsMap) ->setMultiple(true) ->setAttribute("data-placeholder", _t("ContentReview.ADDGROUP", "Add groups")) ->setDescription(_t("ContentReview.OWNERGROUPSDESCRIPTION", "Page owners that are responsible for reviews")); $fields->addFieldToTab("Root.ContentReview", $groupField); } /** * Get all Members that are default Content Owners. This includes checking group hierarchy * and adding any direct users. * * @return ArrayList */ public function ContentReviewOwners() { return SiteTreeContentReview::merge_owners($this->OwnerGroups(), $this->OwnerUsers()); } }