DataObjects/Cms_page.php
[Pman.Cms] / Preview.php
index 2fd100b..6822ffd 100644 (file)
@@ -41,7 +41,7 @@ class Pman_Cms_Preview extends Pman
     }
     
     
-    function get($path= false)
+    function get($path, $opts=array())
     {
         die("implement me");
         
@@ -58,8 +58,14 @@ class Pman_Cms_Preview extends Pman
      * $this->page= loadPage($name);
      */
     
-    function loadPage($name, $default = false)
+    function loadPage($prefix, $name, $default = false)
     {
+        //var_dump($name, $default);
+        
+        
+        $oo = HTML_FlexyFramework::get()->Pman_Cms;
+        $template_prefix = isset($oo['template_prefix']) ? $oo['template_prefix'] : '';
+         
         // used to load sub elements. of a site..
         if ($default === false && preg_match('/\*$/', $name)) {
             $x = DB_DataObject::factory("cms_page");
@@ -78,20 +84,41 @@ class Pman_Cms_Preview extends Pman
             $x->autoJoin();
             $x->is_element = 0;
             $x->is_draft = 0;
-            if (!$x->get("page_link", $default)) {
+            $x->language =  'en'; //$this->bootLoader->locale;
+            
+            if (!$x->get("page_link", $prefix .'/'. $default)) {
                 die("default page '$default' does not exist");
             }
             // load the home page blocks..
             
             $blocks = $x->children(array(
-                'type'=>'named_blocks'
+                'type'=>'named_blocks',
+                'language' => $this->bootLoader->locale,
             ));
             foreach($blocks as $k=>$b) {
                 $this->block[$k] = $b;
             }
             
+            $this->defaultPage = $x->inLanguage($this->bootLoader->locale);
+            $this->defaultPage_en = $x;
+            
+            if ($this->defaultPage_en->id != $this->defaultPage->id) {
+                $blocks =$this->defaultPage->children(array(
+                    'type'=>'named_blocks',
+                    'language' => $this->bootLoader->locale
+                ));
+                foreach($blocks as $k=>$b) {
+                    $this->block[$k] = $b;
+                }
+                
+            }
+             
+            
+            
+            
+            
+            
             
-            $this->defaultPage = $x;
             
         }
         
@@ -99,26 +126,47 @@ class Pman_Cms_Preview extends Pman
         
         if (empty($name)) {
             $this->page = $this->defaultPage;
-            
+            $this->page_en = $this->defaultPage_en;
         } else {
             $x = DB_DataObject::factory("cms_page");
             $x->autoJoin();
             $x->is_element = 0;
             $x->is_draft = 0;
-            if (!$x->get("page_link", $name)) {
-                $this->herr(404);
+            $x->language =  'en';
+            if (!$x->get("page_link", $prefix .'/'. $name)) {
+                $this->err(404, "$name not found");
             }
+            
             $blocks = $x->children(array(
-                'type'=>'named_blocks'
+                'type'=>'named_blocks',
+                'language' => $this->bootLoader->locale,
             ));
             foreach($blocks as $k=>$b) {
                 $this->block[$k] = $b;
             }
-            $this->page = $x;
+            $this->page_en = $x;
+            $this->page = $x->inLanguage($this->bootLoader->locale);
+            
+            if ($this->page_en->id != $this->page->id) {
+            
+                $blocks = $this->page->children(array(
+                    'type'=>'named_blocks',
+                    'language' => $this->bootLoader->locale
+                ));
+                foreach($blocks as $k=>$b) {
+                    $this->block[$k] = $b;
+                }
+                 
+                
+            }
+             
+            
         }
         
         // load all the blocks..
         $this->assignMeta();
+        $this->template = $this->page_en->template()->template;
+        //var_dump($this->template);
         
         // menus????
         
@@ -140,7 +188,7 @@ class Pman_Cms_Preview extends Pman
         }
     }
     
-    
+    /*
     function herr( $error_name, $args = array(), $redirect=false )
     {
         
@@ -156,7 +204,7 @@ class Pman_Cms_Preview extends Pman
         
         return true;
     }
-    
+    */
     function err($n, $msg = false)
     {
         header("HTTP/1.0 $n Not Found");
@@ -198,8 +246,7 @@ class Pman_Cms_Preview extends Pman
         
       
         return $trimmed_text;
-            
-        
+          
     }
     
     function eq($a,$b){
@@ -211,7 +258,7 @@ class Pman_Cms_Preview extends Pman
         if(!$this->authUser){
             return false;
         }
-        $x = DB_DataObject::factory('Companies');
+        $x = DB_DataObject::factory('core_company');
         if($x->get($this->authUser->company_id)){
             if($x->comptype == 'OWNER'){
                 return true;