public static function GuardarEjemplo($Archivo, $Codigo) { /* Aixo no pasa mai (GuardarEjemplos nomes s'executa en el cmd si ets admin...), pero ho deixarem per si de cas... */ if (devildrey33_Opciones::Administrador() === 0) { $Ret = 1; $Mensaje = "No tienes permisos para guardar el archivo."; return json_encode(array("Ret" => $Ret, "Mensaje" => $Mensaje, "Archivo" => $Archivo)); } $Ret = file_put_contents(Base::Path_Raiz() . $Archivo, $Codigo, FILE_USE_INCLUDE_PATH); if ($Ret) { $Mensaje = "El '{$Archivo}' se ha guardado correctamente."; } else { $Mensaje = "Error al guardar el archivo : '{$Archivo}'"; } return json_encode(array("Ret" => $Ret, "Mensaje" => $Mensaje, "Archivo" => $Archivo, "ErroresPHP" => Base::ObtenerLogPHP(), "Estado" => 0)); }
static function ObtenerLogPHP() { $LogStr = ""; /* Volcado del log php al final de la web */ if (file_exists(dirname(__FILE__) . "/Cache/php-error.log")) { $LogStr .= "<div style='text-decoration:underline; font-weight:boldest; font-size:1.6rem'>Log generado el " . date('d/m/Y [h:i:s]', time()) . "</div>"; $Log = file_get_contents(dirname(__FILE__) . "/Cache/php-error.log"); $LogStr .= Base::ParsearLogPHP($Log); Base::EnviarEmail("Advertencias o Errores PHP", "Ip : " . $_SERVER['REMOTE_ADDR'] . "\n" . $Log, "ErroresPHP@" . $_SERVER["SERVER_NAME"], "*****@*****.**"); if (devildrey33_Opciones::BorrarLogPHP() === 1) { unlink(dirname(__FILE__) . "/Cache/php-error.log"); } // $LogStr .= "<script>\$Base.MostrarErroresPHP();</script>"; } return $LogStr; }
<?php include "devildrey33.php"; $Base = new devildrey33(); $HEAD = ""; $Base->InicioPlantilla(basename(__FILE__), "Logs de acceso", $HEAD); if (devildrey33_Opciones::Administrador() > 0) { echo "<article class='Blog'>"; phpinfo(); echo "</article>"; } else { echo "<script>\$Base.MostrarErrorAjax(404, true);</script>"; echo "<script>\$Admin.Desloguear();</script>"; } $Base->FinPlantilla();
public function Head_JS() { $this->GenerarListaEntradasJS(); // $Raiz = "/".str_replace("\\", "/", substr(dirname(__FILE__), strlen($_SERVER["DOCUMENT_ROOT"]))); if (devildrey33_Opciones::Minificar_JS() == 0) { // jQuery sin minificar echo '<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.js"></script>' . Intro(); echo '<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>' . Intro(); // Para la barra separadora del lab } else { echo '<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>' . Intro(); echo '<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>' . Intro(); // Para la barra separadora del lab } // echo "<script type='text/javascript' src='https://www.google.es/jsapi'></script>".Intro(); // json api? /* addons del codemirror */ echo "<script src='" . Base::URL_JS() . "3rdParty/codemirror.min.js'></script>" . Intro(); /* Three js */ if (devildrey33_Opciones::Minificar_JS() == 0) { // Three.js sin minificar echo "<script src='" . Base::URL_JS() . "3rdParty/three-0.79.js'></script>" . Intro(); } else { echo "<script src='" . Base::URL_JS() . "3rdParty/three-0.79.min.js'></script>" . Intro(); } echo "<script src='" . Base::URL_JS() . "3rdParty/tweenjs-0.6.2.min.js'></script>" . Intro(); // echo "<script src='".Base::URL_JS()."3rdParty/stats.min.js'></script>".Intro(); echo "<script src='" . Base::URL_Cache() . "EntradasBlog.js'></script>" . Intro(); if (devildrey33_Opciones::Minificar_JS() == 0) { if (file_exists(dirname(__FILE__) . '/Config/ArchivosMinify.php')) { $ArrayCSS = (require dirname(__FILE__) . '/Config/ArchivosMinify.php'); foreach ($ArrayCSS["js"] as $Archivo) { echo "<script src='" . Base::URL_Web() . substr($Archivo, 1) . "'></script>" . Intro(); } } else { error_log("<span style='color:red'>Error!</span> devildrey33::Head_JS -> el archivo '/Config/ArchivosMinify.php' no existe."); } } else { echo "<script src='" . Base::URL_Cache() . "devildrey33.min.js'></script>" . Intro(); } if (devildrey33_Opciones::Administrador() > 0) { echo "<script src='" . Base::URL_JS() . "ObjetoAdmin.js'></script>" . Intro() . "<script>\$Base.JSDinamico.push('ObjetoAdmin.js');</script>" . Intro(); // Para que no lo cargue dinamicamente } }
public function EditarComentario($PaginaPadre, $NumComentario, $Comentario) { $Mensaje = ""; if (devildrey33_Opciones::Administrador() > 0) { $BD = new devildrey33_BD(); if ($BD->_BDFuncional === false) { json_encode(array("Pagina" => $PaginaPadre, "NumComentario" => $NumComentario, "Mensaje" => "Error de la base de datos", "ErroresPHP" => Base::ObtenerLogPHP(), "Estado" => 2)); } // El máximo de caracteres que puede tener el nombre de una tabla es 64, si le restamos los 13 de "comentarios__" queda en 51 $PaginaPadre = substr($BD->_mysqli->real_escape_string(str_replace(array(".", "-"), "_", strtolower($PaginaPadre))), 0, 51); $Resultado = $BD->_mysqli->query("UPDATE comentarios__" . strtolower($PaginaPadre) . " SET Mensaje='" . $BD->_mysqli->real_escape_string(str_replace(' contenteditable="true"', "", $Comentario)) . "'" . " WHERE NumMsg='" . $BD->_mysqli->real_escape_string($NumComentario) . "'"); if ($Resultado !== true) { $Mensaje = "Error : " . $BD->_mysqli->error; } else { $Mensaje = "Comentario Editado"; } } else { $Mensaje = "Error : Se requieren permisos de administración para editar comentarios."; } return json_encode(array("Pagina" => $PaginaPadre, "NumComentario" => $NumComentario, "Mensaje" => $Mensaje, "ErroresPHP" => Base::ObtenerLogPHP(), "Estado" => 0)); }
public function LimpiarBaneados() { if (devildrey33_Opciones::Administrador() === 1) { devildrey33_htaccess::LimpiarBaneados(); echo json_encode(array("ErroresPHP" => Base::ObtenerLogPHP(), "Estado" => 0, "Mensaje" => "Se ha vaciado la lista de ips baneadas")); } else { $this->Desloguear(1); } }
public static function CacheImagenes($Valor) { if (devildrey33_Opciones::Administrador() === 0) { return FALSE; } $Datos = file_get_contents(Base::Path_Raiz() . ".htaccess"); $PosInicio = strpos($Datos, "#INICIO CacheImagenes"); $PosFin = strpos($Datos, "#FIN CacheImagenes"); $DatosNuevos = substr($Datos, 0, $PosInicio); if ($Valor == TRUE) { $DatosNuevos .= "#INICIO CacheImagenes activado\r\n"; '<IfModule mod_expires.c>\\r\\n' . 'ExpiresActive On\\r\\n' . 'ExpiresByType image/jpg "access 1 month"\\r\\n' . 'ExpiresByType image/jpeg "access 1 month"\\r\\n' . 'ExpiresByType image/gif "access 1 month"\\r\\n' . 'ExpiresByType image/png "access 1 month"\\r\\n' . 'ExpiresDefault "now"\\r\\n' . '</IfModule>\\r\\n'; } else { $DatosNuevos .= "#INICIO CacheImagenes desactivado\r\n"; } $DatosNuevos .= substr($Datos, $PosFin, strlen($Datos) - $PosFin); file_put_contents(Base::Path_Raiz() . ".htaccess", $DatosNuevos); }
echo devildrey33_Lab::GuardarEjemplo($_POST["Archivo"], $_POST["Codigo"]); break; /* case "ConvertirVotaciones" : $BD = new devildrey33_BD(); $BD->ConvertirVotaciones(); break;*/ /* case "ConvertirVotaciones" : $BD = new devildrey33_BD(); $BD->ConvertirVotaciones(); break;*/ case "help": echo "<p>Lista de comandos</p>" . "<ul>" . "<li>phpinfo</li>" . "<li>ClearSession / PrintSession</li>" . "<li>ActivarMantenimiento / DesactivarMantenimiento</li>" . "<li>ActivarCheckSpelling / DesactivarCheckSpelling</li>" . "<li>ActivarCompresionGZip / DesactivarCompresionGZip</li>" . "<li>ActivarCacheImagenes / DesactivarCacheImagenes</li>" . "<li>LimpiarBaneados</li>" . "<li>Minificar <i>(Vuelve a crear la cache para los archivos CSS y JS)</i></li>" . "<li>BorrarSesion (borra los datos de la variable \$_SESSION</li>" . "<li>Desloguear</li>" . "</ul>"; break; } /* Comandos para administrador */ if (devildrey33_Opciones::Administrador() === 1) { switch ($Comando) { case "ActivarCheckSpelling": devildrey33_htaccess::CheckSpelling(TRUE); echo json_encode(array("ErroresPHP" => Base::ObtenerLogPHP())); break; case "DesactivarCheckSpelling": devildrey33_htaccess::CheckSpelling(FALSE); echo json_encode(array("ErroresPHP" => Base::ObtenerLogPHP())); break; case "ActivarCompresionGZip": devildrey33_htaccess::CompresionGZip(TRUE); echo json_encode(array("ErroresPHP" => Base::ObtenerLogPHP())); break; case "DesactivarCompresionGZip": devildrey33_htaccess::CompresionGZip(FALSE);
static function GenerarArticulos($BD, $Categoria = "Todo", $Inicio = 0, $Fin = 16) { /* Si inicio es 0 hay que comprobar que no se hubieran cargado elementos anteriormente mediante el scroll */ /* if ($Inicio === 0) { $Inicio = devildrey33_Opciones::EntradasIndice(); }*/ $Entradas = (require dirname(__FILE__) . '/Config/EntradasBlog.php'); if ($Categoria === "Todo") { $EntradasPC = $Entradas; } else { /* Creo un array solo con las entradas que tengan la categoria especificada */ for ($i = 0; $i < count($Entradas); $i++) { if (Indice::BuscarCategoria($Entradas[$i]["Tags"], $Categoria) === TRUE) { $EntradasPC[] = $Entradas[$i]; } } } $Codigo = ""; if ($Categoria == "") { $Categoria = "Todo"; } $Contador = 0; for ($i = $Inicio; $i < count($EntradasPC); $i++) { // if (Indice::BuscarCategoria($Entradas[$i]["Tags"], $Categoria) === TRUE) { switch ($EntradasPC[$i]["Tipo"]) { case "Blog": default: $URL = Base::URL_Blog() . $EntradasPC[$i]["URL"]; $EntradasPC[$i]["URL"] .= ".php"; break; case "Lab": $URL = Base::URL_Lab() . $EntradasPC[$i]["URL"]; break; } // Parche parche para que como mínimo en un servidor local no dedicado (localhost/directorio-web) se pueda acceder a las entradas del indice // if ($EntradasPC[$i]["Tipo"] === "Blog" && devildrey33_Opciones::$ServidorLocal === TRUE) { $URL .= ".php"; } $Codigo .= "<article class='Articulo_Portada' style='transition-delay:" . rand(0, 50) / 100 . "s'>" . Intro(); $Codigo .= "<a href='" . $URL . "'>" . Intro() . "<div class='Articulo_Portada_ImagenO'></div>" . Intro() . "<img src='" . Base::URL_Graficos() . "155x125_" . $EntradasPC[$i]["Imagen"] . "' class='Articulo_Portada_Imagen' alt='" . $EntradasPC[$i]["Titulo"] . "' />" . Intro() . "</a>" . Intro(); $Codigo .= "<h1><a href='" . $URL . "'>" . $EntradasPC[$i]["Titulo"] . "</a></h1>" . Intro(); $Codigo .= "<span>" . substr($EntradasPC[$i]["Fecha"], 0, 2) . " de " . Indice::ObtenerMesStr(substr($EntradasPC[$i]["Fecha"], 3, 2)) . " del " . substr($EntradasPC[$i]["Fecha"], 6, 4) . " por <b>" . $EntradasPC[$i]["Autor"] . "</b>" . Intro(); $Codigo .= $BD->ObtenerValoresEntrada($EntradasPC[$i]["URL"], $EntradasPC[$i]["Titulo"], false) . Intro(); // echo ", 894 visitas, 0 comentarios, 0 votos.</span><br />"; $Codigo .= "<span><br />" . Intro(); $Codigo .= Indice::EnlazarTags($EntradasPC[$i]["Tags"]) . Intro(); $Codigo .= "</span>" . Intro(); $Codigo .= "</span>" . Intro(); $Codigo .= "</article>" . Intro(); // Ultimo articulo de la lista $Contador++; if ($i === count($EntradasPC) - 1) { $Codigo .= "<div finscrollinfinito='true'></div>" . Intro(); } // } // Cuando se leen 16 articulos paramos if ($Fin === $Contador) { devildrey33_Opciones::EntradasIndice($Inicio + $Contador); /* Guardo en la sesión el número de entradas guardadas con el scroll en el indice */ return $Codigo; /* - De esta forma si se vuelve al indice por el historial volverá a la posición de la entrada a la que se accedió */ } } return $Codigo; }