mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 09:05:55 +00:00
upgrader: namespacing classes
This commit is contained in:
parent
5bb718224c
commit
2c84e627db
@ -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';
|
@ -1,6 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace SilverStripe\Subsites\Controller;
|
||||
|
||||
|
||||
use SilverStripe\Admin\LeftAndMain;
|
||||
use SilverStripe\Subsites\Model\Subsite;
|
||||
|
||||
|
||||
/**
|
||||
* Section-agnostic PJAX controller.
|
@ -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) {
|
||||
|
@ -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 {
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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';
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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?
|
||||
|
@ -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';
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user