it-swarm-es.tech

Establecer cookie desde el complemento de joomla

Quiero mostrar el mensaje de descarga de la aplicación (una imagen) a los usuarios que navegan en mi sitio desde Android solamente. Así que he desarrollado un complemento para lograr esto. Ahora quiero mostrar este mensaje solo la primera vez entonces, necesito configurar la cookie. Aquí estoy verificando si la cookie se configuró primero y luego no se muestra el mensaje, sino que se muestra el mensaje pero la condición no funciona, se muestra el mensaje cada vez.

<?php

defined('_JEXEC') or die;
jimport('joomla.plugin.plugin');

class plgsystemandroidmsg extends JPlugin {

    function onAfterRender() {
        $app = JFactory::getApplication();
        $htmlString = $app->getBody();
        if ($app->isAdmin()) {
            return;
        }
        $uri = JFactory::getURI();
        if (isset($_SERVER['HTTP_USER_AGENT'])) {
            $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
            if (stripos($ua, 'Android') !== false) {
                $cookieName = 'mymsgseen';
                $cookieValue = $app->input->cookie->get($cookieName);
                if ($cookieValue != null && $cookieValue == 1) {
                    $htmlString = 'cookie is set : ' . $cookieValue;
                    $app->setBody($htmlString);
                } else {
                    $cookieValue = 1;
                    $expire = time() + 60 * 60 * 24 * 30;
                    $app->input->cookie->set($cookieName, $cookieValue, $expire);
                    $htmlString = 'cookie is not set';
                    $app->setBody($htmlString);
                }
            }
        }
        return true;
    }

}

¿Cómo puedo conseguir esto? ¿Cómo configurar y obtener cookies en Joomla 3?

4
Ram Guru99

En primer lugar, primero puede intentar ajustar este código en su plantilla. Si puede darle más flexibilidad allí.

onAfterRender no me parece correcto manipular el contenido y configurar cookies/leer cookies.

¿Estás seguro de que realmente se está llamando a tu complemento? De todos modos, revise la consola de su navegador para ver el estado.

2
Valentin Despa