Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ####################################################################
- // Controller #########################################################
- // ####################################################################
- <?php defined('BASEPATH') OR exit('No direct script access allowed');
- class Controllers extends CI_Controller {
- public function __construct(){
- parent::__construct();
- $this->load->library('controllerlist');
- }
- /**
- * Registrando os controllers no banco de dados ...
- * @return [type] [description]
- */
- // public function registerController(){
- private function registerController(){
- exit();
- // Excluindo todos os registros de métodos ...
- $trunc = $this->db->query("TRUNCATE TABLE sys_metodos");
- $trunc_1 = $this->db->query("TRUNCATE TABLE sys_permissoes");
- // Reescrevendo todos os registros de métodos ...
- $ctrls = $this->controllerlist->getControllers();
- $c = 0;
- $count = 0;
- foreach ($ctrls as $index => $val){
- foreach ($val as $indice) {
- // echo $c++ ." - ". $index ." - ". $indice . "<br>";
- $data = array(
- 'classe' => $index, // controller
- 'metodo' => $indice, // metodo
- 'apelido' => "{$index}/{$indice}", // controller/metodo
- 'privado' => 0, // 0 publico 1 privado
- 'apelido_classe' => $index, // controller
- 'modulo' => "Pesquisa"
- );
- $sql = $this->db->insert('sys_metodos', $data);
- $data_1 = array(
- 'id_metodo' => $this->db->insert_id(),
- 'id_usuario' => 1
- );
- $sql_1 = $this->db->insert('sys_permissoes', $data_1);
- }
- } echo "Terminado.";
- }
- }
- /* End of file controllers.php */
- /* Location: ./application/controllers/controllers.php */
- // ####################################################################
- // Biblioteca #########################################################
- // ####################################################################
- <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
- /***
- * File: (Codeigniterapp)/libraries/Controllerlist.php
- *
- * A simple library to list all your controllers with their methods.
- * This library will return an array with controllers and methods
- *
- * The library will scan the "controller" directory and (in case of) one (1) subdirectory level deep
- * for controllers
- *
- * Usage in one of your controllers:
- *
- * $this->load->library('controllerlist');
- * print_r($this->controllerlist->getControllers());
- *
- * @author Peter Prins
- */
- class ControllerList {
- /**
- * Codeigniter reference
- */
- private $CI;
- /**
- * Array that will hold the controller names and methods
- */
- private $aControllers;
- // Construct
- function __construct() {
- // Get Codeigniter instance
- $this->CI = get_instance();
- // Get all controllers
- $this->setControllers();
- }
- /**
- * Return all controllers and their methods
- * @return array
- */
- public function getControllers() {
- return $this->aControllers;
- }
- /**
- * Set the array holding the controller name and methods
- */
- public function setControllerMethods($p_sControllerName, $p_aControllerMethods) {
- $this->aControllers[$p_sControllerName] = $p_aControllerMethods;
- }
- /**
- * Search and set controller and methods.
- */
- private function setControllers() {
- // Loop through the controller directory
- foreach(glob(APPPATH . 'controllers/*') as $controller) {
- // if the value in the loop is a directory loop through that directory
- if(is_dir($controller)) {
- // Get name of directory
- $dirname = basename($controller, EXT);
- // Loop through the subdirectory
- foreach(glob(APPPATH . 'controllers/'.$dirname.'/*') as $subdircontroller) {
- // Get the name of the subdir
- $subdircontrollername = basename($subdircontroller, EXT);
- // Load the controller file in memory if it's not load already
- if(!class_exists($subdircontrollername)) {
- $this->CI->load->file($subdircontroller);
- }
- // Add the controllername to the array with its methods
- $aMethods = get_class_methods($subdircontrollername);
- $aUserMethods = array();
- foreach($aMethods as $method) {
- if($method != '__construct' && $method != 'get_instance' && $method != $subdircontrollername) {
- $aUserMethods[] = $method;
- }
- }
- $this->setControllerMethods($subdircontrollername, $aUserMethods);
- }
- }
- else if(pathinfo($controller, PATHINFO_EXTENSION) == "php"){
- // value is no directory get controller name
- $controllername = basename($controller, EXT);
- // Load the class in memory (if it's not loaded already)
- if(!class_exists($controllername)) {
- $this->CI->load->file($controller);
- }
- // Add controller and methods to the array
- $aMethods = get_class_methods($controllername);
- $aUserMethods = array();
- if(is_array($aMethods)){
- foreach($aMethods as $method) {
- if($method != '__construct' && $method != 'get_instance' && $method != $controllername) {
- $aUserMethods[] = $method;
- }
- }
- }
- $this->setControllerMethods($controllername, $aUserMethods);
- }
- }
- }
- }
- // EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement