<?php

namespace SilverStripe\CMS\Controllers;

use SilverStripe\Admin\LeftAndMain;
use SilverStripe\CMS\Model\RedirectorPage;
use SilverStripe\Control\Controller;

class SilverStripeNavigatorItem_CMSLink extends SilverStripeNavigatorItem
{
    /** @config */
    private static $priority = 10;

    public function getHTML()
    {
        return sprintf(
            '<a href="%s">%s</a>',
            $this->record->CMSEditLink(),
            _t('SilverStripe\\CMS\\Controllers\\ContentController.CMS', 'CMS')
        );
    }

    public function getTitle()
    {
        return _t('SilverStripe\\CMS\\Controllers\\ContentController.CMS', 'CMS', 'Used in navigation. Should be a short label');
    }

    public function getLink()
    {
        return $this->record->CMSEditLink();
    }

    public function isActive()
    {
        return (Controller::curr() instanceof LeftAndMain);
    }

    public function canView($member = null)
    {
        return (
            // Don't show in CMS
            !(Controller::curr() instanceof LeftAndMain)
            // Don't follow redirects in preview, they break the CMS editing form
            && !($this->record instanceof RedirectorPage)
        );
    }
}
