Esempio n. 1
0
function getList($blockId, $fields, $order, $filers)
{
    $entity_requests_data_class = connectToBlock($blockId);
    $main_query_requests = new Entity\Query($entity_requests_data_class);
    $main_query_requests->setSelect($fields);
    //$main_query_requests->setSelect(array('ID','UF_TITLE'));
    if (!empty($order)) {
        $main_query_requests->setOrder($order);
    }
    if (!empty($filers)) {
        $main_query_requests->setFilter($filers);
        /*$main_query_requests->setFilter(
              array(
                  'UF_NAME'=>'Александр',
              )
          );*/
    }
    $result_requests = $main_query_requests->exec();
    $result_requests = new CDBResult($result_requests);
    $requests = array();
    while ($row_requests = $result_requests->Fetch()) {
        $requests[] = $row_requests;
        //массив выбранных элементов
    }
    return $requests;
}
 function elemGetEx($elemId = false)
 {
     $hlHandler = $this->hlHandler;
     $getList = new Entity\Query($hlHandler);
     $getList->setSelect(array('*'));
     $getList->setOrder(array("ID" => "ASC"));
     if (!empty($elemId)) {
         $getList->setFilter(array("ID" => $elemId));
     }
     $result = $getList->exec();
     $result = new CDBResult($result);
     $arRes = array();
     while ($row = $result->Fetch()) {
         $arRes[] = $row;
     }
     return $arRes;
 }
Esempio n. 3
0
 public static function getList($parameters = array())
 {
     $query = new Query(static::getEntity());
     if (!isset($parameters['select'])) {
         $query->setSelect(array('*'));
     }
     foreach ($parameters as $param => $value) {
         switch ($param) {
             case 'select':
                 $query->setSelect($value);
                 break;
             case 'filter':
                 $query->setFilter($value);
                 break;
             case 'group':
                 $query->setGroup($value);
                 break;
             case 'order':
                 $query->setOrder($value);
                 break;
             case 'limit':
                 $query->setLimit($value);
                 break;
             case 'offset':
                 $query->setOffset($value);
                 break;
             case 'count_total':
                 $query->countTotal($value);
                 break;
             case 'options':
                 $query->setOptions($value);
                 break;
             case 'runtime':
                 foreach ($value as $name => $fieldInfo) {
                     $query->registerRuntimeField($name, $fieldInfo);
                 }
                 break;
             case 'data_doubling':
                 if ($value) {
                     $query->enableDataDoubling();
                 } else {
                     $query->disableDataDoubling();
                 }
                 break;
             default:
                 throw new Main\ArgumentException("Unknown parameter: " . $param, $param);
         }
     }
     return $query->exec();
 }
