CMS

csm

CSM es sistema de gestión de contenidos no es un lenguaje de programación, es un programa (una aplicación) que permite crear una estructura de soporte (framework) para la creación y administración de contenidos, principalmente en páginas web, por parte de los administradores, editores, participantes y demás usuarios.

Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio web. El sistema permite manejar de manera independiente el contenido y el diseño. Así, es posible manejar el contenido y darle en cualquier momento un diseño distinto al sitio web sin tener que darle formato al contenido de nuevo, además de permitir la fácil y controlada publicación en el sitio a varios editores. Un ejemplo clásico es el de editores que cargan el contenido al sistema y otro de nivel superior (moderador o administrador) que permite que estos contenidos sean visibles a todo el público (los aprueba).

Subcategorías

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

El objetivo de está entrada es iniciarnos para crear nuestros plugins para Joomla, ver el potencial que tienen e incluso poder modificar el funcionamiento de alguno.

Para ello os pongo el ultimo de una serie vídeos que organizo Desarrollo Web en sus Hangouts, con titulo: "Programación con Joomla"

En estos participarón muy buenos programadores aportando su experiencias, tengo que nombrar a dos de ellos, los conocemos y tenemos muy buenas referencias de ellos:

  • Roberto Segura
  • Isidro Baquero

Video de ultimo de serie de programación en joomla.

Algunas anotaciones iniciales y genereales

- Potencia que tiene los plugins

- No es más pesado, ni influye negativamente en el rendimiento el utilizar plugins.

- Utilizar plugin hace que podamos re-utilizar con más faclidad nuestro código.

- "Los plugins se insertan despues de eventos "

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Objetivo del Plugin: Include Component

El objetivo principal de este plugin es poder incluir un componente en cualquier sitio de Joomla.

Con esto quiero decir, que los creadores de esté plugin, nos proporcionan funcionalidad a joomla que es impresionante, ya que así podremos de una forma muy sencilla aprovechar todas las extensiones y funciones Joomla en cualquier momento y en cualquier lugar de la WEB.

Aquellos como nosotros  que creamos proyectos WEBS con Joomla, seguro que este plugin nos es muy util en un montón de ocasiones para solucionar muchísimos problemas que nos vamos encontrado.

DESCARGA Y INSTALACIÓN DE INCLUDE COMPONENT.

El plugin se encuentra en la web extensiones de Joomla, donde podemos ver la demo, descargarlo y ver las críticas o elogios de la comunidad.

Al descargarlo nos lleva a la plataforma de control de versiones de joomlacode. En principio debemos fijarnos en que versión vamos a descargar para que sea compatible con nuestro Joomla.

El plugin no está preparado para traducciones por lo que solo tendremos en ingles.

En este link de WEB EMPRESA podemos encontrar como instalarlo y activarlos.

Como utilizar INCLUDE COMPONENT:

Pues una vez activado y configurado a nuestro gusto, normalmente ya viene correctamente para su funcionamiento la configuración, podemos utilizar el plugin donde queramos , en un modulo, en un articulo... 

Utilizando el siguiente código:

{ component url='index.php?option=com_component&Itemid=73&parameters....'  }

Para meter link podemos utilizar el mismo generado por nuestros item de menus.

Donde los utilizamos INCLUDE COMPONENT nosotros:

Como ya dije, este plugin es muy util y por ello vamos a poner alguno link a webs donde lo utilizamos y indicando para que.

evigo.es

Para añadir de una forma organizada y con más información los agregadores de RSS que nos facilita Joomla.

Es decir poder crear un categoria en contenido de medios prensa, poder añadir el medio en un articulo y poder añadir el agregador noticias externas en ese articulo.

 

 

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Con el cambio de ley de LOPD en españa el 25 mayo 2018, no pusimos a buscar soluciones para nuestros cliente que cubran todos los aspectos legales que pide esta ley.

Encontramos la extensión creada por Joomla! Extensions Store -> GDPR. Link a descarga extension .La instalamos para probar su potencial, de inicio me encuentro que solo tiene los idiomas de ingles y italiano, por lo que hago una traduccion language al español, un poco chafa... :-)

Link a github donde tengo los paquetes laguage en español de extension GDPR

 Mirar que pinta.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Un modulo nativo de los más utilizados por nosotros, por la facilidad que nos permite añadir contenido.

Incluso podemos añadir instrucciones ejecucción de plugin, que nos hacer que este modulo sea mucho más vestatil.

Nosotros no somo partidarios de instalar muchos modulos de terceros, somos más partidarios de reutilizar modulos nativos, incluso copiarlos para añadirles más caracteristicas.

Normalmente es muy fácil poder duplicar un modulo, pero en este caso el mod_custom nos trajo alguna complicación.

Por ello analizamos a fondo el funcionamiento interno de este modulo, el uso a nivel de usuario hay ya mucha información en la red.

[PENDIENTE]CARGAR LINK DE AYUDA MODULOS PERSONALIZADOS.

CÓDIGO DEL MODULO COSTUM

Realmente este modulo no tiene mucho que explicar.

Tiene los siguiente fichero y carpetas:

- mod_custom.php

- mod_custom.xml

