本文整理汇总了PHP中CRequest::getGlobalOrder方法的典型用法代码示例。如果您正苦于以下问题:PHP CRequest::getGlobalOrder方法的具体用法?PHP CRequest::getGlobalOrder怎么用?PHP CRequest::getGlobalOrder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRequest
的用法示例。
在下文中一共展示了CRequest::getGlobalOrder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPaginated
/**
* Разбитый на страницы набор данных
*
* @return CArrayList
*/
public function getPaginated()
{
/**
* Разбивка на страницы на случай, если записи добавлялись вручную
* и на случай, если рекордсет получен из таблицы
*/
if ($this->_manualAdded) {
$res = new CArrayList();
$i = 0;
$start = ($this->getCurrentPage() - 1) * $this->getPageSize();
$end = $this->getCurrentPage() * $this->getPageSize();
foreach ($this->getItems() as $key => $value) {
if ($i >= $start && $i < $end) {
$res->add($key, $value);
}
$i++;
}
return $res;
} else {
$res = new CArrayList();
$query = $this->getQuery();
/**
* Использование глобального поиск и глобальных сортировок
*/
if ($this->_useGlobalSearch) {
// глобальный поиск
$globalFilter = CRequest::getGlobalFilter();
if ($globalFilter["field"] !== false) {
$condition = $query->getCondition();
if (is_numeric($globalFilter["value"])) {
if ($condition != "") {
$condition .= " AND " . $globalFilter["field"] . '=' . $globalFilter["value"];
} else {
$condition = $globalFilter["field"] . '=' . $globalFilter["value"];
}
} else {
if ($condition != "") {
$condition .= " AND " . $globalFilter["field"] . " like '%" . $globalFilter["value"] . "%'";
} else {
$condition = $globalFilter["field"] . " like '%" . $globalFilter["value"] . "%'";
}
}
$query->condition($condition);
}
// глобальные сортировки
$globalOrder = CRequest::getGlobalOrder();
if ($globalOrder["field"] !== false) {
$query->order($globalOrder["field"] . " " . $globalOrder["direction"]);
}
}
/**
* Использование глобального ограничения доступа
*/
if ($this->_isAclControlledSet) {
$this->updateQueryForACLLimitations();
}
if ($this->getPageSize() != PAGINATION_ALL) {
$start = ($this->getCurrentPage() - 1) * $this->getPageSize();
$query->limit($start, $this->getPageSize());
}
$items = $query->execute();
foreach ($items->getItems() as $item) {
$ar = new CActiveRecord($item);
$ar->setTable($query->getTable());
$res->add($ar->getId(), $ar);
}
return $res;
}
}