mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 11:05:55 +02:00
c9d3a1f854
Fixes for SS 3.0 beta 3 Fixed compatibility issues with ss3.0 rc1 fixed potential issue caused by the from array format changing in 3.0 Fixed strict standards warnings Fixed strict notice "Only variables should be passed by reference" Fixed strict notice "Only variables should be passed by reference" Fixed strict notice caused by SubsiteAdmin not declaring all of the properties for getCMSFields() Made Subsite::accessible_sites() static Fixed issue caused when trying to add a domain before saving for the first time Fixed undefined property ParentID
42 lines
1.4 KiB
PHP
42 lines
1.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Extension for the SiteConfig object to add subsites support
|
|
*/
|
|
class SiteConfigSubsites extends DataExtension {
|
|
public static $has_one=array(
|
|
'Subsite' => 'Subsite', // The subsite that this page belongs to
|
|
);
|
|
|
|
|
|
/**
|
|
* Update any requests to limit the results to the current site
|
|
*/
|
|
function augmentSQL(SQLQuery &$query) {
|
|
if(Subsite::$disable_subsite_filter) return;
|
|
|
|
// If you're querying by ID, ignore the sub-site - this is a bit ugly...
|
|
if (!$query->where || (!preg_match('/\.(\'|"|`|)ID(\'|"|`|)( ?)=/', $query->where[0]) && !preg_match('/\.?(\'|"|`|)SubsiteID(\'|"|`|)( ?)=/', $query->where[0]))) {
|
|
/*if($context = DataObject::context_obj()) $subsiteID = (int)$context->SubsiteID;
|
|
else */$subsiteID = (int)Subsite::currentSubsiteID();
|
|
|
|
$froms=$query->getFrom();
|
|
$froms=array_keys($froms);
|
|
$tableName = array_shift($froms);
|
|
if($tableName != 'SiteConfig') return;
|
|
$query->addWhere("\"$tableName\".\"SubsiteID\" IN ($subsiteID)");
|
|
}
|
|
}
|
|
|
|
function onBeforeWrite() {
|
|
if((!is_numeric($this->owner->ID) || !$this->owner->ID) && !$this->owner->SubsiteID) $this->owner->SubsiteID = Subsite::currentSubsiteID();
|
|
}
|
|
|
|
/**
|
|
* Return a piece of text to keep DataObject cache keys appropriately specific
|
|
*/
|
|
function cacheKeyComponent() {
|
|
return 'subsite-'.Subsite::currentSubsiteID();
|
|
}
|
|
}
|