Made subsite query augmentation more robust - can handle a lack of a where clause

Made SubsiteTest clean up after itself
This commit is contained in:
Sam Minnee 2008-08-13 04:33:01 +00:00
parent 2003499859
commit 3275d689b9
3 changed files with 8 additions and 2 deletions

View File

@ -26,7 +26,7 @@ class GroupSubsites extends DataObjectDecorator {
*/
function augmentSQL(SQLQuery &$query) {
// If you're querying by ID, ignore the sub-site - this is a bit ugly...
if(strpos($query->where[0], ".`ID` = ") === false && strpos($query->where[0], ".ID = ") === false) {
if(!$query->where || (strpos($query->where[0], ".`ID` = ") === false && strpos($query->where[0], ".ID = ") === false)) {
if($context = DataObject::context_obj()) $subsiteID = (int)$context->SubsiteID;
else $subsiteID = (int)Subsite::currentSubsiteID();

View File

@ -46,7 +46,7 @@ class SiteTreeSubsites extends DataObjectDecorator {
if(Subsite::$disable_subsite_filter) return;
// If you're querying by ID, ignore the sub-site - this is a bit ugly...
if(strpos($query->where[0], ".`ID` = ") === false && strpos($query->where[0], ".ID = ") === false && strpos($query->where[0], "ID = ") !== 0) {
if(!$query->where || (strpos($query->where[0], ".`ID` = ") === false && strpos($query->where[0], ".ID = ") === false && strpos($query->where[0], "ID = ") !== 0)) {
if($context = DataObject::context_obj()) $subsiteID = (int)$context->SubsiteID;
else $subsiteID = (int)Subsite::currentSubsiteID();

View File

@ -71,5 +71,11 @@ class SubsiteTest extends SapphireTest {
* Edit a page without actually making any changes and verify that CustomContent isn't set.
*/
function tearDown() {
// Return to Subsite #0
Subsite::changeSubsite(0);
parent::tearDown();
}
}