- DIRECTORIO: tmpl

El directorio tmpl, es donde podemos encontrar la vista por default, que podemos realizar overwrite para nuestra plantilla.

Lo más curioso y lo que nos hace que no podemos copiar el modulo y cambiarle el nombre y poder modificar el funcionamiento de este, es que este modulo en la parte administrativa carga una seccion llamada "Salida Personalizada" y no esta indicada en los fichero del código del modulo.

Esto es debido que la extension "Gestor de modulo" tal como conocemos en la parte administrativa , es un componente de la parte administrativa ( com_module), y es esté componente el que añade la sección del modulo custom ( "Salida Personalizada" ) por lo que si queremos que la añada en otro modulo tendriamos que cambiar el código del "Gestor de modulos" ,algo por lo que nosotros no estamos de acuerdo ,ya pertenece para nosotros al nucleo del Joomla.

Ficheros de com_module donde realiza la carga sección "Salida Personalizada"

com_module/views/module/edit.php


$hasContent = empty($this->item->module) || $this->item->module == 'custom' || $this->item->module == 'mod_custom';
/* Lineas adelante pone el siguiente código donde inserta la secciónd de "Salida Personaliza "*/
<?php if ($hasContent) : ?>
        <div class="col main-section">
        <fieldset class="adminform">
            <legend><?php echo JText::_('COM_MODULES_CUSTOM_OUTPUT'); ?></legend>
            <ul class="adminformlist">
                <li><?php echo $this->form->getLabel('content'); ?>
            <div class="clr"></div>
                <?php echo $this->form->getInput('content'); ?></li>
            </ul>
        </fieldset>
        </div>
<?php endif; ?>

Con esto nos obliga buscar otra solución para cuando queramos cambiar el funcionamiento o el uso del mod_custom

BUSQUEDA DE MODULOS EXTERNOS SIMILARES.

Antes ponernos a idear soluciones para lo que pretendemos hacer, nos ponemos a buscar otro modulos que sean similares.

Modulo Custom Advanzado: Este modulo simplemente utiliza la creación de campos texto, lo descarto ...

Ad Single Article: Este modulo es muy simple, lo que hace es añadir el contenido de un articulo dentro del modulo, por lo que podemos ponerlo en las posición que le indiquemos.( Muy util)...

 

 

 

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Los componente de Phoca.cz son siempre una excelente opción.

Hoy toca integrar phoca-email aun web, después de hora probando otros me decidí por este componente ya que hace lo que buscabamos y de momento no necesitamos más.

El phoca.cz es que creo que algunos patrones que utiliza Joomla se lo pasa a la bartola, pero no puedo hablar mucho ya que hasta ahora no hemos tocado mucho este componente, para ponernos a críticarlo.

CODIGOS A PONER EN EL NEWSLETTER.

 

  • {name} - será reemplazado por nombre de usuario
  • {email} - será reemplazado por correo electrónico del usuario
  • {sitename} - será reemplazado por el nombre del sitio web - se puede configurar en las opciones
  • {subscriptionname} - será reemplazado por el nombre de la suscripción - se puede configurar en las opciones,, no se realmente para que se pone.
  • {activationlink} - Es el enlace para la activación - Si queremos indicar texto debemos ponerlo dentro href="/{activationlink}
  • {unsubscribelink} - Es el enlace cancelacion subcripción, al igual que anterior
  • {articlelink} - será reemplazado por el enlace a un artículo específico fijado en opciones del boletín
  • {readonlinelink} - Enlace a ver lo on-line, ejemplo:
    <a href="{readonlinelink}">haga clicl para verlo onlinea</a>

Explicacion de los campos de la tabla prefijo_phocaemail_subscribers.

Campos:

  • `name`: El nombre que puso en el campo name.
  • `email`: El email con el se hizo subscriptor del boletin.
  • `token`: Token que genera cuando uno se subscribe, se utiliza para montar los links activacion y desactivacion.
  • `published`: Estado de publicado (1) o despublicado (0), esta opción no comprobe exactamente para que lo utiliza:
        -Si manda o no email
        -Si permite link a ver noticia directamente o no ..{readonlinelink}
        ...
  • `active`: Indica si está activo y puede estar en:
      1. valor 0 : Se subscribio pero aun no activo
      2. valor 1 : Activo
      3. valor 2 : Cancelo la subscripción.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Nuevo módulo de Búsqueda corrigiendo error y mejorando el módulo nativo (mod_search)

Partiendo del módulo mod_search creamos uno nuevo solucionando el problema de que encontramos en módulo nativo, que al hacer una busqueda el resultado lo muestra pero no asociado a ningún tipo de item, es decir no busca en los menus un item de menu donde tengamos la lista de los resuldados de búsqueda, que es lo creo que debería hacer.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

1. crear archivo filter_xxx.xml (models/forms/filter_versions.xml)

  1.  campo buscar
    1. name="search"
    2. class="js-stools-search-string"
  2.  campo personalizado
    1. name="filtroMarcas"
    2. type="filtroMarcas"
    3. onchange="this.form.submit();"

De esta forma añado un buscador simple y bton herramientas busqueda donde puedo encontrar los campos personalizados, como campo de entrada vacia. (por el momento)

