Coder Social home page Coder Social logo

grav-plugin-page-stats's People

Contributors

francodacosta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

grav-plugin-page-stats's Issues

I have an error when visit a page

The plugin has this error in log.
grav.ERROR: PageStats plugin : unpack(): Type V: not enough input, need 4, have 0

Also the page "top-countries" appears as "top-countries copy.md" so it generates an error when accessing from the administration panel

Error: Class "PDO" not found

When ever I visit the stats page or the dashboard it triggers an error. See below
Screenshot from 2023-09-21 11-09-21

It appears that its referencing a database but Grav is a flat CMS. Whats going on here? is this a bug?

redirects not counted

i have some pages (qr-codes) that redirects to externals urls, i would like konw how often they are used/called

Example:
title: QR-Redirect1
redirect: 'xyz'

the page is called for redirect but not counted

Req: exclude page and ip address

The plugin works really well and is definitely an alternative to Google analytics.

It would add great value:

  • if I could exclude a page or pages (via frontmatter)
  • if I could exclude my own ip address

Request: filter for requests to ignore

Would love to be able to ignore any requests for wlwmanifest.xml since the bots are searching every IP in existence for it. I'm sure in 6 months it'll be some other WP vulnerability.

I suppose a regex to add a list of terms to ignore in the display would be the fix there: still record it, just don't include it in stats/calcs.

๐Ÿ‘๐Ÿ‘

Out of Memory error when installed via Admin Console

Attempting to install via admin console. Core and all plugins at current rev. Error appears in red popup window after "Dependencies installed" popup:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 177506056 bytes) in /srv/www/[xxxmysite.comxxx]/vendor/symfony/http-client/Response/ResponseTrait.php on line 130 {"error":{"type":"Whoops\\Exception\\ErrorException","message":"Allowed memory size of 134217728 bytes exhausted (tried to allocate 177506056 bytes)","code":1,"file":"\/srv\/www\/[xxxmysite.comxxx]\/vendor\/symfony\/http-client\/Response\/ResponseTrait.php","line":130}}

End result, not installed. ๐Ÿ˜ข Re-attempting results in same. Tools/Reports shows green checks for all other config.

Server is nginx, "top" on the machine reports:
MiB Mem : 1978.855 total, 276.793 free, 646.664 used, 1055.398 buff/cache
MiB Swap: 2048.977 total, 1878.227 free, 170.750 used. 1085.695 avail Mem

error after install

This plugin looks promising!!

After installing the plugin the menu item 'Page Stats' displays

Screenshot - 8_1_2022 , 1_03_13 PM

..../public_html/user/plugins/page-stats/data contains a zip-file: geolocation.sqlite.zip, no sqlite db-file
To investigate I manually extracted 'geolocation.sqlite'

Still no page when I click the menu item.

The plugin is collecting data in user/data/page-data.sqlite

Turning the plugin 'off' and 'on' again does not solve the problem.

Platform and browser switched in stats page.

As title, platform and browser are switched in stats page ("Platform" column shows browsers and "Browser" column shows platforms).
In both "Recently viewed pages" widget in the dashboard and "Page Details" page.

Please see screenshot:

image

Feature Request: Configure Ignored Bots

Your Readme says

Bot detection is based on user agent, it is not perfect, but it does work well

I would like to be able to configure this. For example, I have UpTimeRobot pinging my website, and I'd like to filter it out.

Workaround: IP filtering (but I don't know if their IP is static)

User Agent: Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)

Error log

Every time I visit the site I do get this error logged
Any ideas?

