web-dev-qa-db-ja.com

ページでの自分の訪問をカウントしない

Joomla 3.3をインストールしました。自分のページにアクセスしている間、ビジターカウンターが増えないようにしたいのですが。少なくともログインしているときは可能ですか?

7
usernumberone

次のようなプラグインを作成できます。

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 '';
    }
}

上記のプラグインは動作します。サイトにログインし、プラグインを有効にする必要があることは明らかです。

4
Farahmand

Joomlaの組み込みヒットカウンターについて話していると仮定すると、私が見た限りの答えは「ノー」です。これを実行するコードは非常に単純で、CMSでこれを適応させる実際の手段はありません。 (キャッシュを有効にすると、コードはヒットカウンターをインクリメントしません...)

記事のview.html.phpファイルで現在起こっていることは次のとおりです。

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

これが記事全体のロードの開始であることを確認するための基本的なチェック。その場合は、モデルをトリガーしてヒットを記録します。

モデルはこれを行います:

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;
}

基本的には、記事のヒット列を増やします。


現在、この動作を調整したい場合は、コアコードを編集するしかありません(そして、更新しようとすると、固有の問題が発生します)。

このアクションを「インターセプト」してプラグインをトリガーして代替アクションを実行する方法はありません。最善の策は、記事のヒット列を無視し、記事のビュー数をより適切に測定することです(おそらく、Googleアナリティクスが最も一般的な選択肢です)。

2
David Fritsch

JEDでJProNoHitCount( http://extensions.joomla.org/extensions/authoring-a-content/admin-interface/22961 )と呼ばれるプラグインを偶然見つけました。記事ヒットカウンターから除外するグループ。

(これは商用プラグインであることに注意してください)。

1
johanpw