From: <wis...@us...> - 2017-08-31 04:47:38
|
Revision: 13291 http://sourceforge.net/p/xoops/svn/13291 Author: wishcraft Date: 2017-08-31 04:47:34 +0000 (Thu, 31 Aug 2017) Log Message: ----------- :: Completing Statistian System of Images for releases.xoops.org! Modified Paths: -------------- XoopsModules/images/trunk/modules/images/class/fields.php XoopsModules/images/trunk/modules/images/class/images.php XoopsModules/images/trunk/modules/images/include/functions.php XoopsModules/images/trunk/modules/images/sql/mysql.sql XoopsModules/images/trunk/modules/images/xoops_version.php Added Paths: ----------- XoopsModules/images/trunk/modules/images/class/ascii/index.html XoopsModules/images/trunk/modules/images/class/ascii/php7.0/index.html XoopsModules/images/trunk/modules/images/class/ascii/text-image.com/index.html XoopsModules/images/trunk/modules/images/class/index.html XoopsModules/images/trunk/modules/images/class/statistics.php XoopsModules/images/trunk/modules/images/class/xcp/index.html XoopsModules/images/trunk/modules/images/crons/index.html XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-biweekly.php XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-daily.php XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-hourly.php XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-monthly.php XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-quarterly.php XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-weekly.php XoopsModules/images/trunk/modules/images/crons/stats-fields-ending-yearly.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-biweekly.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-daily.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-hourly.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-monthly.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-quarterly.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-weekly.php XoopsModules/images/trunk/modules/images/crons/stats-images-ending-yearly.php XoopsModules/images/trunk/modules/images/images/blacklist/ XoopsModules/images/trunk/modules/images/images/blacklist/permanent-avatar.png XoopsModules/images/trunk/modules/images/images/blacklist/permanent-icons.png XoopsModules/images/trunk/modules/images/images/blacklist/permanent-logo.png XoopsModules/images/trunk/modules/images/images/blacklist/permanent-photo.png XoopsModules/images/trunk/modules/images/images/blacklist/temporary-avatar.png XoopsModules/images/trunk/modules/images/images/blacklist/temporary-icons.png XoopsModules/images/trunk/modules/images/images/blacklist/temporary-logo.png XoopsModules/images/trunk/modules/images/images/blacklist/temporary-photo.png XoopsModules/images/trunk/modules/images/images/index.html XoopsModules/images/trunk/modules/images/include/data/ XoopsModules/images/trunk/modules/images/include/data/timezones.diz XoopsModules/images/trunk/modules/images/include/enumerators/blacklisted__images.diz XoopsModules/images/trunk/modules/images/include/enumerators/day-name__statistics.diz XoopsModules/images/trunk/modules/images/include/enumerators/mode__statistics.diz XoopsModules/images/trunk/modules/images/include/enumerators/segment-hour__statistics.diz XoopsModules/images/trunk/modules/images/include/enumerators/segment-minute__statistics.diz XoopsModules/images/trunk/modules/images/include/enumerators/segment-month__statistics.diz XoopsModules/images/trunk/modules/images/include/enumerators/typal__statistics.diz XoopsModules/images/trunk/modules/images/include/enumerators/type__statistics.diz Added: XoopsModules/images/trunk/modules/images/class/ascii/index.html =================================================================== --- XoopsModules/images/trunk/modules/images/class/ascii/index.html (rev 0) +++ XoopsModules/images/trunk/modules/images/class/ascii/index.html 2017-08-31 04:47:34 UTC (rev 13291) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/images/trunk/modules/images/class/ascii/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/images/trunk/modules/images/class/ascii/php7.0/index.html =================================================================== --- XoopsModules/images/trunk/modules/images/class/ascii/php7.0/index.html (rev 0) +++ XoopsModules/images/trunk/modules/images/class/ascii/php7.0/index.html 2017-08-31 04:47:34 UTC (rev 13291) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/images/trunk/modules/images/class/ascii/php7.0/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/images/trunk/modules/images/class/ascii/text-image.com/index.html =================================================================== --- XoopsModules/images/trunk/modules/images/class/ascii/text-image.com/index.html (rev 0) +++ XoopsModules/images/trunk/modules/images/class/ascii/text-image.com/index.html 2017-08-31 04:47:34 UTC (rev 13291) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/images/trunk/modules/images/class/ascii/text-image.com/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: XoopsModules/images/trunk/modules/images/class/fields.php =================================================================== --- XoopsModules/images/trunk/modules/images/class/fields.php 2017-08-30 23:20:53 UTC (rev 13290) +++ XoopsModules/images/trunk/modules/images/class/fields.php 2017-08-31 04:47:34 UTC (rev 13291) @@ -42,10 +42,52 @@ $this->initVar("field", XOBJ_DTYPE_TXTBOX, null, false, 64); $this->initVar("typal", XOBJ_DTYPE_ENUM, 'unknown', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'typal')); $this->initVar("views", XOBJ_DTYPE_INT, null, false); - $this->initVar("viewed", XOBJ_DTYPE_INT, null, false); $this->initVar("images", XOBJ_DTYPE_INT, null, false); $this->initVar("errors", XOBJ_DTYPE_INT, null, false); $this->initVar("megabytes", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_hourly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_daily", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_weekly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_biweekly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_monthly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_quarterly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("images_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_yearly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("start_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("viewed", XOBJ_DTYPE_INT, null, false); $this->initVar("created", XOBJ_DTYPE_INT, null, false); $this->initVar("errored", XOBJ_DTYPE_INT, null, false); } @@ -79,6 +121,13 @@ /** + * Variables that comprise of statistic indicies + * + * @var array + */ + var $_statistian_fields = array('views','images','errors','megabytes'); + + /** * Constructor * * @param object $db reference to the {@link XoopsDatabase} object @@ -175,7 +224,7 @@ */ function addImages($field = '', $typal = '', $number = 1) { - $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `images` = `images` + '$number' WHERE `field` = '" . $field . "' AND `typal` = '" . $typal . "'"; + $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `images` = `images` + '$number', `images_hourly` = `images_hourly` + '$number', `images_daily` = `images_daily` + '$number', `images_weekly` = `images_weekly` + '$number', `images_biweekly` = `images_biweekly` + '$number', `images_monthly` = `images_monthly` + '$number', `images_quarterly` = `images_quarterly` + '$number', `images_yearly` = `images_yearly` + '$number' WHERE `field` = '" . $field . "' AND `typal` = '" . $typal . "'"; @$GLOBALS['xoopsDB']->queryF($sql); } @@ -189,7 +238,7 @@ */ function addErrors($field = '', $typal = '', $number = 1) { - $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `errors` = `errors` + '$number', `errored` = UNIX_TIMESTAMP() WHERE `field` = '" . $field . "' AND `typal` = '" . $typal . "'"; + $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `errors` = `errors` + '$number', `errors_hourly` = `errors_hourly` + '$number', `errors_daily` = `errors_daily` + '$number', `errors_weekly` = `errors_weekly` + '$number', `errors_biweekly` = `errors_biweekly` + '$number', `errors_monthly` = `errors_monthly` + '$number', `errors_quarterly` = `errors_quarterly` + '$number', `errors_yearly` = `errors_yearly` + '$number', `errored` = UNIX_TIMESTAMP() WHERE `field` = '" . $field . "' AND `typal` = '" . $typal . "'"; @$GLOBALS['xoopsDB']->queryF($sql); } } Modified: XoopsModules/images/trunk/modules/images/class/images.php =================================================================== --- XoopsModules/images/trunk/modules/images/class/images.php 2017-08-30 23:20:53 UTC (rev 13290) +++ XoopsModules/images/trunk/modules/images/class/images.php 2017-08-31 04:47:34 UTC (rev 13291) @@ -41,28 +41,72 @@ */ function __construct($id = null) { - $this->initVar("id", XOBJ_DTYPE_INT, null, false); - $this->initVar("uid", XOBJ_DTYPE_INT, null, false); - $this->initVar("hash", XOBJ_DTYPE_TXTBOX, null, false, 16); - $this->initVar("field", XOBJ_DTYPE_TXTBOX, null, false, 64); - $this->initVar("type", XOBJ_DTYPE_ENUM, 'unknown', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'type')); - $this->initVar("storage", XOBJ_DTYPE_ENUM, 'files', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'storage')); - $this->initVar("md5", XOBJ_DTYPE_TXTBOX, null, false, 32); - $this->initVar("url", XOBJ_DTYPE_TXTBOX, null, false, 255); - $this->initVar("width", XOBJ_DTYPE_INT, null, false); - $this->initVar("height", XOBJ_DTYPE_INT, null, false); - $this->initVar("bytes", XOBJ_DTYPE_INT, null, false); - $this->initVar("views", XOBJ_DTYPE_INT, null, false); - $this->initVar("viewed", XOBJ_DTYPE_INT, null, false); - $this->initVar("updates", XOBJ_DTYPE_INT, null, false); - $this->initVar("errors", XOBJ_DTYPE_INT, null, false); - $this->initVar("megabytes", XOBJ_DTYPE_FLOAT, null, false); - $this->initVar("updated", XOBJ_DTYPE_INT, null, false); - $this->initVar("created", XOBJ_DTYPE_INT, null, false); - $this->initVar("checked", XOBJ_DTYPE_INT, null, false); - $this->initVar("errored", XOBJ_DTYPE_INT, null, false); - $this->initVar("emailed", XOBJ_DTYPE_INT, null, false); - $this->initVar("data", XOBJ_DTYPE_OTHER, null, false); + $this->initVar("id", XOBJ_DTYPE_INT, null, false); + $this->initVar("fieldid", XOBJ_DTYPE_INT, null, false); + $this->initVar("uid", XOBJ_DTYPE_INT, null, false); + $this->initVar("hash", XOBJ_DTYPE_TXTBOX, null, false, 16); + $this->initVar("field", XOBJ_DTYPE_TXTBOX, null, false, 64); + $this->initVar("type", XOBJ_DTYPE_ENUM, 'unknown', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'type')); + $this->initVar("storage", XOBJ_DTYPE_ENUM, 'files', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'storage')); + $this->initVar("blacklisted", XOBJ_DTYPE_ENUM, 'none', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'storage')); + $this->initVar("md5", XOBJ_DTYPE_TXTBOX, null, false, 32); + $this->initVar("url", XOBJ_DTYPE_TXTBOX, null, false, 255); + $this->initVar("width", XOBJ_DTYPE_INT, null, false); + $this->initVar("height", XOBJ_DTYPE_INT, null, false); + $this->initVar("bytes", XOBJ_DTYPE_INT, null, false); + $this->initVar("views", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_hourly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_daily", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_weekly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_biweekly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_monthly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_quarterly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("views_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("updates_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("errors_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("megabytes_yearly", XOBJ_DTYPE_FLOAT, null, false); + $this->initVar("start_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_hourly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_daily", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_weekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_biweekly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_monthly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_quarterly", XOBJ_DTYPE_INT, null, false); + $this->initVar("start_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("ended_yearly", XOBJ_DTYPE_INT, null, false); + $this->initVar("viewed", XOBJ_DTYPE_INT, null, false); + $this->initVar("updated", XOBJ_DTYPE_INT, null, false); + $this->initVar("created", XOBJ_DTYPE_INT, null, false); + $this->initVar("checked", XOBJ_DTYPE_INT, null, false); + $this->initVar("errored", XOBJ_DTYPE_INT, null, false); + $this->initVar("emailed", XOBJ_DTYPE_INT, null, false); + $this->initVar("data", XOBJ_DTYPE_OTHER, null, false); } /** @@ -123,6 +167,20 @@ } /** + * Checks for ending of a statistic time cursor + * + * @param unknown $case + */ + public function isStatistianEnding($case = '') + { + if (in_array($case, imagesEnumeratorValues('statistics.php', 'mode'))) + { + return (self::getVar("ended_$case") < time()); + } + return false; + } + + /** * Adds View(s) count to object * * @param number $number @@ -130,9 +188,9 @@ */ public function addViews($number = 1) { - $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_images") . "` SET `views` = `views` + $number, `viewed` = UNIX_TIMESTAMP() WHERE `id` = " . self::getVar('id'); + $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_images") . "` SET `views` = `views` + $number, `views_hourly` = `views_hourly` + $number, `views_daily` = `views_daily` + $number, `views_weekly` = `views_weekly` + $number, `views_biweekly` = `views_biweekly` + $number, `views_monthly` = `views_monthly` + $number, `views_quarterly` = `views_quarterly` + $number, `views_yearly` = `views_yearly` + $number, `viewed` = UNIX_TIMESTAMP() WHERE `id` = " . self::getVar('id'); @$GLOBALS['xoopsDB']->queryF($sql); - $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `views` = `views` + $number, `viewed` = UNIX_TIMESTAMP() WHERE `field` = '" . self::getVar('field') . "'"; + $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `views` = `views` + $number, `views_hourly` = `views_hourly` + $number, `views_daily` = `views_daily` + $number, `views_weekly` = `views_weekly` + $number, `views_biweekly` = `views_biweekly` + $number, `views_monthly` = `views_monthly` + $number, `views_quarterly` = `views_quarterly` + $number, `views_yearly` = `views_yearly` + $number, `viewed` = UNIX_TIMESTAMP() WHERE `field` = '" . self::getVar('field') . "'"; @$GLOBALS['xoopsDB']->queryF($sql); } @@ -146,9 +204,9 @@ public function addMegabytes($bytes = 0) { $megabytes = $bytes / 1024 / 1024; - $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_images") . "` SET `megabytes` = `megabytes` + '$megabytes', `updated` = UNIX_TIMESTAMP() WHERE `id` = " . self::getVar('id'); + $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_images") . "` SET `megabytes` = `megabytes` + '$megabytes', `megabytes_hourly` = `megabytes_hourly` + '$megabytes', `megabytes_daily` = `megabytes_daily` + '$megabytes', `megabytes_weekly` = `megabytes_weekly` + '$megabytes', `megabytes_biweekly` = `megabytes_biweekly` + '$megabytes', `megabytes_monthly` = `megabytes_monthly` + '$megabytes', `megabytes_quarterly` = `megabytes_quarterly` + '$megabytes', `megabytes_yearly` = `megabytes_yearly` + '$megabytes', `updated` = UNIX_TIMESTAMP() WHERE `id` = " . self::getVar('id'); @$GLOBALS['xoopsDB']->queryF($sql); - $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `megabytes` = `megabytes` + '$megabytes' WHERE `field` = '" . self::getVar('field') . "'"; + $sql = "UPDATE `" . $GLOBALS['xoopsDB']->prefix("images_fields") . "` SET `megabytes` = `megabytes` + '$megabytes', `megabytes_hourly` = `megabytes_hourly` + '$megabytes', `megabytes_daily` = `megabytes_daily` + '$megabytes', `megabytes_weekly` = `megabytes_weekly` + '$megabytes', `megabytes_biweekly` = `megabytes_biweekly` + '$megabytes', `megabytes_monthly` = `megabytes_monthly` + '$megabytes', `megabytes_quarterly` = `megabytes_quarterly` + '$megabytes', `megabytes_yearly` = `megabytes_yearly` + '$megabytes' WHERE `field` = '" . self::getVar('field') . "'"; @$GLOBALS['xoopsDB']->queryF($sql); } @@ -686,6 +744,12 @@ class ImagesImagesHandler extends ImagesXoopsPersistableObjectHandler { + /** + * Variables that comprise of statistic indicies + * + * @var array + */ + var $_statistian_fields = array('views','updates','errors','megabytes'); /** * Constructor @@ -715,9 +779,10 @@ $field = $fieldsHandler->create(); $field->setVar('field', $object->getVar('field')); $field->setVar('typal', $object->getFieldTypal()); + $field->setVars(imagesStatisticalTiming(array())); if (!$field = $fieldsHandler->get($fieldsHandler->insert($field, true))) return false; - + $object->setVar('fieldid', $field->getVar('id')); if ($object->getVar('uid')==0 && is_object($GLOBALS['xoopsUser'])) $object->setVar('uid', $GLOBALS['xoopsUser']->getVar('uid')); $object->setVar('created', time()); @@ -729,6 +794,7 @@ $crc = new xcp($data = $field->getVar('hash').$object->getVar('uid').$imagesConfigList['format'].microtime().$object->getVar('url'), mt_rand(0,255), mt_rand(5,14)); $object->setVar('hash', $crc->crc); } + $object->setVars(imagesStatisticalTiming(array())); $criteria = new CriteriaCompo(new Criteria('uid', $object->getVar('uid'))); $criteria->add(new Criteria('field', $object->getVar('field'))); if (!in_array($object->getVar('field'), $imagesConfigList['ascii_fields'])) @@ -748,7 +814,6 @@ } return $id; } else { - if (in_array($object->getVar('field'), $imagesConfigList['ascii_fields'])) { $crc = new xcp($data = $object->getVar('uid').'ascii'.microtime().$object->getVar('url'), mt_rand(0,255), mt_rand(5,14)); Added: XoopsModules/images/trunk/modules/images/class/index.html =================================================================== --- XoopsModules/images/trunk/modules/images/class/index.html (rev 0) +++ XoopsModules/images/trunk/modules/images/class/index.html 2017-08-31 04:47:34 UTC (rev 13291) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/images/trunk/modules/images/class/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/images/trunk/modules/images/class/statistics.php =================================================================== --- XoopsModules/images/trunk/modules/images/class/statistics.php (rev 0) +++ XoopsModules/images/trunk/modules/images/class/statistics.php 2017-08-31 04:47:34 UTC (rev 13291) @@ -0,0 +1,603 @@ +<?php +/** + * Legal Consent is a module for obtain legal guardianship Images + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * @copyright The XOOPS Project http://fonts2web.org.uk + * @license General Public License version 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Roberts (wishcraft) <wis...@us...> + * @subpackage Images + * @description Legal Consent is a module for obtain legal guardianship Images + * @version 1.0.1 + * @link http://internetfounder.wordpress.com + */ + +if (!defined('_MD_CONSENT_MODULE_DIRNAME')) { + return false; +} + +//* +require_once (__DIR__ . DIRECTORY_SEPARATOR . 'objects.php'); + +/** + * Database Table for Statistics in Legal Consent Module + * + * For Table:- + * <code> + * CREATE TABLE `images_statistics` ( + `id` mediumint(32) NOT NULL AUTO_INCREMENT, + `mode` enum('hourly','daily','weekly','biweekly','monthly','quarterly','yearly') NOT NULL DEFAULT '', + `typal` enum('icons','logo','photo','avatar') NOT NULL DEFAULT '', + `type` enum('fields','images') NOT NULL DEFAULT '', + `typeid` mediumint(15) NOT NULL DEFAULT '0', + `hash` varchar(18) NOT NULL DEFAULT '', + `key` varchar(64) NOT NULL DEFAULT '', + `timezone` varchar(128) NOT NULL DEFAULT '', + `commence` int(13) NOT NULL DEFAULT '0', + `finished` int(13) NOT NULL DEFAULT '0', + `year` int(4) NOT NULL DEFAULT '0', + `month` int(2) NOT NULL DEFAULT '0', + `day` int(2) NOT NULL DEFAULT '0', + `week` int(2) NOT NULL DEFAULT '0', + `hour` int(2) NOT NULL DEFAULT '0', + `minute` int(2) NOT NULL DEFAULT '0', + `seconds` int(2) NOT NULL DEFAULT '0', + `segment-month` enum('0-3','3-6','6-9','9-12') NOT NULL DEFAULT '0-3', + `segment-hour` enum('0-3','3-6','6-9','9-12','12-15','15-18','18-21','21-24') NOT NULL DEFAULT '0-3', + `segment-minute` enum('0-15','15-30','30-45','45-60') NOT NULL DEFAULT '0-15', + `day-name` enum('Sun','Sat','Mon','Tue','Wed','Thu','Fri') NOT NULL DEFAULT 'Sun', + `stat` float(22,9) NOT NULL DEFAULT '0.000000000', + `sum_item_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_hourly` int(13) NOT NULL DEFAULT '0', + `sum_item_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_daily` int(13) NOT NULL DEFAULT '0', + `sum_item_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_weekly` int(13) NOT NULL DEFAULT '0', + `sum_item_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_biweekly` int(13) NOT NULL DEFAULT '0', + `sum_item_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_monthly` int(13) NOT NULL DEFAULT '0', + `sum_item_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_quarterly` int(13) NOT NULL DEFAULT '0', + `sum_item_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_item_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_item_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_item_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_item_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_item_yearly` int(13) NOT NULL DEFAULT '0', + `sum_key_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_hourly` int(13) NOT NULL DEFAULT '0', + `sum_key_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_daily` int(13) NOT NULL DEFAULT '0', + `sum_key_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_weekly` int(13) NOT NULL DEFAULT '0', + `sum_key_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_biweekly` int(13) NOT NULL DEFAULT '0', + `sum_key_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_monthly` int(13) NOT NULL DEFAULT '0', + `sum_key_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_quarterly` int(13) NOT NULL DEFAULT '0', + `sum_key_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_key_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_key_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_key_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_key_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_key_yearly` int(13) NOT NULL DEFAULT '0', + `sum_typal_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_hourly` int(13) NOT NULL DEFAULT '0', + `sum_typal_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_daily` int(13) NOT NULL DEFAULT '0', + `sum_typal_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_weekly` int(13) NOT NULL DEFAULT '0', + `sum_typal_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_biweekly` int(13) NOT NULL DEFAULT '0', + `sum_typal_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_monthly` int(13) NOT NULL DEFAULT '0', + `sum_typal_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_quarterly` int(13) NOT NULL DEFAULT '0', + `sum_typal_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_typal_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_typal_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_typal_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_typal_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_typal_yearly` int(13) NOT NULL DEFAULT '0', + `sum_type_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_hourly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_hourly` int(13) NOT NULL DEFAULT '0', + `sum_type_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_daily` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_daily` int(13) NOT NULL DEFAULT '0', + `sum_type_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_weekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_weekly` int(13) NOT NULL DEFAULT '0', + `sum_type_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_biweekly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_biweekly` int(13) NOT NULL DEFAULT '0', + `sum_type_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_monthly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_monthly` int(13) NOT NULL DEFAULT '0', + `sum_type_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_quarterly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_quarterly` int(13) NOT NULL DEFAULT '0', + `sum_type_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `max_type_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `min_type_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `adv_type_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `std_type_yearly` float(22,9) NOT NULL DEFAULT '0.000000000', + `end_type_yearly` int(13) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `SEARCH` (`key`,`year`,`month`,`day`,`week`,`hour`,`minute`,`segment-month`,`segment-hour`,`segment-minute`,`day-name`) USING BTREE KEY_BLOCK_SIZE=32, + KEY `PERIODICS` (`commence`,`finished`,`mode`,`typal`,`type`,`typeid`), + KEY `INDICATING` (`mode`,`typal`,`type`,`typeid`,`hash`(11),`key`(16)), +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + * </code> + * @author Simon Roberts (wis...@us...) + * @copyright copyright (c) 2015 labs.coop + */ +class ImagesStatistics extends ImagesXoopsObject +{ + + var $handler = 'ImagesStatisticsHandler'; + + function __construct($id = null) + { + + self::initVar('id', XOBJ_DTYPE_INT, null, false); + self::initVar("mode", XOBJ_DTYPE_ENUM, '', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'mode')); + self::initVar("typal", XOBJ_DTYPE_ENUM, '', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'typal')); + self::initVar("type", XOBJ_DTYPE_ENUM, '', false, false, false, imagesEnumeratorValues(basename(__FILE__), 'type')); + self::initVar('typeid', XOBJ_DTYPE_INT, null, false); + self::initVar('hash', XOBJ_DTYPE_TXTBOX, null, false, 18); + self::initVar('key', XOBJ_DTYPE_TXTBOX, null, false, 64); + self::initVar('timezone', XOBJ_DTYPE_TXTBOX, null, false, 128); + self::initVar('commence', XOBJ_DTYPE_INT, null, false); + self::initVar('finished', XOBJ_DTYPE_INT, null, false); + self::initVar('year', XOBJ_DTYPE_INT, null, false); + self::initVar('month', XOBJ_DTYPE_INT, null, false); + self::initVar('day', XOBJ_DTYPE_INT, null, false); + self::initVar('week', XOBJ_DTYPE_INT, null, false); + self::initVar('hour', XOBJ_DTYPE_INT, null, false); + self::initVar('minute', XOBJ_DTYPE_INT, null, false); + self::initVar('seconds', XOBJ_DTYPE_INT, null, false); + self::initVar('segment-month', XOBJ_DTYPE_ENUM, 'Both', false, false, false, ImagesEnumeratorValues(basename(__FILE__), 'segment-month')); + self::initVar('segment-hour', XOBJ_DTYPE_ENUM, 'Both', false, false, false, ImagesEnumeratorValues(basename(__FILE__), 'segment-hour')); + self::initVar('segment-minute', XOBJ_DTYPE_ENUM, 'Both', false, false, false, ImagesEnumeratorValues(basename(__FILE__), 'segment-minute')); + self::initVar('day-name', XOBJ_DTYPE_ENUM, 'Both', false, false, false, ImagesEnumeratorValues(basename(__FILE__), 'day-name')); + self::initVar('stat', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('sum_item_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_hourly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_item_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_daily', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_item_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_weekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_item_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_biweekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_item_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_monthly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_item_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_quarterly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_item_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_item_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_item_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_item_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_item_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_item_yearly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_hourly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_daily', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_weekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_biweekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_quarterly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_quarterly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_key_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_key_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_key_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_key_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_key_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_key_yearly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_hourly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_daily', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_weekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_biweekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_monthly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_quarterly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_typal_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_typal_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_typal_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_typal_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_typal_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_typal_yearly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_hourly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_hourly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_daily', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_daily', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_weekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_weekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_biweekly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_biweekly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_monthly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_monthly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_quarterly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_quarterly', XOBJ_DTYPE_INT, null, false); + self::initVar('sum_type_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('max_type_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('min_type_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('adv_type_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('std_type_yearly', XOBJ_DTYPE_FLOAT, null, false); + self::initVar('end_type_yearly', XOBJ_DTYPE_INT, null, false); + + if (!empty($id) && !is_null($id)) + { + $handler = new $this->handler; + self::assignVars($handler->get($id)->getValues(array_keys($this->vars))); + } + + } + +} + + +/** + * Handler Class for Statistics + * @author Simon Roberts (wis...@us...) + * @copyright copyright (c) 2015 labs.coop + */ +class ImagesStatisticsHandler extends ImagesXoopsPersistableObjectHandler +{ + + /** + * + * @var array + */ + var $_periodics = array(); + + /** + * Table Name without prefix used + * + * @var string + */ + var $tbl = 'images_statistics'; + + /** + * Child Object Handling Class + * + * @var string + */ + var $child = 'ImagesStatistics'; + + /** + * Child Object Identity Key + * + * @var string + */ + var $identity = 'id'; + + /** + * Child Object Default Envaluing Costs + * + * @var string + */ + var $envalued = 'value'; + + function __construct(&$db) + { + self::$_periodics = array( 'hourly' => 3600, 'daily' => 3600 * 24, 'weekly' => 3600 * 24 * 7, 'biweekly' => 3600 * 24 * 7 * 2, + 'monthly' => 3600 * 24 * 7 * 4, 'quarterly' => 3600 * 24 * 7 * 4 * 4, 'yearly' => 3600 * 24 * 7 * 4 * 12 ); + if (!is_object($db)) + $db = $GLOBAL["xoopsDB"]; + parent::__construct($db, $this->tbl, $this->child, $this->identity, $this->envalued); + } + + /** + * Creates a ImagesStatistic Object for new + * + * {@inheritDoc} + * @see XoopsPersistableObjectHandler::create() + */ + function create($commence = 0) + { + if ($commence == 0) + $commence = time(); + $object = parent::create(true); + $object->setVar('timezone', date_default_timezone_get()); + $object->setVar('commence', $commence); + $object->setVar('year', date('Y', $object->getVar('commence'))); + $object->setVar('month', date('m', $object->getVar('commence'))); + $object->setVar('day', date('d', $object->getVar('commence'))); + $object->setVar('week', date('W', $object->getVar('commence'))); + $object->setVar('hour', date('H', $object->getVar('commence'))); + $object->setVar('minute', date('i', $object->getVar('commence'))); + $object->setVar('seconds', date('s', $object->getVar('commence'))); + $segments = ImagesEnumeratorValues(basename(__FILE__), 'segment-month'); + $object->setVar('segment-month', $segments[floor((date('m', $object->getVar('commence'))-1) / count($segments))]); + $segments = ImagesEnumeratorValues(basename(__FILE__), 'segment-hour'); + $object->setVar('segment-hour', $segments[floor((date('H', $object->getVar('commence'))-1) / count($segments))]); + $segments = ImagesEnumeratorValues(basename(__FILE__), 'segment-minute'); + $object->setVar('segment-minute', $segments[floor((date('i', $object->getVar('commence'))-1) / count($segments))]); + $object->setVar('day-name', date('D', $object->getVar('commence'))); + return $object; + } + + /** + * inserts a new record into the database + * + * {@inheritDoc} + * @see XoopsPersistableObjectHandler::insert() + */ + function insert(ImagesStatistics $object, $force = true) + { + if ($object->isNew()) + { + foreach(imagesEnumeratorValues(basename(__FILE__), 'mode') as $mode) + { + foreach(array('item','key','typal','type') as $state) + { + switch ($state) + { + case 'item': + $criteria = new CriteriaCompo(new Criteria('typal', $object->getVar('typal'))); + $criteria->add(new Criteria('mode', $object->getVar('mode'))); + $criteria->add(new Criteria('type', $object->getVar('type'))); + $criteria->add(new Criteria('commence', time() - self::$_periodics[$mode], "<=")); + $criteria->add(new Criteria('finished', time(), ">=")); + foreach(self::getStatisticArray($criteria) as $key => $value) + $object->setVar("$key_$state_$mode", $value); + break; + case 'key': + $criteria = new CriteriaCompo(new Criteria('key', $object->getVar('key'))); + $criteria->add(new Criteria('mode', $object->getVar('mode'))); + $criteria->add(new Criteria('type', $object->getVar('type'))); + $criteria->add(new Criteria('commence', time() - self::$_periodics[$mode], "<=")); + $criteria->add(new Criteria('finished', time(), ">=")); + foreach(self::getStatisticArray($criteria) as $key => $value) + $object->setVar("$key_$state_$mode", $value); + break; + case 'typal': + $criteria = new CriteriaCompo(new Criteria('typal', $object->getVar('typal'))); + $criteria->add(new Criteria('commence', time() - self::$_periodics[$mode], "<=")); + $criteria->add(new Criteria('finished', time(), ">=")); + foreach(self::getStatisticArray($criteria) as $key => $value) + $object->setVar("$key_$state_$mode", $value); + break; + case 'type': + $criteria = new CriteriaCompo(new Criteria('key', $object->getVar('key'))); + $criteria->add(new Criteria('commence', time() - self::$_periodics[$mode], "<=")); + $criteria->add(new Criteria('finished', t... [truncated message content] |