webcol/Calima

View on GitHub
mvc/controladores/instaladorControlador.php

Summary

Maintainability
A
2 hrs
Test Coverage
<?php

/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the MIT license. For more information, see
 * @category   
 * @package    sistema/nucleo
 * @copyright  Copyright (c) 2006 - 2014 webcol.net (http://www.webcol.net/calima)
 * @license    https://github.com/webcol/Calima/blob/master/LICENSE    MIT
 * @version    ##BETA 1.1##, ##2014 - 2015##
 * <http://www.calimaframework.com>.
 */
//namespace mvc\controladores;
//verificamos la version de php en tu servidor web o local
if (version_compare(PHP_VERSION, '5.3.20', '<'))
{
    die('Su Hosting tiene una version < a PHP 5.3.20 debes actualizar para esta version de Calima. su version actual de PHP es: '.PHP_VERSION);
}




//Cargamos los Espacios de nombres para el nucleo y los ayudantes
//Utilizamos un alias
use Sistema\Nucleo as Sisnuc;
use Sistema\Ayudantes as Sisayu;

class instaladorControlador extends Sisnuc\CFControlador
{
    //put your code here
    private $_basedatos;
    private $_ayuda;
    private $_analytics;
    public function __construct() {
        parent::__construct();
       $this->_basedatos=$this->cargaModelo('instalador'); 
        
        $this->_ayuda= new Sisayu\CFPHPAyuda;
    }
    
    public function index(){
        $this->_vista->titulo="Instalador de Inicio App";
        $this->_vista->imprimirVista('index','instalador');
        
    }
    
    //metodo para crear la base de datos de inicio de proyecto
    public function crearBaseDatos(){
        
       
        $this->_basedatos->crearTablas();    
            
        $this->_ayuda->redireccionUrl('usuario');
        
    }
    
    public function verificarBd(){
        
               $proyecto=$_POST['proyecto'];
               if(isset($_POST['analytics'])!=''){
                    $this->_analytics="'".$_POST['analytics']."'";
               }
                   $this->_analytics="'"."UA-xxxxxx"."'";
               
               
               $analytics=$this->_analytics;
               $hostbd="'".$_POST['hostbd']."'";
               $nombrebd="'".$_POST['nombrebd']."'";
               $usuariobd="'".$_POST['usuariobd']."'";
              echo $clavebd="'".$_POST['clavebd']."'";
               $config="'".$_POST['config']."'";
               
             $a= $this->_basedatos->verificarBdM($_POST['nombrebd'],$_POST['usuariobd'],$_POST['clavebd']);

                     
             
             if($a){
                 
                $this->paso1($proyecto,$analytics,$hostbd,$nombrebd,$usuariobd,$clavebd,$config);
                
             }else{
                 $this->_ayuda->redireccionUrl('instalador?error="Los datos que estas ingresando no coniciden con los de la BD"');
             }
        
    }


    public function paso1($proyecto,$analytics,$hostbd,$nombrebd,$usuariobd,$clavebd,$config){
        
               
         echo $proyecto; 
             
        chmod (RUTA_NUCLEO."CFConfiguracion.php", 0777);
      //chmod($hostbd.$proyecto."Sistema/Nucleo/CFConfiguracion.php", 0755);

        $file = fopen(RUTA_NUCLEO."CFConfiguracion.php", "w");
        
        fwrite($file, "<?php " . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* inicio la configuracion*/" . PHP_EOL);
        fwrite($file, "define('Cf_CONFIG_INICIO', $config);" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Defino zona horaria*/" . PHP_EOL);
        fwrite($file, "date_default_timezone_set('America/Bogota');" . PHP_EOL.PHP_EOL);
        
        
        fwrite($file, "/* Define una cuenta de correo para uso del app */" . PHP_EOL);
        fwrite($file, "define('DESTINO_EMAIL', 'info@calimaframework.com');" . PHP_EOL.PHP_EOL);        

        fwrite($file, "/* Defino el formato de fecha */" . PHP_EOL);
        fwrite($file, "define('Cf_FORMATO_FECHA', 'l, d F Y');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* CalimaFramework clave de licencia */" . PHP_EOL);
        fwrite($file, "define('Cf_LICENSE', 'Cf-O17N-JHK8-TDJL-B5AO-8WKA');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* mensajes de warnin */" . PHP_EOL);
        fwrite($file, "define('CF_DEBUG', TRUE);" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Idioma local */" . PHP_EOL);
        fwrite($file, "define('CF_LOCALE', 'es_ES');" . PHP_EOL.PHP_EOL);
        
        
        fwrite($file, "/* Create una cuenta con google analytics y agrega el UA en la constante */" . PHP_EOL);
        fwrite($file, "define('CF_ANALYTICS', $analytics);" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* con la siguiente constante podras crear una ip fija de tu empresa para hacer " . PHP_EOL);
        fwrite($file, "* pruebas en tu entorno de red basado en tu ip que te ofrece tu proveedor de servicio" . PHP_EOL);
        fwrite($file, "*/" . PHP_EOL);
        fwrite($file, "define('Cf_IPPRUEBAS', 'x.x.x.x');" . PHP_EOL.PHP_EOL);
        
        
        fwrite($file, "/* Transladamos a formato local */" . PHP_EOL);
        fwrite($file, "define('CF_FECHA_FORMATO_LOCAL', '%A, %d %B %G');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Translatable time format */" . PHP_EOL);
        fwrite($file, "define('CF_LOCALE_TIME_FORMAT', ' %T');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Por defecto almacenamos los datos de la aplicacion. */" . PHP_EOL);
        fwrite($file, "define('CF_PATH_DATA', dirname(__FILE__) . '/Cf-data');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "#Configuracion Basica" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* La siguiente CONSTANTE permite el apuntapiento para archivos js, css, imagenes desde la vista hacia el directorio _public */" . PHP_EOL);
        fwrite($file, "define('Cf_BASE_URL', 'http://localhost$proyecto');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* definimos un controlador inicial en nuestro proyecto */" . PHP_EOL);
        fwrite($file, "define('CONTROLADOR_INICIAL', 'index');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Sedefine una CONSTANTE al directorio adicionales en la vista */" . PHP_EOL);
        fwrite($file, "define('ADICIONALES_VISTA', 'adicionales');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Definimos una CONSTANTE como nombre de aplicacion */" . PHP_EOL);
        fwrite($file, "define('CF_AP_NOMBRE', 'CalimaFramework');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Definimos un Slogan para la aplicacion web */" . PHP_EOL);
        fwrite($file, "define('CF_AP_SLOGAN', 'Tu Framework php MVC hispano ');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Empresa de la aplicacion */" . PHP_EOL);
        fwrite($file, "define('CF_AP_EMPRESA', 'www.webcol.net');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* Creditos de la aplicacion */" . PHP_EOL);
        fwrite($file, "define('CF_AP_CREDITOS', 'CopyLeft 2015 Debeloped by www.webcol.net');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "#webcol seguridad" . PHP_EOL. PHP_EOL);
        
        fwrite($file, "/* Definimos un indice de clave para concatenar en encriptacion de datos */" . PHP_EOL);
        fwrite($file, "define('Cf_KEY_MD5', 'P0L1');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/*  en el controlador concatena la constante con el llamado a la funcion generarCadenaAleatoria() de Cf_PHPSeguridad */" . PHP_EOL);
        fwrite($file, "define('Cf_CSRF_SECRET','Cfbeta');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/*  Si usted va a utilizar SSL debe de cambiar a true */" . PHP_EOL);
        fwrite($file, "define('Cf_SESION_PARAMETRO_SEGURO','false');" . PHP_EOL.PHP_EOL);
        
        fwrite($file, "/* #base de datos */" . PHP_EOL. PHP_EOL);
        
        fwrite($file, "/* Configuracion de tu base de datos */" . PHP_EOL);
        fwrite($file, "define('CF_BD_HOST', $hostbd);" . PHP_EOL);
        fwrite($file, "define('CF_BD_NOMBRE', $nombrebd);" . PHP_EOL);
        fwrite($file, "define('CF_BD_USUARIO', $usuariobd);" . PHP_EOL);
        fwrite($file, "define('CF_BD_CLAVE', $clavebd);" . PHP_EOL);
        fwrite($file, "define('CF_BD_CHAR', 'utf8');" . PHP_EOL);
        fwrite($file, "define('CF_BD_CONECTOR', 'mysql');");
        fwrite($file, "");
        fclose($file);
        
        $this->_ayuda->redireccionUrl('instalador/crearBaseDatos');
        
        }
        
    }