[2023-09-24 18:22:18] grav.CRITICAL: preg_match(): Compilation failed: quantifier does not follow a repeatable item at offset 23 - Trace: 
#0 /var/www/virtual/somaweb/html/system/src/Grav/Common/Debugger.php(843): Whoops\Run->handleError(2, 'preg_match(): C...', '/var/www/virtua...', 189) 
#1 [internal function]: Grav\Common\Debugger->deprecatedErrorHandler(2, 'preg_match(): C...', '/var/www/virtua...', 189) 
#2 /var/www/virtual/somaweb/html/user/plugins/page-stats/page-stats.php(189): preg_match('#.*wp-includes....', 'https://ima-bra...') 
#3 /var/www/virtual/somaweb/html/user/plugins/page-stats/page-stats.php(300): Grav\Plugin\PageStatsPlugin->isEnabledForUrl('https://ima-bra...') 
#4 /var/www/virtual/somaweb/html/vendor/symfony/event-dispatcher/EventDispatcher.php(264): Grav\Plugin\PageStatsPlugin->onPageInitialized(Object(RocketTheme\Toolbox\Event\Event), 'onPageInitializ...', Object(Symfony\Component\EventDispatcher\EventDispatcher)) 
#5 /var/www/virtual/somaweb/html/vendor/symfony/event-dispatcher/EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) 
#6 /var/www/virtual/somaweb/html/vendor/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) 
#7 /var/www/virtual/somaweb/html/system/src/Grav/Common/Grav.php(597): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(RocketTheme\Toolbox\Event\Event), 'onPageInitializ...') 
#8 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/PagesProcessor.php(60): Grav\Common\Grav->fireEvent('onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) 
#9 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\PagesProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#10 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#11 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/TwigProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#12 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\TwigProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#13 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#14 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/AssetsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#15 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\AssetsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#16 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#17 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/SchedulerProcessor.php(40): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#18 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\SchedulerProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#19 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#20 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/BackupsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#21 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\BackupsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#22 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#23 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/TasksProcessor.php(69): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#24 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\TasksProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#25 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#26 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/RequestProcessor.php(64): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#27 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\RequestProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#28 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#29 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/ThemesProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#30 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\ThemesProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#31 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#32 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/PluginsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#33 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\PluginsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#34 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#35 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/InitializeProcessor.php(130): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#36 /var/www/virtual/somaweb/html/system/src/Grav/Common/Debugger.php(546): Grav\Common\Processors\InitializeProcessor::Grav\Common\Processors\{closure}() 
#37 /var/www/virtual/somaweb/html/system/src/Grav/Common/Processors/InitializeProcessor.php(131): Grav\Common\Debugger->profile(Object(Closure)) 
#38 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\InitializeProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#39 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#40 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php(40): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#41 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) 
#42 /var/www/virtual/somaweb/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#43 /var/www/virtual/somaweb/html/system/src/Grav/Common/Grav.php(312): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) 
#44 /var/www/virtual/somaweb/html/index.php(47): Grav\Common\Grav->process() 
#45 {main} [] []

Stats links broken when Grav is not in the web root

First of all thanks for this great plugin!

On development and often in production too I have Grav installed in a subdirectory.

If so the ''view page' and 'view page stats' links on the 'admin/page-stats' page do not have the subdirectory or path in them. They always link to the web root.

For example if I have Grav in 'htdocs/grav' on localhost the URL of the standard 'typography' page is http://localhost/grav/typography. However the 'view page' link is http://localhost/typography and the 'view page stats' link is http://localhost/admin/page-stats/page-details?page=/typography.

Support IPv6 geolocation

IPv6 addresses have no country associated with them but IPv4 addresses do.

One work around would be to disable IPv6, but this doesn't work behind a reverse proxy that has IPv6 enabled unless the reverse proxy can be configured not to reject connections to the service over IPv6.

An overwhelming majority of the visitors are on IPv6 in my case, so the country stats are basically useless.

bug display last 1000 pages...

I have a bug when I click on : "Display last 1000 pages".
Usage: user/data/page-data.sqlite (18.4 MB)

This is where it happens: "admin/page-stats/recently-viewed-pages"
And I've got a blank page with information but not complete without my site's theme, so the information is unreadable...

Server Error
Sorry, something went terribly wrong!

E_ERROR - Maximum execution time of 30 seconds exceeded
For further details please review your logs/ folder, or enable displaying of errors in your system configuration.

June 2nd at 4:57am CRITICAL Maximum execution time of 30 seconds exceeded

Typo in config page

A typo in config page prevents the text to be displayed correctly.

Note the LIMIIT (double I) instead of LIMIT.
See screenshot below:

image

ERROR PageStats plugin : Undefined index: HTTP_USER_AGENT

Since september 2022 the following error appears in my GRAV log
Sometimes several times a day, sometimes it skips a view days.

