public function actionIndex() { $set = new CRecordSet(false); $query = new CQuery(); $query->select("usatu_order.*")->from(TABLE_USATU_ORDERS . " as usatu_order")->order("usatu_order.id desc"); $set->setQuery($query); /** * Сортировка приказов в различных направлениях */ $direction = "asc"; if (CRequest::getString("direction") != "") { $direction = CRequest::getString("direction"); } if (CRequest::getString("order") == "date") { $query->order("usatu_order.date " . $direction); } elseif (CRequest::getString("order") == "number") { $query->order("usatu_order.num " . $direction); } elseif (CRequest::getString("order") == "type") { $query->leftJoin(TABLE_USATU_ORDER_TYPES . " as order_type", "order_type.id = usatu_order.orders_type"); $query->order("order_type.name " . $direction); } elseif (CRequest::getString("order") == "title") { $query->order("usatu_order.title " . $direction); } /** * Фильтрация приказов */ $selectedOrder = null; if (!is_null(CRequest::getFilter("order"))) { $query->condition("usatu_order.id = " . CRequest::getFilter("order")); $selectedOrder = CStaffManager::getUsatuOrder(CRequest::getFilter("order")); } $selectedType = null; if (!is_null(CRequest::getFilter("type"))) { $query->condition("orders_type = " . CRequest::getFilter("type")); $selectedType = CTaxonomyManager::getUsatuOrderType(CRequest::getFilter("type"))->getId(); } /** * Выборка приказов */ $orders = new CArrayList(); foreach ($set->getPaginated()->getItems() as $item) { $order = new COrderUsatu($item); $orders->add($order->getId(), $order); } $this->setData("selectedOrder", $selectedOrder); $this->setData("selectedType", $selectedType); $this->setData("orders", $orders); $this->addJSInclude(JQUERY_UI_JS_PATH); $this->addCSSInclude(JQUERY_UI_CSS_PATH); $this->setData("paginator", $set->getPaginator()); $this->renderView("_orders_usatu/index.tpl"); }