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.
1. provider.php — Inicialización
Es el intermediario entre Joomla y nuestro plugin.
Cuando Joomla necesita cargar LikeIt, este archivo:
-
Identifica la clase
Likeitmediante su namespace. -
Registra el plugin en el contenedor de servicios de Joomla.
-
Crea una instancia de la clase
Likeit. -
Le proporciona acceso a la aplicación Joomla.
-
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:
-
Comprueba que estamos en el sitio público y no en el administrador.
-
Obtiene el objeto del artículo.
-
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.