本文整理汇总了PHP中CDBResult::navStringForCache方法的典型用法代码示例。如果您正苦于以下问题:PHP CDBResult::navStringForCache方法的具体用法?PHP CDBResult::navStringForCache怎么用?PHP CDBResult::navStringForCache使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDBResult
的用法示例。
在下文中一共展示了CDBResult::navStringForCache方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: fetch
public function fetch($filter, $params = array())
{
// ����������� ������
ksort($filter);
foreach ($filter as &$f) {
if (is_array($f)) {
sort($f);
}
}
// ��������� � id ���� ��� ��������� ���������
$cacheId = serialize($filter);
if (isset($params['count'])) {
$cacheId .= '+cnt' . $params['count'];
}
if (isset($params['pageSize'])) {
$cacheId .= '+ps' . $params['pageSize'] . '-' . CDBResult::navStringForCache($params['pageSize']);
}
if (isset($params['sort'])) {
$cacheId .= '+s' . serialize($params['sort']);
} else {
$params['sort'] = array('id' => 'desc');
}
// ��������� ���
$cache = new CPhpCache();
if (false && $cache->initCache($this->_cacheTime, $cacheId, $this->_cacheDir)) {
$vars = $cache->getVars();
// ��� ����, ����� ������������ ����������� ���������, ��������� CDBResult
$this->_dbResult = new CDBResult();
if (isset($params['pageSize'])) {
$this->_dbResult->InitFromArray((int) $vars['total'] > 0 ? array_fill(0, $vars['total'], 0) : array());
if (isset($params['pageSize'])) {
$this->_dbResult->navStart($params['pageSize'], true, $vars['page']);
}
}
return $vars['items'];
}
// � ���� ���
CMOdule::includeModule('iblock');
$filter['IBLOCK_ID'] = isset($filter['IBLOCK_ID']) ? $filter['IBLOCK_ID'] : $this->_iblockId;
$filter['ACTIVE'] = 'Y';
$this->_dbResult = CIBlockElement::getList($params['sort'], $filter, false, isset($params['count']) ? array('nTopCount' => $params['count']) : false, $this->_commonSelect);
if (isset($params['pageSize'])) {
$this->_dbResult->navStart($params['pageSize']);
}
$result = array();
while ($row = $this->_dbResult->fetch()) {
$result[$row['ID']] = $row;
}
if ($cache->startDataCache()) {
$cache->endDataCache(array('items' => $result, 'total' => $this->_dbResult->NavRecordCount, 'page' => $this->_dbResult->NavPageNomer));
}
return $result;
}