Added new layout helper methods in the component_helper.php file

This commit is contained in:
alextselegidis 2021-11-15 08:52:35 +01:00
parent abf9bdd049
commit 4a29034418
1 changed files with 75 additions and 0 deletions

View File

@ -43,3 +43,78 @@ if ( ! function_exists('component'))
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];
}
}