carregar_modul('sistema'); $_ENV['configuracio']->carregar_modul('imatges'); $_ENV['configuracio']->carregar_modul('contacte_web'); $_ENV['configuracio']->carregar_modul('metatags'); // Creem smarty per passar dades cap a sistema de templates $smarty = new smarty_ad3(dirname(__FILE__),'templates_c'); // rutes per fitxers php i web $smarty->assign('cfg_web',CFG_WEB); $smarty->assign('cfg_web',CFG_WEB); $smarty->assign('cfg_web_continguts',CFG_WEB_CONTINGUTS); $smarty->assign('base_web',BASE_WEB); // Objecte superglobal amb les traduccions que es van carregant $traduccions_generals = $_ENV['traduccions_globals']->carregar_modul('web_general'); /* @var $traduccions_generals llista_traduccions */ $smarty->assign_by_ref('traduccions_generals',$traduccions_generals); $idiomes->traduccions = $_ENV['traduccions_globals']->carregar_modul('sistema'); $traduccions_mobilitat = $_ENV['traduccions_globals']->carregar_modul('mobilitat'); $smarty->assign_by_ref('traduccions_mobilitat',$traduccions_mobilitat); /* anem per carregar la configuració del sistema que tenim a base de dades */ $_ENV['configuracio']->distribueix_smarty_modul($smarty,'contacte_web'); $_ENV['configuracio']->distribueix_smarty_modul($smarty,'metatags'); $_ENV['configuracio']->distribueix_smarty_modul($smarty,'sistema'); $smarty->assign('cfg_codi_lleng_metatag',$idiomes->idiomes[CFG_IDIOMA_USUARI]->codi_lleng_metatag); /* mirem si la web es mostra al navegador o al mobil */ include(DIRECTORI_BASE . '/lib_php/mobile_device_detect.php'); $smarty->assign("es_mobil",mobile_device_detect()); /* fi mirem si la web es mostra al navegador o al mobil */ // carreguem la informació d'estructura de la web $arbre_informacio = new arbre_sql($basedades,$idiomes); $id_node = 0; if(isset($_REQUEST['id'])) $id_node = $_REQUEST['id']; if(isset($_REQUEST['accio'])) if($_REQUEST['accio']== CFG_ACCIO_DEFECTE_GENERAL) unset($_REQUEST['accio']); if(isset($_REQUEST['md'])) if($_REQUEST['md']!="articles") $id_node = 0; // AD3 anticuat // diferent comportament en funci� de si es tracta d'esite o no, per tant si t� portada o no if(MODE_ESITE == 1) { if(!isset($_REQUEST['md'])&&!isset($_REQUEST['id'])) $_SERVER['QUERY_STRING'] = 'md=articles&accio=mostra&id=' . NUM_SECCIO_INICI; if (!isset($_REQUEST["md"])) $_REQUEST["md"] = 'articles'; if (!isset($_REQUEST["id"])) { $_REQUEST["id"] = NUM_SECCIO_INICI; $id_node = NUM_SECCIO_INICI; } } else if (!isset($_REQUEST["md"])) $_REQUEST["md"] = 'portada'; // EVT anticuat // diferent comportament en funci� de si es tracta d'esite o no, per tant si t� portada o no // creem la informació de la pàgina actual $info_pagina = new informacio_pagina($basedades,$idiomes,$_REQUEST); // carreguem l'usuari de continguts privats if(isset($_SESSION['usuari'])) { $info_pagina->usuari = unserialize($_SESSION['usuari']); define('CFG_USUARI_POT_EDITAR',$info_pagina->usuari->pot_editar()); } else define('CFG_USUARI_POT_EDITAR',false); $smarty->assign('usuari_pot_editar', CFG_USUARI_POT_EDITAR); $smarty->assign_by_ref('usuari_loginat', $info_pagina->usuari); /*****************************************************/ // Càrrega de menú /*****************************************************/ // carreguem el node origen de la web $menu = new menu_web($basedades,$idiomes,$smarty,$info_pagina); $menu->prepara_menu($arbre_informacio,NODE_WEB,$_REQUEST); $menu->carrega_menu(); $smarty->assign_by_ref("menu",$menu); /*****************************************************/ // FINAL Càrrega de menú /*****************************************************/ $smarty->assign_by_ref("info_pagina",$info_pagina); $smarty->assign("cfg_idioma_usuari",CFG_IDIOMA_USUARI); /*****************************************************/ // MODULS PERSISTENTS // Carrega i execució de mòduls persistens /*****************************************************/ require_once('persistent.php'); /*****************************************************/ // MODULS PERSISTENTS FINAL /*****************************************************/ $entra = true; $algun_modul_executat = false; // ************************************************** // MODULS SOTA DEMANDA // Carreguem el mòdul i en fem l'execució (dispatcher) // ************************************************** $cal_login = false; if($info_pagina->usuari_actual()=='' && $cal_login) { $info_pagina->template_index = 'index_login.tpl.htm'; $smarty->assign_by_ref("url_pagina_desti",$_SERVER["QUERY_STRING"]); if(isset($_REQUEST['md'])) { if($_REQUEST['md']!='usuaris') { $_REQUEST['md'] = 'usuaris'; $_REQUEST['accio'] = 'form_login'; } if(isset($_REQUEST['accio'])) $accio = $_REQUEST['accio']; else $accio = 'form_login'; // accions permeses si encara no hem fet login $accions_permesses = array('reset_password_form','login','recorda_password', 'reset_password_guardar','missatges','form_login'); if($_REQUEST['md']=="usuaris" && in_array($accio,$accions_permesses)) { $loginat = true; $_REQUEST['ambit'] = 'administrador'; } } } if (isset($_REQUEST["md"]) && $entra) { $codi_modul = $_REQUEST["md"]; $modul_tmp = new modul_bd($codi_modul,$basedades,$idiomes); if($modul_tmp->actiu && $modul_tmp->carregat()) { // incloem la classe base del modul actual $fitxer_modul = DIRECTORI_BASE . "/" . $modul_tmp->ruta_fitxer_inicial; if(file_exists($fitxer_modul)) { require_once($fitxer_modul); } else excepcio_imprimir('',__FUNCTION__,"No existeix el fitxer del modul " . $codi_modul . ": " . $modul_tmp->ruta_fitxer_inicial,__LINE__,__FILE__); // crearem la classe base $classe = $codi_modul . "_modul"; $modul_actual = new $classe($basedades,$idiomes,$smarty,$info_pagina,$codi_modul); if(isset($_REQUEST['accio'])) $accio = $_REQUEST['accio']; else $accio = $modul_tmp->accio_defecte_web; $modul_actual->crea_breadbrumbs($accio,$_REQUEST); $modul_actual->executa_accio($accio,$_REQUEST); $smarty->assign_by_ref("modul_principal",$modul_actual); $algun_modul_executat = true; } else excepcio_imprimir("",__FUNCTION__,"El mòdul " . $codi_modul . " no existeix o bé no està actiu.",__LINE__,__FILE__); } // construim les url's de canvi d'idioma i les passem a smarty $info_pagina->carrega_info_final(); // mirem si es tracta de la vista d'impresi� if(isset($_REQUEST['vista_imprimir'])) { $info_pagina->template_index = "index_sense_menus.tpl.htm"; $info_pagina->url_imprimir = ""; $info_pagina->url_enviar = ""; } $smarty->assign_by_ref('idiomes',$idiomes); require_once(DIRECTORI_BASE . '/ajax.server.comu.php'); $smarty->assign('xajax_js',$xajax->getJavascript(BASE_WEB . "/xajax_0.5/")); $idiomes->crea_urls_canvi_idioma($info_pagina->title_parcial()); $smarty->assign_by_ref("idiomes",$idiomes); /*************************************************** * Indiquem si cal o no carregar els fulls CSS ***************************************************/ $url_activacio_estils = construeix_url_actual(); // Com que es possible que a la url retornda tinguem la varible d'activacio / desactivacio // dels estils ho eliminem per a poder-ho inicialitzar correctament $url_activacio_estils = str_replace('&no_css=1','',$url_activacio_estils); $url_activacio_estils = str_replace('&si_css=1','',$url_activacio_estils); $url_activacio_estils = str_replace('?no_css=1','',$url_activacio_estils); $url_activacio_estils = str_replace('?si_css=1','',$url_activacio_estils); if($url_activacio_estils == CFG_PAGINA_PRINCIPAL) { $url_activacio_estils .= "?"; } else { $url_activacio_estils .= "&"; } $smarty->assign('url_activacio_estils',$url_activacio_estils); if(isset($_REQUEST['si_css'])) { // Si ens diuen que s'han de mostrar els estils desactivem el flag indicador de NO // carrega dels fulls d'estils unset($_SESSION['no_css']); } else if((isset($_REQUEST['no_css']))||(isset($_SESSION['no_css']))) { $smarty->assign('no_css', 1); $_SESSION['no_css'] = 1; } /*************************************************** * FI Indiquem si cal o no carregar els fulls CSS ***************************************************/ // ja tenim totes les dades, anem a mostrar la pàgina. $smarty->display($info_pagina->template_index); $_SESSION['configuracio'] = serialize($_ENV['configuracio']); // desconnectem de la base de dades $basedades->desconnecta(); // dona informaci� sobre l'eficiencia de la p�gina: temps i �s de memoria if(CFG_CMS_DEBUG) { $diff=round(getmicrotime()-$start,3); echo "
"; echo "Temps d'execucio: ". round(getmicrotime()-$start,3) ." s.
"; echo "Memoria usada: " . round(memory_get_usage()/1024,2) ." KB
"; } session_write_close();