[limb-svn] r6499 - 3.x/trunk/limb/web_app/src/controller

svn at limb-project.com svn at limb-project.com
Wed Nov 7 16:47:42 MSK 2007


Author: serega
Date: 2007-11-07 16:47:42 +0300 (Wed, 07 Nov 2007)
New Revision: 6499
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6499

Added:
   3.x/trunk/limb/web_app/src/controller/FallbackToViewController.class.php
Log:
-- added new FallbackToViewController that allows to render any view template if uri path is matching to any template. To use this class - pass "fallback_to_view" as a second parameter to lmbRequestDispatchingFilter filter

Added: 3.x/trunk/limb/web_app/src/controller/FallbackToViewController.class.php
===================================================================
--- 3.x/trunk/limb/web_app/src/controller/FallbackToViewController.class.php	                        (rev 0)
+++ 3.x/trunk/limb/web_app/src/controller/FallbackToViewController.class.php	2007-11-07 13:47:42 UTC (rev 6499)
@@ -0,0 +1,43 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */ 
+lmb_require('limb/web_app/src/controller/lmbAbstractController.class.php');
+
+/**
+ * class FallbackToViewController.
+ * To use this controller just pass it's name to lmbRequestDispatchingFilter, e.g.:
+ *  <code>
+ *   $this->registerFilter(new lmbHandle('limb/web_app/src/filter/lmbRequestDispatchingFilter',
+ *                                       array(new lmbHandle('limb/web_app/src/request/lmbRoutesRequestDispatcher'),
+ *                                            'any_template')));
+ *  </code> 
+ *
+ * @package web_app
+ * @version $Id: lmbController.class.php 6497 2007-11-07 13:27:32Z serega $
+ */ 
+class FallbackToViewController extends lmbAbstractController
+{
+  function performAction()
+  {
+    $toolkit = lmbToolkit :: instance();
+    $path = trim($toolkit->getRequest()->getUriPath(), '/');
+    
+    if($template_path = $this->_findTemplateByFormat($path . '%s'))
+    {      
+      $view = $this->toolkit->createViewByTemplate($template_path);
+      $this->toolkit->setView($view);
+    }
+    else
+      return $this->forwardTo404();
+  }
+  
+  function actionExists($action)
+  {
+    return true;
+  }
+}
\ No newline at end of file



More information about the limb-svn mailing list