[2022-12-29 22:07:11] grav.ERROR: PageStats plugin : Undefined index: HTTP_USER_AGENT - File: /home/.../public_html/user/plugins/page-stats/classes/Stats.php - Line: 85 - Trace: #0 /home/.../public_html/system/src/Grav/Common/Debugger.php(843): Whoops\Run->handleError() #1 /home/.../public_html/user/plugins/page-stats/classes/Stats.php(85): Grav\Common\Debugger->deprecatedErrorHandler() #2 /home/.../public_html/user/plugins/page-stats/classes/Stats.php(127): Grav\Plugin\PageStats\Stats->isBot() #3 /home/.../public_html/user/plugins/page-stats/page-stats.php(216): Grav\Plugin\PageStats\Stats->collect() #4 /home/.../public_html/user/plugins/page-stats/page-stats.php(309): Grav\Plugin\PageStatsPlugin->collectPageData() #5 /home/.../public_html/vendor/symfony/event-dispatcher/EventDispatcher.php(264): Grav\Plugin\PageStatsPlugin->onPageInitialized() #6 /home/.../public_html/vendor/symfony/event-dispatcher/EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() #7 /home/.../public_html/vendor/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners() #8 /home/.../public_html/system/src/Grav/Common/Grav.php(597): Symfony\Component\EventDispatcher\EventDispatcher->dispatch() #9 /home/.../public_html/system/src/Grav/Common/Processors/PagesProcessor.php(59): Grav\Common\Grav->fireEvent() #10 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\PagesProcessor->process() #11 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #12 /home/.../public_html/system/src/Grav/Common/Processors/TwigProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle() #13 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\TwigProcessor->process() #14 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #15 /home/.../public_html/system/src/Grav/Common/Processors/AssetsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle() #16 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\AssetsProcessor->process() #17 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #18 /home/.../public_html/system/src/Grav/Common/Processors/SchedulerProcessor.php(40): Grav\Framework\RequestHandler\RequestHandler->handle() #19 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\SchedulerProcessor->process() #20 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #21 /home/.../public_html/system/src/Grav/Common/Processors/BackupsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle() #22 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\BackupsProcessor->process() #23 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #24 /home/.../public_html/system/src/Grav/Common/Processors/TasksProcessor.php(69): Grav\Framework\RequestHandler\RequestHandler->handle() #25 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\TasksProcessor->process() #26 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #27 /home/.../public_html/system/src/Grav/Common/Processors/RequestProcessor.php(64): Grav\Framework\RequestHandler\RequestHandler->handle() #28 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\RequestProcessor->process() #29 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #30 /home/.../public_html/system/src/Grav/Common/Processors/ThemesProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle() #31 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\ThemesProcessor->process() #32 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #33 /home/.../public_html/system/src/Grav/Common/Processors/PluginsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle() #34 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\PluginsProcessor->process() #35 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #36 /home/.../public_html/system/src/Grav/Common/Processors/InitializeProcessor.php(130): Grav\Framework\RequestHandler\RequestHandler->handle() #37 /home/.../public_html/system/src/Grav/Common/Debugger.php(546): Grav\Common\Processors\InitializeProcessor::Grav\Common\Processors{closure}() #38 /home/.../public_html/system/src/Grav/Common/Processors/InitializeProcessor.php(131): Grav\Common\Debugger->profile() #39 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\InitializeProcessor->process() #40 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #41 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php(40): Grav\Framework\RequestHandler\RequestHandler->handle() #42 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport->process() #43 /home/.../public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle() #44 /home/.../public_html/system/src/Grav/Common/Grav.php(312): Grav\Framework\RequestHandler\RequestHandler->handle() #45 /home/.../public_html/index.php(47): Grav\Common\Grav->process() #46 {main} [] []

Feature Request: Time Filter on Most Viewed Pages

In both the Most Viewed Pages on the summary page, and on the detail page for Most Viewed Pages, it would be handy to have some time filters, like,

  • last 7 days (default)
  • last 30 days
  • last 6 months
  • all time

Mostly I'm looking at these stats to see "what's happening lately" and so knowing that my home page has 90 jillion hits since install is less actionable than "this article you wrote last week is the third most popular page right now".

Thanks for your coding time dude!

Feature Request: show URL instead of page name

In "recently viewed" and "most viewed", have the option of showing the url instead of (or in addition to) the page name. Minus the base URL, naturally. Currently, there's no way to see if I've loaded a page with a tracker like /page.html/?qrcode=1 as it will have the same page name.

This will make the text field longer... at least for "full width" it would look much better if the viewed columns did not all have the same weight. (25% 25% 25% 25%) but rather something like 55% 15% 15% 15%.

Thanks man, great work on the updates recently.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.