/cms/clases/Publicacion/Seccion.php

https://github.com/bng5/CMS · PHP · 112 lines · 76 code · 11 blank · 25 comment · 17 complexity · 9f7cad7278eda1c617f9dd6d449b96ea MD5 · raw file

  1. <?php
  2. /**
  3. *
  4. * BackTrace
  5. * admin secciones_const.php
  6. *
  7. * @author pablo
  8. *
  9. */
  10. class Publicacion_Seccion {
  11. /**
  12. *
  13. * @global <type> $mysqli
  14. * @global <type> $seccion_id
  15. * @param Seccion $seccion
  16. */
  17. public static function publicar($seccion) {
  18. global $mysqli, $seccion_id;
  19. //$this->seccion = $seccion;
  20. $this->seccion_id = $seccion->id;
  21. $this->modificadas = 0;
  22. $this->leng_poromision = false;
  23. $this->lengs = array();
  24. $this->etiquetas = array();
  25. $this->subatributos = array();
  26. $this->atributos = array();
  27. $this->enlaces_protocolos = array(1 => "http://", "https://", "ftp://", "gopher://", "mailto:");
  28. if($lenguajes = Idiomas::Listado(null, $params = array('estado' => 1))) {
  29. foreach($lenguajes->getIterator() AS $item) {
  30. $this->lengs[$item->id] = $item->codigo;
  31. if($this->leng_poromision == false)
  32. $this->leng_poromision = $item->id;
  33. }
  34. }
  35. if(!$cons_attrs = $mysqli->query("SELECT ia.id, ian.leng_id, ian.atributo, ia.identificador, at.tipo, at.subtipo, ia.extra, isaa.salida, ia.unico, ia.formato FROM items_atributos ia LEFT JOIN items_atributos_n ian ON ia.id = ian.id, secciones_a_atributos isaa, atributos_tipos at WHERE at.id = ia.tipo_id AND ia.id = isaa.atributo_id AND isaa.seccion_id = {$this->seccion_id} ORDER BY isaa.orden")) echo __LINE__." - ".$mysqli->error;
  36. if($fila_attrs = $cons_attrs->fetch_assoc()) {
  37. do {
  38. $atributo_id = array_shift($fila_attrs);
  39. $leng_id = array_shift($fila_attrs);
  40. $etiqueta = array_shift($fila_attrs);
  41. if(!$this->atributos[$atributo_id])
  42. $this->atributos[$atributo_id] = $fila_attrs;
  43. $this->atributos[$atributo_id]['etiquetas'][$leng_id] = $etiqueta;
  44. if($fila_attrs['tipo'] == "int") {
  45. //elseif($fila_attrs['tipo'] == "text") $s_tipo = "text";
  46. }
  47. }while($fila_attrs = $cons_attrs->fetch_assoc());
  48. $cons_attrs->close();
  49. }
  50. $seccion_nombre = array();
  51. if(!$cons_item = $mysqli->query("SELECT sn.leng_id, sn.titulo, s.identificador FROM secciones_nombres sn JOIN secciones s ON sn.id = s.id WHERE s.id = ${id} AND sn.titulo != ''")) echo __LINE__." - ".$mysqli->error;
  52. if($fila_item = $cons_item->fetch_row()) {
  53. $identificador = $fila_item[2];
  54. do {
  55. $seccion_nombre[$fila_item[0]] = $fila_item[1];
  56. }while($fila_item = $cons_item->fetch_row());
  57. $cons_item->close();
  58. }
  59. else {
  60. echo "No se encontró el item";
  61. exit;
  62. }
  63. $valores = array();
  64. if(!$cons_valores = $mysqli->query("SELECT atributo_id, iv.leng_id, iv.`string`, iv.`date`, iv.`text`, iv.`int`, iv.`num` FROM secciones_valores iv WHERE iv.item_id = ${id} ORDER BY iv.leng_id")) echo __LINE__." - ".$mysqli->error;
  65. if($fila_valores = $cons_valores->fetch_assoc()) {
  66. do {
  67. $atributo_id = array_shift($fila_valores);
  68. $leng_id = array_shift($fila_valores);
  69. //$leng_id = $fila_valores['leng_id'];
  70. if($this->atributos[$atributo_id]['unico'] == 0)
  71. $valores[$atributo_id][] = $fila_valores;
  72. elseif($this->atributos[$atributo_id]['unico'] == 1)
  73. $valores[$atributo_id] = $fila_valores;
  74. else
  75. $valores[$atributo_id][$leng_id] = $fila_valores;
  76. }while($fila_valores = $cons_valores->fetch_assoc());
  77. $cons_valores->close();
  78. }
  79. $item = array();
  80. $tipos = array('string' => 'texto', 'num' => 'texto', 'text' => 'areadetexto', 'date' => 'texto');
  81. foreach($this->lengs AS $leng_id => $leng_cod) {
  82. foreach($this->atributos AS $attr_k => $attr_v) {
  83. //print_r($this->atributos);
  84. //print_r($valores);
  85. Publicacion_Atributo::valor($leng_id, $attr_k, $attr_v, $valores, $item);
  86. print_r($item);
  87. }
  88. file_put_contents(RUTA_CARPETA.'cms2/datos/seccion/'.$id.'.'.$leng_cod.'.php', "<?php\nreturn ".var_export($item, true).";\n?>");
  89. }
  90. }
  91. /**
  92. *
  93. * @param int $id
  94. * @param string $leng_cod
  95. * @return array
  96. */
  97. public static function obtener($id, $leng_cod) {
  98. return include(RUTA_CARPETA.'bng5/datos/seccion/'.$id.'.'.$leng_cod.'.php');
  99. }
  100. }
  101. ?>