//in the app controller public function action_index() { $this->theme = \Theme::instance(); $this->theme->set_template( 'templates/default' ); $this->tpl = $this->theme->get_template( 'templates/default' ); $this->tpl->set( 'title', 'Test Title' ); $this->tpl->set( 'content', Request::forge( 'pages/pages/index', false )->execute() ); }
//in the module controller public function action_index() { $this->theme = \Theme::instance(); $this->tpl = $this->theme->view( 'pages/test' ); $this->tpl->set( 'name', 'Brian Jeffries' ); }
//app controller public function action_index() { $this->theme = \Theme::instance(); $this->theme->set_template( 'templates/default' ); $this->tpl = $this->theme->get_template( 'templates/default' ); $this->tpl->set( 'title', 'Test Title' ); Fuel::add_module( 'test' ); try { $widget = Request::forge( 'test/page/test' )->execute(); } catch ( HttpNotFoundException $e ) { $widget = 'Module Not Found'; } $this->tpl->set( 'content', $widget ); }
//module controller public function action_test() { return 'hello'; }
Notice! ErrorException [ Notice ]: Undefined index: content APPPATH/tmp/Smarty/templates_c/f6e533553ae37904936623049a99dca5a798682a.file.default.html.php @ line 35: 34: <body> 35: <?php echo $_smarty_tpl->tpl_vars['content']->value;?> 36: Notice! ErrorException [ Notice ]: Trying to get property of non-object APPPATH/tmp/Smarty/templates_c/f6e533553ae37904936623049a99dca5a798682a.file.default.html.php @ line 35: 34: <body> 35: <?php echo $_smarty_tpl->tpl_vars['content']->value;?>
<?php echo $content; ?>
$widget = Request::forge( 'test/page/test' )->execute(); $this->tpl->set( 'content', (string) $widget );
// //This is the app controller that calls modules into the main layout template. // class Controller_Page extends Controller { public function before() { // call the parent controller parent::before(); } /** * The index page. * * @access public * @return Response */ public function action_index() { //name the theme instance here so you can pass it into the after() method for rendering $this->page_name = 'index'; $data[ 'title' ] = 'Test Page'; $data[ 'content_area' ][ 'module_1' ] = static::set_module( 'test/page/test' ); $data[ 'content_area' ][ 'module_2' ] = static::set_module( 'test/page/test2' ); //set main layout template here, since this is the app controller. \Theme::instance( $this->page_name )->set_template( 'templates/default' )->set( $data ); } public static function set_module( $uri ) { try { return Request::forge( $uri, false )->execute(); } catch ( HttpNotFoundException $e ) { return 'Module Not Found'; } } /** * After controller method has run, render the theme template * * @param Response $response */ public function after( $response ) { // If nothing was returned render the defined template if ( empty( $response ) ) { $response = \Theme::instance( $this->page_name )->render(); } return parent::after( $response ); } }
// //This is the module controller that sets its own template views, and variables. In this controller I create two separate views using the same template partial view. // namespace Test; class Controller_Page extends \Controller { /** * The home page. * * @access public * @return Response */ public function before() { // call the parent controller parent::before(); } public function action_test() { $this->view_name = 'test'; $data['title'] = 'Test Page'; $data[ 'name' ] = 'Brian'; //set view partial here. \Theme::instance( $this->view_name )->set_template( 'pages/test' )->set( $data ); } public function action_test2() { $this->view_name = 'test2'; $data[ 'title' ] = 'Test Page 2'; $data[ 'name' ] = 'Brian Jeffries'; //set view partial here. \Theme::instance( $this->view_name )->set_template( 'pages/test' )->set( $data ); } /** * After controller method has run, render the theme template * * @param Response $response */ public function after( $response ) { // If nothing was returned render the defined template if ( empty( $response ) ) { $response = \Theme::instance( $this->view_name )->render(); } return parent::after( $response ); } }
// //This is the main template syntax. (default.html) // <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>{$title}</title> </head> <body> {foreach $content_area as $module} <br /> {$module} {/foreach} </body> </html>
// //And this is the syntax in the partial view template (test.html) // {$name} {$title}
It looks like you're new here. If you want to get involved, click one of these buttons!