Los dos archivos tienen responsabilidades diferentes:

  • provider.php: prepara el plugin para que Joomla pueda ejecutarlo.

  • Likeit.php: contiene la lógica de funcionamiento del plugin.

    Article ID: 1

1. provider.php — Inicialización

Es el intermediario entre Joomla y nuestro plugin.

Cuando Joomla necesita cargar LikeIt, este archivo:

  1. Identifica la clase Likeit mediante su namespace.

  2. Registra el plugin en el contenedor de servicios de Joomla.

  3. Crea una instancia de la clase Likeit.

  4. Le proporciona acceso a la aplicación Joomla.

  5. Devuelve la instancia para que Joomla pueda utilizarla.

Por ejemplo, esta línea:

$plugin = new Likeit((array) PluginHelper::getPlugin('content', 'likeit'));

Crea el objeto que ejecutará nuestro plugin.

En principio, provider.php no necesitará grandes cambios cuando incorporemos las votaciones.

2. Likeit.php — Funcionamiento

Aquí desarrollaremos la lógica de LikeIt.

Actualmente contiene dos funciones principales.

A. getSubscribedEvents()

public static function getSubscribedEvents(): array
{
    return ['onContentPrepare' => 'replaceLikeitTag'];
}

Le indica a Joomla:

Cuando prepares el contenido de un artículo, ejecuta la función replaceLikeitTag.

B. replaceLikeitTag()

public function replaceLikeitTag(ContentPrepareEvent $event): void

Es la función que procesa el contenido.

En la parte visible de tu código:

  1. Comprueba que estamos en el sitio público y no en el administrador.

  2. Obtiene el objeto del artículo.

  3. Comprueba que exista contenido de texto.

Después, según el diseño de esta versión, busca <likeit> y lo sustituye por el mensaje de prueba.

3. Relación entre ambos

Joomla

Necesita cargar el plugin

provider.php

Crea y registra LikeIt

Likeit.php

Recibe el evento y procesa el artículo

Artículo procesado

La etiqueta se sustituye por el contenido generado

4. ¿Qué cambiará cuando desarrollemos las votaciones?

La mayor parte del trabajo estará en Likeit.php y en funciones auxiliares:

  • Identificar el artículo.

  • Comprobar si el usuario está registrado.

  • Consultar los votos en SQL.

  • Generar los botones y contadores.

  • Gestionar la confirmación y el registro del voto mediante una solicitud al servidor.

En síntesis: provider.php conecta el plugin con Joomla; Likeit.php determina qué hace el plugin.