Download the PHP package bernacamargo/template_codeigniter-3.1.10 without Composer
On this page you can find all versions of the php package bernacamargo/template_codeigniter-3.1.10. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bernacamargo/template_codeigniter-3.1.10
More information about bernacamargo/template_codeigniter-3.1.10
Files in bernacamargo/template_codeigniter-3.1.10
Package template_codeigniter-3.1.10
Short Description Template for the CodeIgniter framework
License MIT
Informations about the package template_codeigniter-3.1.10
CodeHead - Template para Codeigniter 3
CodeHead é uma biblioteca com otimizações voltada para diminuir a repetição de código e aumentar a produtividade através de métodos úteis. Utilizaremos Twitter Bootstrap 4, JQuery 3.4.1, Font-awesome 5.8.1, Toastr, Core System Classes e Bibliotecas para manipular funções do Codeigniter 3.
- Links úteis
- Codeigniter 3 Docs(docs)
- Awesome codeigniter(A list of awesome CodeIgniter core, helpers, hooks, language, libraries, third_party and other cool resources for CodeIgniter.)
- Codeigniter Ion Auth 3(Simple and lightweight authentication for your CodeIgniter apps)
- FUEL CMS(The content management system for premium-grade websites)
Sumário
- Instalando
- Configurando
- Assets
- Helper functions
- Biblioteca Template
- Métodos
- Métodos principais
- Biblioteca Guard
- Métodos
- Core MY_Controller
- Core MY_Model
- Métodos
- Notificações
- Plugins JS
- Licença MIT
Instalando
Faça o download como ZIP ou clone o repósitorio em seu ambiente local, em seguida basta realizar a configuração da aplicação e começar a usa-la para desenvolver sua sistema web.
Configurando
Conectando ao Banco de Dados
Credenciais do banco configuradas em application/config/database.php
- Troque os valores
YOURHOST
,DB_USERNAME
,DB_PASSWORD
eDB_NAME
pelo host, username, senha e nome do banco de dados respectivamente
Helper functions
O template possui algumas funções pré-definidas em PHP para facilitar no seu desenvolvimento.
- debug()
- str_slug()
- format_money()
- validate_card()
- time_ago()
- hextorgba()
Funções
-
debug()
-
str_slug()
-
format_money()
- validate_card()
Essa função utiliza o Algoritmo de Luhn para fazer o checksum dos números do cartão retornando TRUE ou FALSE.
-
time_ago()
- hextorgba()
Assets
Defina a source de todos os import .js
e .css
em application/config/assets.php
- No array
$config['default']
configure a ordem, da esquerda para a direita, em que os assets serão carregados. Note que os arquivosfunctions.js
estyle.css
devem ser carregados por último. É válido freezar que os assets apenas serão carregados caso sejam definidos nesse array.
O
$config["default"]
é o array responsável por definir quais e em qual ordem os assets serão importados.O indice
custom
deve estar sempre na última posição do vetor.
- Defina o caminho dos plugins a serem utilizados sempre respeitando a estrutura dos arrays(como no exemplo a seguir) e adicionando o nome deste ao
$config['default']
(como mostrado a cima).
Carregado por padrão(bootstrap e toastr)
Note que o Jquery não é carregado nos
da viewassets
, visto que se carrega-lo ao final do documento, não será possível utiliza-lo no meio do<body>
, então carrego ojquery 3.4.1
noapplication/views/master.php
Essa
$config
é carregada no método construtuor do Template Para exibir os css/js são utilizados as funçõesprint_css()
eprint_js()
do Template
Biblioteca Template
Essa classe tem como função principal auxiliar no fluxo MVC
e possue métodos para carregar os assets(módulos), renderizar views, definir o title
da página e carregar informações do Controller => View
.
Métodos
- set_title()
- print_title()
- loadDefault()
- use_module()
- loadModules()
- set()
- item()
- addCss()
- addJs()
- print_js()
- print_css()
- view()
- print_view()
- page()
- print_component()
- print_page()
- render()
Não explicarei todos os métodos, pois muitos deles são apenas funções auxiliares e acabam nunca sendo utilizadas na prática pelo desenvolvedor.
Métodos principais
- set()
Essa função deve ser utilizada nos controllers para enviar informação para as views
Exemplo
- item()
Essa função deve ser utilizada nas views para recuperar informações enviadas pelo controller.
Exemplo
- set_title()
Essa função deve ser utilizada nos controllers para definir o título da página que será carregada.
Exemplo
- print_title()
Essa função deve ser utilizada nas views para printar o titulo da página uma vez que este tenha sido definido no controller pela função
set_title
. Deve ser chamada na viewmaster.php
a qual carrega a estrutura do HTML.
Exemplo
- print_js()
Essa função deve ser utilizada nas views para imprimir na tela os arquivos JS definidos nos Assets. Deve ser chamada na view
master.php
a qual carrega a estrutura do HTML.
Exemplo
- print_css()
Essa função deve ser utilizada nas views para imprimir na tela os arquivos CSS definidos nos Assets. Deve ser chamada na view
master.php
a qual carrega a estrutura do HTML.
Exemplo
Note que nas funções
print_css
eprint_js
possuem uma verificação deENVIRONMENT
a qual define o estágio que está o projeto, possuindo os valores:production
,testing
edevelopment
. Quando não estivermos em ambiente de produção, a URL do arquivo recebe um sufixo?version='.time().'
, para que o navegador seja sempre forçado a baixar o arquivo evitando problemas de cache.
- print_component()
Essa função deve ser utilizada nas views para imprimir um componente existente em
application/views/components/
- print_page()
Essa função deve ser utilizada nas views para imprimir uma página existente em
application/views/pages/
- render()
Deve ser utilizado como um substituto do $this->load->view()
do codeigniter para carregar páginas completas, dê uma olhada na view master para entender melhor o fluxo de carregamento.
Essa função deve ser utilizada nos controllers para exibir uma página existente em
application/views/pages/
dentro do layoutapplication/views/master.php
com seus respectivos módulos de css/js.
Exemplo
Biblioteca Guard
Essa classe tem como função facilitar a manipulação da variável de sessão do usuário, utiliza-se as funções do Session Library do Codeigniter.
É restrito apenas à sessão de usuário (
$_SESSION['user']
ou$this->session->user
);
Métodos
- logged()
Exemplo
- item()
Exemplo
- login()
Percebam que nessa função é utilizado o método
validate()
do model de Usuarios. Essa função é responsável por fazer a busca através do email e da senha informados como parâmetros e retornar as tuplas referente ao usuário buscado ou false caso não encontre. Outro ponto importante é que deve ser utilizado hash para criptografar as senhas, sendo necessário o uso da função password_hash para inserir a senha no banco e password_verify para validar a senha no momento do login.
Exemplo
- update()
Exemplo
- getShortName()
Exemplo
- logout()
Exemplo
Core MY_Controller
Localizado em application/core/MY_Controller.php
Essa classe acaba sendo mais simples, pois cada controller
é muito específico. Contudo é no método construtor que carregamos as bibliotecas Guard.
Todos os controllers devem herdar o
MY_Controller
através da palavra chaveextends
do PHP.
Core MY_Model
Localizado em application/core/MY_Model.php
Essa classe é responsável por permitir a reutilização de funções que são comuns em aplicações web que utilizam SQL para manipular um banco de dados.
Nota: O MY_Model não substitui o Query Builder, então se você tem que usar alguma query complexa, não utilize o MY_Model para isso.
Basicamente a mágica acontece ao utilizar-se do conceito de herança da Programação Orientada a Objetos. Dessa forma os models a serem criados pelo desenvolvedor devem herdar essa classe através da palavra chave extends
.
O $table
(nome da tabela) e $table_id
(chave primária) são atributos essenciais para isso, pois ambas representam as variáveis de qualquer consulta SQL básica, dessa forma podemos reutilizar funções como create, update e delete que ja existem no CI e além disso criar algumas novas como getAll() ou getAllLimit() para todos os models básicos.
É obrigatório a inicialização destas variáveis em todos os models que herdarem esta classe.
- Exemplo Model para tabela de
usuarios
cuja a chave primária éid_usuario
Métodos
- create()
Exemplo
- update()
O campo
id
do array é obrigatório
Exemplo
Perceba que não importa o nome da sua chave primária, o array com dados para update deve sempre conter um campo chamado
id
!
- delete()
Exemplo
- getById()
Exemplo
- getAll()
Exemplo 1:
Exemplo 2:
Exemplo 3:
- getAllLimit()
Exemplo
Esta função foi feita apenas para auxiliar no desenvolvimento da aplicação, dificilmente você usará ela em produção. Deve ser utilizada quando você queira testar uma listagem de dados e possa limitar a quantidade de resultados, porém sem poder filtra-los.
Notificações
O sistema de notificações deste template utiliza a biblioteca javascript Toastr juntamente com a função nativa do Codeigniter SESSION Flashdata.
Utilizaremos a função notifyUser()
para exibir as notificações através do javascript.
Para trazermos notificações de um Controller para uma View após realizarmos um redirect
utilizaremos o conceito de SESSION FLASHDATA, o qual permite armazenar informações válidas somente na próxima requisição e após isso serão apagadas automaticamente.
Exemplo de como criar uma notificação no Controller.
O arquivo application/views/components/alerts.php
contém a ligação entre o PHP
e o Javascript
:
A função
notifyUser()
está definida emassets/js/functions.js
Existem duas formas de se exibir uma notificação para o usuário
- PHP
No controller, antes do redirect()
, deve-se criar uma session flashdata com o índice definido como sendo um dos cinco tipos citados abaixo.
- Javascript
Em qualquer view basta chamar a função notifyUser
passando como primeiro parâmetro o tipo da notificação e segundo a mensagem que desejar.
Existem cinco tipos de notificações pré-definidas: success
, error
, warning
, info
e loading
.
- success:
Deve ser utilizada para notificações de sucesso.
- error:
Deve ser utilizada para notificações de erros ou falhas do sistema
- warning:
Deve ser utilizada para notificações de atenção ao usuário
- info:
Deve ser utilizada para dar informações extras ao usuário
- loading:
Deve ser utilizada para funções que utilizem ajax
chamando a função notifyUser
na beforeSend()
para que passe para o usuário a sensação de que algo está acontecendo visto que o ajax
é dinâmico e não é percebido pelo usuário final.
Exemplo de notificação loading
:
- Remover as notificações ativas
Para fazer com que as notificações desapareçam basta usar a função do Toastr:
Plugins JS
Localizados em assets/vendors/
- animate.css
- animsition
- autosize textarea
- bootstrap-4.1.3-dist
- bootstrap-daterangepicker
- bootstrap-datetimepicker
- bootstrap-wysiwyg(Text editor)
- Chart.js
- countdown.js
- cropper
- css-hamburgers
- datatables.net
- datatables.net-buttons
- datatables.net-fixedheader
- datatables.net-keytable
- datatables.net-responsive
- datatables.net-scroller
- DateJS
- devbridge-autocomplete
- dropzone(Drag'n'drop files)
- eve
- fastclick
- Flot
- flot.curvedlines
- fullcalendar
- gauge.js
- google-code-prettify
- iCheck
- ion.rangeSlider
- jquery.easy-pie-chart
- jquery.hotkeys
- jquery.inputmask
- jquery.tagsinput
- jquery-knob
- jquery-mousewheel
- jQuery-Smart-Wizard
- jquery-sparkline
- jqvmap
- kartik-v-bootstrap-fileinput
- malihu-custom-scrollbar-plugin
- mjolnic-bootstrap-colorpicker
- mocha
- moment
- morris.js
- normalize-css
- nprogress
- parsleyjs
- pdfmake
- perfect-scrollbar
- pnotify
- requirejs
- select2
- skycons
- starrr
- switchery
- toastr notification
- transitionize
- validator
- maskMoney
Contribuição
Desenvolvido por Bernardo Camargo @bernacamargo