<?php

//var_dump( __FILE__ );

class frameworkConnection
{
  public $aConf = array(
    "aBase" => array(
      "aFmwkMode" => array(),
      "aFmwkFunc" => array(),
      "aFmwkLine" => array(),
      "aFmwkMode_default" => array(),
      "aFmwkFunc_default" => array(),
      "aFmwkLine_default" => array(),
      "aFmwkMode_module" => array(),                                                                // 2016-02-23
      "aFmwkFunc_module" => array(),
      "aFmwkLine_module" => array(),
    ),
  );
  public $oFramework = null;

  function __construct( $aPara = null )
  {
    //var_dump( "frameworkConnection.__construct" );
    $this->setLinkToFramework();
  }

  function setLinkToFramework( $aPara = null ) 
  {
    //var_dump( "frameworkConnection.setLinkToFramework - INI" );
    
    $bStck = isset( $_POST['sFunc'] ) ? true : false;
    $sFile = $bStck ? "stck" : "fmwk";
    
    //$s_project_config = FMWK_CLIE_SERV."project/php/conf/base.php";                                 // http porque el cliente puede estar en otro servidor
    $s_default_config = STRUCTURE_DEFAULT_PATH."php/conf/base.cls";                                 // 20160213. Se define un solo lugar para las clases comunes
    $s_module_config = FMWK_CLIE_PATH."project/php/conf/base.cls";                                  // 2016-02-13. 
    
    //include_once( $s_project_config );                                                              // 2016-02-23. PARECE QUE NO LEVANTA LOS ARRAYS DESDE ESTE INCLUDE
    include_once( $s_default_config );                                                              // 2016-02-23. default. include_once no permitia la carga de los arrays en una segunda ejecucion del codigo
    
    $s_file = FMWK_YOBI_PATH."php/core/$sFile.cls";
    //var_dump( "$sFile.cls" );
    //var_dump( $s_file );

    //include_once( FMWK_YOBI_SERV."php/core/$sFile.cls" );                                           // al incluir el archivo cls es mas rapido que el php
    include_once( $s_file );  
    
    if ( FMWK_CLIE_MODU )
      include_once( $s_module_config );

    // seteo el objeto con las clases locales utilizadas por la app
    // 20160213 los arrays de default base.php no deben tener declaracion global
    global $aFmwkMode;                                                                              // 2016-02-23. toma el valor del array que se declara por los includes de las clases yApp no por s_project_config
    global $aFmwkFunc;
    global $aFmwkLine;
    
    //var_dump( $aFmwkMode );

    if ( empty( $this->aConf['aBase']['aFmwkMode'] ) )
      $this->aConf['aBase']['aFmwkMode'] = $aFmwkMode;
    if ( empty( $this->aConf['aBase']['aFmwkFunc'] ) )
      $this->aConf['aBase']['aFmwkFunc'] = $aFmwkFunc;
    if ( empty( $this->aConf['aBase']['aFmwkLine'] ) )
      $this->aConf['aBase']['aFmwkLine'] = $aFmwkLine;

    if ( empty( $this->aConf['aBase']['aFmwkMode_default'] ) )
      $this->aConf['aBase']['aFmwkMode_default'] = $aFmwkMode_default;
    if ( empty( $this->aConf['aBase']['aFmwkFunc_default'] ) )
      $this->aConf['aBase']['aFmwkFunc_default'] = $aFmwkFunc_default;
    if ( empty( $this->aConf['aBase']['aFmwkLine_default'] ) )
      $this->aConf['aBase']['aFmwkLine_default'] = $aFmwkLine_default;

    // 2016-02-23 - para levantar las clases del modulo
    if ( FMWK_CLIE_MODU )
    {
      if ( empty( $this->aConf['aBase']['aFmwkMode_module'] ) )
        $this->aConf['aBase']['aFmwkMode_module'] = $aFmwkMode_module;
      if ( empty( $this->aConf['aBase']['aFmwkFunc_module'] ) )
        $this->aConf['aBase']['aFmwkFunc_module'] = $aFmwkFunc_module;
      if ( empty( $this->aConf['aBase']['aFmwkLine_module'] ) )
        $this->aConf['aBase']['aFmwkLine_module'] = $aFmwkLine_module;
    }
    
    if ( ! $bStck )
    {
      $this->oFramework = new fmwk();                                                               // inicializacion del objeto framework
      $fmwk = $this->oFramework;                                                                    // esto es para que no afecte al codigo con la vieja estructura
    }
    
    //var_dump( "frameworkConnection.setLinkToFramework - FIN" );
  }
}