Tránh đếm lượt truy cập của riêng tôi trên các trang


7

Tôi vừa cài đặt Joomla 3.3. Tôi muốn có cơ hội tránh tăng lượt truy cập trong khi tôi truy cập các trang của riêng mình. Có thể ít nhất là khi tôi đăng nhập?


Tôi chắc chắn sẽ có một cách để làm điều này. Bạn đang đề cập đến bộ đếm thống kê tích hợp của Joomla hoặc một phần mở rộng khác? Bạn đã thử những gì cho đến nay?
Lodder

Thành thật mà nói, tôi không bao giờ nhìn vào số lượng trang đó. Tôi cài đặt Google Analytics và sau đó đặt IP văn phòng của tôi không được tính vào số liệu thống kê. Vấn đề là, nếu bạn KHÔNG đăng nhập ở mặt trước, bạn chỉ có thể làm điều đó qua IP. Tôi đoán rằng tôi luôn xem các bộ đếm trang đó như một mánh lới quảng cáo cho các trang web nhỏ và không phải là một cái gì đó thực tế.
Brian Peat

Câu trả lời:


4

Bạn có thể tạo một plugin như thế này:

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

Các plugin trên hoạt động. Rõ ràng là bạn phải đăng nhập vào trang web của bạn và plugin phải được kích hoạt.


1
Ôi !! Thông minh! Chỉ có điều xấu là bạn có 2 truy vấn để không làm gì hiệu quả, nhưng nó chỉ dành cho lượt xem trang của bạn, vì vậy có lẽ không phải là vấn đề lớn.
David Fritsch

@DavidFritsch, vâng, trên thực tế tối đa một truy vấn quá mức. IMHO nó có giá trị và không phải là một vấn đề lớn.
Farahmand

2

Giả sử bạn đang nói về bộ đếm hit tích hợp của Joomla, câu trả lời theo như tôi thấy là "không". Mã chạy mã này rất đơn giản và không cung cấp phương tiện thực sự nào để điều chỉnh mã này trong CMS. (Mã thậm chí sẽ không tăng bộ đếm lần truy cập nếu bạn bật bộ đệm ẩn ...)

Những gì hiện đang xảy ra trong view.html.phptập tin của bài viết này là:

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

Kiểm tra cơ bản để đảm bảo rằng đây là sự khởi đầu của việc tải toàn bộ bài viết. Nếu vậy, kích hoạt mô hình để ghi lại một hit.

Mô hình thực hiện điều này:

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

Về cơ bản, tăng cột hit trên bài viết.


Nếu bạn muốn điều chỉnh hành vi của điều này hiện tại, lựa chọn duy nhất của bạn là chỉnh sửa mã lõi (và có các vấn đề cố hữu với điều đó khi bạn cố gắng cập nhật).

Không có cách nào để "chặn" hành động này và kích hoạt plugin để thực hiện hành động thay thế. Đặt cược tốt nhất là bỏ qua cột hit trên các bài viết và sử dụng thước đo tốt hơn về số lượt xem bài viết của bạn (với Google Analytics có thể là lựa chọn phổ biến nhất).


Tôi cảm ơn bạn đã trả lời. Tôi đã tìm thấy nó trong liên kết này nhưng tôi hy vọng sẽ thấy chức năng này được triển khai trong phiên bản vanilla của j Joomla sau hơn một năm. Tôi không nghĩ sẽ rất đau đớn khi chấp nhận thay đổi thành cốt lõi, phải không?
usernumberone

Vâng, mã trong diễn đàn sẽ không bao giờ biến nó thành cốt lõi. Bạn thực sự sẽ phải gửi mã thông qua github. Logic của điều này có vẻ tốt, vì vậy bạn nên thoải mái thực hiện yêu cầu kéo đó.
David Fritsch

1

Tôi chỉ tình cờ tìm thấy một plugin tại JED có tên JProNoHitCount ( http ://extensions.j Joomla.org/extensions/authoring-a-content/admin-interface/22961 ) cho phép bạn chọn một hoặc nhiều nhóm để loại trừ khỏi bài viết đánh truy cập.

(Lưu ý rằng đó là một plugin thương mại).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.