Esempio n. 4
0
 public static function getDepartmentAverageGraphData($deptId, Type\DateTime $dateFrom, Type\DateTime $dateTo, $interval, $section = null)
 {
     if (!in_array($interval, array('hour', 'day', 'month'), true)) {
         throw new Main\ArgumentException('Interval should be the "hour", or "day", or "month".');
     }
     $data = array();
     $sectionField = $section === null ? 'TOTAL' : $section;
     if ($interval === 'hour') {
         $query = new Entity\Query(DepartmentHourTable::getEntity());
         $query->setSelect(array('DEPT_ID', 'DATE' => 'HOUR', 'AVG_ACTIVITY' => $sectionField));
         $query->setFilter(array('=DEPT_ID' => $deptId, '><HOUR' => array(ConvertTimeStamp($dateFrom->getTimestamp(), 'FULL'), ConvertTimeStamp($dateTo->getTimestamp(), 'FULL'))));
         $keyFormat = 'Y-m-d H:00:00';
     } elseif ($interval === 'day') {
         $query = new Entity\Query(DepartmentDayTable::getEntity());
         $query->setSelect(array('DEPT_ID', 'DATE' => 'DAY', new Entity\ExpressionField('AVG_ACTIVITY', 'CASE WHEN %s > 0 THEN ROUND((%s / %s), 0) ELSE 0 END', array('ACTIVE_USERS', $sectionField, 'ACTIVE_USERS'))));
         $query->setFilter(array('=DEPT_ID' => $deptId, '><DAY' => array(ConvertTimeStamp($dateFrom->getTimestamp()), ConvertTimeStamp($dateTo->getTimestamp()))));
         $keyFormat = 'Y-m-d';
     } elseif ($interval === 'month') {
         $query = new Entity\Query(DepartmentDayTable::getEntity());
         $sqlHelper = Application::getConnection()->getSqlHelper();
         $monthExpression = array('data_type' => 'string', 'expression' => array(str_replace($sqlHelper->formatDate('YYYY-MM'), str_replace('%', '%%', $sqlHelper->formatDate('YYYY-MM')), $sqlHelper->formatDate('YYYY-MM', '%1$s')), 'DAY'));
         $query->registerRuntimeField('DATE', $monthExpression);
         $query->setSelect(array('DEPT_ID', 'DATE', new Entity\ExpressionField('AVG_ACTIVITY', 'ROUND(SUM(CASE WHEN %s > 0 THEN %s / %s ELSE 0 END), 0)', array('ACTIVE_USERS', $sectionField, 'ACTIVE_USERS'))));
         $query->setFilter(array('=DEPT_ID' => $deptId, '><DAY' => array(ConvertTimeStamp($dateFrom->getTimestamp()), ConvertTimeStamp($dateTo->getTimestamp()))));
         $query->setGroup(array('DEPT_ID', 'DATE'));
         $keyFormat = 'Y-m';
     }
     // and continue with main data
     $query->setOrder('DATE');
     $result = $query->exec();
     while ($row = $result->fetch()) {
         /** @var Type\DateTime[] $row */
         if (!is_object($row['DATE'])) {
             $key = $row['DATE'];
             $row['DATE'] = new Type\DateTime($row['DATE'], $keyFormat);
         } else {
             $key = $row['DATE']->format($keyFormat);
         }
         $data[$key] = $row;
     }
     if ($interval === 'hour') {
         // recount unique users from DAILY stats,
         // because there are empty records for each user
         // at this moment AVG_ACTIVITY is just sum of activity, and we should find average per user
         $dailyActiveUsers = array();
         $query = new Entity\Query(DepartmentDayTable::getEntity());
         $result = $query->addSelect('DAY')->addSelect('ACTIVE_USERS')->addFilter('=DEPT_ID', $deptId)->addFilter('><DAY', array(ConvertTimeStamp($dateFrom->getTimestamp()), ConvertTimeStamp($dateTo->getTimestamp())))->exec();
         while ($row = $result->fetch()) {
             /** @var Type\DateTime[] $row */
             $dailyActiveUsers[$row['DAY']->format('Y-m-d')] = $row['ACTIVE_USERS'];
         }
         foreach ($data as &$hourlyData) {
             /** @var Type\DateTime[] $hourlyData */
             if (!empty($dailyActiveUsers[$hourlyData['DATE']->format('Y-m-d')])) {
                 $hourlyData['AVG_ACTIVITY'] = round($hourlyData['AVG_ACTIVITY'] / $dailyActiveUsers[$hourlyData['DATE']->format('Y-m-d')]);
             }
         }
     }
     return $data;
 }
