From cvs w lms.org.pl Wed Aug 11 09:28:39 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Wed, 11 Aug 2010 09:28:39 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/templates (documentlist.html)
Message-ID: <20100811072839.768D6302B330@hydra.altec.pl>
Date: Wednesday, August 11, 2010 @ 09:28:39
Author: alec
Path: /cvsroot/lms/templates
Modified: documentlist.html
- Fixed redundant forms + some typos
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/templates/documentlist.html.diff?&r1=1.26&r2=1.27
Index: lms/templates/documentlist.html
diff -u lms/templates/documentlist.html:1.26 lms/templates/documentlist.html:1.27
--- lms/templates/documentlist.html:1.26 Mon Jul 5 10:35:11 2010
+++ lms/templates/documentlist.html Wed Aug 11 09:28:39 2010
@@ -1,5 +1,5 @@
{include file="header.html"}
-
+
{$layout.pagetitle}
{if $docid}{/if}
{literal}
@@ -7,14 +7,14 @@
{/literal}
{include file="calendar_js.html"}
+
+
From cvs w lms.org.pl Tue Aug 17 10:43:38 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Tue, 17 Aug 2010 10:43:38 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/daemon/dbdrivers/pgsql (db.c)
Message-ID: <20100817084338.7B80E302B330@hydra.altec.pl>
Date: Tuesday, August 17, 2010 @ 10:43:38
Author: alec
Path: /cvsroot/lms/daemon/dbdrivers/pgsql
Modified: db.c
- Improve performance: cast EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)) value to integer
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/daemon/dbdrivers/pgsql/db.c.diff?&r1=1.21&r2=1.22
Index: lms/daemon/dbdrivers/pgsql/db.c
diff -u lms/daemon/dbdrivers/pgsql/db.c:1.21 lms/daemon/dbdrivers/pgsql/db.c:1.22
--- lms/daemon/dbdrivers/pgsql/db.c:1.21 Thu Mar 11 14:07:31 2010
+++ lms/daemon/dbdrivers/pgsql/db.c Tue Aug 17 10:43:38 2010
@@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: db.c,v 1.21 2010/03/11 13:07:31 alec Exp $
+ * $Id: db.c,v 1.22 2010/08/17 08:43:38 alec Exp $
*/
#include
@@ -116,7 +116,7 @@
/* Parse special sequences query in statement */
static void parse_query_stmt(char **stmt)
{
- str_replace(stmt, "%NOW%", "EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))");
+ str_replace(stmt, "%NOW%", "EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))::integer");
str_replace(stmt, "LIKE", "ILIKE");
str_replace(stmt, "like", "ILIKE");
}
From cvs w lms.org.pl Tue Aug 17 10:43:38 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Tue, 17 Aug 2010 10:43:38 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/lib
(LMSDB_driver_postgres.class.php)
Message-ID: <20100817084338.91417302B332@hydra.altec.pl>
Date: Tuesday, August 17, 2010 @ 10:43:38
Author: alec
Path: /cvsroot/lms/lib
Modified: LMSDB_driver_postgres.class.php
- Improve performance: cast EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)) value to integer
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/lib/LMSDB_driver_postgres.class.php.diff?&r1=1.53&r2=1.54
Index: lms/lib/LMSDB_driver_postgres.class.php
diff -u lms/lib/LMSDB_driver_postgres.class.php:1.53 lms/lib/LMSDB_driver_postgres.class.php:1.54
--- lms/lib/LMSDB_driver_postgres.class.php:1.53 Fri May 7 10:49:23 2010
+++ lms/lib/LMSDB_driver_postgres.class.php Tue Aug 17 10:43:38 2010
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: LMSDB_driver_postgres.class.php,v 1.53 2010/05/07 08:49:23 chilek Exp $
+ * $Id: LMSDB_driver_postgres.class.php,v 1.54 2010/08/17 08:43:38 alec Exp $
*/
/*
@@ -42,7 +42,7 @@
return;
}
- $this->_version .= ' ('.preg_replace('/^.Revision: ([0-9.]+).*/','\1',$this->_revision).'/'.preg_replace('/^.Revision: ([0-9.]+).*/','\1','$Revision: 1.53 $').')';
+ $this->_version .= ' ('.preg_replace('/^.Revision: ([0-9.]+).*/','\1',$this->_revision).'/'.preg_replace('/^.Revision: ([0-9.]+).*/','\1','$Revision: 1.54 $').')';
$this->Connect($dbhost,$dbuser,$dbpasswd,$dbname);
}
@@ -145,7 +145,7 @@
*/
function _driver_now()
{
- return 'EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))';
+ return 'EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))::integer';
}
function _driver_like()
From cvs w lms.org.pl Tue Aug 17 10:55:35 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Tue, 17 Aug 2010 10:55:35 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/doc (lms.pgsql)
Message-ID: <20100817085535.4A2C3302B330@hydra.altec.pl>
Date: Tuesday, August 17, 2010 @ 10:55:35
Author: alec
Path: /cvsroot/lms/doc
Modified: lms.pgsql
- Removed redundant index from stats table (postgres only)
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/doc/lms.pgsql.diff?&r1=1.167&r2=1.168
Index: lms/doc/lms.pgsql
diff -u lms/doc/lms.pgsql:1.167 lms/doc/lms.pgsql:1.168
--- lms/doc/lms.pgsql:1.167 Mon Jul 5 10:48:38 2010
+++ lms/doc/lms.pgsql Tue Aug 17 10:55:35 2010
@@ -1,4 +1,4 @@
-/* $Id: lms.pgsql,v 1.167 2010/07/05 08:48:38 alec Exp $ */
+/* $Id: lms.pgsql,v 1.168 2010/08/17 08:55:35 alec Exp $ */
/* --------------------------------------------------------
Structure of table "users"
@@ -511,7 +511,6 @@
download bigint DEFAULT 0,
PRIMARY KEY (nodeid, dt)
);
-CREATE INDEX stats_nodeid_idx ON stats(nodeid);
CREATE INDEX stats_dt_idx ON stats(dt);
/* ---------------------------------------------------
From cvs w lms.org.pl Tue Aug 17 10:55:35 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Tue, 17 Aug 2010 10:55:35 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/lib/upgradedb (2 files)
Message-ID: <20100817085535.85112302B333@hydra.altec.pl>
Date: Tuesday, August 17, 2010 @ 10:55:35
Author: alec
Path: /cvsroot/lms/lib/upgradedb
Added: mysql.2010081700.php postgres.2010081700.php
- Removed redundant index from stats table (postgres only)
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/lib/upgradedb/mysql.2010081700.php?rev=1.1
http://cvs.lms.org.pl/viewvc/Development/lms/lib/upgradedb/postgres.2010081700.php?rev=1.1
Index: lms/lib/upgradedb/mysql.2010081700.php
diff -u /dev/null lms/lib/upgradedb/mysql.2010081700.php:1.1
--- /dev/null Tue Aug 17 10:55:35 2010
+++ lms/lib/upgradedb/mysql.2010081700.php Tue Aug 17 10:55:35 2010
@@ -0,0 +1,30 @@
+BeginTrans();
+
+$DB->Execute("UPDATE dbinfo SET keyvalue = ? WHERE keytype = ?", array('2010081700', 'dbversion'));
+
+$DB->CommitTrans();
+
+?>
Index: lms/lib/upgradedb/postgres.2010081700.php
diff -u /dev/null lms/lib/upgradedb/postgres.2010081700.php:1.1
--- /dev/null Tue Aug 17 10:55:35 2010
+++ lms/lib/upgradedb/postgres.2010081700.php Tue Aug 17 10:55:35 2010
@@ -0,0 +1,32 @@
+BeginTrans();
+
+$DB->Execute("DROP INDEX stats_nodeid_idx");
+
+$DB->Execute("UPDATE dbinfo SET keyvalue = ? WHERE keytype = ?", array('2010081700', 'dbversion'));
+
+$DB->CommitTrans();
+
+?>
From cvs w lms.org.pl Tue Aug 17 10:55:35 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Tue, 17 Aug 2010 10:55:35 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/lib (upgradedb.php)
Message-ID: <20100817085535.6B9C1302B332@hydra.altec.pl>
Date: Tuesday, August 17, 2010 @ 10:55:35
Author: alec
Path: /cvsroot/lms/lib
Modified: upgradedb.php
- Removed redundant index from stats table (postgres only)
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/lib/upgradedb.php.diff?&r1=1.178&r2=1.179
Index: lms/lib/upgradedb.php
diff -u lms/lib/upgradedb.php:1.178 lms/lib/upgradedb.php:1.179
--- lms/lib/upgradedb.php:1.178 Mon Jun 28 11:23:03 2010
+++ lms/lib/upgradedb.php Tue Aug 17 10:55:35 2010
@@ -21,10 +21,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: upgradedb.php,v 1.178 2010/06/28 09:23:03 alec Exp $
+ * $Id: upgradedb.php,v 1.179 2010/08/17 08:55:35 alec Exp $
*/
-define('DBVERSION', '2010062800'); // here should be always the newest version of database!
+define('DBVERSION', '2010081700'); // here should be always the newest version of database!
// it placed here to avoid read disk every time when we call this file.
/*
From cvs w lms.org.pl Tue Aug 17 10:56:12 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Tue, 17 Aug 2010 10:56:12 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/doc (lms.pgsql)
Message-ID: <20100817085612.BFFDF302B330@hydra.altec.pl>
Date: Tuesday, August 17, 2010 @ 10:56:12
Author: alec
Path: /cvsroot/lms/doc
Modified: lms.pgsql
- Update version number
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/doc/lms.pgsql.diff?&r1=1.168&r2=1.169
Index: lms/doc/lms.pgsql
diff -u lms/doc/lms.pgsql:1.168 lms/doc/lms.pgsql:1.169
--- lms/doc/lms.pgsql:1.168 Tue Aug 17 10:55:35 2010
+++ lms/doc/lms.pgsql Tue Aug 17 10:56:12 2010
@@ -1,4 +1,4 @@
-/* $Id: lms.pgsql,v 1.168 2010/08/17 08:55:35 alec Exp $ */
+/* $Id: lms.pgsql,v 1.169 2010/08/17 08:56:12 alec Exp $ */
/* --------------------------------------------------------
Structure of table "users"
@@ -1476,4 +1476,4 @@
INSERT INTO nastypes (name) VALUES ('usrhiper');
INSERT INTO nastypes (name) VALUES ('other');
-INSERT INTO dbinfo (keytype, keyvalue) VALUES ('dbversion', '2010062800');
+INSERT INTO dbinfo (keytype, keyvalue) VALUES ('dbversion', '2010081700');
From cvs w lms.org.pl Fri Aug 20 08:33:42 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Fri, 20 Aug 2010 08:33:42 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/userpanel/modules/finances
(transferform.php)
Message-ID: <20100820063342.904BF302B330@hydra.altec.pl>
Date: Friday, August 20, 2010 @ 08:33:42
Author: alec
Path: /cvsroot/lms/userpanel/modules/finances
Modified: transferform.php
- fixed long to_words format
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/userpanel/modules/finances/transferform.php.diff?&r1=1.5&r2=1.6
Index: lms/userpanel/modules/finances/transferform.php
diff -u lms/userpanel/modules/finances/transferform.php:1.5 lms/userpanel/modules/finances/transferform.php:1.6
--- lms/userpanel/modules/finances/transferform.php:1.5 Thu Mar 11 14:07:53 2010
+++ lms/userpanel/modules/finances/transferform.php Fri Aug 20 08:33:42 2010
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: transferform.php,v 1.5 2010/03/11 13:07:53 alec Exp $
+ * $Id: transferform.php,v 1.6 2010/08/20 06:33:42 alec Exp $
*/
global $LMS,$CONFIG,$SESSION;
@@ -68,8 +68,8 @@
else
{
$KWOTA_ZL = to_words(floor($KWOTA_NR));
- $KWOTA_ZL = iconv('UTF-8','ISO-8859-2',$KWOTA_ZL);
- $KWOTA_X = $KWOTA_ZL .' '. $KWOTA_GR. '/100 złotych';
+ $KWOTA_GR = to_words($KWOTA_GR);
+ $KWOTA_X = iconv('UTF-8', 'ISO-8859-2', trans('$0 dollars $1 cents', $KWOTA_ZL, $KWOTA_GR));
}
?>
From cvs w lms.org.pl Fri Aug 20 14:26:33 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Fri, 20 Aug 2010 14:26:33 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/lib (dns.php)
Message-ID: <20100820122633.1B2C6302B330@hydra.altec.pl>
Date: Friday, August 20, 2010 @ 14:26:33
Author: chilek
Path: /cvsroot/lms/lib
Modified: dns.php
- alias name can be empty, because we should be able to use alias as domain name
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/lib/dns.php.diff?&r1=1.3&r2=1.4
Index: lms/lib/dns.php
diff -u lms/lib/dns.php:1.3 lms/lib/dns.php:1.4
--- lms/lib/dns.php:1.3 Mon Apr 12 09:18:37 2010
+++ lms/lib/dns.php Fri Aug 20 14:26:33 2010
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: dns.php,v 1.3 2010/04/12 07:18:37 alec Exp $
+ * $Id: dns.php,v 1.4 2010/08/20 12:26:33 chilek Exp $
*/
$valid_tlds = array(
@@ -273,7 +273,7 @@
$error['prio'] = trans('Invalid format!');
break;
case 'CNAME':
- if ($errorname = check_hostname_fqdn($record['alias'], true, false))
+ if (!empty($record['alias']) && $errorname = check_hostname_fqdn($record['alias'], true, false))
$error['alias'] = $errorname;
break;
case 'TXT':
From cvs w lms.org.pl Fri Aug 20 14:40:47 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Fri, 20 Aug 2010 14:40:47 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/lib (dns.php)
Message-ID: <20100820124047.AD8B7302B330@hydra.altec.pl>
Date: Friday, August 20, 2010 @ 14:40:47
Author: chilek
Path: /cvsroot/lms/lib
Modified: dns.php
- reverted previous commit
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/lib/dns.php.diff?&r1=1.4&r2=1.5
Index: lms/lib/dns.php
diff -u lms/lib/dns.php:1.4 lms/lib/dns.php:1.5
--- lms/lib/dns.php:1.4 Fri Aug 20 14:26:33 2010
+++ lms/lib/dns.php Fri Aug 20 14:40:47 2010
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: dns.php,v 1.4 2010/08/20 12:26:33 chilek Exp $
+ * $Id: dns.php,v 1.5 2010/08/20 12:40:47 chilek Exp $
*/
$valid_tlds = array(
@@ -273,7 +273,7 @@
$error['prio'] = trans('Invalid format!');
break;
case 'CNAME':
- if (!empty($record['alias']) && $errorname = check_hostname_fqdn($record['alias'], true, false))
+ if ($errorname = check_hostname_fqdn($record['alias'], true, false))
$error['alias'] = $errorname;
break;
case 'TXT':
From cvs w lms.org.pl Fri Aug 27 11:36:49 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Fri, 27 Aug 2010 11:36:49 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/modules (trafficgraph.php)
Message-ID: <20100827093649.1FC84302B333@hydra.altec.pl>
Date: Friday, August 27, 2010 @ 11:36:49
Author: alec
Path: /cvsroot/lms/modules
Modified: trafficgraph.php
- traffic stats: increased daily graph precision (alec)
- traffic stats: fixed zero values on utter bars (alec)
- traffic stats: added option stat_freq for better hourly graph precision (alec)
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/modules/trafficgraph.php.diff?&r1=1.10&r2=1.11
Index: lms/modules/trafficgraph.php
diff -u lms/modules/trafficgraph.php:1.10 lms/modules/trafficgraph.php:1.11
--- lms/modules/trafficgraph.php:1.10 Wed Jul 7 14:41:02 2010
+++ lms/modules/trafficgraph.php Fri Aug 27 11:36:49 2010
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: trafficgraph.php,v 1.10 2010/07/07 12:41:02 chilek Exp $
+ * $Id: trafficgraph.php,v 1.11 2010/08/27 09:36:49 alec Exp $
*/
if(!function_exists('imagecreate'))
@@ -50,7 +50,12 @@
{
case 'hour':
$quantum = 60*60;
- $divisor = 5;
+ $divisor = $LMS->CONFIG['phpui']['stat_freq'] ? (int) (60/$LMS->CONFIG['phpui']['stat_freq']) : 5;
+ $fromdate = $todate - $quantum;
+ break;
+ case 'day':
+ $quantum = 60*60*24;
+ $divisor = 100;
$fromdate = $todate - $quantum;
break;
case 'week':
@@ -68,11 +73,6 @@
$divisor = 400;
$fromdate = $todate - $quantum;
break;
- case 'day':
- $quantum = 60*60*24;
- $divisor = 50;
- $fromdate = $todate - $quantum;
- break;
default:
$fromdate = $fromdate ? $fromdate : $todate - 60*60*24*30;
$quantum = $todate - $fromdate;
@@ -107,7 +107,7 @@
CEIL(dt/?) AS dts
FROM stats WHERE nodeid = ? AND dt >= ? AND dt <= ?
GROUP BY CEIL(dt/?) ORDER BY dts ASC',
- array($qdivisor, $nodeid, $fromdate, $todate, $qdivisor));
+ array($qdivisor, $nodeid, $fromdate-$qdivisor, $todate+$qdivisor, $qdivisor));
}
else
{
@@ -139,7 +139,7 @@
.$net
.'GROUP BY CEIL(dt/?), nodeid) x
GROUP BY dts ORDER BY dts',
- array($qdivisor, $fromdate, $todate, $qdivisor));
+ array($qdivisor, $fromdate-$qdivisor, $todate+$qdivisor, $qdivisor));
}
$down_max = $up_max = 0;
From cvs w lms.org.pl Fri Aug 27 11:36:48 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Fri, 27 Aug 2010 11:36:48 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/doc (ChangeLog)
Message-ID: <20100827093649.05923302B330@hydra.altec.pl>
Date: Friday, August 27, 2010 @ 11:36:48
Author: alec
Path: /cvsroot/lms/doc
Modified: ChangeLog
- traffic stats: increased daily graph precision (alec)
- traffic stats: fixed zero values on utter bars (alec)
- traffic stats: added option stat_freq for better hourly graph precision (alec)
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/doc/ChangeLog.diff?&r1=1.1514&r2=1.1515
Index: lms/doc/ChangeLog
diff -u lms/doc/ChangeLog:1.1514 lms/doc/ChangeLog:1.1515
--- lms/doc/ChangeLog:1.1514 Fri Jul 9 10:45:51 2010
+++ lms/doc/ChangeLog Fri Aug 27 11:36:48 2010
@@ -1,4 +1,4 @@
-$Id: ChangeLog,v 1.1514 2010/07/09 08:45:51 alec Exp $
+$Id: ChangeLog,v 1.1515 2010/08/27 09:36:48 alec Exp $
version ? (????-??-??)
@@ -37,6 +37,9 @@
- BTS#0000837: fixed values on traffic graphs (alec)
- added info about default channel and about nodes on channels list (alec)
- added devices and nodes lists (popups) on channels list (alec)
+ - traffic stats: increased daily graph precision (alec)
+ - traffic stats: fixed zero values on utter bars (alec)
+ - traffic stats: added option phpui/stat_freq for better hourly graph precision (alec)
version 1.11.10 Kri (2010-04-19)
From cvs w lms.org.pl Fri Aug 27 11:37:24 2010
From: cvs w lms.org.pl (LMS CVS)
Date: Fri, 27 Aug 2010 11:37:24 +0200 (CEST)
Subject: [lms-commits] CVS update of lms/modules (trafficgraph.php)
Message-ID: <20100827093724.E3BD8302B330@hydra.altec.pl>
Date: Friday, August 27, 2010 @ 11:37:24
Author: alec
Path: /cvsroot/lms/modules
Modified: trafficgraph.php
- rest of the last commit
Diff URLs:
http://cvs.lms.org.pl/viewvc/Development/lms/modules/trafficgraph.php.diff?&r1=1.11&r2=1.12
Index: lms/modules/trafficgraph.php
diff -u lms/modules/trafficgraph.php:1.11 lms/modules/trafficgraph.php:1.12
--- lms/modules/trafficgraph.php:1.11 Fri Aug 27 11:36:49 2010
+++ lms/modules/trafficgraph.php Fri Aug 27 11:37:24 2010
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
- * $Id: trafficgraph.php,v 1.11 2010/08/27 09:36:49 alec Exp $
+ * $Id: trafficgraph.php,v 1.12 2010/08/27 09:37:24 alec Exp $
*/
if(!function_exists('imagecreate'))
@@ -146,7 +146,7 @@
$last_up = $last_down = 0;
$avg_up = $avg_down = 0;
$sum_up = $sum_down = 0;
- $dstart = ceil($fromdate/$qdivisor);
+ $dstart = (int) ($fromdate/$qdivisor);
if ($stats) foreach($stats as $idx => $row)
{