Commit d5c5ba58 authored by john's avatar john

2949

parent 4d5b8975
......@@ -20,8 +20,10 @@ class UrlManager extends \yii\web\UrlManager
$documents = DocList::find()->where(['active' => true])->all();
foreach ($documents as $document) {
$content = $document->docContents;
if ($content)
$rules['<document:(' . $content[0]->lang->url . ')>'] = 'documentation/page/view';
if ($content) {
foreach ($content[0]->langs as $lang)
$rules['<document:(' . $lang->url . ')>'] = 'documentation/page/view';
}
}
$request->url = rtrim($request->url, '/');
......
......@@ -17,7 +17,8 @@ class PageController extends \common\components\BaseController
public function actionView($document)
{
$model = $this->findDocumentModel($document);
$modelContent = $this->findDocumentModel($document);
$model = $modelContent->content;
$documentation = $model->lang->html;
......@@ -27,7 +28,8 @@ class PageController extends \common\components\BaseController
return $this->render('view', [
'documentation' => $documentation,
'model' => $model
'model' => $model,
'modelContent' => $modelContent
]);
}
......@@ -57,12 +59,8 @@ class PageController extends \common\components\BaseController
protected function findDocumentModel($url)
{
$langContent = \common\modules\documentation\models\DocContentLang::findOne(['url' => $url]);
if (!$langContent) {
throw new NotFoundHttpException('The requested page does not exist.');
}
$model = $langContent->content;
if ($model !== null) {
return $model;
if ($langContent !== null) {
return $langContent;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
......
......@@ -147,7 +147,7 @@ class DocList extends \yii\db\ActiveRecord
$l .= '   ';
$leftStr = ($left) ? $l : '';
$curent [$level->id . ' '] = $leftStr . $level->lang->name;
$nodes = $level->getParentList($updated, $level->id, $left + 1);
$nodes = $level->getParentList($updated, $level->id, $left + 1, $ignore);
if ($nodes)
$curent = array_merge($curent, $nodes);
$list = array_merge($list, $curent);
......@@ -168,12 +168,20 @@ class DocList extends \yii\db\ActiveRecord
$thisLevel = DocList::find()->where(['=', 'parent_id', $parent_id])->orderBy(['position' => SORT_ASC])->all();
foreach ($thisLevel as $level) {
$docContents = $level->docContents;
$url = ($docContents) ? '/' . $docContents[0]->lang->url : '#';
$url = '#';
$urls = [];
if ($docContents) {
$url = '/' . $docContents[0]->lang->url;
$all = \yii\helpers\ArrayHelper::map($docContents[0]->langs, 'id', 'url');
foreach ($all as $itm)
$urls [] = '/' . $itm;
}
$curent = [
'id' => $level->id,
'text' => $level->lang->name,
'url' => $url,
'urls' => $urls,
'state' => [
'selected' => $updated->id == $level->id,
'expanded' => true,
......@@ -203,12 +211,13 @@ class DocList extends \yii\db\ActiveRecord
$active = '';
if (
$item['url'] == yii::$app->request->url ||
in_array(yii::$app->request->url, $item['urls']) ||
($baseLevel && $open)
) {
$active = 'active';
}
$list[] = Html::tag('li', Html::a($item['text'], $item['url']) . $ch, ['class' => $active]);
if ($item['url'] == yii::$app->request->url) {
if ($item['url'] == yii::$app->request->url || in_array(yii::$app->request->url, $item['urls'])) {
$open = 'active';
}
}
......
......@@ -66,8 +66,8 @@ DocumentationAsset::register($this);
<?= $form->field($model, 'priority')->textInput(['maxlength' => 3])->hint('Приоритетность URL относительно других URL на Вашем сайте. Допустимый диапазон значений — от 0.0 до 1.0. Это значение позволяет указать поисковым системам, какие страницы, по Вашему мнению, более важны для сканеров (позволяет задать порядок их обработки ПС). Приоритет страницы по умолчанию — 0.5.') ?>
<?= $form->field($model, 'list_id')->dropDownList($data = $modelDocList->getParentList($model->list,0, 0, true), ['class' => 'form-control', 'prompt'=>'Выберите родительский раздел']) ?>
<?php $model->list_id .= ' ' ?>
<?= $form->field($model, 'list_id')->dropDownList($data = $modelDocList->getParentList($model->list, 0, 0, true), ['class' => 'form-control', 'prompt' => 'Выберите родительский раздел']) ?>
<div class="form-group">
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
......@@ -76,15 +76,3 @@ DocumentationAsset::register($this);
<?php ActiveForm::end(); ?>
</div>
\ No newline at end of file
<?php
$js = <<<JS
$('.list_list_id .list-group-item').click(function(){
if($(this).hasClass('node-selected')){
$('#doccontent-list_id').val('')
}else{
$('#doccontent-list_id').val($(this).attr('id'))
}
})
JS;
$this->registerJs($js);
?>
\ No newline at end of file
......@@ -9,7 +9,6 @@ use common\modules\documentation\models\DocList;
DocumentationAsset::register($this);
$modelDocList = new DocList();
$ml = $model->lang;
?>
......@@ -35,7 +34,7 @@ $ml = $model->lang;
<div class="way">
<a href="/">Главная</a>
<span>|</span> Документация
<span>|</span> <?php echo $ml->name ?>
<span>|</span> <?php echo $modelContent->name ?>
</div>
</div>
</div>
......@@ -52,13 +51,13 @@ $ml = $model->lang;
<!-- Post-->
<h1><?php echo $ml->name ?></h1>
<h1><?php echo $modelContent->name ?></h1>
<div class="single-post-meta">
<div class="meta-link"><i class="icon-clock"></i><?= $model->list->getFormatedCreatedAt() ?></div>
</div>
<?php echo $ml->html ?>
<?php echo $modelContent->html ?>
</div>
<!-- Sidebar -->
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment