Inglés

Documentación

Descripción

Esta web funciona con un framework en donde cada módulo es una aplicación web que se muestra como una sección más. Algunos módulos son fijos y necesarios para el normal funcionamiento y otros son opcionales. Entre los fijos tenemos el que gestiona el control de accesos o el de acceso a bases de datos, y entre los opcionales tenemos la tienda, el formulario de contacto o el que nos permite disponer de páginas estáticas. Existen más módulos, como foros, blog, chats, etc.

Existen frameworks y/o gestores de contenido de gran prestigio, como como Wordpress, Drupal, Joomla. Si programas un módulo o un theme para una de esas cosas y cometes un error en el código no hay problema, mami te quiere. Si eres un poco llorica más te vale ponerte uno de esos bloatware.

Requisitos

  • Servidor web Apache o NIGNX con mod-rewrite.
  • PHP 7.3 o superior.
  • Base de datos MaríaDb, MySql u Oracle.
  • Certificado ssl válido.
  • Usuario LDAP (Sólo si se desea autenticar contra un servidor LDAP o AD).
  • Permiso de escritura para el script en el directorio ./media
  • Permiso de escritura para el script en su carpeta (sólo para updates)

Instalación

  1. Descargar el instalador: https://software.extralab.net/jux_installer.zip
  2. Descomprimir y subir el archivo install.php al raiz del servidor web
  3. Abrir en el navegador /install.php
  4. Seguir las instrucciones: Descargar archivos, elegir base de datos e instalar.
Con SQLite es mas que suficiente para una web sencilla, tipo blog o similar. Para usos mas avanzados se recomienda MySQL o MariaDB.

Módulos

Un módulo es una carpeta dentro de la carpeta _modules_, cada módulo es una aplicación web.
Creación de nuevo módulo: control_panel/new
Copia de módulo existente: control_panel/new/modulo_existente
Editar código fuente: edit/_modules_/ (experimental)

Themes

Un "theme" es una carpeta dentro de la carpeta _themes_.
Archivos de un theme:

  • init.php
  • index.php
  • style.css (opcional)

Este sería un index.php mínimo:

>
<html lang="$_SESSION['lang']?>">
    <head>
        <meta charset="utf-8">
        <base href="SCRIPT_HOST.SCRIPT_DIR?>/">
        <title>CFG::$vars['site']['title']?>
         include(SCRIPT_DIR_INCLUDES.'/head.php'); ?>
        <link rel="stylesheet" type="text/css" href="SCRIPT_DIR_THEME?>/style.css?ver=1.0.0"/>
          include('media/icons/icons.php'); ?>
    >
    <body class="body-MODULE?>">
        <header>
            
                $menu1 = new Menu(1);
                $menu1->get_items();
                $menu1->print_menu();
            ?>
        >
        <section id="content">
              include(SCRIPT_DIR_MODULE.'/index.php'); ?>
        >
        <footer id="footer">
        >
        include(SCRIPT_DIR_INCLUDES.'/footer.php'); ?>
    



Para tener un theme con este index.php de ejemplo, creariamos una carpeta dentro de _themes_, y en ella éste index.php, un init.php y un style.css, que podemos dejar vacíos. Para activar el theme simplemente añadimos /theme/ en la url

Panel de control

El Panel de control está accesible sólo para administradores de la web y en él se pueden manejar todos los aspectos configurables y/o editables de la web así como los distintos módulos instalados. Según qué permisos que tengamos asignados podremos hacer mas o menos cosas. Este módulo está organizado en pestañas. Las más significativas son:

Control de accesos. Aquí podemos configurar Usuarios, Grupos y Permisos. Un Permiso es un tipo de operación que puede ir asociado a una página y/o a una acción, y a un usuario o grupo de usuarios. Por ejemplo, los usuarios que tengan el permiso Añadir páginas podrán añadir nuevas páginas a la web. Un usuario puede ser miembro de varios grupos, y tendrá los permisos de todos los grupos de los que sea miembro. Cada módulo definirá los permisos que necesite y desde el panel de control podremos asignar esos permisos a los grupos y/o usuarios que se desee. Al instalar la web se crea el grupo Administradores, que dispone de los permisos para editar grupos, usuarios y permisos, y un usuario admin miembro de este grupo.

Páginas. Módulo pages. Permite añadir/modificar y eliminar páginas estáticas, como ésta misma.

  • Añadir: Escribiendo la url [dominio]/page/. El nombre de la pagina debe contener únicamente letras entre la a y la z y/o números, sin tildes ni eñes, pues éste será el identificador para formar la url. Después se podrá editar la página simplemente pulsando en el enlace Modificar.
  • Modificar: En cada página hay un enlace "Editar esta página" que nos pone en modo edición. En la pestaña Páginas, en el Panel de control, también se pueden modificar y añadir páginas, así como definir su orden, visibilidad, etc.

Menús. Permite editar elementos en los distintos menús que pudieran haber en la web. Cada ítem de menú puede enlazar a una página del módulo pages, a un módulo, a una url externa, o a nada, por ejemplo, cuando se trata un menú con submenús. Los elementos pueden ordenarse por su columna orden, siendo el primero la entrada a la web. Desde esta pestaña se pueden generar y actualizar el sitemaps.xml y robots.txt para los buscadores.

