ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙkonektatu(); $nodoak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $nodoak; } ////////////////////////////////////////////// LISTA TIPOS-NODOS ////////////////////////////////////////////// public function nodo_mota_lista($zebaldintza='',$baloreak) { // Realizar CONSULTA $taula = 'tipo_nodo'; $eremuak = 'tipo_ID,tipo_titulo1,tipo_titulo2,tipo_titulo3,tipo_titulo4,tipo_orden'; $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $nodomotak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $nodomotak; } //////////////////////////////////////////// LTIMO NODO INSERTADO //////////////////////////////////////////// public function azken_nodoa_lortu($usuario) { // Realizar CONSULTA $kontsulta = "SELECT nodo_ID FROM nodo WHERE nodo_eguneratzaile = ? ORDER BY nodo_ID DESC LIMIT 1"; $baloreak = array($usuario); $db = new Datubasea($usuario); $db->konektatu(); $nodoak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $nodoak; } ///////////////////////////////////////////// VISIBILIDAD DE NODO ///////////////////////////////////////////// public function nodo_visible($nodoa) { $ikusgarri = true; $aux = new Auxiliar(); // SITES $zebaldintza = " WHERE site_ID IN (SELECT site FROM nodo_site WHERE nodo = ?)"; $balioak = array($nodoa); $siteak = $aux->site_lista($zebaldintza,$balioak); if (count($siteak) == 0) $ikusgarri = false; // GRUPOS $zebaldintza = " WHERE grupo_ID IN (SELECT grupo FROM nodo_grupo WHERE nodo = ?)"; $balioak = array($nodoa); $taldeak = $aux->grupo_lista($zebaldintza,$balioak); if (count($taldeak) == 0) $ikusgarri = false; // Realizar CONSULTA (QUERY) $kontsulta = "SELECT nodo_ID FROM nodo WHERE nodo_ID = ?"; $baloreak = array($nodoa); //$db = new Datubasea($usuario); $db = new Datubasea(); $db->konektatu(); $nodoak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); if (count($nodoak) == 0) $ikusgarri = false; unset($aux); return $ikusgarri; } //////////////////////////////////////////////// NODO PBLICO ///////////////////////////////////////////////// public function nodo_publico($nodoa) { $publikoa = false; $aux = new Auxiliar(); $zebaldintza = " WHERE grupo_ID IN (SELECT grupo FROM nodo_grupo WHERE grupo = 1 AND nodo = ?)"; $balioak = array($nodoa); $taldeak = $aux->grupo_lista($zebaldintza,$balioak); if (count($taldeak) > 0) $publikoa = true; unset($aux); return $publikoa; } ////////////////////////////////////////////// LISTA CONTENIDOS /////////////////////////////////////////////// // Lista unificada de APARTADOS(1), PAGINAS(2), NOTICIAS(3), DOCUMENTOS(4), INDICADORES (9) public function eduki_lista($zebaldintza='',$baloreak,$mota) { ///////////////////////////////////// APARTADO ////////////////////////////////////// if ($mota == 1) { // Realizar CONSULTA $taula = 'nodo,apartado'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,apartado_ID,apartado_nodo,apartado_titulo1 AS titulo1,apartado_titulo2 AS titulo2,apartado_titulo3 AS titulo3,apartado_titulo4 AS titulo4,apartado_url1,apartado_url2,apartado_url3,apartado_url4,apartado_padre,apartado_orden'; } ////////////////////////////////////// PAGINA /////////////////////////////////////// if ($mota == 2) { // Realizar CONSULTA $taula = 'nodo,pagina'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,pagina_nodo,pagina_titulo1 AS titulo1,pagina_titulo2 AS titulo2,pagina_titulo3 AS titulo3,pagina_titulo4 AS titulo4,pagina_contenido1,pagina_contenido2,pagina_contenido3,pagina_contenido4'; } ///////////////////////////////////// NOTICIAS ////////////////////////////////////// if ($mota == 3) { // Realizar CONSULTA $taula = 'nodo,noticia'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,noticia_nodo,noticia_egun AS egun,noticia_hila AS hila,noticia_urte AS urte,noticia_tag1,noticia_tag2,noticia_tag3,noticia_tag4,noticia_titulo1 AS titulo1,noticia_titulo2 AS titulo2,noticia_titulo3 AS titulo3,noticia_titulo4 AS titulo4,noticia_descripcion1,noticia_descripcion2,noticia_descripcion3,noticia_descripcion4,noticia_contenido1,noticia_contenido2,noticia_contenido3,noticia_contenido4'; } /////////////////////////////////////// DOCUMENTO ////////////////////////////////////// if ($mota == 4) { // Realizar CONSULTA $taula = 'nodo,documento'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,documento_nodo,documento_egun AS egun,documento_hila AS hila,documento_urte AS urte,documento_tag1,documento_tag2,documento_tag3,documento_tag4,documento_titulo1 AS titulo1,documento_titulo2 AS titulo2,documento_titulo3 AS titulo3,documento_titulo4 AS titulo4,documento_contenido1,documento_contenido2,documento_contenido3,documento_contenido4'; } //////////////////////////////////////// EVENTO //////////////////////////////////////// if ($mota == 5) { // Realizar CONSULTA $taula = 'nodo,evento'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,evento_nodo,evento_egun AS egun,evento_hila AS hila,evento_urte AS urte,evento_buka_egun,evento_buka_hila,evento_buka_urte,evento_horario,evento_tag1,evento_tag2,evento_tag3,evento_tag4,evento_titulo1 AS titulo1,evento_titulo2 AS titulo2,evento_titulo3 AS titulo3,evento_titulo4 AS titulo4,evento_contenido1,evento_contenido2,evento_contenido3,evento_contenido4'; } //////////////////////////////////////// BANNER //////////////////////////////////////// if ($mota == 6) { // Realizar CONSULTA $taula = 'nodo,banner'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,banner_nodo,banner_titulo1 AS titulo1,banner_titulo2 AS titulo2,banner_titulo3 AS titulo3,banner_titulo4 AS titulo4,banner_contenido1,banner_contenido2,banner_contenido3,banner_contenido4'; } ////////////////////////////////////// FORMULARIO ////////////////////////////////////// if ($mota == 7) { // Realizar CONSULTA $taula = 'nodo,formulario'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,formulario_nodo,formulario_titulo1 AS titulo1,formulario_titulo2 AS titulo2,formulario_titulo3 AS titulo3,formulario_titulo4 AS titulo4,formulario_contenido1,formulario_contenido2,formulario_contenido3,formulario_contenido4'; } ////////////////////////////////////// DESTACADO /////////////////////////////////////// if ($mota == 8) { // Realizar CONSULTA $taula = 'nodo,destacado'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,destacado_nodo,destacado_titulo1 AS titulo1,destacado_titulo2 AS titulo2,destacado_titulo3 AS titulo3,destacado_titulo4 AS titulo4,destacado_contenido1,destacado_contenido2,destacado_contenido3,destacado_contenido4,destacado_url1,destacado_url2,destacado_url3,destacado_url4,destacado_tipo'; } ///////////////////////////////////// INDICADOR ////////////////////////////////////// if ($mota == 9) { // Realizar CONSULTA $taula = 'nodo,indicador'; $eremuak = 'nodo_ID,nodo_version,nodo_bloqueo,nodo_sortze_egun,nodo_sortze_hila,nodo_sortze_urte,nodo_sortze_ordua,nodo_egun_egun,nodo_egun_hila,nodo_egun_urte,nodo_egun_ordua,nodo_sortzaile,nodo_sortzaile_ip,nodo_eguneratzaile,nodo_eguneratzaile_ip,nodo_prioritatea,nodo_mota,nodo_egoera,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4,nodo_data_aktibazioa,indicador_nodo,indicador_egun AS egun,indicador_hila AS hila,indicador_urte AS urte,indicador_tag1,indicador_tag2,indicador_tag3,indicador_tag4,indicador_titulo1 AS titulo1,indicador_titulo2 AS titulo2,indicador_titulo3 AS titulo3,indicador_titulo4 AS titulo4,indicador_descripcion1,indicador_descripcion2,indicador_descripcion3,indicador_descripcion4,indicador_contenido1,indicador_contenido2,indicador_contenido3,indicador_contenido4'; } $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $nodoak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $nodoak; } //////////////////////////////////////////// URL A PARTIR DE TITULO /////////////////////////////////////////// public function limpiar_url($izenburua='',$nodoa=0) { // Valor del TITULO por defecto $tituloluze = $izenburua; $titulo = $tituloluze; // Limpiar el TITULO (quitando IDIOMA e ID si tiene y obtenemos TITULO GENERICO) $zatiak = explode("-",$titulo); $zenbatzati = count($zatiak); $titulomotz = $zatiak[0]; $i = 1; while ($i < $zenbatzati) { if (!(($i == $zenbatzati-1 && is_numeric($zatiak[$i])) || (($i == $zenbatzati-1 || $i == $zenbatzati-2) && ($zatiak[$i] == 'es' || $zatiak[$i] == 'eu' || $zatiak[$i] == 'en' || $zatiak[$i] == 'fr')))) $titulomotz = $titulomotz . '-' . $zatiak[$i]; $i++; } $titulo = $titulomotz; // Comprobar si hay algun NODO DISTINTO a este (por ID y que NO sea VERSION) con el mismo TITULO GENERICO $taula = 'nodo'; $eremuak = 'nodo_ID,nodo_version,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4'; // Buscar TITULO en cada IDIOMA $elterminotrat = $titulo."%"; $baloreak = array($nodoa,$elterminotrat,$elterminotrat); $baloreak2 = array($nodoa,$elterminotrat,$tituloluze); // FRANCES $kontsulta4 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID < ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo4 LIKE ? OR nodo_titulo1 LIKE ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $bestenodoa4 = $db->select($kontsulta4,$baloreak); $db->deskonektatu(); if (count($bestenodoa4) > 0) { // Si hay algun NODO ANTERIOR a este con el mismo TITULO GENERICO en FRANCES // Recupero el TITULO COMPLETO en FRANCES de este NODO $kontsulta = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID = ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_titulo4 LIKE ? AND nodo_titulo4 = ?)"; $db = new Datubasea(); $db->konektatu(); $nodohau = $db->select($kontsulta,$baloreak2); $db->deskonektatu(); unset($db); if (count($nodohau) > 0) $titulo = $nodohau[0]['nodo_titulo4']; } unset($db); // INGLES $kontsulta3 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID < ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo3 LIKE ? OR nodo_titulo1 LIKE ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $bestenodoa3 = $db->select($kontsulta3,$baloreak); $db->deskonektatu(); if (count($bestenodoa3) > 0) { // Si hay algun NODO ANTERIOR a este con el mismo TITULO GENERICO en INGLES // Recupero el TITULO COMPLETO en INGLES de este NODO $kontsulta = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID = ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_titulo3 LIKE ? AND nodo_titulo3 = ?)"; $db = new Datubasea(); $db->konektatu(); $nodohau = $db->select($kontsulta,$baloreak2); $db->deskonektatu(); unset($db); if (count($nodohau) > 0) $titulo = $nodohau[0]['nodo_titulo3']; } unset($db); // EUSKERA $kontsulta2 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID < ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo2 LIKE ? OR nodo_titulo1 LIKE ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $bestenodoa2 = $db->select($kontsulta2,$baloreak); $db->deskonektatu(); if (count($bestenodoa2) > 0) { // Si hay algun NODO ANTERIOR a este con el mismo TITULO GENERICO en EUSKERA // Recupero el TITULO COMPLETO en EUSKERA de este NODO $kontsulta = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID = ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_titulo2 LIKE ? AND nodo_titulo2 = ?)"; $db = new Datubasea(); $db->konektatu(); $nodohau = $db->select($kontsulta,$baloreak2); $db->deskonektatu(); unset($db); if (count($nodohau) > 0) $titulo = $nodohau[0]['nodo_titulo2']; } unset($db); // CASTELLANO $kontsulta1 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID < ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo1 LIKE ? OR nodo_titulo2 LIKE ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $bestenodoa1 = $db->select($kontsulta1,$baloreak); $db->deskonektatu(); if (count($bestenodoa1) > 0) { // Si hay algun NODO ANTERIOR a este con el mismo TITULO GENERICO en CASTELLANO // Recupero el TITULO COMPLETO en CASTELLANO de este NODO $kontsulta = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_ID = ? AND nodo_mota <> 8 AND nodo_mota <> 10 AND nodo_egoera > 0 AND nodo_titulo1 LIKE ? AND nodo_titulo1 = ?)"; $db = new Datubasea(); $db->konektatu(); $nodohau = $db->select($kontsulta,$baloreak2); $db->deskonektatu(); unset($db); if (count($nodohau) > 0) $titulo = $nodohau[0]['nodo_titulo1']; } unset($db); return strtolower($titulo); } ////////////////////////////////////////// ID A PARTIR DE TTULO NODO ///////////////////////////////////////// public function id_de_url($izenburua='',$sitea=0) { $hizkuntza = 1; $nodoa = 0; $vieneidioma = 0; $titulo = $izenburua; $zatiak = explode("-",$izenburua); $zenbatzati = count($zatiak); $i = 1; $izenburuamoz = $zatiak[0]; while ($i < $zenbatzati-1) { $izenburuamoz = $izenburuamoz . '-' . $zatiak[$i]; $i++; } $nodo_lang = array(); // Para recoger ID e IDIOMA $taula = 'nodo'; $eremuak = 'nodo_ID,nodo_version,nodo_titulo1,nodo_titulo2,nodo_titulo3,nodo_titulo4'; // Viene EUSKERA if ($zatiak[$zenbatzati-1] == 'eu') { $vieneidioma = 2; $titulo = $izenburuamoz; } // Viene INGLES if ($zatiak[$zenbatzati-1] == 'en') { $vieneidioma = 3; $titulo = $izenburuamoz; } // Viene FRANCES if ($zatiak[$zenbatzati-1] == 'fr') { $vieneidioma = 4; $titulo = $izenburuamoz; } // Buscar TITULO $elterminotrat = "%".$titulo."%"; $baloreak = array($elterminotrat,$sitea); //NO SACA BANNERS NI DESTACADOS 6 y 8 //FRANCES $kontsulta4 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND nodo_titulo4 LIKE ? AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa4 = $db->select($kontsulta4,$baloreak); $db->deskonektatu(); unset($db); if (count($zenodoa4) == 1) { // SOLO HAY 1 $hizkuntza = 4; $nodoa = $zenodoa4[0]['nodo_ID']; } if (count($zenodoa4) > 1) { // DESAMBIGUACION $hizkuntza = 4; foreach ($zenodoa4 as $parecidos) { $titusimp = $titulo; $titusimp1 = $titulo."-fr"; $titusimp2 = $titulo."-fr-".$parecidos['nodo_ID']; $baloreak2 = array($titusimp,$titusimp1,$titusimp2,$sitea); $kontsulta4 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo4 = ? OR nodo_titulo4 = ? OR nodo_titulo4 = ?) AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa4 = $db->select($kontsulta4,$baloreak2); $db->deskonektatu(); unset($db); if (count($zenodoa4) > 0) { $nodoa = $zenodoa4[0]['nodo_ID']; $titulua = $zenodoa4[0]['nodo_titulo4']; } } } // INGLES $kontsulta3 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND nodo_titulo3 LIKE ? AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa3 = $db->select($kontsulta3,$baloreak); $db->deskonektatu(); unset($db); if (count($zenodoa3) == 1) { // SOLO HAY 1 $hizkuntza = 3; $nodoa = $zenodoa3[0]['nodo_ID']; } if (count($zenodoa3) > 1) { // DESAMBIGUACION $hizkuntza = 3; foreach ($zenodoa3 as $parecidos) { $titusimp = $titulo; $titusimp1 = $titulo."-en"; $titusimp2 = $titulo."-en-".$parecidos['nodo_ID']; $baloreak2 = array($titusimp,$titusimp1,$titusimp2,$sitea); $kontsulta3 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo3 = ? OR nodo_titulo3 = ? OR nodo_titulo3 = ?) AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa3 = $db->select($kontsulta3,$baloreak2); $db->deskonektatu(); unset($db); if (count($zenodoa3) > 0) { $nodoa = $zenodoa3[0]['nodo_ID']; $titulua = $zenodoa3[0]['nodo_titulo3']; } } } // EUSKERA $kontsulta2 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND nodo_titulo2 LIKE ? AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa2 = $db->select($kontsulta2,$baloreak); $db->deskonektatu(); unset($db); if (count($zenodoa2) == 1) { // SOLO HAY 1 $hizkuntza = 2; $nodoa = $zenodoa2[0]['nodo_ID']; } if (count($zenodoa2) > 1) { // DESAMBIGUACION $hizkuntza = 2; foreach ($zenodoa2 as $parecidos) { $titusimp = $titulo; $titusimp1 = $titulo."-eu"; $titusimp2 = $titulo."-eu-".$parecidos['nodo_ID']; $baloreak2 = array($titusimp,$titusimp1,$titusimp2,$sitea); $kontsulta2 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo2 = ? OR nodo_titulo2 = ? OR nodo_titulo2 = ?) AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa2 = $db->select($kontsulta2,$baloreak2); $db->deskonektatu(); unset($db); if (count($zenodoa2) > 0) { $nodoa = $zenodoa2[0]['nodo_ID']; $titulua = $zenodoa2[0]['nodo_titulo2']; } } } // CASTELLANO $kontsulta1 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND nodo_titulo1 LIKE ? AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa1 = $db->select($kontsulta1,$baloreak); $db->deskonektatu(); unset($db); if (count($zenodoa1) == 1) { // SOLO HAY 1 $hizkuntza = 1; $nodoa = $zenodoa1[0]['nodo_ID']; } if (count($zenodoa1) > 1) { // DESAMBIGUACION $hizkuntza = 1; foreach ($zenodoa1 as $parecidos) { $titusimp = $titulo; $titusimp1 = $titulo."-es"; $titusimp2 = $titulo."-es-".$parecidos['nodo_ID']; $baloreak2 = array($titusimp,$titusimp1,$titusimp2,$sitea); $kontsulta1 = "SELECT ". $eremuak . " FROM " . $taula . " WHERE (nodo_mota <> 6 AND nodo_mota <> 8 AND nodo_egoera > 0 AND nodo_version = 0 AND (nodo_titulo1 = ? OR nodo_titulo1 = ? OR nodo_titulo1 = ?) AND nodo_ID IN (SELECT nodo FROM nodo_site WHERE site = ?)) ORDER BY nodo_ID DESC"; $db = new Datubasea(); $db->konektatu(); $zenodoa1 = $db->select($kontsulta1,$baloreak2); $db->deskonektatu(); unset($db); if (count($zenodoa1) > 0) { $nodoa = $zenodoa1[0]['nodo_ID']; $titulua = $zenodoa1[0]['nodo_titulo1']; } } } if ($vieneidioma != 0) $hizkuntza = $vieneidioma; $nodo_lang['ID'] = $nodoa; $nodo_lang['idioma'] = $hizkuntza; return $nodo_lang; } //////////////////////////////////////////////// NODO EDITABLE //////////////////////////////////////////////// public function es_editable($nodoa,$usuario) { // Por defecto NO ES EDITABLE $nodoeditable = 0; // Sacar PERFIL del USUARIO $taula = 'usuario'; $eremuak = "usuario_ID,usuario_perfil,usuario_moderadorsite"; $zebaldintza = " WHERE usuario_ID = ?"; $baloreak = array($usuario); $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $erabiltzailea = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); $erabiltzaile_profila = $erabiltzailea[0]['usuario_perfil']; if ($erabiltzaile_profila == 2) { // Si es ADMINISTRADOR $nodoeditable = 1; } else { // Si es MODERADOR-GRUPO o MODERADOR-SITE // Comprobar si el NODO es del USUARIO (creado por EL MISMO) $taula = 'nodo'; $eremuak = "nodo_ID,nodo_sortzaile"; $zebaldintza = " WHERE (nodo_ID = ? AND nodo_sortzaile = ?)"; $baloreak = array($nodoa,$usuario); $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $nirenodoa = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); if (count($nirenodoa) != 0) { // Si el NODO ha sido creado por el USUARIO $nodoeditable = 1; } else { // Si el NODO NO ha sido creado por el USUARIO // Comprobar que el NODO esta solo asociado a SITES editables por el MODERADOR $taula = 'site'; $eremuak = "site_ID,site_titulo"; $zebaldintza = " WHERE ("; // SITES relacionados con el NODO $zebaldintza = $zebaldintza . "site_ID IN (SELECT site FROM nodo_site WHERE nodo = ?)"; $baloreak = array($nodoa); if ($erabiltzaile_profila == 3) { // Si es MODERADOR-SITE // Para MODERADOR-SITE -> SITES que NO sean SU SITE (el que modera), ni SUS SITE-HIJOS $zebaldintza = $zebaldintza . " AND (site_ID NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)) AND site_padre NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)))"; array_push($baloreak,$usuario,$usuario); } // Si es MODERADOR-SITE if ($erabiltzaile_profila == 4) { // Si es MODERADOR-GRUPO // Para MODERADOR-GRUPO-> SITES que NO esten relacionados con los GRUPOS que modera $zebaldintza = $zebaldintza . " AND (site_ID NOT IN (SELECT site FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)))))"; array_push($baloreak,$usuario); } // Si es MODERADOR-GRUPO $zebaldintza = $zebaldintza . ")"; $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $bestesiteak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); // Si NO hay ningun SITE que este relacionado con el NODO, distinto al del MODERADOR if (count($bestesiteak) == 0) { $nodoeditable = 1; } } } return $nodoeditable; } /////////////////////////////////////////////// NODO ELIMINABLE /////////////////////////////////////////////// public function es_eliminable($nodoa,$usuario) { // Por defecto NO SE PUEDE ELIMINAR $nodoeliminable = 0; // Sacar PERFIL del USUARIO $taula = 'usuario'; $eremuak = "usuario_ID,usuario_perfil,usuario_moderadorsite"; $zebaldintza = " WHERE usuario_ID = ?"; $baloreak = array($usuario); $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $erabiltzailea = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); $erabiltzaile_profila = $erabiltzailea[0]['usuario_perfil']; if ($erabiltzaile_profila == 2) { // Si es ADMINISTRADOR $nodoeliminable = 1; } else { // Si es MODERADOR-GRUPO o MODERADOR-SITE // Comprobar si el NODO es del USUARIO (creado por EL MISMO) $taula = 'nodo'; $eremuak = "nodo_ID,nodo_sortzaile"; $zebaldintza = " WHERE (nodo_ID = ? AND nodo_sortzaile = ?)"; $baloreak = array($nodoa,$usuario); $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $nirenodoa = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); if (count($nirenodoa) != 0) { // Si el NODO ha sido creado por el USUARIO // Comprobar que el NODO esta solo asociado a SITES editables por el MODERADOR $taula = 'site'; $eremuak = "site_ID,site_titulo"; $zebaldintza = " WHERE ("; // SITES relacionados con el NODO $zebaldintza = $zebaldintza . "site_ID IN (SELECT site FROM nodo_site WHERE nodo = ?)"; $baloreak = array($nodoa); if ($erabiltzaile_profila == 3) { // Si es MODERADOR-SITE // Para MODERADOR-SITE -> SITES que NO sean SU SITE (el que modera), ni SUS SITE-HIJOS $zebaldintza = $zebaldintza . " AND (site_ID NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)) AND site_padre NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)))"; array_push($baloreak,$usuario,$usuario); } // Si es MODERADOR-SITE if ($erabiltzaile_profila == 4) { // Si es MODERADOR-GRUPO // Para MODERADOR-GRUPO -> SITES que NO esten relacionados con los GRUPOS que modera $zebaldintza = $zebaldintza . " AND (site_ID NOT IN (SELECT site FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)))))"; array_push($baloreak,$usuario); } // Si es MODERADOR-GRUPO $zebaldintza = $zebaldintza . ")"; $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $bestesiteak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); // Si NO hay ningun SITE que este relacionado con el NODO, distinto al del MODERADOR if (count($bestesiteak) == 0) { $nodoeliminable = 1; } } else { // Si el NODO NO ha sido creado por el USUARIO // Comprobar que el NODO esta solo asociado a SITES editables por el MODERADOR $taula = 'site'; $eremuak = "site_ID,site_titulo"; $zebaldintza = " WHERE ("; // SITES relacionados con el NODO $zebaldintza = $zebaldintza . "site_ID IN (SELECT site FROM nodo_site WHERE nodo = ?)"; $baloreak = array($nodoa); if ($erabiltzaile_profila == 3) { // Si es MODERADOR-SITE // Para MODERADOR-SITE -> SITES que NO sean SU SITE (el que modera), ni SUS SITE-HIJOS $zebaldintza = $zebaldintza . " AND (site_ID NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)) AND site_padre NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)))"; array_push($baloreak,$usuario,$usuario); } // Si es MODERADOR-SITE if ($erabiltzaile_profila == 4) { // Si es MODERADOR-GRUPO // Para MODERADOR-GRUPO -> SITES que NO esten relacionados con los GRUPOS que modera $zebaldintza = $zebaldintza . " AND (site_ID NOT IN (SELECT site FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)))))"; array_push($baloreak,$usuario); } // Si es MODERADOR-GRUPO $zebaldintza = $zebaldintza . ")"; $kontsulta = "SELECT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $bestesiteak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); // Si NO hay ningun SITE que este relacionado con el NODO, distinto al del MODERADOR if (count($bestesiteak) == 0) { $nodoeliminable = 1; } } } return $nodoeliminable; } } ?>