jdvorak23 / visits
Show web visits - three components for Nette
v1.0.1
2023-07-30 12:42 UTC
Requires
- php: >=8.1
- nette/application: ^3.1
README
Tři komponenty na zobrazení návštěvnosti
- Cards - 4 karty - celkem, rok, měsíc, 7 dní
- Pages - absolutní i relativní poměry jednotlivých stránek
- Ips - přidání IP adres k ignorování
Instalace
composer require jdvorak23/visits
Zaregistruji v services.neon
:
- Jdvorak23\Visits\VisitCardsFactory - Jdvorak23\Visits\VisitPagesFactory - Jdvorak23\Visits\VisitIpsFactory - Jdvorak23\Visits\Model\VisitManager
javascript
Potřebuje javascript. Použít script ve složce /assets
index.js (main):
import '../Components/visits/src/assets/visits' // Podle toho kam se zkopírovalo
Vytvoření komponent
// 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(); }
A v templatě:
{control cards} {control pages} {control ips}
Přidání přístupu
Někde v Base(Front)Presenter injectnout závislost:
protected VisitManager $visitManager; public function injectManagers(VisitManager $visitManager): void { $this->visitManager = $visitManager; }
Někde v Base(Front)Presenter, nejlíp asi v 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); }