Esempio n. 5
0
$contextMenu[] = array('TEXT' => Loc::getMessage('USER_VARS_ADD'), 'TITLE' => Loc::getMessage('USER_VARS_ADD'), 'LINK' => 'user_vars_edit.php?GROUP_ID=' . $dataGroup['ID'] . '&lang=' . LANGUAGE_ID, 'ICON' => 'btn_new');
$contextMenu[] = array('TEXT' => Loc::getMessage('USER_VARS_EDIT_GROUP'), 'TITLE' => Loc::getMessage('USER_VARS_EDIT_GROUP'), 'LINK' => 'user_vars_group_edit.php?ID=' . $dataGroup['ID'] . '&lang=' . LANGUAGE_ID, 'ICON' => 'btn_edit');
$varsMap = Model\VarsTable::getMap();
$headers = array(array('id' => 'ID', 'content' => 'ID', 'sort' => 'ID', 'default' => true), array('id' => 'NAME', 'content' => $varsMap['NAME']['title'], 'sort' => 'NAME', 'default' => true), array('id' => 'CODE', 'content' => $varsMap['CODE']['title'], 'sort' => 'CODE', 'default' => true), array('id' => 'VALUE', 'content' => $varsMap['VALUE']['title'], 'sort' => 'VALUE', 'default' => true), array('id' => 'DESCRIPTION', 'content' => $varsMap['DESCRIPTION']['title'], 'sort' => 'DESCRIPTION', 'default' => true));
$tableId = 'tbl_user_vars_list';
$adminSort = new CAdminSorting($tableId, 'NAME', 'asc');
$adminList = new CAdminList($tableId, $adminSort);
$adminList->addHeaders($headers);
if ($request->getQuery('mode') != 'list') {
    $context = new CAdminContextMenu($contextMenu);
}
$queryBuilder = new Entity\Query(Model\VarsTable::getEntity());
$queryBuilder->setSelect(array('ID', 'NAME', 'CODE', 'DESCRIPTION', 'VALUE'))->setFilter(array('GROUP_ID' => $dataGroup['ID']));
$sortBy = $request->getQuery('by') ? strtoupper($request->getQuery('by')) : 'ID';
$sortOrder = $request->getQuery('order') ?: 'asc';
$queryBuilder->setOrder(array($sortBy => $sortOrder));
$resultData = new CAdminResult($queryBuilder->exec(), $tableId);
$resultData->navStart();
$adminList->navText($resultData->getNavPrint(Loc::getMessage('PAGES')));
while ($item = $resultData->fetch()) {
    $row = $adminList->addRow($item['ID'], $item);
    $actions = array();
    $actions[] = array('ICON' => 'edit', 'TEXT' => Loc::GetMessage('USER_VARS_ACTION_EDIT_VAR'), 'ACTION' => $adminList->actionRedirect('user_vars_edit.php?ID=' . $item['ID'] . '&GROUP_ID=' . $dataGroup['ID']));
    $actions[] = array('ICON' => 'delete', 'TEXT' => Loc::getMessage('USER_VARS_ACTION_DELETE_VAR'), 'ACTION' => "if(confirm('" . Loc::getMessage('USER_VARS_DELETE_VAR_CONFIRM') . "')) " . $adminList->actionRedirect('user_vars_edit.php?action=delete&ID=' . $item['ID'] . '&GROUP_ID=' . $dataGroup['ID'] . '&' . bitrix_sessid_get()));
    $row->addActions($actions);
}
$prologType = $request->getQuery('mode') == 'list' ? 'prolog_js' : 'prolog';
require sprintf('%s%s', getenv('DOCUMENT_ROOT'), $includePath[$prologType]);
if ($prologType != 'prolog_js') {
    $context->show();
}
Esempio n. 6
0
 public static function GetRegionsIdsByNames($arRegNames, $countryId = false)
 {
     if (self::isLocationProMigrated()) {
         try {
             $types = self::getTypes();
             $query = new Entity\Query(self::SELF_ENTITY_NAME);
             $fieldMap = array('RID' => 'REGION_ID', 'RNAME' => 'NAME.NAME', 'RSHORT_NAME' => 'NAME.SHORT_NAME');
             $selectFields = $fieldMap;
             $filterFields = array(array('LOGIC' => 'OR', 'RNAME' => $arRegNames, 'RSHORT_NAME' => $arRegNames), '=TYPE_ID' => $types['REGION'], '!=REGION_ID' => '0');
             if ($countryId = intval($countryId)) {
                 $filterFields['=COUNTRY_ID'] = $countryId;
             }
             // order
             $orderFields = array('RNAME' => 'asc', 'RSHORT_NAME' => 'asc');
             // group
             $groupFields = array('RID');
             $nameJoinCondition = array('=this.ID' => 'ref.LOCATION_ID');
             if (strlen($strLang)) {
                 $nameJoinCondition['=ref.LANGUAGE_ID'] = array('?', $strLang);
             }
             $query->registerRuntimeField('NAME', array('data_type' => self::NAME_ENTITY_NAME, 'reference' => $nameJoinCondition, 'join_type' => 'left'));
             $query->setSelect($selectFields);
             $query->setFilter($filterFields);
             $query->setOrder($orderFields);
             $query->setGroup($groupFields);
             $result = array();
             $res = $query->exec();
             while ($item = $res->fetch()) {
                 $result[strlen($item['RNAME']) ? $item['RNAME'] : $item['RSHORT_NAME']] = $item['RID'];
             }
             return $result;
         } catch (Exception $e) {
             return array();
         }
     } else {
         global $DB;
         $arResult = array();
         $arWhere = array();
         $arQueryFields = array('RL.NAME', 'RL.SHORT_NAME');
         if (is_array($arRegNames)) {
             foreach ($arRegNames as $regName) {
                 $regName = $DB->ForSql($regName);
                 foreach ($arQueryFields as $field) {
                     $arWhere[] = $field . " LIKE '" . $regName . "'";
                 }
             }
             if (count($arWhere) > 0) {
                 $strWhere = implode(' OR ', $arWhere);
                 $query = "\tSELECT RL.REGION_ID, RL.NAME, RL.SHORT_NAME\n\t\t\t\t\t\t\t\tFROM b_sale_location_region_lang RL ";
                 if ($countryId) {
                     $strWhere = 'L.COUNTRY_ID=\'' . intval($countryId) . '\' AND (' . $strWhere . ')';
                     $query .= "LEFT JOIN b_sale_location L ON L.REGION_ID=RL.REGION_ID ";
                 }
                 $query .= "WHERE " . $strWhere;
                 $query .= " GROUP BY RL.REGION_ID";
                 $query .= " ORDER BY RL.NAME, RL.SHORT_NAME";
                 $dbList = $DB->Query($query);
                 $arRegionsLang = array();
                 while ($arRegion = $dbList->Fetch()) {
                     if (strlen($arRegion["NAME"]) > 0) {
                         $idx = $arRegion["NAME"];
                     } else {
                         $idx = $arRegion["SHORT_NAME"];
                     }
                     $arResult[$idx] = $arRegion["REGION_ID"];
                 }
             }
         }
         return $arResult;
     }
 }
