upgrader: namespacing classes

This commit is contained in:
Werner M. Krauß 2017-05-24 12:32:05 +02:00
parent 5bb718224c
commit 2c84e627db
18 changed files with 134 additions and 40 deletions

View File

@ -1,21 +1,26 @@
<?php
namespace SilverStripe\Subsites\Admin;
use SilverStripe\Admin\ModelAdmin;
use SilverStripe\Subsites\Forms\GridFieldSubsiteDetailForm;
/**
* Admin interface to manage and create {@link Subsite} instances.
*
*
* @package subsites
*/
class SubsiteAdmin extends ModelAdmin {
private static $managed_models = array('Subsite');
private static $url_segment = 'subsites';
private static $menu_title = "Subsites";
private static $menu_icon = "subsites/images/subsites.png";
public $showImportForm=false;
private static $tree_class = 'Subsite';

View File

@ -1,6 +1,11 @@
<?php
namespace SilverStripe\Subsites\Controller;
use SilverStripe\Admin\LeftAndMain;
use SilverStripe\Subsites\Model\Subsite;
/**
* Section-agnostic PJAX controller.

View File

@ -1,7 +1,12 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\Forms\HiddenField;
use SilverStripe\Core\Extension;
use SilverStripe\Subsites\Model\Subsite;
class CMSPageAddControllerExtension extends Extension {
function updatePageOptions(&$fields) {

View File

@ -1,7 +1,12 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\View\SSViewer;
use SilverStripe\Core\Extension;
use SilverStripe\Subsites\Model\Subsite;
/**
* @package subsites
*/
@ -12,7 +17,7 @@ class ControllerSubsites extends Extension {
SSViewer::set_theme($theme);
}
}
function CurrentSubsite(){
if($subsite = Subsite::currentSubsite()){
return $subsite;
@ -20,4 +25,4 @@ class ControllerSubsites extends Extension {
}
}
?>
?>

View File

@ -1,25 +1,30 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Subsites\Model\Subsite;
class ErrorPageSubsite extends DataExtension {
/**
* Alter file path to generated a static (static) error page file to handle error page template on different sub-sites
* Alter file path to generated a static (static) error page file to handle error page template on different sub-sites
*
* {@see Error::get_error_filename()}
*
* FIXME since {@link Subsite::currentSubsite()} partly relies on Session, viewing other sub-site (including main site) between
* FIXME since {@link Subsite::currentSubsite()} partly relies on Session, viewing other sub-site (including main site) between
* opening ErrorPage in the CMS and publish ErrorPage causes static error page to get generated incorrectly.
*
* @param string $name Filename to write to
* @param int $statusCode Integer error code
*/
public function updateErrorFilename(&$name, $statusCode) {
// Try to get current subsite from session
$subsite = Subsite::currentSubsite(false);
// since this function is called from Page class before the controller is created, we have to get subsite from domain instead
if(!$subsite) {
$subsiteID = Subsite::getSubsiteIDForDomain();
@ -36,5 +41,5 @@ class ErrorPageSubsite extends DataExtension {
$name = substr($name, 0, -5) . "-{$subdomain}.html";
}
}
}
}

View File

@ -1,5 +1,8 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\Forms\FieldList;
use SilverStripe\Assets\Folder;
use SilverStripe\Forms\DropdownField;
@ -9,17 +12,19 @@ use SilverStripe\ORM\DataQuery;
use SilverStripe\Control\Session;
use SilverStripe\Security\Permission;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Subsites\Model\Subsite;
/**
* Extension for the File object to add subsites support
*
* @package subsites
*/
class FileSubsites extends DataExtension {
// If this is set to true, all folders created will be default be
// considered 'global', unless set otherwise
static $default_root_folders_global = false;
private static $has_one=array(
'Subsite' => 'Subsite',
);
@ -48,14 +53,14 @@ class FileSubsites extends DataExtension {
if($sites){
//Dropdown needed to move folders between subsites
$dropdown = new DropdownField(
'SubsiteID',
_t('FileSubsites.SubsiteFieldLabel','Subsite'),
'SubsiteID',
_t('FileSubsites.SubsiteFieldLabel','Subsite'),
$values
);
$dropdown->addExtraClass('subsites-move-dropdown');
$fields->push($dropdown);
$fields->push(new LiteralField(
'Message',
'Message',
'<p class="message notice">'.
_t('ASSETADMIN.SUBSITENOTICE', 'Folders and files created in the main site are accessible by all subsites.')
.'</p>'
@ -127,13 +132,13 @@ class FileSubsites extends DataExtension {
return $access;
}
}
/**
* Return a piece of text to keep DataObject cache keys appropriately specific
*/
function cacheKeyComponent() {
return 'subsite-'.Subsite::currentSubsiteID();
}
}

View File

@ -1,5 +1,8 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\ORM\DB;
use SilverStripe\Forms\FieldList;
use SilverStripe\Core\Convert;
@ -11,6 +14,8 @@ use SilverStripe\ORM\DataQuery;
use SilverStripe\Control\Cookie;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Security\PermissionProvider;
use SilverStripe\Subsites\Model\Subsite;
/**
* Extension for the Group object to add subsites support
*

View File

@ -1,5 +1,8 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\View\Requirements;
use SilverStripe\Core\Convert;
use SilverStripe\Forms\HiddenField;
@ -14,6 +17,8 @@ use SilverStripe\Admin\CMSMenu;
use SilverStripe\Security\Security;
use SilverStripe\Control\Controller;
use SilverStripe\Core\Extension;
use SilverStripe\Subsites\Model\Subsite;
/**
* Decorator designed to add subsites support to LeftAndMain
*
@ -43,7 +48,7 @@ class LeftAndMainSubsites extends Extension {
$subsite = Subsite::currentSubSite();
return $subsite ? Convert::raw2xml($subsite->Title) : _t('LeftAndMain.SITECONTENTLEFT');
}
function updatePageOptions(&$fields) {
$fields->push(new HiddenField('SubsiteID', 'SubsiteID', Subsite::currentSubsiteID()));
}
@ -109,7 +114,7 @@ class LeftAndMainSubsites extends Extension {
}
/*
* Generates a list of subsites with the data needed to
* Generates a list of subsites with the data needed to
* produce a dropdown site switcher
* @return ArrayList
*/
@ -128,7 +133,7 @@ class LeftAndMainSubsites extends Extension {
foreach($list as $subsite) {
$CurrentState = $subsite->ID == $currentSubsiteID ? 'selected' : '';
$output->push(new ArrayData(array(
'CurrentState' => $CurrentState,
'ID' => $subsite->ID,
@ -300,7 +305,7 @@ class LeftAndMainSubsites extends Extension {
}
function augmentNewSiteTreeItem(&$item) {
$item->SubsiteID = isset($_POST['SubsiteID']) ? $_POST['SubsiteID'] : Subsite::currentSubsiteID();
$item->SubsiteID = isset($_POST['SubsiteID']) ? $_POST['SubsiteID'] : Subsite::currentSubsiteID();
}
function onAfterSave($record) {

View File

@ -1,10 +1,15 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\ORM\Queries\SQLSelect;
use SilverStripe\ORM\DataQuery;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\HiddenField;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Subsites\Model\Subsite;
/**
* Extension for the SiteConfig object to add subsites support

View File

@ -1,5 +1,8 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\ORM\Queries\SQLSelect;
use SilverStripe\ORM\DataQuery;
use SilverStripe\Forms\FieldList;
@ -14,6 +17,9 @@ use SilverStripe\Security\Member;
use SilverStripe\Control\HTTP;
use SilverStripe\Core\Convert;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Subsites\Model\Subsite;
use Page;
/**
* Extension for the SiteTree object to add subsites support

View File

@ -1,7 +1,12 @@
<?php
namespace SilverStripe\Subsites\Extensions;
use SilverStripe\Core\Extension;
/*
* Simple extension to show admins in the menu of subsites.
* If an admin area should be available to a subsite, you can attach

View File

@ -1,8 +1,13 @@
<?php
namespace SilverStripe\Subsites\Forms;
use SilverStripe\Forms\GridField\GridFieldDetailForm;
use SilverStripe\Forms\DropdownField;
use SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest;
use Subsite;
class GridFieldSubsiteDetailForm extends GridFieldDetailForm {
protected $itemRequestClass='GridFieldSubsiteDetailForm_ItemRequest';
}

View File

@ -1,9 +1,14 @@
<?php
namespace SilverStripe\Subsites\Forms;
use SilverStripe\View\Requirements;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Control\Session;
use SilverStripe\Forms\TreeDropdownField;
/**
* Wraps around a TreedropdownField to add ability for temporary
* switching of subsite sessions.

View File

@ -1,5 +1,8 @@
<?php
namespace SilverStripe\Subsites\Model;
use SilverStripe\ORM\DataObject;
use SilverStripe\Control\Session;
use SilverStripe\i18n\i18n;
@ -25,7 +28,9 @@ use SilverStripe\Forms\TabSet;
use SilverStripe\Forms\HiddenField;
use SilverStripe\Forms\FieldList;
use SilverStripe\ORM\ArrayLib;
use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\Versioned\Versioned;
use UnexpectedValueException;
/**
* A dynamically created subsite. SiteTree objects can now belong to a subsite.
* You can simulate subsite access without setting up virtual hosts by appending ?SubsiteID=<ID> to the request.

View File

@ -1,11 +1,16 @@
<?php
namespace SilverStripe\Subsites\Model;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\CheckboxField;
use SilverStripe\Forms\FieldList;
use SilverStripe\Core\Convert;
use SilverStripe\ORM\DataObject;
/**
* @property text Domain domain name of this subsite. Do not include the URL scheme here
* @property bool IsPrimary Is this the primary subdomain?

View File

@ -1,5 +1,8 @@
<?php
namespace SilverStripe\Subsites\Pages;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\ArrayList;
use SilverStripe\View\ArrayData;
@ -12,6 +15,9 @@ use SilverStripe\Control\Session;
use SilverStripe\Core\Config\Config;
use SilverStripe\CMS\Model\VirtualPage;
use SilverStripe\CMS\Model\VirtualPage_Controller;
use SubsitesTreeDropdownField;
use Subsite;
class SubsitesVirtualPage extends VirtualPage {
private static $description = 'Displays the content of a page on another subsite';

View File

@ -1,8 +1,13 @@
<?php
namespace SilverStripe\Subsites\Reports;
use SilverStripe\Forms\TreeMultiselectField;
use SilverStripe\Forms\FieldList;
use SilverStripe\Reports\ReportWrapper;
use SilverStripe\Subsites\Model\Subsite;
/**
* Creates a subsite-aware version of another report.
@ -11,14 +16,14 @@ use SilverStripe\Reports\ReportWrapper;
class SubsiteReportWrapper extends ReportWrapper {
///////////////////////////////////////////////////////////////////////////////////////////
// Filtering
function parameterFields() {
$subsites = Subsite::accessible_sites('CMS_ACCESS_CMSMain', true);
$options = $subsites->toDropdownMap('ID', 'Title');
$subsiteField = new TreeMultiselectField(
'Subsites',
_t('SubsiteReportWrapper.ReportDropdown', 'Sites'),
'Subsites',
_t('SubsiteReportWrapper.ReportDropdown', 'Sites'),
$options
);
$subsiteField->setValue(array_keys($options));
@ -27,7 +32,7 @@ class SubsiteReportWrapper extends ReportWrapper {
if(sizeof($options) <= 1) {
$subsiteField = $subsiteField->performReadonlyTransformation();
}
$fields = parent::parameterFields();
if($fields) {
$fields->insertBefore($subsiteField, $fields->First()->Name());
@ -39,21 +44,21 @@ class SubsiteReportWrapper extends ReportWrapper {
///////////////////////////////////////////////////////////////////////////////////////////
// Columns
function columns() {
$columns = parent::columns();
$columns['Subsite.Title'] = "Subsite";
return $columns;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Querying
function beforeQuery($params) {
// The user has select a few specific sites
if(!empty($params['Subsites'])) {
Subsite::$force_subsite = $params['Subsites'];
// Default: restrict to all accessible sites
} else {
$subsites = Subsite::accessible_sites('CMS_ACCESS_CMSMain');
@ -65,5 +70,5 @@ class SubsiteReportWrapper extends ReportWrapper {
// Manually manage the subsite filtering
Subsite::$force_subsite = null;
}
}
}

View File

@ -1,8 +1,15 @@
<?php
namespace SilverStripe\Subsites\Tasks;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\Dev\BuildTask;
use InvalidArgumentException;
use SilverStripe\Subsites\Model\Subsite;
use SilverStripe\Versioned\Versioned;
use SubsitesVirtualPage;
/**
* Handy alternative to copying pages when creating a subsite through the UI.
* Can be used to batch-add new pages after subsite creation,
@ -13,7 +20,7 @@ use SilverStripe\Dev\BuildTask;
class SubsiteCopyPagesTask extends BuildTask {
protected $title = 'Copy pages to different subsite';
protected $description = '';
function run($request) {
@ -51,7 +58,7 @@ class SubsiteCopyPagesTask extends BuildTask {
} else {
$childClone = $child->duplicateToSubsite($subsiteTo->ID, true);
}
$childClone->ParentID = $destParentID;
$childClone->writeToStage('Stage');
$childClone->publish('Stage', 'Live');
@ -68,4 +75,4 @@ class SubsiteCopyPagesTask extends BuildTask {
function log($msg) {
echo $msg . "\n";
}
}
}