Si creamos otro archivo: ej. filtroMarcas.php (models/fields/filtroMarcas.php) es donde relacionamos el campo personalizado creado anteriormente.

2. Se crea archivo filtroMarcas.php (models/fields/filtroMarca.php)

Opcional: solo es necesario cuando hay Campos personalizados -----------------------------

Campo personalizado, si es buscador solo no es necesario hacer esto.

  1.  class JformFieldFiltroMarcas extends JFormFieldList
  2.  protected $type='filtroMarcas'
  3. funcion getOptions() --> hacer query, listar, y dejar seleccionada la opc.
    1. Con ... foreach {
    2. $tmp = Jhtml::_('select.option', $item->id, $item->nombre);
    3. $options[] = $tmp
    4. }
  4. funcion getOptionsExternally() : Metodo para obtener una lista de opc para una entrada de la lista de forma externa y no de XML.

--------------------------------------------------------------------------------------------------------------!

3. Añadir lineas en view.html.php views/nodelos/view.html.php

  1. en funcion display()
    1.  $this->filterForm = $this->get('FilterForm');
    2.  $this->activeFilters = $this->get('ActiveFilters');

4. Añadir herramientas de busqueda default.php views/nodelos/tmpl/default.php

  1. <?php
    1. echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
  2. ?>

5. Añadir 3 funciones en marcas.php (models/marcas.php)

query de lo que queremos que haga el filtro de busqueda...

  1.  __construct ($config=array()) establece campos de filtro
  2.  populateState ($ord=null, $dir=null) obtener y establecer los valores actuales de los filtro.
  3.  getListQuery() usar los valores de filtro actuales para modificar la consulta.

 

 

Vista Version

crear

  1.  models/forms/filter_versions.xml
  2.  models/fields/filtroVersions.php (campo personalizdo)

modificar:

  1.  views/versions/view.html.php
  2.  views/versions/tmpl/default.php
  3.  models/versions.php

 

Crear campo personalizado NUEVO

  1.  crear models/fields/filtroVersions.php (campo personalizdo)
  2.  crear campos en vista del filtro de la vista donde quiero mostrarlo . ej. Vista versiones, xml -> filter_versions.xml. models/forms/filter_versions.xml
  3.  modificar o añadir query para filtrar bien la busqueda models/versions.php

Para que aparezca buscador

  1.  crear                models/forms/filter_marcas.xml                en principio sin campos personalizados
  2.  añadir lineas     views/marcas/view.html.php
  3.  añadir lineas     views/marcas/tmpl/default.php
  4.  añadir query     models/marcas.php

**Me base en com_content/articles

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Akeeba es una de esas extensiones que utilizo en todas mis webs, por la sencillez y eficacia, no puede faltar en ninguno de mis proyectos.

Ahora en la version v6.4.0 me genera un error al restaurar una copia.

No se si es un error de mi copia o un error de la version del componente, aunque me temo lo ultimo.

Captura de pantalla de 2019 02 27 09 48 47

 

La solucion es sustituir la linea 12  del fichero instalation/sql/site.sql por :

CREATE TABLE `#__akeeba_common` ( `key` varchar(192) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

Solucion ofrecidad por Nicolas el creador componente:

Aunque a la hora reportar el error en siguiente link, recibo una respuesta automatica diciendo que no responden, que si quiero una respuesta le mandemos un ticket ( cosa para hacerlo hay que tener una subcripción ).

Al día siguiente de enviar el error recibo una respuesta de Nicolas diciendo:

Before database restoration set:

Allow UTF8MB4 auto-detection : No
Force UTF-8 collation on tables : Yes

Como mi ingles es muy malo , me ayudo de Google y :

Antes conjunto de restauración de base de datos:

Permitir UTF8MB4 detección automática: No
Fuerza UTF-8 de colación en las tablas: Sí

En la nueva restauración que hice probé a cambiar la configuración y fue correctamente.

configuracion error 640 akeeba

MUCHÍSIMAS GRACIAS NICOLAS POR CONTESTAR.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

El objetivo de esta entrada, es anotar un poco los cambios de css que ponemos para centrar la images de la galeria phocagallery en nuestras plantillas.

Conseguir que si mostramos varias fotos por columnas, que estas cuando no llenen la plantilla que se centren en ella.

centrarImagenPhocagallery

A veces , cuando las imagenes metemos , son demasiado grandes, nos deja un espacio a la derecha o incluso centrar las imagenes de la ultima fila, como se enseña en la imagen.

Lo podemos hacer es sobreescribir el css que genera el componente.

1.- Localiza la capa contendora de las imagenes, en la version actual es:

pg-msnr-container

y añadimos al css de nuestra plantilla:

  #pg-msnr-container {
margin: 0 auto;
text-align: center;
}

Luego buscamos el contenedor ( capa ) de cada imagen

.pg-cv-box{
float: none; /* Para eliminar el que traer left */
display: inline-block;
}

Bueno, lo siento por no explicar más , espero que valga de ayuda, a nosotros no sirve recordatorio...

Cualquier duda , podéis informanos en contactar.