diff --git a/frontend/config/main.php b/frontend/config/main.php index 17edff9..c7fd225 100755 --- a/frontend/config/main.php +++ b/frontend/config/main.php @@ -29,7 +29,7 @@ return [ 'errorAction' => 'site/error', ], 'urlManager' => [ - 'enablePrettyUrl' => true, + 'enablePrettyUrl' => false, 'showScriptName' => false, 'rules' => [ ], diff --git a/frontend/controllers/RoadController.php b/frontend/controllers/RoadController.php index 9c2bf33..416210a 100755 --- a/frontend/controllers/RoadController.php +++ b/frontend/controllers/RoadController.php @@ -6,7 +6,9 @@ use common\models\Region; use common\models\Road; use common\models\RoadCategory; + use common\models\RoadToCategory; use common\models\RoadType; + use common\models\RoadWidth; use common\models\SettlementAddressLink; use yii\data\ActiveDataProvider; use yii\filters\VerbFilter; @@ -176,16 +178,43 @@ ->select('region_id') ->where([ 'road_id' => $id ]) ->column(); + if(!empty( $region_ids )) { $cross_section_regions = Region::find() ->where([ 'region_id' => $region_ids ]) ->all(); } + $road_to_categories = [ ]; + $region_ids = [ ]; + $region_ids = RoadToCategory::find() + ->distinct() + ->select('region_id') + ->where([ 'road_id' => $id ]) + ->column(); + if(!empty( $region_ids )) { + $road_to_categories = Region::find() + ->where([ 'region_id' => $region_ids ]) + ->all(); + } + $road_width = [ ]; + $region_ids = [ ]; + $region_ids = RoadWidth::find() + ->distinct() + ->select('region_id') + ->where([ 'road_id' => $id ]) + ->column(); + if(!empty( $region_ids )) { + $road_width = Region::find() + ->where([ 'region_id' => $region_ids ]) + ->all(); + } return $this->render('view', [ 'road' => $road, 'settlement_regions' => $settlement_regions, 'flow_intensity_regions' => $flow_intensity_regions, 'cross_section_regions' => $cross_section_regions, + 'road_to_categories' => $road_to_categories, + 'road_width' => $road_width, ]); } @@ -214,6 +243,55 @@ ]); } + public function actionRoadToCategory(int $id, int $region_id) + { + $road = Road::findOne($id); + if(empty( $road )) { + throw new NotFoundHttpException('Road not found'); + } + $region = Region::findOne($region_id); + if(empty( $region )) { + throw new NotFoundHttpException('Region not found'); + } + $dataProvider = new ActiveDataProvider([ + 'query' => RoadToCategory::find() + ->where([ + 'road_id' => $id, + 'region_id' => $region_id, + ]), + 'pagination' => false, + ]); + return $this->render('road-to-category', [ + 'road' => $road, + 'region' => $region, + 'dataProvider' => $dataProvider, + ]); + } + + public function actionRoadWidth(int $id, int $region_id) + { + $road = Road::findOne($id); + if(empty( $road )) { + throw new NotFoundHttpException('Road not found'); + } + $region = Region::findOne($region_id); + if(empty( $region )) { + throw new NotFoundHttpException('Region not found'); + } + $dataProvider = new ActiveDataProvider([ + 'query' => RoadWidth::find() + ->where([ + 'road_id' => $id, + 'region_id' => $region_id, + ]), + 'pagination' => false, + ]); + return $this->render('road-width', [ + 'road' => $road, + 'region' => $region, + 'dataProvider' => $dataProvider, + ]); + } public function actionFlowIntensity(int $id, int $region_id) { $road = Road::findOne($id); diff --git a/frontend/views/road/road-to-category.php b/frontend/views/road/road-to-category.php new file mode 100644 index 0000000..0fab1c3 --- /dev/null +++ b/frontend/views/road/road-to-category.php @@ -0,0 +1,85 @@ +title = $road->name; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => 'Дороги', + 'url' => [ 'index' ], + ]; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => $this->title, + 'url' => [ + 'view', + 'id' => $road->road_id, + ], + ]; + $this->params[ 'breadcrumbs' ][] = 'Відомість адресної прив\'язки населених пунктів - ' . ucfirst($region->name). ' область'; +?> +
+
+ Міністрество транспорту України
+ Державна служба автомобільних доріг
+ України +
+
+ Служба автомобільних доріг у name; ?> області +
+
+
+

Відомість

+

адресної прив'язки населених пунктів

+

на автомобільній дорозі

+

name; ?>

+

roadType->definition;?> значення станом на р.

+
+
+ $dataProvider, + 'layout' => "{items}", + 'columns' => [ + [ + 'attribute' => 'begin', + 'value' => function($model) { + /** + * @var RoadToCategory $model + */ + return $model->getBeginString(); + } + ], + [ + 'attribute' => 'end', + 'value' => function($model) { + /** + * @var RoadToCategory $model + */ + return $model->getEndString(); + } + ], + 'distance', + [ + 'attribute' => 'road_category_id', + 'value' => function($model) { + /** + * @var RoadToCategory $model + */ + return $model->roadCategory->value; + } + ], + ] + ]) + ?> +
+
diff --git a/frontend/views/road/road-width.php b/frontend/views/road/road-width.php new file mode 100644 index 0000000..4c70668 --- /dev/null +++ b/frontend/views/road/road-width.php @@ -0,0 +1,82 @@ +title = $road->name; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => 'Дороги', + 'url' => [ 'index' ], + ]; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => $this->title, + 'url' => [ + 'view', + 'id' => $road->road_id, + ], + ]; + $this->params[ 'breadcrumbs' ][] = 'Відомість адресної прив\'язки населених пунктів - ' . ucfirst($region->name). ' область'; +?> +
+
+ Міністрество транспорту України
+ Державна служба автомобільних доріг
+ України +
+
+ Служба автомобільних доріг у name; ?> області +
+
+
+

Відомість

+

адресної прив'язки населених пунктів

+

на автомобільній дорозі

+

name; ?>

+

roadType->definition;?> значення станом на р.

+
+
+ $dataProvider, + 'layout' => "{items}", + 'columns' => [ + [ + 'attribute' => 'begin', + 'value' => function($model) { + /** + * @var RoadToCategory $model + */ + return $model->getBeginString(); + } + ], + [ + 'attribute' => 'end', + 'value' => function($model) { + /** + * @var RoadToCategory $model + */ + return $model->getEndString(); + } + ], + 'width_roadside_left', + 'width_reverse_road', + 'width_strip', + 'width_roadway_forward', + 'width_roadside_right', + 'count_lane_left', + 'count_lane_right', + ] + ]) + ?> +
+
diff --git a/frontend/views/road/view.php b/frontend/views/road/view.php index af557fa..a4ba66c 100755 --- a/frontend/views/road/view.php +++ b/frontend/views/road/view.php @@ -5,6 +5,8 @@ * @var Region[] $settlement_regions * @var Region[] $flow_intensity_regions * @var Region[] $cross_section_regions + * @var Region[] $road_to_categories + * @var Region[] $road_width */ use common\models\Region; @@ -124,6 +126,58 @@ ?> +
+
+ +
+
+ +
+ name . ' область', [ + 'road-to-category', + 'id' => $road->road_id, + 'region_id' => $region->region_id, + ]); + } + ?> +
+ +
+
+
+
+ +
+
+ +
+ name . ' область', [ + 'road-width', + 'id' => $road->road_id, + 'region_id' => $region->region_id, + ]); + } + ?> +
+ +
+
-- libgit2 0.21.4