hme api ready
This commit is contained in:
parent
6d4eae516c
commit
e883865284
|
|
@ -73,4 +73,10 @@ class AdvertisementsController extends BaseApiController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function home(){
|
||||||
|
//top
|
||||||
|
//mid
|
||||||
|
//right
|
||||||
|
//footer
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
use Cms\Classes\Controller;
|
use Cms\Classes\Controller;
|
||||||
|
|
||||||
class BaseApiController extends Controller{
|
class BaseApiController extends Controller{
|
||||||
private function apiArrayResponseBuilder($statusCode = null, $message = null, $data = [])
|
protected function apiArrayResponseBuilder($statusCode = null, $message = null, $data = [])
|
||||||
{
|
{
|
||||||
$arr = [
|
$arr = [
|
||||||
'status_code' => (isset($statusCode)) ? $statusCode : 500,
|
'status_code' => (isset($statusCode)) ? $statusCode : 500,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php namespace Tps\Tps\Controllers\API;
|
||||||
|
|
||||||
|
use Cms\Classes\Theme;
|
||||||
|
use RainLab\Pages\Classes\Menu;
|
||||||
|
use Cms\Classes\Page;
|
||||||
|
|
||||||
|
class CmsController extends BaseApiController{
|
||||||
|
|
||||||
|
protected $menuItems;
|
||||||
|
protected $menuName;
|
||||||
|
public function index(){
|
||||||
|
//slider
|
||||||
|
//world
|
||||||
|
//most read
|
||||||
|
//marque
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function headerInfo(){
|
||||||
|
if ($this->menuItems !== null) {
|
||||||
|
return $this->menuItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
$theme = Theme::getActiveTheme();
|
||||||
|
$data['customData'] = $theme->getCustomData();
|
||||||
|
$menu = Menu::load($theme, 'new-top-menui');
|
||||||
|
$data['menuItems'] = $menu['settings']['items'];
|
||||||
|
|
||||||
|
|
||||||
|
if ($menu) {
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->apiArrayResponseBuilder(404, 'not found');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php namespace Tps\Tps\Controllers\API;
|
<?php namespace Tps\Tps\Controllers\API;
|
||||||
|
|
||||||
use Config;
|
use Config;
|
||||||
|
use DB;
|
||||||
use Tps\Tps\Models\Media;
|
use Tps\Tps\Models\Media;
|
||||||
|
|
||||||
class MediaController extends BaseApiController
|
class MediaController extends BaseApiController
|
||||||
|
|
@ -32,4 +33,36 @@ class MediaController extends BaseApiController
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function home(){
|
||||||
|
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
||||||
|
|
||||||
|
$data = DB::table(DB::raw("(
|
||||||
|
SELECT id, name, media_file, poster_file, published_at, type, subtitle,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY type ORDER BY published_at) as row_num
|
||||||
|
FROM tps_tps_media
|
||||||
|
WHERE published_at IS NOT NULL
|
||||||
|
|
||||||
|
) as ranked_posts"))
|
||||||
|
->where('row_num', '<=', 4)
|
||||||
|
->orderBy('published_at','desc')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
if($data){
|
||||||
|
$data = Media::hydrate($data->toArray());
|
||||||
|
$data->transform(function ($value) use ($path) {
|
||||||
|
$value->poster_file = $path.$value->poster_file;
|
||||||
|
$mediaArray = [];
|
||||||
|
for($i=0; $i < count($value->media_file); $i++){
|
||||||
|
$mediaArray[$i] = $value->media_file[$i];
|
||||||
|
$mediaArray[$i]['media']=$path.$value->media_file[$i]['media'];
|
||||||
|
}
|
||||||
|
$value->media_file = $mediaArray;
|
||||||
|
return $value;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', $data->groupBy('type'));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,207 @@
|
||||||
|
<?php namespace Tps\Tps\Controllers\API;
|
||||||
|
|
||||||
|
use DB;
|
||||||
|
use Config;
|
||||||
|
use RainLab\Blog\Models\Post;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
|
class PostController extends BaseApiController
|
||||||
|
{
|
||||||
|
//postes list
|
||||||
|
public function index(){
|
||||||
|
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
||||||
|
$filter = [
|
||||||
|
'page' => input('page'),
|
||||||
|
'sort' => input('sort') ??'published_at desc',
|
||||||
|
'perPage' => input('count'),
|
||||||
|
'search' => trim(input('search')),
|
||||||
|
'category' => input('category'),
|
||||||
|
'date' => input('date'),
|
||||||
|
'typePost' => input('typePost'),
|
||||||
|
'postGroup' => input('group'),
|
||||||
|
'published' => true,
|
||||||
|
'select' => ['id','title','slug', 'featured', 'published_at', 'more_photo','afisha_phone', 'afisha_address', 'afisha_phone_new', DB::raw("IF(featured_image<>'',concat('$path',featured_image),featured_image) as main_image")]
|
||||||
|
];
|
||||||
|
|
||||||
|
if(request()->has('featured')){
|
||||||
|
$filter['featured'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = Post::with(['categories:id,name'])->listFrontEnd($filter);
|
||||||
|
|
||||||
|
if($data){
|
||||||
|
$data->each(function ($item, $key) {
|
||||||
|
$item->url = $this->pageUrl('new/newPost',['id'=>$item->id,'slug'=>$item->slug]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
//posts item
|
||||||
|
public function show($locale,$id){
|
||||||
|
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
||||||
|
//$post = $this->Post::find($id,['id','content_html','author','slug', 'afisha_phone', 'afisha_address', 'afisha_phone_new']);
|
||||||
|
$post = Post::where('id', $id)
|
||||||
|
->select('id', 'content_html', 'author', 'title','slug','published_at', 'more_photo','afisha_phone', 'afisha_address', 'afisha_phone_new', DB::raw("IF(featured_image<>'',concat('$path',featured_image),featured_image) as main_image"))
|
||||||
|
->with(['categories:id,name'])
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if(!is_null($post)) {
|
||||||
|
|
||||||
|
$post->url = $this->pageUrl('new/newPost',['id'=>$post->id,'slug'=>$post->slug]);
|
||||||
|
|
||||||
|
$obj = Db::table('vdomah_blogviews_views')
|
||||||
|
->where('post_id', $post->getKey());
|
||||||
|
|
||||||
|
if ($obj->count() > 0) {
|
||||||
|
$row = $obj->first();
|
||||||
|
|
||||||
|
$views = $row->views + rand(1,10);;
|
||||||
|
|
||||||
|
$obj->update(['views' => $views]);
|
||||||
|
$post['views'] = $row->views;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
Db::table('vdomah_blogviews_views')->insert([
|
||||||
|
'post_id' => $post->getKey(),
|
||||||
|
'views' => rand(1,10)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', [$post]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return $this->apiArrayResponseBuilder(404, 'not found', ['error' => 'Resource id=' . $id . ' could not be found']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lenta(){
|
||||||
|
$now = Carbon::now();
|
||||||
|
$locale = App::getLocale();
|
||||||
|
|
||||||
|
$posts = DB::table(DB::raw("(
|
||||||
|
SELECT id, title, slug, published_at, type_post,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY type_post ORDER BY published_at) as row_num
|
||||||
|
FROM rainlab_blog_posts
|
||||||
|
WHERE published IS NOT NULL
|
||||||
|
AND published = 1
|
||||||
|
AND published_at IS NOT NULL
|
||||||
|
AND type_post IS NOT NULL
|
||||||
|
AND type_post <> ''
|
||||||
|
AND published_at < '{$now}'
|
||||||
|
AND locale = '{$locale}'
|
||||||
|
) as ranked_posts"))
|
||||||
|
->where('row_num', '<=', 7)
|
||||||
|
->orderBy('published_at','desc')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
|
||||||
|
if($posts){
|
||||||
|
$posts = Post::hydrate($posts->toArray());
|
||||||
|
|
||||||
|
$posts->each(function ($item, $key) {
|
||||||
|
$item->url = $this->pageUrl('new/newPost',['id'=>$item->id,'slug'=>$item->slug]);
|
||||||
|
});
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', $posts->groupBy('type_post'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'no records found');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function homeTop(){
|
||||||
|
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
||||||
|
|
||||||
|
$featured = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at', DB::raw("IF(featured_image<>'', concat('$path', featured_image), featured_image) as main_image, 'featured' as type"))
|
||||||
|
->where('featured', true)
|
||||||
|
->orderByDesc('published_at')
|
||||||
|
->limit(4);
|
||||||
|
|
||||||
|
// Second query
|
||||||
|
$morque = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at', DB::raw("featured_image as main_image, 'marquee' as type"))
|
||||||
|
->where('on_morque', true)
|
||||||
|
->where('featured', false)
|
||||||
|
->orderByDesc('published_at')
|
||||||
|
->limit(5);
|
||||||
|
|
||||||
|
$turkmenposts = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at', DB::raw("featured_image as main_image, 'lenta' as type"))
|
||||||
|
->where('on_morque', false)
|
||||||
|
->where('featured', false)
|
||||||
|
->where('type_post','turkmenistan')
|
||||||
|
->orderByDesc('published_at')
|
||||||
|
->limit(7);
|
||||||
|
|
||||||
|
// Union
|
||||||
|
$posts = $morque->unionAll($featured)->unionAll($turkmenposts)->get();
|
||||||
|
|
||||||
|
if($posts){
|
||||||
|
$posts = Post::hydrate($posts->toArray());
|
||||||
|
|
||||||
|
$posts->each(function ($item, $key) {
|
||||||
|
$item->url = $this->pageUrl('new/newPost',['id'=>$item->id,'slug'=>$item->slug]);
|
||||||
|
});
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', $posts->groupBy('type'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'no records found');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function homeMid(){
|
||||||
|
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
||||||
|
|
||||||
|
$world = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at','type_post', 'excerpt', DB::raw("IF(featured_image<>'', concat('$path', featured_image), featured_image) as main_image, 'world' as type"))
|
||||||
|
->where('on_morque', false)
|
||||||
|
->where('featured', false)
|
||||||
|
->where('type_post','world')
|
||||||
|
->orderByDesc('published_at')
|
||||||
|
->with(['categories:name'])
|
||||||
|
->limit(5);
|
||||||
|
|
||||||
|
$popular = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at', 'type_post', 'excerpt', DB::raw("IF(featured_image<>'', concat('$path', featured_image), featured_image) as main_image, 'popular' as type"))
|
||||||
|
->leftJoin('vdomah_blogviews_views as pv', 'pv.post_id', '=', 'rainlab_blog_posts.id')
|
||||||
|
// ->where('published_at','>=',Carbon::now()->addMonth(-1))
|
||||||
|
->orderByDesc('views', 'DESC')
|
||||||
|
->with(['categories:name'])
|
||||||
|
->limit(5);
|
||||||
|
|
||||||
|
$redaktors = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at','type_post', 'excerpt', DB::raw("IF(featured_image<>'', concat('$path', featured_image), featured_image) as main_image, 'redaktor' as type"))
|
||||||
|
->orderByDesc('published_at')
|
||||||
|
->with(['categories:name'])
|
||||||
|
->where('on_morque', false)
|
||||||
|
->where('featured', false)
|
||||||
|
->whereHas('categories', function($q) {
|
||||||
|
$q->where('slug', 'ot-redaktora');
|
||||||
|
})
|
||||||
|
->limit(5);
|
||||||
|
|
||||||
|
$publications = Post::isPublished()
|
||||||
|
->select('id', 'title', 'slug', 'published_at','type_post', 'excerpt', DB::raw("IF(featured_image<>'', concat('$path', featured_image), featured_image) as main_image, 'redaktor' as type"))
|
||||||
|
->orderByDesc('published_at')
|
||||||
|
->where('on_morque', false)
|
||||||
|
->where('featured', false)
|
||||||
|
->whereHas('category_groups', function($q) {
|
||||||
|
$q->where('slug', 'stati');
|
||||||
|
})
|
||||||
|
->limit(4);
|
||||||
|
// Union
|
||||||
|
$posts = $world->unionAll($popular)->unionAll($redaktors)->get();
|
||||||
|
|
||||||
|
if($posts){
|
||||||
|
$posts = Post::hydrate($posts->toArray());
|
||||||
|
|
||||||
|
$posts->each(function ($item, $key) {
|
||||||
|
$item->url = $this->pageUrl('new/newPost',['id'=>$item->id,'slug'=>$item->slug]);
|
||||||
|
});
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'success', $posts->groupBy('type'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->apiArrayResponseBuilder(200, 'no records found');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
<?php namespace Tps\Tps\Controllers\API;
|
|
||||||
|
|
||||||
use DB;
|
|
||||||
use Config;
|
|
||||||
use RainLab\Blog\Models\Post;
|
|
||||||
class PostController extends BaseApiController
|
|
||||||
{
|
|
||||||
//postes list
|
|
||||||
public function index(){
|
|
||||||
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
|
||||||
$filter = [
|
|
||||||
'page' => input('page'),
|
|
||||||
'sort' => input('sort') ??'published_at desc',
|
|
||||||
'perPage' => input('count'),
|
|
||||||
'search' => trim(input('search')),
|
|
||||||
'category' => input('category'),
|
|
||||||
'date' => input('date'),
|
|
||||||
'typePost' => input('typePost'),
|
|
||||||
'postGroup' => input('group'),
|
|
||||||
'published' => true,
|
|
||||||
'select' => ['id','title','slug', 'featured', 'published_at', 'more_photo','afisha_phone', 'afisha_address', 'afisha_phone_new', DB::raw("IF(featured_image<>'',concat('$path',featured_image),featured_image) as main_image")]
|
|
||||||
];
|
|
||||||
|
|
||||||
if(request()->has('featured')){
|
|
||||||
$filter['featured'] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = Post::with(['categories:id,name'])->listFrontEnd($filter);
|
|
||||||
|
|
||||||
if($data){
|
|
||||||
$data->each(function ($item, $key) {
|
|
||||||
$item->url = $this->pageUrl('new/newPost',['id'=>$item->id,'slug'=>$item->slug]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->apiArrayResponseBuilder(200, 'success', $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
//posts item
|
|
||||||
public function show($locale,$id){
|
|
||||||
$path = Config::get('app.cdn').Config::get('cms.storage.media.path');
|
|
||||||
//$post = $this->Post::find($id,['id','content_html','author','slug', 'afisha_phone', 'afisha_address', 'afisha_phone_new']);
|
|
||||||
$post = Post::where('id', $id)
|
|
||||||
->select('id', 'content_html', 'author', 'title','slug','published_at', 'more_photo','afisha_phone', 'afisha_address', 'afisha_phone_new', DB::raw("IF(featured_image<>'',concat('$path',featured_image),featured_image) as main_image"))
|
|
||||||
->with(['categories:id,name'])
|
|
||||||
->first();
|
|
||||||
|
|
||||||
if(!is_null($post)) {
|
|
||||||
|
|
||||||
$post->url = $this->pageUrl('new/newPost',['id'=>$post->id,'slug'=>$post->slug]);
|
|
||||||
|
|
||||||
$obj = Db::table('vdomah_blogviews_views')
|
|
||||||
->where('post_id', $post->getKey());
|
|
||||||
|
|
||||||
if ($obj->count() > 0) {
|
|
||||||
$row = $obj->first();
|
|
||||||
|
|
||||||
$views = $row->views + rand(1,10);;
|
|
||||||
|
|
||||||
$obj->update(['views' => $views]);
|
|
||||||
$post['views'] = $row->views;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
Db::table('vdomah_blogviews_views')->insert([
|
|
||||||
'post_id' => $post->getKey(),
|
|
||||||
'views' => rand(1,10)
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
return $this->apiArrayResponseBuilder(200, 'success', [$post]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return $this->apiArrayResponseBuilder(404, 'not found', ['error' => 'Resource id=' . $id . ' could not be found']);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -2,24 +2,23 @@
|
||||||
|
|
||||||
use Tps\Tps\Controllers\TestQuestion;
|
use Tps\Tps\Controllers\TestQuestion;
|
||||||
|
|
||||||
|
|
||||||
// Custom Routes
|
|
||||||
Route::get('{locale}/test/questions/{id}', 'Tps\Tps\Controllers\TestQuestion@getQuestions');
|
|
||||||
Route::post('fatoni/generate/api', array('as' => 'fatoni.generate.api', 'uses' => 'AhmadFatoni\ApiGenerator\Controllers\ApiGeneratorController@generateApi'));
|
|
||||||
Route::post('fatoni/update/api/{id}', array('as' => 'fatoni.update.api', 'uses' => 'AhmadFatoni\ApiGenerator\Controllers\ApiGeneratorController@updateApi'));
|
|
||||||
Route::get('fatoni/delete/api/{id}', array('as' => 'fatoni.delete.api', 'uses' => 'AhmadFatoni\ApiGenerator\Controllers\ApiGeneratorController@deleteApi'));
|
|
||||||
//postlar bilen categorialar
|
//postlar bilen categorialar
|
||||||
Route::resource('api/categories', 'AhmadFatoni\ApiGenerator\Controllers\API\CategoriesController', ['except' => ['destroy', 'create', 'edit']]);
|
Route::resource('api/categories', 'Tps\Tps\Controllers\API\CategoriesController', ['except' => ['destroy', 'create', 'edit']]);
|
||||||
Route::resource('api/advetisements', 'AhmadFatoni\ApiGenerator\Controllers\API\AdvertisementsController', ['except' => ['destroy', 'create', 'edit']]);
|
Route::resource('api/advetisements', 'Tps\Tps\Controllers\API\AdvertisementsController', ['except' => ['destroy', 'create', 'edit']]);
|
||||||
Route::get('api/group/advertisements', 'AhmadFatoni\ApiGenerator\Controllers\API\AdvertisementsController@getByGroup');
|
Route::get('api/group/advertisements', 'Tps\Tps\Controllers\API\AdvertisementsController@getByGroup');
|
||||||
|
|
||||||
Route::resource('{locale}/api/posts', 'AhmadFatoni\ApiGenerator\Controllers\API\postsController', ['except' => ['destroy', 'create', 'edit']]);
|
Route::resource('{locale}/api/posts', 'Tps\Tps\Controllers\API\PostController', ['except' => ['destroy', 'create', 'edit']]);
|
||||||
|
|
||||||
|
//header
|
||||||
Route::get('api/v2/categories', 'AhmadFatoni\ApiGenerator\Controllers\API\CategoriesV2Controller@index');
|
Route::get('api/v2/header','Tps\Tps\Controllers\API\CmsController@headerInfo');
|
||||||
Route::get('api/v2/media', 'AhmadFatoni\ApiGenerator\Controllers\API\MediaController@index');
|
//lenta
|
||||||
//Route::get('api/v2/afisha', 'AhmadFatoni\ApiGenerator\Controllers\API\AfishaController@index');
|
Route::get('{locale}/api/v2/lenta','Tps\Tps\Controllers\API\PostController@lenta');
|
||||||
Route::resource('api/v2/afisha', 'AhmadFatoni\ApiGenerator\Controllers\API\AfishaController', ['except' => ['destroy', 'create', 'edit']]);
|
Route::get('{locale}/api/v2/home-top','Tps\Tps\Controllers\API\PostController@homeTop');
|
||||||
|
Route::get('{locale}/api/v2/home-mid','Tps\Tps\Controllers\API\PostController@homeMid');
|
||||||
|
Route::get('{locale}/api/v2/home-footer','Tps\Tps\Controllers\API\MediaController@home');
|
||||||
|
Route::get('api/v2/categories', 'Tps\Tps\Controllers\API\CategoriesV2Controller@index');
|
||||||
|
Route::get('api/v2/media', 'Tps\Tps\Controllers\API\MediaController@index');
|
||||||
|
Route::resource('api/v2/afisha', 'Tps\Tps\Controllers\API\AfishaController', ['except' => ['destroy', 'create', 'edit']]);
|
||||||
|
|
||||||
Route::get('api/version',function (){
|
Route::get('api/version',function (){
|
||||||
return '2.0.8';
|
return '2.0.8';
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
items:
|
items:
|
||||||
-
|
-
|
||||||
title: Новости
|
title: Новости
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news
|
url: /ru/posts/news
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -18,9 +22,13 @@ items:
|
||||||
items:
|
items:
|
||||||
-
|
-
|
||||||
title: События
|
title: События
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/events
|
url: /ru/posts/news/events
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -41,7 +49,7 @@ items:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
title: Economy
|
title: Economy
|
||||||
url: ''
|
url: /en/posts/news/economy
|
||||||
tm:
|
tm:
|
||||||
title: Ykdysadyýet
|
title: Ykdysadyýet
|
||||||
url: /tm/posts/news/ykdysadyyet
|
url: /tm/posts/news/ykdysadyyet
|
||||||
|
|
@ -50,9 +58,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Общество
|
title: Общество
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/society
|
url: /ru/posts/news/society
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -66,9 +78,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Культура
|
title: Культура
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/culture
|
url: /ru/posts/news/culture
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -82,9 +98,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: 'Новости бизнеса'
|
title: 'Новости бизнеса'
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/novosti-biznesa
|
url: /ru/posts/news/novosti-biznesa
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -98,9 +118,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Спорт
|
title: Спорт
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/sport
|
url: /ru/posts/news/sport
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -114,9 +138,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Наука
|
title: Наука
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/nauka
|
url: /ru/posts/news/nauka
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -130,9 +158,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Экомир
|
title: Экомир
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/eco-world
|
url: /ru/posts/news/eco-world
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -146,9 +178,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Технологии
|
title: Технологии
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/technology
|
url: /ru/posts/news/technology
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -162,9 +198,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: 'Новости партнеров'
|
title: 'Новости партнеров'
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/news/novosti-partnerov
|
url: /ru/posts/news/novosti-partnerov
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -178,9 +218,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Статьи
|
title: Статьи
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati
|
url: /ru/posts/stati
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -195,9 +239,13 @@ items:
|
||||||
items:
|
items:
|
||||||
-
|
-
|
||||||
title: События
|
title: События
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/events
|
url: /ru/posts/stati/events
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -211,9 +259,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Экономика
|
title: Экономика
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/economy
|
url: /ru/posts/stati/economy
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -227,9 +279,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Общество
|
title: Общество
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/society
|
url: /ru/posts/stati/society
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -243,9 +299,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: 'От редактора'
|
title: 'От редактора'
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/ot-redaktora
|
url: /ru/posts/stati/ot-redaktora
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -259,9 +319,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Культура
|
title: Культура
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/culture
|
url: /ru/posts/stati/culture
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -275,9 +339,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Полезное
|
title: Полезное
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/poleznoe
|
url: /ru/posts/stati/poleznoe
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -291,9 +359,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Спорт
|
title: Спорт
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/sport
|
url: /ru/posts/stati/sport
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -307,9 +379,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Экомир
|
title: Экомир
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/eco-world
|
url: /ru/posts/stati/eco-world
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -323,9 +399,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Технологии
|
title: Технологии
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/stati/technology
|
url: /ru/posts/stati/technology
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -339,9 +419,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Медиа
|
title: Медиа
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/media
|
url: /ru/posts/media
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -396,9 +480,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Афиша
|
title: Афиша
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster
|
url: /ru/posts/poster
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -413,9 +501,13 @@ items:
|
||||||
items:
|
items:
|
||||||
-
|
-
|
||||||
title: Концерты
|
title: Концерты
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster/koncerty
|
url: /ru/posts/poster/koncerty
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -429,9 +521,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Кинотеатры
|
title: Кинотеатры
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster/kinoteatry
|
url: /ru/posts/poster/kinoteatry
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -445,9 +541,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Театры
|
title: Театры
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster/teatry
|
url: /ru/posts/poster/teatry
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -461,9 +561,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Выставки
|
title: Выставки
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster/vystavki
|
url: /ru/posts/poster/vystavki
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -477,9 +581,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Спорт
|
title: Спорт
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster/sportt
|
url: /ru/posts/poster/sportt
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
@ -493,9 +601,13 @@ items:
|
||||||
isExternal: '0'
|
isExternal: '0'
|
||||||
-
|
-
|
||||||
title: Объявления
|
title: Объявления
|
||||||
|
nesting: null
|
||||||
type: url
|
type: url
|
||||||
url: /ru/posts/poster/obyavleniya
|
url: /ru/posts/poster/obyavleniya
|
||||||
code: ''
|
code: ''
|
||||||
|
reference: null
|
||||||
|
cmsPage: null
|
||||||
|
replace: null
|
||||||
viewBag:
|
viewBag:
|
||||||
locale:
|
locale:
|
||||||
en:
|
en:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue