Yes, use templates is good, and there’s an excellent answer here. But the use of templates for views does not properly implement components HTML
. Follow the guidance in the indication and add the mechanism of templates. It will help to increase code reuse, especially if you have different sections within the system.
Components created with helpers
To implement components, I suggest using a helper
. Particularly, the HTML Helper. Load it into the application using Autoload.
Within application/config/autoload.php
, look for $autoload['helper']
and add the helper html
on the list:
$autoload['helper'] = array('html');
Create/extend application/helpers/MY_html_helper.php
and insert the following:
if( ! function_exists('bootstrap_alert')){
function bootstrap_alert($class=null, $msg=null){
$ci = & get_instance();
echo '<div class="alert alert-'.$class.' alert-dismissible" role="alert">';
echo '<button type="button" class="close" data-dismiss="alert"';
echo 'aria-label="Close"><span aria-hidden="true">×</span></button>';
echo $msg;
echo '</div>';
}
}
Ready. With the Function bootstrap_alert()
I created a component Alert CSS library Bootstrap v3.3.7. Now just call bootstrap_alert()
in any view passing to $msg
and the $class
CSS desired that this structure will be shown.
That goes for, literally, any type of component HTML
that you need to create.
Components from physical files
It may be necessary to load components from written templates on the server. Modals, for example, can be loaded into the document HTML
and manipulated with JavaScript
to create interactions with the user. Follow the function:
if( ! function_exists('load_modal')){
/**
* Carrega conteudo de arquivos no corpo do documento HTML;
* @return void
*/
function load_modal() {
$path = APPPATH . "views/modal/";
if (file_exists($path)) {
$iteractor = new DirectoryIterator($path);
foreach ($iteractor as $entry) {
if ($entry->isFile()) {
$exts = ['php'];
if (in_array($entry->getExtension(), $exts)) {
include_once($path.$entry->getFilename());
}
}
}
}
}
}
Basically, all the files .php that you save inside the directory $path
will be loaded to the HTML
at the place where the Function load_modal()
is called (which can be immediately after <body>
, for example). Knowing this, inside $path
, save the file modal.php:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$ci = & get_instance();
?>
<!-- modal_alert-->
<div class="modal fade" data-backdrop="static" id="modal_alert" tabindex="-1" role="dialog" aria-labelledby="modal_alert_label">
<form class="form-horizontal" method="post" action="<?= base_url('users/modal_alert') ?>">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="modal_alert_label">
<span class="glyphicon glyphicon-exclamation-sign"></span>
Aviso
</h4>
</div>
<div class="modal-body">
<div class='alert' role='alert'>
<center>
<p class='glyphicon glyphicon-exclamation-sign'></p>
<br>
<h3><b id="modal_alert_content"></b></h3>
</center>
</div>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-default" id="modal_alert_cancel_button">
Fechar
</button>
</div>
</div>
</div>
</form>
</div>
<!-- modal_alert-->
I chose to save how .php
why I may need/want this modal to print some configuration item, some database data, or anything else (in this case, I used base_url('users/modal_alert')
in action
form). But that’s not mandatory, as you might see in the above function.
That goes for, literally, any type of component HTML
that you need to create from pre-formatted files.
Excellent, thank you very much, I’ll take a test.
– Samuel Filho
Perfect! , it worked! , thank you...
– Samuel Filho