From e673d00e69d9cf4a12b68f2b5efc131eb1e3d9e2 Mon Sep 17 00:00:00 2001
From: xue <>
Date: Mon, 14 Nov 2005 13:07:54 +0000
Subject: property initialization via <pages> tag can now be inherited in child
 directories.

---
 framework/Web/Services/TPageService.php | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

(limited to 'framework')

diff --git a/framework/Web/Services/TPageService.php b/framework/Web/Services/TPageService.php
index 39dddd59..f32e8ee7 100644
--- a/framework/Web/Services/TPageService.php
+++ b/framework/Web/Services/TPageService.php
@@ -629,20 +629,23 @@ class TPageConfiguration extends TComponent
 		}
 
 		// pages
-		if($page!==null && ($pagesNode=$dom->getElementByTagName('pages'))!==null)
+		if(($pagesNode=$dom->getElementByTagName('pages'))!==null)
 		{
-			$baseProperties=$pagesNode->getAttributes();
-			foreach($pagesNode->getElementsByTagName('page') as $node)
+			$this->_properties=array_merge($this->_properties,$pagesNode->getAttributes()->toArray());
+			if($page!==null)   // at the page folder
 			{
-				$properties=$node->getAttributes();
-				$type=$properties->remove('type');
-				$id=$properties->itemAt('id');
-				if($id===null || $type===null)
-					throw new TConfigurationException('pageservice_page_element_invalid',$fname);
-				if($id===$page)
+				foreach($pagesNode->getElementsByTagName('page') as $node)
 				{
-					$this->_properties=array_merge($baseProperties->toArray(),$properties->toArray());
-					$this->_pageType=$type;
+					$properties=$node->getAttributes();
+					$type=$properties->remove('type');
+					$id=$properties->itemAt('id');
+					if($id===null || $type===null)
+						throw new TConfigurationException('pageservice_page_element_invalid',$fname);
+					if($id===$page)
+					{
+						$this->_properties=array_merge($this->_properties,$properties->toArray());
+						$this->_pageType=$type;
+					}
 				}
 			}
 		}
-- 
cgit v1.2.3