- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/stat/statistics.php
- Класс: BitrixSenderStatStatistics
- Вызов: Statistics::getClickLinks
public function getClickLinks($limit = 15)
{
$list = array();
$clickDb = PostingClickTable::getList(array(
'select' => array('URL', 'CNT'),
'filter' => array(
'=POSTING_ID' => $this->filter->get('postingId'),
),
'runtime' => array(
new ExpressionField('CNT', 'COUNT(%s)', 'ID'),
),
'group' => array('URL'),
'order' => array('CNT' => 'DESC'),
'limit' => $limit
));
while($click = $clickDb->fetch())
{
$list[] = $click;
}
// TODO: temporary block! Remove
if (!empty($list))
{
$letter = EntityLetter::createInstanceByPostingId($this->filter->get('postingId'));
$linkParams = $letter->getMessage()->getConfiguration()->get('LINK_PARAMS');
if (!$linkParams)
{
return $list;
}
$parametersTmp = [];
parse_str($linkParams, $parametersTmp);
if (!is_array($parametersTmp) || empty($parametersTmp))
{
return $list;
}
$linkParams = array_keys($parametersTmp);
$groupedList = [];
foreach ($list as $index => $item)
{
$item['URL'] = (new Uri($item['URL']))
->deleteParams($linkParams, true)
->getUri();
$item['URL'] = urldecode($item['URL']);
if (!isset($groupedList[$item['URL']]))
{
$groupedList[$item['URL']] = 0;
}
$groupedList[$item['URL']] += $item['CNT'];
}
$list = [];
foreach ($groupedList as $url => $cnt)
{
$list[] = ['URL' => $url, 'CNT' => $cnt];
}
}
return $list;
}