예제 #1
0
 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;
 }
예제 #3
0
<?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();
예제 #4
0
 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));
 }
예제 #6
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);
예제 #9
0
 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;
 }