it-swarm-es.tech

Evitar contar mis propias visitas en las páginas.

Acabo de instalar Joomla 3.3. Me gustaría tener la oportunidad de evitar incrementar el contador de visitas mientras visito mis propias páginas. ¿Es posible al menos cuando estoy conectado?

7
usernumberone

Puede crear un complemento como este:

class plgContentReduceHits extends JPlugin
{
    public function onContentAfterDisplay($context, &$article, &$params, $limitstart)
    {
        if ($context == 'com_content.article' && JFactory::getUser()->id == $article->created_by && $params->get('intro_only'))
        {
            $db = JFactory::getDbo();
            $db->setQuery('UPDATE #__content SET hits = hits - 1 WHERE id = ' . $article->id);
            $db->execute();
        }
        return '';
    }
}

El complemento anterior funciona. Es obvio que debe iniciar sesión en su sitio y el complemento debe estar habilitado.

4
Farahmand

Suponiendo que está hablando del contador de visitas integrado de Joomla, la respuesta hasta donde yo he visto es "no". El código que ejecuta esto es súper simple y no ofrece medios reales para adaptar esto en el CMS. (El código ni siquiera incrementará el contador de visitas si habilita el almacenamiento en caché ...)

Lo que sucede actualmente en el artículo view.html.php el archivo es este:

// Increment the hit counter of the article.
if (!$this->params->get('intro_only') && $offset == 0)
{
    $model = $this->getModel();
    $model->hit();
}

Comprobación básica para asegurarse de que este es el comienzo de cargar el artículo completo. Si es así, active el modelo para grabar un golpe.

El modelo hace esto:

public function hit($pk = 0)
{
    $input = JFactory::getApplication()->input;
    $hitcount = $input->getInt('hitcount', 1);

    if ($hitcount)
    {
        $pk = (!empty($pk)) ? $pk : (int) $this->getState('article.id');
        $db = $this->getDbo();

        $db->setQuery(

            'UPDATE #__content' .
                ' SET hits = hits + 1' .
                ' WHERE id = ' . (int) $pk
        );

        try
        {
            $db->execute();
        }
        catch (RuntimeException $e)
        {
            $this->setError($e->getMessage());
            return false;
        }
    }
    return true;
}

Básicamente, incremente la columna de aciertos en el artículo.


Si desea ajustar el comportamiento de esto actualmente, su única opción es editar el código central (y tener los problemas inherentes con eso cuando intente actualizar).

No hay forma de "interceptar" esta acción y activar un complemento para realizar una acción alternativa. La mejor opción es ignorar la columna de éxito en los artículos y usar una mejor medida de cuántas visitas obtienen sus artículos (con Google Analytics probablemente sea la opción más popular).

2
David Fritsch

Acabo de encontrar un complemento en JED llamado JProNoHitCount ( http://extensions.joomla.org/extensions/authoring-a-content/admin-interface/22961 ) que le permite seleccionar uno o más grupos que se excluirán del artículo hit counter.

(Tenga en cuenta que es un complemento comercial).

1
johanpw