Como crear un módulo para el CMS de Datalife Engine (DLE)

En este Tutoriales En Linea les mostraremos la manera de hacer un modulo para el CMS de Datalife Engine (DLE). Ademas quiero destacar la creación del módulo más simple para el popular motor CMS de Datalife. Aunque en los últimos años esta cogiendo bastante popularidad, pero por alguna razón, todavía no hay artículos sobre este CMS en español. Trataré de corregir este malentendido. En este artículo, aprenderá a hacer el módulo más simple para este CMS, y también se familiarizará con la estructura del motor.

Introducción


Me gustaría señalar que el sistema está en demanda entre los sitios de entretenimiento. Es comprensible, el sistema es fácil de usar, tiene suficientes módulos y plantillas. Y casi todo lo que necesitas está dentro de este Tutoriales En Linea. Sin embargo, sucede que algo falta. Trataremos de resolver este problema.

¿Por qué DLE?


Probablemente estés interesado en por qué elegí este CMS en particular. La respuesta es simple: una estructura bastante lógica del motor en sí, la separación de las plantillas del código, un motor de plantillas bastante simple, de nuevo una ubicación bastante lógica de todo lo que hay dentro: es fácil descubrir qué es qué. Además, el sistema sigue siendo relativamente fácil y conveniente. No es tan funcional como, por ejemplo, Drupal, pero aún así me gusta.

Estructura


Primero, necesitamos saber algo sobre la estructura del motor. No puedes crear un lío en el servidor, así que almacenaremos todo en nuestras carpetas. 

Los módulos para ejecutar el motor generalmente se colocan en la carpeta /engine/modules/. 

La carpeta /engine/inc/ contiene archivos del panel de administrador. 

Comenzando con la versión 8.x, parecía conectar los módulos directamente en la plantilla. La plantilla se encuentra en la carpeta / templates/Nombre de tu Plantilla/. En esta carpeta hay un archivo main.tpl Este es el archivo raíz de la plantilla, generalmente contiene la estructura básica de la plantilla. Por lo general, el módulo se puede conectar así: 

{include file=«engine/modules/mod_category.php»}

Donde mod_category.php es un archivo ubicado en la categoría /engine/modules/ Creo que esto está claro, fuimos más allá.

Hagamos un módulo para mostrar los últimos comentarios con el almacenamiento en caché. Para hacer esto, crea un archivo en la carpeta /engine/modules/ y llámalo mod_lastcomm.php. A continuación, enumero el código para este archivo con comentarios detallados.

Código

<?php


/* Verificamos la existencia de constantes '<i>DATALIFEENGINE</i>'. Esta constante se define en index.php
y su valor TRUE simboliza que el archivo está conectado usando include/require y no solo ejecutándose. */

if(!defined('DATALIFEENGINE'))
{
      die("Hacking attempt!");
}


/* Conectamos la API de la clase, para que podamos usar las funciones para trabajar con la memoria caché. */

include ('engine/api/api.class.php');


/* Intentamos leer la información almacenada en el caché llamada lastcomm. Recomiendo dar nombres significativos
todo lo que almacenamos en el caché. De hecho, <b> lastcomm </ b> es el archivo en la carpeta <i>/engine/cache/</i>, 
y <b> 60 </ b> es la duración de la caché en segundos.
En este caso, si han pasado más de 60 segundos desde la creación del archivo, nuevamente tendremos que subir a la base de datos. */

$lastcomm=$dle_api->load_from_cache( "lastcomm", 60);


/*Comprobamos si tenemos un caché o no. Si no hay, entonces sube al BD. */

if (!$lastcomm) {


/* En realidad, la consulta en la base de datos. Se ejecuta usando la función de clase $db.
La constante PREFIX contiene el prefijo especificado al instalar cms.
Los nombres de las columnas se llaman bastante normales, creo que no es necesario explicar lo que están haciendo.
Ponemos la consulta en la variable $sql. */


    $sql = $db->query("SELECT comments.post_id, comments.text, comments.autor, post.id, post.flag,
    post.category, post.date as newsdate, post.title, post.alt_name 
    FROM " . PREFIX . "_comments as comments, " . PREFIX . "_post as post 
    WHERE post.id=comments.post_id 
    ORDER BY comments.date DESC LIMIT 0,20");


/* Usando la función get_row() de la clase $db, leemos secuencialmente cada fila de los resultados de la selección.
La información se almacena en una arrays(matriz) $row con índices iguales a los nombres de los campos en las tablas*/
 
    while ($row = $db->get_row($sql))
    {


/* Si necesitas recortar el título de las noticias*/

        if (strlen($row['title']) > 50) {
                 $title = substr($row['title'], 0, 50)."...";
        } else {
                 $title = $row['title'];
        }



/* Forma un enlace al perfil de usuario. Similarmente*/

        $aname=urlencode($row['autor']);
        $name= "<a href=\"".$config['http_home_url']."user/".$aname."/\">". $row['autor'] .'</a>';


/* Formamos el texto del comentario y si necesitamos recortarlo */

        $text = htmlspecialchars($row['text']);
        if (strlen($text) > 1024)  $text= substr($text, 0, 1024)."...";


/* Forma un enlace a las noticias. arrays(la matriz) $config contiene todas las configuraciones del sistema.
Específicamente $config['http_home_url']  es la URL del dominio. */

        $newslink = $config['http_home_url'].$row['post_id']."-".$row['alt_name'].".html";
        $hint = "onmouseover=\"showhint('$text', this, event, '');\"";
        $title = "<a title=\"".$text."\" href=\"".$newslink."\">".stripslashes($title)."</a>";


/* Entrada resumida para un comentario*/

        $lastcomm.="От $nombre en el Tutoriales En Linea: <br /> $title <br /><br />";
    }

        $db->free();


/* Almacenamos los datos en caché Para comprender mejor las funciones de almacenamiento en caché,
abra el archivo 'engine/api/api.class.php' hay excelente todo está comentado */

    $dle_api->save_to_cache ( "lastcomm", $lastcomm);
} 


/* Salida el resultado */

    echo $lastcomm;

?>

Conclusión


Este código está funcionando completamente. Y ciertamente tiene inconvenientes. Por ejemplo, no se verifican las referencias, ya sea que el CNC esté encendido. O bien, al hacer clic en el enlace de un perfil de usuario, accederemos directamente a su perfil, no a la ventana de jQuery con información breve. En general, hay algo para refinar. Pero todas estas cosas no fueron incluidas aquí por una sola razón: no dejar que el recién llegado se confunda. También te aconsejo que analices otros archivos, por ejemplo topnews.php. Si tiene alguna pregunta sobre cómo escribir módulos o incluso en un sistema, me complace responderlos. 

Sobre esto tengo todo, si este tema le parece interesante a alguien, entonces haré una serie de artículos sobre cms Datalide Engine (DLE). 

Oh, sí, este es mi primer Tutoriales En Linea sobre este tema, lo siento mucho si ese no es el caso. Ver Demo Del CMS...


<a onclick=Tutoriales En Linea" class='avatar avatar-64 photo' height='64' width='64'>
  • Autor:
  • Editor:
      Tutoriales En Linea
  • Fecha:2018-08-11
  • Categorias: DataLife Engine Modulo DLE SoftNews Media Group WebSite Noticias Tutorial



Información
Usuarios que no esten registrados no pueden dejar comentarios, te invitamos a que te registre!