Esempio n. 7
0
 public static function normalizeLocationList($denormalizedList = array())
 {
     if (empty($denormalizedList)) {
         return array();
     }
     $useCodes = static::getUseCodes();
     $denormalizedList = array_flip($denormalizedList);
     $query = new Entity\Query('Bitrix\\Sale\\Location\\Location');
     $query->setSelect(array('PARENT_ID', 'ID', 'CODE', 'LNAME' => 'NAME.NAME'));
     $query->setFilter(array('NAME.LANGUAGE_ID' => LANGUAGE_ID));
     // tmp
     $query->setOrder(array('LEFT_MARGIN' => 'desc'));
     // important
     $res = $query->exec();
     // make table of children count for each node
     $relations = array();
     $selected = array();
     while ($item = $res->fetch()) {
         if (!isset($relations[$item['ID']]['name'])) {
             // tmp
             $relations[$item['ID']]['name'] = $item['LNAME'];
         }
         if (!isset($relations[$item['ID']]['total'])) {
             $relations[$item['ID']]['total'] = 0;
         }
         if (!isset($relations[$item['ID']]['selected'])) {
             $relations[$item['ID']]['selected'] = 0;
         }
         ///
         if ($item['PARENT_ID'] != 0) {
             if (!isset($relations[$item['PARENT_ID']]['total'])) {
                 $relations[$item['PARENT_ID']]['total'] = 0;
             }
             if (!isset($relations[$item['PARENT_ID']]['selected'])) {
                 $relations[$item['PARENT_ID']]['selected'] = 0;
             }
         }
         $relations[$item['PARENT_ID']]['total'] += 1 + $relations[$item['ID']]['total'];
         if (isset($denormalizedList[$item['ID']])) {
             $relations[$item['PARENT_ID']]['selected'] += 1 + $relations[$item['ID']]['selected'];
             $selected[$item['ID']] = $item;
         }
     }
     // now make up list of nodes which we`ll remove
     $removeItems = array();
     $removeChildrenOf = array();
     foreach ($relations as $id => $rel) {
         if ($rel['total'] > 0) {
             if ($rel['total'] == $rel['selected']) {
                 if (isset($selected[$id])) {
                     // item should be selected itself to remove its children
                     $removeChildrenOf[$id] = true;
                 }
             } elseif ($rel['selected'] > 0) {
                 // selected M of N of children, where M > 0, so remove item itself
                 $removeItems[$id] = true;
             }
         }
     }
     $normalized = array();
     foreach ($selected as $id => $item) {
         if (!($item['PARENT_ID'] && $removeChildrenOf[$item['PARENT_ID']]) && !$removeItems[$item['ID']]) {
             $normalized[] = $item[$useCodes ? 'CODE' : 'ID'];
         }
     }
     return $normalized;
 }
