From 405a21a3d701730855692ee17c7fb12276f5d645 Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 10:52:43 -0500
Subject: [PATCH 1/9] initial commit, HTML report of counters
---
mdreport-th.txt | 1 +
mdreport.css | 35 ++++++++++++
mdreport.php | 139 ++++++++++++++++++++++++++++++++++++++++++++++++
report.html | 83 +++++++++++++++++++++++++++++
4 files changed, 258 insertions(+)
create mode 100644 mdreport-th.txt
create mode 100644 mdreport.css
create mode 100644 mdreport.php
create mode 100644 report.html
diff --git a/mdreport-th.txt b/mdreport-th.txt
new file mode 100644
index 0000000..ac948d5
--- /dev/null
+++ b/mdreport-th.txt
@@ -0,0 +1 @@
+Rank,Hit Count,Repository,Last Counted
\ No newline at end of file
diff --git a/mdreport.css b/mdreport.css
new file mode 100644
index 0000000..3b80c4d
--- /dev/null
+++ b/mdreport.css
@@ -0,0 +1,35 @@
+div.table-container {
+ width:80%;
+ margin:auto;
+}
+
+tr th {
+ text-align:center;
+}
+
+tr td {
+ text-align:center;
+}
+
+table caption {
+ caption-side:top;
+ text-align:center;
+ color:black;
+ font-weight:bold;
+}
+
+.sort-arrow-up:after {
+ font-weight:bold;
+ content: "\25B2"!important;
+}
+
+.sort-arrow-dn:after {
+ font-weight:bold;
+ content: "\25BC"!important;
+}
+
+.orderhover:hover {
+ cursor:pointer!important;
+ background-color: rgba(189, 183, 137, 1);
+ border-radius: 15px 50px;
+}
diff --git a/mdreport.php b/mdreport.php
new file mode 100644
index 0000000..f233f2b
--- /dev/null
+++ b/mdreport.php
@@ -0,0 +1,139 @@
+tz;
+}
+
+// check for debug/test mode
+if(!defined('_DEBUG') || _DEBUG === false) {
+
+ $mdcountdata = (isset($queries['mdcdata']) ? strtolower($queries['mdcdata']) : 'http://xampp/tests/uscratch/mdhc/mdcountdata.php');
+
+ // MUST be done like this for PHP files that are 'linked'
+ $queries = array();
+ parse_str($_SERVER['QUERY_STRING'], $queries);
+ // return all counters, ordered by count
+ $csort = (isset($queries['csort']) ? strtolower($queries['csort']) : null);
+ // return all counters, ordered by time of last count
+ $tsort = (isset($queries['tsort']) ? strtolower($queries['tsort']) : null);
+ // return all counters, ordered by ID
+ $isort = (isset($queries['isort']) ? strtolower($queries['isort']) : null);
+ // for sorts, limit number of counters returned
+ $limit = (isset($queries['limit']) ? $queries['limit'] : null);
+} else {
+ if(isset($_SERVER['QUERY_STRING'])) {
+ $q = $_SERVER['QUERY_STRING'];
+ echo "$q
\n";
+ }
+
+ $mdcountdata = 'http://xampp/tests/uscratch/mdhc/mdcountdata.php';
+
+ // set as needed for testing
+ $csort = 'd';
+ $tsort = null;
+ $isort = null;
+ $limit = 2;
+}
+
+$thfile = './mdreport-th.txt';
+$arrup = 'sort-arrow-up';
+$arrdn = 'sort-arrow-dn';
+$repohome = 'https://github.com/jxmot/';
+$linkmsg = 'Open in New Tab or Window';
+
+if(file_exists($thfile)) {
+ $fileid = fopen($thfile,'r');
+ $thdata = fread($fileid,128);
+ fclose($fileid);
+ $thitems = explode(',', $thdata);
+
+ $sortidx = ($csort !== null ? 1 : ($isort !== null ? 2 : ($tsort !== null ? 3 : -1)));
+ $sortdir = ($csort !== null ? $csort : ($isort !== null ? $isort : ($tsort !== null ? $tsort : 'a')));
+
+ $sorttitle = array(
+ ($sortidx === -1 ? 'BAD Sort Choice! ' : "$thitems[$sortidx] "),
+ ($sortdir === 'a' ? 'Ascending ' : ($sortdir === 'd' ? 'Descending ' : 'BAD Sort Direction! '))
+ );
+
+ $dircss = ($sortdir === 'a' ? $arrup : ($sortdir === 'd' ? $arrdn : ''))
+?>
+
+
+
+
+'.$thitems[$ix].''."\n";
+ } else {
+ echo ' '.$thitems[$ix].' '."\n";
+ }
+ }
+?>
+
+
+array(
+ 'method'=>'GET',
+ 'header'=>"Accept-language: en\r\n"
+ ."user-agent: custom\r\n"
+ ."Content-Type: application/json; charset=utf-8\r\n"
+ ."Content-Encoding: text\r\n"
+ )
+ );
+
+ $context = stream_context_create($opts);
+ $url = $mdcountdata . ($qry !== null ? $qry : '');
+ $data = file_get_contents($url, false, $context);
+ $counters = json_decode($data);
+
+ $repqty = count($counters);
+ $tablecaption = "Top $repqty repositories. Sorted by $sorttitle[0] in $sorttitle[1] order";
+
+ for($ix = 0; $ix < $repqty; $ix++) {
+ echo " \n";
+ echo ' '.($ix+1).' '."\n";
+ echo " ".$counters[$ix]->data->count." \n";
+ echo ' '.$counters[$ix]->id." \n";
+ $when = ''.$counters[$ix]->data->time;
+ $dt = new DateTime("@$when", new DateTimeZone(tzone()));
+ $date = $dt->format('Y/m/d') . ' ' . $dt->format('H:i:s');
+ unset($dt);
+ echo " ".$date." \n";
+ echo " \n";
+ }
+?>
+
+
+
+
+
+
+Header File was not found - $thfile\n";
+}
+?>
\ No newline at end of file
diff --git a/report.html b/report.html
new file mode 100644
index 0000000..2719ab6
--- /dev/null
+++ b/report.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+ Snappy Title Goes Here
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 767d8a3f755250177d963f19c7a7ba6871a792dd Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 12:30:33 -0500
Subject: [PATCH 2/9] initial commit, stddefines.php - a useful collection of
define()
---
stddefines.php | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 stddefines.php
diff --git a/stddefines.php b/stddefines.php
new file mode 100644
index 0000000..6c57f56
--- /dev/null
+++ b/stddefines.php
@@ -0,0 +1,40 @@
+\n";
+
+ echo 'SRVNAME : '.SRVNAME." \n";
+ echo 'SRVPROTO : '.SRVPROTO." \n";
+ echo 'REMADDR : '.REMADDR." \n";
+ echo 'QRYSTR : '.QRYSTR." \n";
+ echo 'HTTPREF : '.HTTPREF." \n";
+ echo 'HTTPHOST : '.HTTPHOST." \n";
+ echo 'DOCROOT : '.DOCROOT." \n";
+ echo 'PATHTRANS: '.PATHTRANS." \n";
+ echo 'PHPSELF : '.PHPSELF." \n";
+
+ echo " \n";
+ echo "HTTPTYPE : ".HTTPTYPE." \n";
+ echo "THISSRVR : ".THISSRVR." \n";
+ echo "TRUESELF : ".TRUESELF." \n";
+
+ echo "
\n";
+ echo "\n";
+}
+?>
\ No newline at end of file
From b20a54baa0e3c0cb92dee468207488196d89dced Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 12:32:07 -0500
Subject: [PATCH 3/9] using stddefines.php
---
mdreport.php | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/mdreport.php b/mdreport.php
index f233f2b..a373a35 100644
--- a/mdreport.php
+++ b/mdreport.php
@@ -2,6 +2,11 @@
// if false run normally, if true then fake the query
define('_DEBUG', false);
+// renders and echoes the defines inside of a
+define('_DEBUGDEF', true);
+require_once './stddefines.php';
+
+// get the configured time zone
function tzone() {
$tmp = json_decode(file_get_contents('./tzone.json'));
return $tmp->tz;
@@ -10,7 +15,7 @@ function tzone() {
// check for debug/test mode
if(!defined('_DEBUG') || _DEBUG === false) {
- $mdcountdata = (isset($queries['mdcdata']) ? strtolower($queries['mdcdata']) : 'http://xampp/tests/uscratch/mdhc/mdcountdata.php');
+ $mdcountdata = (isset($queries['mdcdata']) ? strtolower($queries['mdcdata']) : THISSRVR.'/mdcountdata.php');
// MUST be done like this for PHP files that are 'linked'
$queries = array();
@@ -29,7 +34,7 @@ function tzone() {
echo "
$q
\n";
}
- $mdcountdata = 'http://xampp/tests/uscratch/mdhc/mdcountdata.php';
+ $mdcountdata = THISSRVR.'/mdcountdata.php';
// set as needed for testing
$csort = 'd';
From 5b5525a070a2e212f06d7a043c98cf1846fee4c7 Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 12:32:27 -0500
Subject: [PATCH 4/9] minor changes
---
report.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/report.html b/report.html
index 2719ab6..3a44fcf 100644
--- a/report.html
+++ b/report.html
@@ -12,7 +12,7 @@
-
+
@@ -49,7 +49,7 @@
var sorts = ['?csort=','?isort=','?tsort='];
var sdirs = ['a','d'];
- var url = 'http://xampp//tests/uscratch/mdhc/mdreport.php';
+ var url = './mdreport.php';
var limit = '&limit=10';
var datasrc = url+sorts[0]+sdirs[0]+limit;
From 8a32f6c182f7b2988800d60d7ff432eda32bc5ee Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 12:53:02 -0500
Subject: [PATCH 5/9] minor updates to
---
report.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/report.html b/report.html
index 3a44fcf..a374464 100644
--- a/report.html
+++ b/report.html
@@ -3,9 +3,9 @@
-
-
- Snappy Title Goes Here
+
+
+ My Repositories' Hit Counters
From b74f873961247182ab37ed4de886d580e517b714 Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 12:53:27 -0500
Subject: [PATCH 6/9] turned off _DEBUGDEF
---
mdreport.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mdreport.php b/mdreport.php
index a373a35..c039b37 100644
--- a/mdreport.php
+++ b/mdreport.php
@@ -3,7 +3,7 @@
define('_DEBUG', false);
// renders and echoes the defines inside of a
-define('_DEBUGDEF', true);
+define('_DEBUGDEF', false);
require_once './stddefines.php';
// get the configured time zone
From 31a7de595ae49e13e828f15ee5318a053f8ea20d Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 12:53:48 -0500
Subject: [PATCH 7/9] comments & minor changes
---
stddefines.php | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/stddefines.php b/stddefines.php
index 6c57f56..7e89ec1 100644
--- a/stddefines.php
+++ b/stddefines.php
@@ -11,10 +11,12 @@
define('PATHTRANS',((isset($_SERVER['PATH_TRANSLATED']) === true) ? $_SERVER['PATH_TRANSLATED'] : 'none'));
define('PHPSELF', ((isset($_SERVER['PHP_SELF']) === true) ? $_SERVER['PHP_SELF'] : 'none'));
+// used for assembling URLs to resources as needed
define('HTTPTYPE', ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https://' : 'http://'));
define('THISSRVR', HTTPTYPE . SRVNAME . pathinfo(PHPSELF)['dirname']);
define('TRUESELF', THISSRVR . '/' . pathinfo(PHPSELF)['basename']);
+// if debug is enabled then show stuff....
if(defined('_DEBUGDEF') && _DEBUGDEF === true) {
echo "\n";
echo "\n";
@@ -30,9 +32,9 @@
echo 'PHPSELF : '.PHPSELF." \n";
echo " \n";
- echo "HTTPTYPE : ".HTTPTYPE." \n";
- echo "THISSRVR : ".THISSRVR." \n";
- echo "TRUESELF : ".TRUESELF." \n";
+ echo 'HTTPTYPE : '.HTTPTYPE." \n";
+ echo 'THISSRVR : '.THISSRVR." \n";
+ echo 'TRUESELF : '.TRUESELF." \n";
echo "
\n";
echo "\n";
From 6a2f5aa870259d036d9d26d4faf229d3eb4841cb Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 13:00:10 -0500
Subject: [PATCH 8/9] very minor change
---
stddefines.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/stddefines.php b/stddefines.php
index 7e89ec1..4ab6071 100644
--- a/stddefines.php
+++ b/stddefines.php
@@ -32,9 +32,9 @@
echo 'PHPSELF : '.PHPSELF." \n";
echo " \n";
- echo 'HTTPTYPE : '.HTTPTYPE." \n";
- echo 'THISSRVR : '.THISSRVR." \n";
- echo 'TRUESELF : '.TRUESELF." \n";
+ echo 'HTTPTYPE : '.HTTPTYPE." \n";
+ echo 'THISSRVR : '.THISSRVR." \n";
+ echo 'TRUESELF : '.TRUESELF." \n";
echo "
\n";
echo "\n";
From 8db5e7d1e5ed679f187459b9e8f8ff96fd008eeb Mon Sep 17 00:00:00 2001
From: jxmot
Date: Thu, 1 Apr 2021 13:28:52 -0500
Subject: [PATCH 9/9] README update
---
README.md | 26 +++++++++++++++++++++-----
mdimg/report_sshot.png | Bin 0 -> 39852 bytes
2 files changed, 21 insertions(+), 5 deletions(-)
create mode 100644 mdimg/report_sshot.png
diff --git a/README.md b/README.md
index b726fd6..7b4adac 100644
--- a/README.md
+++ b/README.md
@@ -250,12 +250,28 @@ GET http[s]://your-server/path-to-file/mdcountdata.php?id=BLAH
]
```
-## Potential Enhancements
+## Counter Reports
-* Check the IP address of the viewer, if found in a configurable *known IP list* the count is not incremented.
- * **NOTE**: When a markdown file with this hit counter is viewed *through* GitHub the IP address will always be within a specific range owned by GitHub.
- * One of my other utilites, [getfqdnip](https://github.com/jxmot/getfqdnip) could be part of the solution.
-
+The following files are used in report generation and viewing:
+
+* `mdreport.php` - Retrieves the counter data and renders a Bootstrap 4.x table.
+ * `mdreport.css` - Additional required CSS for the table
+ * `mdreport-th.txt` - Column heading text
+ * `stddefines.php` - A collection of `define()` that make a number of PHP variables available to the application. It contains components used for creating URLs to resources.
+* `report.html` - The minimum required HTML/CSS and JavaScript/jQuery to render and display the table.
+ * **Other Dependencies** : The "tool tips" used on the column headings are created with [tippy.js]( ).
+
+**Report Screen Shot :**
+
+
+
+The "Hit Count", "Repository" and "Last Counted" headings can be clicked to select sorting criteria and direction (*ascending vs descending*). When a column heading is clicked the report caption will change to reflect the choice.
+
+**NOTES :**
+* The links in the "Repository" column and built from the IDs found in `counters.json`. The ID text I used there is the *name of the repository* that the counter is intended for. The corresponding counter data files are named `repo-name`**`_counter.json`**.
+* When the report is viewed the data shown is *current*.
+* If the "Last Counted" column date and time seem to be incorrect then the time zone may need to be changed. Edit the `timezone.json` file to match your time zone.
+
## Other Uses
You could count just about anything. All you need is to do a GET of `mdcount.php` with a proper query and you got it!
diff --git a/mdimg/report_sshot.png b/mdimg/report_sshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..7946670395dd674d375dcbdba81925d0f56c8fa9
GIT binary patch
literal 39852
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
rs&^AcQ{-4(<