A tumblelog CMS built on AJAX, PHP and MySQL.

templates.class.php 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. if (!defined('entry') || !entry) {
  3. die('Not a valid page');
  4. }
  5. /* ===========================
  6. Sorbet CMS - A PHP based tumblelog CMS forked from Gelato CMS
  7. Sorbet CMS is a free software licensed under the GPL 3.0
  8. =========================== */
  9. class plantillas
  10. {
  11. public $plantilla;
  12. public $plantilla_cargada;
  13. public $texto_plantilla;
  14. public $antesBloque;
  15. public $bloque;
  16. public $despuesBloque;
  17. public $bloqueFinal="";
  18. public function __construct($plantilla)
  19. {
  20. $this->plantilla = ($plantilla == "") ? "tumblr" : $plantilla;
  21. }
  22. public function cargarPlantilla($entrada, $salida, $plantilla_usar)
  23. {
  24. $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm";
  25. if (!file_exists($plantilla_usar)) {
  26. die("No se encuentra la plantilla :".$plantilla_usar);
  27. } else {
  28. if (!$fd = fopen($plantilla_usar, "r")) {
  29. die("Error en la plantilla");
  30. } else {
  31. $salida_xhtml = fread($fd, filesize($plantilla_usar));
  32. fclose($fd);
  33. $salida_xhtml = stripslashes($salida_xhtml);
  34. $this->texto_plantilla = $salida_xhtml;
  35. for ($i = 0; $i < count($entrada); $i++) {
  36. $salida_xhtml = str_replace($entrada[$i], $salida[$i], $salida_xhtml);
  37. }
  38. $this->plantilla_cargada = $salida_xhtml;
  39. }
  40. }
  41. }
  42. public function precargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque)
  43. {
  44. $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm";
  45. if (!file_exists($plantilla_usar)) {
  46. die("No se encuentra la plantilla :".$plantilla_usar);
  47. } else {
  48. if (!$fd = fopen($plantilla_usar, "r")) {
  49. die("Error en la plantilla");
  50. } else {
  51. $salida_xhtml = fread($fd, filesize($plantilla_usar));
  52. fclose($fd);
  53. $salida_xhtml = stripslashes($salida_xhtml);
  54. $this->texto_plantilla = $salida_xhtml;
  55. $this->cargaAntesBloque($nombreBloque);
  56. $this->cargaDespuesBloque($nombreBloque);
  57. $this->antesBloque = $this->procesaBloque($entrada, $salida, $this->antesBloque);
  58. $this->despuesBloque = $this->procesaBloque($entrada, $salida, $this->despuesBloque);
  59. }
  60. }
  61. }
  62. public function cargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque)
  63. {
  64. $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm";
  65. if (!file_exists($plantilla_usar)) {
  66. die("No se encuentra la plantilla :".$plantilla_usar);
  67. } else {
  68. if (!$fd = fopen($plantilla_usar, "r")) {
  69. die("Error en la plantilla");
  70. } else {
  71. $salida_xhtml = fread($fd, filesize($plantilla_usar));
  72. fclose($fd);
  73. $salida_xhtml = stripslashes($salida_xhtml);
  74. $this->texto_plantilla = $salida_xhtml;
  75. $this->cargaBloque($nombreBloque);
  76. $this->bloqueFinal .= $this->procesaBloque($entrada, $salida, $this->bloque);
  77. }
  78. }
  79. }
  80. public function procesaBloque($entrada, $salida, $bloque)
  81. {
  82. for ($i = 0; $i < count($entrada); $i++) {
  83. $bloque = str_replace($entrada[$i], $salida[$i], $bloque);
  84. }
  85. return $bloque;
  86. }
  87. public function cargaBloque($nombreBloque)
  88. {
  89. $inicioBloque = "[bloque: ".$nombreBloque."]";
  90. $finBloque = "[/bloque: ".$nombreBloque."]";
  91. $ini = strpos($this->texto_plantilla, $inicioBloque)+strlen($inicioBloque);
  92. $fin = strpos($this->texto_plantilla, $finBloque);
  93. $this->bloque = substr($this->texto_plantilla, $ini, ($fin-$ini));
  94. }
  95. public function cargaAntesBloque($nombreBloque)
  96. {
  97. $inicioBloque = "[bloque: ".$nombreBloque."]";
  98. $ini = strpos($this->texto_plantilla, $inicioBloque);
  99. $this->antesBloque = substr($this->texto_plantilla, 0, $ini);
  100. }
  101. public function cargaDespuesBloque($nombreBloque)
  102. {
  103. $finBloque = "[/bloque: ".$nombreBloque."]";
  104. $fin = strpos($this->texto_plantilla, $finBloque);
  105. $this->despuesBloque = substr($this->texto_plantilla, ($fin+strlen($finBloque)), strlen($this->texto_plantilla));
  106. }
  107. public function mostrarPlantillaConBloque()
  108. {
  109. echo $this->antesBloque.$this->bloqueFinal.$this->despuesBloque;
  110. }
  111. public function mostrarPlantilla()
  112. {
  113. echo $this->plantilla_cargada;
  114. }
  115. public function renderizaEtiqueta($texto="", $etiquetaHtml="p", $claseCss="")
  116. {
  117. echo "<".$etiquetaHtml." class=\"".$claseCss."\">".$texto."</".$etiquetaHtml.">";
  118. }
  119. public function renderizaTexto($texto="")
  120. {
  121. echo $texto;
  122. }
  123. }