Added new layout helper methods in the component_helper.php file
This commit is contained in:
parent
abf9bdd049
commit
4a29034418
1 changed files with 75 additions and 0 deletions
|
@ -43,3 +43,78 @@ if ( ! function_exists('component'))
|
||||||
return $CI->load->view('components/' . $component, $vars, TRUE);
|
return $CI->load->view('components/' . $component, $vars, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( ! function_exists('extend'))
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Use this function at the top of view files to mark the layout you are extending from.
|
||||||
|
*
|
||||||
|
* @param $layout
|
||||||
|
*/
|
||||||
|
function extend($layout)
|
||||||
|
{
|
||||||
|
config([
|
||||||
|
'layout' => [
|
||||||
|
'filename' => $layout,
|
||||||
|
'sections' => [],
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! function_exists('section'))
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Use this function in view files to mark the beginning and/or end of a layout section.
|
||||||
|
*
|
||||||
|
* Sections will only be used if the view file extends a layout and will be ignored otherwise.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* <?php section('content') ?>
|
||||||
|
*
|
||||||
|
* <!-- Section Starts -->
|
||||||
|
*
|
||||||
|
* <p>This is the content of the section.</p>
|
||||||
|
*
|
||||||
|
* <!-- Section Ends -->
|
||||||
|
*
|
||||||
|
* <?php section('content') ?>
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
*/
|
||||||
|
function section(string $name)
|
||||||
|
{
|
||||||
|
$layout = config('layout');
|
||||||
|
|
||||||
|
if (array_key_exists($name, $layout['sections']))
|
||||||
|
{
|
||||||
|
$layout['sections'][$name] = ob_get_clean();
|
||||||
|
|
||||||
|
config(['layout' => $layout]);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$layout['sections'][$name] = '';
|
||||||
|
|
||||||
|
config(['layout' => $layout]);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! function_exists('slot'))
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Use this function in view files to mark a slot that sections can populate from within child templates.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
*/
|
||||||
|
function slot(string $name)
|
||||||
|
{
|
||||||
|
$layout = config('layout');
|
||||||
|
|
||||||
|
echo $layout['sections'][$name];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue