first commit

This commit is contained in:
2026-02-08 21:16:11 +01:00
commit e17b7026fd
8881 changed files with 1160453 additions and 0 deletions

View File

@@ -0,0 +1,94 @@
<?php
/**
* @package Convert Forms
* @version 3.2.12 Free
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
namespace ConvertForms;
use NRFramework\Cache;
defined('_JEXEC') or die('Restricted access');
/**
* Analytics Helper Class
*/
class Analytics
{
/**
* Returns average submission in current month
*
* @return float
*/
public static function getLeadsAverageThisMonth()
{
return number_format(self::getTotal('this_month') / date('d'), 1);
}
/**
* Returns current month projection
*
* @return integer
*/
public static function getMonthProjection()
{
return number_format(self::getTotal('this_month') / date('d') * date('t'), 1);
}
public static function getRows($type = null, $options = [])
{
return number_format(self::getTotal($type, $options));
}
public static function getTotal($type = null, $options = [])
{
$hash = md5($type . serialize($options));
if (Cache::has($hash))
{
return Cache::get($hash);
}
$model = \JModelLegacy::getInstance('Conversions', 'ConvertFormsModel', ['ignore_request' => true]);
$model->setState('filter.state', [1, 2]);
$model->setState('filter.join_campaigns', 'skip');
$model->setState('filter.join_forms', 'skip');
if ($type)
{
$model->setState('filter.period', $type);
}
if ($type == 'range')
{
$model->setState('filter.created_from', $options['created_from']);
$model->setState('filter.created_to', $options['created_to']);
}
$query = $model->getListQuery();
$query->clear('select');
$query->select('count(a.id)');
$db = \JFactory::getDbo();
// Prevent the "The SELECT would examine more than MAX_JOIN_SIZE rows; " MySQL error
// on websites with a big number of menu items in the db.
$db->setQuery('SET SQL_BIG_SELECTS = 1')->execute();
$db->setQuery($query);
$count = $db->loadResult();
return Cache::set($hash, $count);
}
}
?>