Source of file HomePage.php
Size: 5,068 Bytes - Last Modified: 2021-12-23T10:08:54+00:00
/var/www/docs.ssmods.com/process/src/src/Page/HomePage.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | <?php /** * This file contains the "HomePage" class. * * @category SilverStripe_Project * @package SDLT * @author Catalyst I.T. SilverStripe Team 2018 <silverstripedev@catalyst.net.nz> * @copyright NZ Transport Agency * @license BSD-3 * @link https://www.catalyst.net.nz */ namespace NZTA\SDLT\Page; use NZTA\SDLT\Model\Pillar; use Page; use SilverStripe\CMS\Model\SiteTree; use NZTA\SDLT\Controller\HomePageController; use NZTA\SDLT\Model\Task; use SilverStripe\ORM\ValidationException; use SilverStripe\ORM\DB; use SilverStripe\CMS\Controllers\RootURLController; use SilverStripe\Versioned\Versioned; use SilverStripe\ErrorPage\ErrorPage; /** * Class HomePage * * @property string Subtitle * * @method Pillar Pillars() * @method Task Tasks() */ class HomePage extends Page { /** * @var string */ private static $table_name = 'HomePage'; /** * @return string */ public function getControllerName() { return HomePageController::class; } /** * Ensure that only a single home is able to be created in the CMS * * @param Member $member default parameter for canCreate * @param array $context Additional context-specific data which might affect * whether (or where) this object could be created * @return boolean */ public function canCreate($member = null, $context = []) { return (parent::canCreate($member) && HomePage::get()->Count() === 0); } /** * Add default records to database. * * This function is called whenever the database is built, after the * database tables have all been created. Overloa this to add default * records when the database is built, but make sure you call * parent::requireDefaultRecords(). * * @return void * @throws ValidationException */ public function requireDefaultRecords() { parent::requireDefaultRecords(); if (SiteTree::config()->create_default_pages) { return; } // default pages if (!(HomePage::get()->Count())) { $defaultHomepage = RootURLController::config()->get('default_homepage_link'); if (!SiteTree::get_by_link($defaultHomepage)) { $homepage = new HomePage(); $homepage->Title = _t(__CLASS__.'.DEFAULTHOMETITLE', 'Home'); $homepage->Content = _t( __CLASS__.'.DEFAULTHOMECONTENT', '<p>Welcome to SilverStripe! This is the default homepage. You can edit this page by opening <a href="admin/">the CMS</a>.</p> <p>You can now access the <a href="http://docs.silverstripe.org">developer documentation</a>, or begin the <a href="http://www.silverstripe.org/learn/lessons">SilverStripe lessons</a>.</p>' ); $homepage->URLSegment = $defaultHomepage; $homepage->Sort = 1; $homepage->write(); $homepage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); $homepage->flushCache(); DB::alteration_message('Home page created', 'created'); } } if (!(ErrorPage::get()->Count())) { // create 404 error page $errorPageNotFound = new ErrorPage(); $errorPageNotFound->ErrorCode = 404; $errorPageNotFound->Title = _t('SilverStripe\\ErrorPage\\ErrorPage.DEFAULTERRORPAGETITLE', 'Page not found'); $errorPageNotFound->Content = _t( __CLASS__.'.DEFAULTPAGENOTFOUNDCONTENT', '<p>Sorry, it seems you were trying to access a page that does not exist.</p> <p>Please check the spelling of the URL you were trying to access and try again.</p>' ); $errorPageNotFound->write(); $errorPageNotFound->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); $errorPageNotFound->flushCache(); DB::alteration_message('404 error page created', 'created'); // create 500 error page $errorPageServerError = new ErrorPage(); $errorPageServerError->ErrorCode = 500; $errorPageServerError->Title = _t('SilverStripe\\ErrorPage\\ErrorPage.DEFAULTSERVERERRORPAGETITLE', 'Server error'); $errorPageServerError->Content = _t( __CLASS__.'.DEFAULTSERVERERRORCONTENT', '<p>Sorry, it appears something is not working correctly. We are aware and trying to resolve the issue.</p> <p>In the meantime, here is what you can do:</p> <p>Refresh the page</p> <p>Try again in 30 minutes</p>' ); $errorPageServerError->write(); $errorPageServerError->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); $errorPageServerError->flushCache(); DB::alteration_message('500 error page created', 'created'); } } } |