Esempio n. 8
0
$limit = array('nPageSize' => $arParams['ROWS_PER_PAGE'], 'iNumPage' => is_set($_GET['PAGEN_1']) ? $_GET['PAGEN_1'] : 1, 'bShowAll' => true);
// sort
$sort_id = 'ID';
$sort_type = 'DESC';
if (!empty($_GET['sort_id']) && isset($fields[$_GET['sort_id']])) {
    $sort_id = $_GET['sort_id'];
}
if (!empty($_GET['sort_type']) && in_array($_GET['sort_type'], array('ASC', 'DESC'), true)) {
    $sort_type = $_GET['sort_type'];
}
// limit
$limit = array('nPageSize' => $arParams['ROWS_PER_PAGE'], 'iNumPage' => is_set($_GET['PAGEN_1']) ? $_GET['PAGEN_1'] : 1, 'bShowAll' => true);
// execute query
$main_query = new Entity\Query($entity);
$main_query->setSelect(array('*'));
$main_query->setOrder(array($sort_id => $sort_type));
//$main_query->setSelect($select)
//	->setFilter($filter)
//	->setGroup($group)
//	->setOrder($order)
//	->setOptions($options);
if (isset($limit['nPageTop'])) {
    $main_query->setLimit($limit['nPageTop']);
} else {
    $main_query->setLimit($limit['nPageSize']);
    $main_query->setOffset(($limit['iNumPage'] - 1) * $limit['nPageSize']);
}
//$main_query->setLimit($limit['nPageSize']);
//$main_query->setOffset(($limit['iNumPage']-1) * $limit['nPageSize']);
$result = $main_query->exec();
$result = new CDBResult($result);
Esempio n. 9
0
<?php

