本文整理匯總了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;
}
}