jdvorak23/visits

显示网站访问量 - Nette 的三个组件

v1.0.1 2023-07-30 12:42 UTC

This package is auto-updated.

Last update: 2024-09-30 02:08:03 UTC


README

三个用于显示访问量的组件

  • 卡片 - 4 个卡片 - 总计、年度、月份、7 天
  • 页面 - 单个页面的绝对和相对比例
  • IPs - 添加忽略 IP 地址

安装

composer require jdvorak23/visits

services.neon 中注册

	- Jdvorak23\Visits\VisitCardsFactory
	- Jdvorak23\Visits\VisitPagesFactory
	- Jdvorak23\Visits\VisitIpsFactory
	- Jdvorak23\Visits\Model\VisitManager

javascript

需要javascript。使用 /assets 文件夹中的脚本

index.js (主)

import '../Components/visits/src/assets/visits' // Podle toho kam se zkopírovalo

创建组件

    // DI továren - konstruktor, inject, ...
    private readonly VisitCardsFactory $visitCardsFactory,
    private readonly VisitIpsFactory $visitIpsFactory,
    private readonly VisitPagesFactory $visitPagesFactory

    protected function createComponentCards(): VisitCardsControl
    {
        return $this->visitCardsFactory->create();
    }
    protected function createComponentIps(): VisitIpsControl
    {
        return $this->visitIpsFactory->create();
    }
    protected function createComponentPages(): VisitPagesControl
    {
        return $this->visitPagesFactory->create();
    }

并在模板中

{control cards}
{control pages}
{control ips}

添加访问权限

在 Base(Front)Presenter 中某处注入依赖关系

protected VisitManager $visitManager;
    public function injectManagers(VisitManager $visitManager): void
    {
        $this->visitManager = $visitManager;
    }

在 Base(Front)Presenter 中某处,最好是 beforeRender

    protected function beforeRender(): void
    {
        parent::beforeRender();
        $this->addVisit();
    }
    protected function addVisit(): void
    {
        $remoteAddress = $this->getHttpRequest()->getRemoteAddress();
        $page = $this->getHttpRequest()->getUrl()->getPath();
        $this->visitManager->addVisit($remoteAddress, $page);
    }