Source of file ModuleHolderPage.php
Size: 3,304 Bytes - Last Modified: 2021-12-23T10:57:05+00:00
/var/www/docs.ssmods.com/process/src/code/page_type/ModuleHolderPage.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | <?php /** * Model for the module search page. * * @package extensionmanager */ class ModuleHolderPage extends ExtensionHolderPage { public static $db = array( 'AddContent' => 'HTMLText', ); public static $default_records = array( array('Title' => "Modules") ); //copied from addons module public static $defaults = array( 'AddContent' => " <p>Our module reviewers at SilverStripe are notified, and they will review your submission and contact you if they have questions. Please note that we are verifying that your module will install, but we won't do a full code review.</p> <p>You'll be notified when your module has been listed on the site. We try and approve new submissions quickly but please know that it typically takes at least 4 weeks for your module to appear on the SilverStripe website. If you have questions, please contact <a href=\"mailto:modules@silverstripe.org\">modules@silverstripe.org</a>.</p>", ); public function canCreate($member = null) { return true; } public function PageNavClass() { return "modules"; } public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab("Root.Main", new HTMLEditorField("AddContent", "Content for 'add' page")); return $fields; } } /** * Controller for the module search page. * * @package extensionmanager */ class ModuleHolderPage_Controller extends ExtensionHolderPage_Controller { public function init() { parent::init(); $this->extensionType = 'Module'; } /** * Setting up the form for module submission. * * @return Array . */ public function ModuleSubmissionForm() { $formSectionData = new DataObject(); $formSectionData->Form = $this->AddForm($this->extensionType); $formSectionData->Content = $this->dataRecord->AddContent; return $formSectionData; } /** * Show module list on page * * @return Array . */ public function ModuleList() { $modules = ExtensionData::get()->filter(array('Type' => 'Module', 'Accepted' => '1'))->sort('Name'); $paginatedList = new PaginatedList($modules, $this->request); $paginatedList->setPageLength(4); return $paginatedList; } /** * Show Module Search form. * * @return Array . */ public function ModuleSearch() { return $this->extensionSearch(); } /** * Show module data. * * @return array */ public function show() { $selectedModule = $this->SelectedModule(); if ($selectedModule) { return array( "Title" => $selectedModule->Name, ); } else { return $this->httpError("404"); } } /** * Get Selected Module. * * @return Array . */ public function SelectedModule() { $module = null; $param = $this->getRequest()->param("ID"); if ($param) { $module = ExtensionData::get()->where("(ID = '$param' OR URLSegment = '$param') AND (Type = 'Module') AND (Accepted = '1')")->first(); } return $module; } } |