if (!CModule::IncludeModule("highloadblock")) {
    return;
}
use Bitrix\Highloadblock as HL;
use Bitrix\Main\Entity;
$Set_ID = $_SESSION["WF_IBL_SETTINGS_ID"];
unset($_SESSION["WF_IBL_SETTINGS_ID"]);
//Creating default values
$hldata = HL\HighloadBlockTable::getById($Set_ID)->fetch();
$hlentity = HL\HighloadBlockTable::compileEntity($hldata);
$hlHandler = $hlentity->getDataClass();
$getList = new Entity\Query($hlHandler);
$getList->setSelect(array('*'));
$getList->setOrder(array("ID" => "ASC"));
$getList->setFilter(array("ID" => 1));
$result = $getList->exec();
$result = new CDBResult($result);
if ($row = $result->Fetch()) {
} else {
    $arData = array("UF_THEME" => "default", "UF_SHADOWS" => "default", "UF_BUTTONS" => "coral", "UF_BG" => "default");
    $hlHandler::add($arData);
}
$Brand_ID = $_SESSION["WF_IBL_BRANDS_ID"];
unset($_SESSION["WF_IBL_BRANDS_ID"]);
$hldata = HL\HighloadBlockTable::getById($Brand_ID)->fetch();
$hlentity = HL\HighloadBlockTable::compileEntity($hldata);
$hlHandler = $hlentity->getDataClass();
$sort = 100;
$arBrandsUt = array("1 Marka" => "ref_files/7e44ec9828b17ace0d8f75a349b8de43.png", "Apollo" => "ref_files/61441e895fdde98034964c624e295f90.png", "AquaVita" => "ref_files/9d8f6c21dbd87f76b88a8b35e3cd0572.png", "BAS" => "ref_files/7eaea2afe6729ef29a25aeb82aba2513.png", "Cersanit" => "ref_files/9fe61dfbd7454a7ee27e41e0066fd3ba.png", "EAGO" => "ref_files/7d6f158e6fba7b90963c489c218fb8ef.png", "Kolpa-san" => "ref_files/a1906e21f88ebf48c6550117fb77b69f.png", "Loranto" => "ref_files/794eda4bc38c0decfb66455b436919e2.png", "RELISAN" => "ref_files/a3a02d848afdf90036f1def792d5adaf.png", "Roca" => "ref_files/bddd67008a780c90950540be078685a0.png", "Triton" => "ref_files/f75713924bd7964c999de3fbea43c2de.png", "Vayer" => "ref_files/5841ebf40c33bc9858245adfe7336427.png", "IDDIS" => "ref_files/85f24f3d3a9da494f411baa869b9df69.png", "Grohe" => "ref_files/6a2820fa128435a333ca473d06a78895.png", "Hansgrohe" => "ref_files/82499c22bd8a60b4ced944606973a91a.png");
Esempio n. 10
0
function getLikesList($element, $user = false, $photos = false)
{
    global $USER;
    $cacheTime = 3600;
    $cacheId = 'likes_' . $element;
    $cachePath = '/likes';
    $obCache = new CPHPCache();
    if ($obCache->InitCache($cacheTime, $cacheId, $cachePath)) {
        $vars = $obCache->GetVars();
        return $vars['data'];
    } else {
        global $CACHE_MANAGER;
        $CACHE_MANAGER->StartTagCache($cachePath);
        $CACHE_MANAGER->RegisterTag($cacheId);
        $requiredModules = array('highloadblock');
        foreach ($requiredModules as $requiredModule) {
            if (!CModule::IncludeModule($requiredModule)) {
                ShowError(GetMessage("F_NO_MODULE"));
                return 0;
            }
        }
        if ($photos) {
            foreach ($photos as $key => &$value) {
                $value = 'photo_' . $value;
            }
        }
        // hlblock info
        $hlblock_id = IB_LIKE;
        if (empty($hlblock_id)) {
            ShowError(GetMessage('HLBLOCK_LIST_NO_ID'));
            return 0;
        }
        $hlblock = HL\HighloadBlockTable::getById($hlblock_id)->fetch();
        if (empty($hlblock)) {
            ShowError('404');
            return 0;
        }
        $entity = HL\HighloadBlockTable::compileEntity($hlblock);
        // uf info
        $fields = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields('HLBLOCK_' . $hlblock['ID'], 0, LANGUAGE_ID);
        // pagination
        $limit = array('nPageSize' => $arParams['ROWS_PER_PAGE'], 'iNumPage' => is_set($_GET['PAGEN_1']) ? $_GET['PAGEN_1'] : 1, 'bShowAll' => true);
        // sort
        $sort_id = 'ID';
        $sort_type = 'DESC';
        // execute query
        $main_query = new Entity\Query($entity);
        $main_query->setSelect(array('*'));
        if ($user) {
            $main_query->setFilter(array('UF_ELEMENT_ID' => $element, 'UF_USER_ID' => $user));
        } else {
            if ($photos) {
                $main_query->setFilter(array('UF_ELEMENT_ID' => $photos));
            } else {
                $main_query->setFilter(array('UF_ELEMENT_ID' => $element));
            }
        }
        $main_query->setOrder(array($sort_id => $sort_type));
        //$main_query->setSelect($select)
        //	->setFilter($filter)
        //	->setGroup($group)
        //	->setOrder($order)
        //	->setOptions($options);
        //$main_query->setLimit($limit['nPageSize']);
        //$main_query->setOffset(($limit['iNumPage']-1) * $limit['nPageSize']);
        $result = $main_query->exec();
        $result = new CDBResult($result);
        // build results
        $rows = array();
        $tableColumns = array();
        $liked = false;
        $userLike = false;
        while ($row = $result->Fetch()) {
            foreach ($row as $k => $v) {
                if ($k === 'UF_USER_ID' && $USER->IsAuthorized() && $v == $USER->GetID()) {
                    $liked = true;
                    $userLike = $row;
                }
                if ($k == 'ID') {
                    $tableColumns['ID'] = true;
                    continue;
                }
                $arUserField = $fields[$k];
                if ($arUserField["SHOW_IN_LIST"] != "Y") {
                    continue;
                }
                $html = call_user_func_array(array($arUserField["USER_TYPE"]["CLASS_NAME"], "getadminlistviewhtml"), array($arUserField, array("NAME" => "FIELDS[" . $row['ID'] . "][" . $arUserField["FIELD_NAME"] . "]", "VALUE" => htmlspecialcharsbx($v))));
                if ($html == '') {
                    $html = '&nbsp;';
                }
                $tableColumns[$k] = true;
                $row[$k] = $html;
            }
            $rows[] = $row;
        }
        $data = array('rows' => $rows, 'fields' => $fields, 'colums' => $tableColumns, 'liked' => $liked, 'userLike' => $userLike);
        $CACHE_MANAGER->EndTagCache();
        if ($obCache->StartDataCache()) {
            $obCache->EndDataCache(array("data" => $data));
        }
        return $data;
    }
}