/** * Устанавливает юнит на конкретной странице в определенном месте * * @param integer pageId id страницы * @param string название области блоков * @param integer номер по порядку размещения блоков * @return PageWidget */ public function setOnPage($pageId, $area, $order) { $pageId = (int) $pageId; // Раздвигаем последующие юниты $sql = 'UPDATE `' . PageWidget::tableName() . '` SET `order`=`order`+1 WHERE `page_id` = :page_id AND `area` = :area AND `order` > :order'; $command = Yii::app()->db->createCommand($sql); $command->bindValue(':page_id', $pageId, PDO::PARAM_INT); $command->bindValue(':area', $area, PDO::PARAM_STR); $command->bindValue(':order', $order, PDO::PARAM_INT); $command->execute(); // Устанавливаем юнит $pageWidget = new PageWidget(); $pageWidget->page_id = $pageId; $pageWidget->widget_id = $this->id; $pageWidget->order = $order + 1; $pageWidget->area = $area; $pageWidget->save(); return $pageWidget; }