Configuración. En esta sección se configuran los parámetros principales de la web, clasificados en varias subsecciones o pestañas.

  • Idiomas. Permite configurarlos idiomas y actualizar las traducciones de cada uno.
  • Traducción. Para cada idioma permite editar las traducciones de los literales usados en la web.
  • Plantillas. Plantillas usadas, por ejemplo, para la composición de emails enviados, registro, etc.
  • Ajustes. Todos los parámetros configurables en la web. Cada uno se acompaña, cuando es necesario, de su explicación.
  • Diseño. Permite modificar los logos, para el encabezado de la web, los mensajes de email y los favicons. También genera conjuntos de imágenes, configuraciones xml, etc. para integración con pantallas de móviles, tablets, etc.
  • Log. Se guardan logs de algunos eventos, como envíos de formularios, etc.

Autentificación LDAP. Sólo hay que rellenar los datos correspondientes en Panel de Control -> Configuración -> LDAP
Google. En Panel de control -> Ajustes se puede habilitar Google OAuth, Google ReCaptcha y Google Analitics.

Panel de control - Módulo tienda

Productos. Aquí añadiremos artículos, con sus precios, imágenes, presentaciones y tipos. Cada artículo tiene su imagen principal y una miniatura, ambas pueden ser .jpg o .png con fondo blanco o transparente, con unas dimensiones recomendadas de aproximadamente unos 800 a 1000px de altura para la principal y 150 a 250px para la miniatura y un ancho de entre 1/4 y 1/2 de la altura. En cualquier caso la visualización viene determinada por el diseño de la web, independientemente de las dimensiones reales de las imágenes.

Pedidos. Cuando un cliente realice una compra, en esta tabla veremos los datos del pedido realizado, incluso si no llegó a completarse. No obstante, el banco u organización cuya pasarela de pagos usamos también pondría la notificación correspondiente, si así se ha acordado con la entidad.

Cupones de descuento.

Configuración.

  • Impuestos
  • Agencias
  • Destinos
  • Tarifas
  • Idiomas
  • Tipos
  • Bodegas (Tienda Vinos)
  • DO (Denominaciones de origen) (Tienda Vinos)
La pestaña Tarifas, en combinación de Destinos, permite definir distintos gastos de envío en función del destino, el número de artículos, su importe o su peso. Sólo se podrán hacer pedidos para destinos que tengan una tarifa definida.

MRW: En Ajustes se pueden configurar los datos de MRW para la generación e impresión de etiquetas de envío.
Métodos de pago. Se pueden activar en Panel de control -> Ajustes. Redsys ó CECA, Bizum, Paypal y Transferencia. En una próxima actualización estarán disponibles Stripe y Opennode.

Edición del contenido

Las páginas estáticas pueden pueden ser editadas de varias formas:

  • Directamente, con un editor "inline", pulsando en "Editar esta pagina".
  • Edición del código html, pulsando Src
  • Edición "avanzada", pulsando en Avd, que abre la ventana de edición y permite editar todos los campos de la página, nombre, títulos, etc. Aqui se usa el editor wysiwyg TinyMce.
  • Es importante tener en cuenta que algunas de sus secciones, debido a su diseño particular, deben incluir código css y/o javascript. En estos casos, dicho código debe ponerse en el campo Código, visible en la ventana de edición avanzada.
  • Para facilitar el proceso de añadir nuevos contenidos disponemos de la función Clonar, que nos permite duplicar cualquier página, de manera que podemos añadir nuevas usando actuales como si fuesen plantillas. Quedaría como tarea del diseñador y/o programador diseñar nuevas páginas, con su css, js, etc., cuando fuera necesario.
  • Editar una página en idioma distinto al idioma por omisión es tan sencillo como poner la web en el idioma deseado y pulsar Editar esta pagina. El guardado se hará para el idioma seleccionado. Naturalmente también se puede usar el editor avanzado, que, además, permite traducir títulos, etiquetas, etc.

Actualizaciones

  • Actualizar el framework a la última versión disponible.
  • Instalar y actualizar plugins y módulos.
  • Copia de seguridad completa: código, diseños, módulos, etc.
  • Copia de seguridad de la base de datos. Compatible con phpmyadmin.

Estructura de archivos y carpetas

Archivo o carpetaDescripción
.htaccessConfiguración apache (nginx.conf si se usa nginx)
configuration.phpConfiguración inicial, carpetas, bbdd, ldap, etc.
index.phpPunto de entrada (único) a la web.
sitemap.xmlGenerado automáticamente (si se dispone de permiso de escritura)
robots.txtidem
_classes_Clases php propias del framework
_i18n_Traducciones de los literales usados en la web
_images_Imágenes, iconos, logos, banderas, etc usadas por el framework
_includes_Utilidades y funciones varias.
_lib_Librerías de terceros. No esenciales.
_modules_Módulos y aplicaciones web.
_outputs_Tipos de salida, html, pdf, ajax, json, etc
_themes_Diseños o "themes".
mediaImagenes, vídeos o documentos que pueden ser subidos a la web.

...