Source of file AdminToolbar.php
Size: 4,860 Bytes - Last Modified: 2021-12-24T05:19:39+00:00
/var/www/docs.ssmods.com/process/src/code/AdminToolbar.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | <?php class AdminToolbar extends Extension { /** * Return rendered AdminToolbar * @return HTMLText */ public function getAdminToolbar() { if ( !Permission::check('CMS_ACCESS_CMSMain') || !$this->owner || $this->owner->getRequest()->getVar('CMSPreview') === '1' || (defined('SHOW_ADMIN_TOOLBAR') && SHOW_ADMIN_TOOLBAR == false) ) { return; } $templateData = array( // Custom colors 'BackgroundColor' => $this->config()->BackgroundColor, 'ForegroundColor' => $this->config()->ForegroundColor, // Nav lists 'PrimaryNav' => $this->getAdminToolbarPrimaryNav(), 'SecondaryNav' => $this->getAdminToolbarSecondaryNav() ); return $this->owner ->customise($templateData) ->renderWith('AdminToolbar'); } /** * Get primary nav items * @return ArrayList */ public function getAdminToolbarPrimaryNav() { $nav = ArrayList::create(); $baseURL = Director::baseURL(); $nav->push(ArrayData::create(array( 'Name' => 'home', 'Label' => SiteConfig::current_site_config()->Title, 'Link' => $baseURL, 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/home.svg#Home' ))); $nav->push(ArrayData::create(array( 'Name' => 'admin', 'Label' => _t('AdminToolbar.Admin', 'Admin'), 'Link' => "{$baseURL}admin", 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/cog.svg#Cog' ))); // Show draft/published switcher if user can view draft content if (Permission::check('VIEW_DRAFT_CONTENT')) { if (Versioned::current_stage() === 'Stage') { $nav->push(ArrayData::create(array( 'Name' => 'switchToPublishedSite', 'Label' => _t('AdminToolbar.Draft', 'Draft'), 'Title' => _t('AdminToolbar.SwitchToPublishedSite', 'Switch to published site'), 'Link' => "{$this->owner->Link()}?stage=Live", 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/eye-with-line.svg#Eye_with_line' ))); } elseif (Versioned::current_stage() === 'Live') { $nav->push(ArrayData::create(array( 'Name' => 'switchToDraftSite', 'Label' => _t('AdminToolbar.Published', 'Published'), 'Title' => _t('AdminToolbar.SwitchToDraftSite', 'Switch to draft site'), 'Link' => "{$this->owner->Link()}?stage=Stage", 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/eye.svg#Eye' ))); } } // Show edit link if user can edit content if ( $this->owner->data()->ID > 0 && $this->owner->data()->canEdit() && $this->owner->data()->CMSEditLink() ) { // Generate friendly name. e.g. "AwesomePage" -> "Awesome Page" // @see FormField::name_to_label() $niceClassName = preg_replace("/([a-z]+)([A-Z])/", "$1 $2", $this->owner->data()->ClassName); $nav->push(ArrayData::create(array( 'Name' => 'edit', 'Label' => _t('AdminToolbar.EditThing', 'Edit {thing}', array('thing' => $niceClassName)), 'Link' =>"{$baseURL}{$this->owner->data()->CMSEditLink()}", 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/new-message.svg#New_message' ))); } return $nav; } /** * Get secondary nav items * @return ArrayList */ public function getAdminToolbarSecondaryNav() { $secondaryNav = ArrayList::create(); $baseURL = Director::baseURL(); $secondaryNav->push(ArrayData::create(array( 'Name' => 'profile', 'Label' => _t('AdminToolbar.Name', 'Hi {name}', array('name' => Member::currentUser()->FirstName)), 'Link' => "{$baseURL}admin/myprofile", 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/user.svg#User' ))); $secondaryNav->push(ArrayData::create(array( 'Name' => 'logout', 'Label' => _t('AdminToolbar.LogOut', 'Log out'), 'Link' => "{$baseURL}Security/logout", 'Icon' => $baseURL . ADMINTOOLBAR_DIR . '/images/log-out.svg#Log_out' ))); return $secondaryNav; } /** * Get a configuration accessor for this class. * @see Object::config() * @return Config_ForClass|null */ public static function config() { return Config::inst()->forClass(get_called_class()); } } |