From 3287e4e45b4786a7c6ec5398f962c5e165261e03 Mon Sep 17 00:00:00 2001 From: Amanmyrat Date: Wed, 10 May 2023 11:46:17 +0500 Subject: [PATCH] Add meilisearch support --- composer.json | 7 +- config/scout.php | 147 ++++++ plugins/indikator/news/models/Posts.php | 36 +- themes/demo/layouts/default.htm | 23 +- themes/demo/layouts/default_new.htm | 31 +- themes/demo/pages/404.htm | 20 +- themes/demo/pages/about.htm | 554 ++++++++++---------- themes/demo/pages/archive.htm | 44 +- themes/demo/pages/category.htm | 27 +- themes/demo/pages/channels.htm | 310 ++++++----- themes/demo/pages/contact.htm | 20 +- themes/demo/pages/gallery.htm | 29 +- themes/demo/pages/home.htm | 53 +- themes/demo/pages/index.htm | 25 +- themes/demo/pages/mobile.htm | 26 +- themes/demo/pages/post.htm | 35 +- themes/demo/pages/search.htm | 84 ++- themes/demo/pages/videos.htm | 133 +++-- themes/demo/pages/weekly-news.htm | 192 ++++--- themes/demo/partials/header.htm | 28 +- themes/demo/partials/home_categories.htm | 38 +- themes/demo/partials/home_intro.htm | 49 +- themes/demo/partials/home_media.htm | 161 +++--- themes/demo/partials/home_n_new_media.htm | 51 +- themes/demo/partials/home_new_intro.htm | 100 ++-- themes/demo/partials/home_new_last_news.htm | 14 +- themes/demo/partials/year_category.htm | 22 +- 27 files changed, 1178 insertions(+), 1081 deletions(-) create mode 100644 config/scout.php diff --git a/composer.json b/composer.json index 4e67222..4ca1e6c 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,9 @@ "php": "^8.0.2", "october/rain": "^3.3", "laravel/framework": "^9.0", - "october/all": "^3.1" + "october/all": "^3.1", + "laravel/scout": "^10.1", + "meilisearch/meilisearch-php": "^1.1" }, "require-dev": { "phpunit/phpunit": "^8.5|^9.0" @@ -36,7 +38,8 @@ "config": { "preferred-install": "dist", "allow-plugins": { - "composer/installers": true + "composer/installers": true, + "php-http/discovery": true } }, "autoload": { diff --git a/config/scout.php b/config/scout.php new file mode 100644 index 0000000..6fef803 --- /dev/null +++ b/config/scout.php @@ -0,0 +1,147 @@ + env('SCOUT_DRIVER', 'algolia'), + + /* + |-------------------------------------------------------------------------- + | Index Prefix + |-------------------------------------------------------------------------- + | + | Here you may specify a prefix that will be applied to all search index + | names used by Scout. This prefix may be useful if you have multiple + | "tenants" or applications sharing the same search infrastructure. + | + */ + + 'prefix' => env('SCOUT_PREFIX', ''), + + /* + |-------------------------------------------------------------------------- + | Queue Data Syncing + |-------------------------------------------------------------------------- + | + | This option allows you to control if the operations that sync your data + | with your search engines are queued. When this is set to "true" then + | all automatic data syncing will get queued for better performance. + | + */ + + 'queue' => env('SCOUT_QUEUE', false), + + /* + |-------------------------------------------------------------------------- + | Database Transactions + |-------------------------------------------------------------------------- + | + | This configuration option determines if your data will only be synced + | with your search indexes after every open database transaction has + | been committed, thus preventing any discarded data from syncing. + | + */ + + 'after_commit' => false, + + /* + |-------------------------------------------------------------------------- + | Chunk Sizes + |-------------------------------------------------------------------------- + | + | These options allow you to control the maximum chunk size when you are + | mass importing data into the search engine. This allows you to fine + | tune each of these chunk sizes based on the power of the servers. + | + */ + + 'chunk' => [ + 'searchable' => 500, + 'unsearchable' => 500, + ], + + /* + |-------------------------------------------------------------------------- + | Soft Deletes + |-------------------------------------------------------------------------- + | + | This option allows to control whether to keep soft deleted records in + | the search indexes. Maintaining soft deleted records can be useful + | if your application still needs to search for the records later. + | + */ + + 'soft_delete' => false, + + /* + |-------------------------------------------------------------------------- + | Identify User + |-------------------------------------------------------------------------- + | + | This option allows you to control whether to notify the search engine + | of the user performing the search. This is sometimes useful if the + | engine supports any analytics based on this application's users. + | + | Supported engines: "algolia" + | + */ + + 'identify' => env('SCOUT_IDENTIFY', false), + + /* + |-------------------------------------------------------------------------- + | Algolia Configuration + |-------------------------------------------------------------------------- + | + | Here you may configure your Algolia settings. Algolia is a cloud hosted + | search engine which works great with Scout out of the box. Just plug + | in your application ID and admin API key to get started searching. + | + */ + + 'algolia' => [ + 'id' => env('ALGOLIA_APP_ID', ''), + 'secret' => env('ALGOLIA_SECRET', ''), + ], + + /* + |-------------------------------------------------------------------------- + | Meilisearch Configuration + |-------------------------------------------------------------------------- + | + | Here you may configure your Meilisearch settings. Meilisearch is an open + | source search engine with minimal configuration. Below, you can state + | the host and key information for your own Meilisearch installation. + | + | See: https://docs.meilisearch.com/guides/advanced_guides/configuration.html + | + */ + + 'meilisearch' => [ + 'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'), + 'key' => env('MEILISEARCH_KEY'), + 'index-settings' => [ + Posts::class => [ + 'sortableAttributes' => ['published_at','created_at','updated_at'], + ], + // 'users' => [ + // 'filterableAttributes'=> ['id', 'name', 'email'], + // ], + ], + ], + +]; diff --git a/plugins/indikator/news/models/Posts.php b/plugins/indikator/news/models/Posts.php index f339f55..850c08e 100644 --- a/plugins/indikator/news/models/Posts.php +++ b/plugins/indikator/news/models/Posts.php @@ -1,5 +1,8 @@ 'title' ]; - + protected $jsonable = [ 'image' ]; @@ -148,6 +155,21 @@ class Posts extends Model ] ]; + /** + * Get the indexable data array for the model. + * + * @return array + */ + public function toSearchableArray() + { + return [ + 'title' => $this->title, + 'slug'=> $this->slug, + 'introductory'=> $this->introductory, + 'content'=> $this->content + ]; + } + public $preview = null; public function getSendAttribute() { @@ -416,7 +438,7 @@ class Posts extends Model public function duplicate($post) { $clone = new Posts(); - $clone->title = \Lang::get('indikator.news::lang.form.clone_of').' '.$post->title; + $clone->title = Lang::get('indikator.news::lang.form.clone_of').' '.$post->title; $clone->slug = $post->slug.'-'.now()->format('Y-m-d-h-i-s'); $clone->status = 3; $clone->introductory = $post->introductory; @@ -434,7 +456,7 @@ class Posts extends Model $clone->save(); - \Event::fire('indikator.news.posts.duplicate', [&$clone, $post]); + Event::fire('indikator.news.posts.duplicate', [&$clone, $post]); return $clone; } @@ -605,7 +627,7 @@ class Posts extends Model $page->rewriteTranslatablePageUrl($locale); $params = ['category' => $item->getCategory()['slug'], 'id' => $item->id, 'slug' => $item->slug]; - $router = new \October\Rain\Router\Router; + $router = new Router; $localeUrl = $router->urlFromPattern($page->url, $params); return url($locale.$localeUrl); @@ -704,7 +726,7 @@ class Posts extends Model }else{ $image = 'article/'. implode('/', array_slice(explode( "-", $image), 0, 3)) . '/'. $image_name; } - + $imagedata = getimagesize(storage_path("app/uploads/public/". $image)); return $imagedata[0] > $imagedata[1] ? "horizontal" : "vertical"; } diff --git a/themes/demo/layouts/default.htm b/themes/demo/layouts/default.htm index e99b14f..783dba3 100644 --- a/themes/demo/layouts/default.htm +++ b/themes/demo/layouts/default.htm @@ -15,7 +15,7 @@ forceUrl = 1 - + @@ -30,19 +30,18 @@ forceUrl = 1 {% partial 'header' data=activeLocale %} {% page %} {% partial 'footer' %} - + - {% framework %} - - - + - \ No newline at end of file + gtag('config', 'G-BGT89NCBQC'); + + diff --git a/themes/demo/layouts/default_new.htm b/themes/demo/layouts/default_new.htm index 03077a9..52c44a0 100644 --- a/themes/demo/layouts/default_new.htm +++ b/themes/demo/layouts/default_new.htm @@ -13,7 +13,7 @@ forceUrl = 1 - + @@ -23,18 +23,18 @@ forceUrl = 1 {{ this.page.title | default(this.theme.site)}} - + {% partial 'header' data=activeLocale %} {% page %} {% partial 'footer' %} - - + + top-arrow - + --> - - - - \ No newline at end of file + + + + diff --git a/themes/demo/pages/404.htm b/themes/demo/pages/404.htm index e9fc588..ce16a63 100644 --- a/themes/demo/pages/404.htm +++ b/themes/demo/pages/404.htm @@ -4,15 +4,15 @@ layout = "default" is_hidden = 0 ==
-
-
-
- Ошибка 404! -
-
- Страница не найдена, попробуйте найти эту новость в - разделе Архив ! -
+
+
+
+ Ошибка 404! +
+
+ Страница не найдена, попробуйте найти эту новость в + разделе Архив !
-
\ No newline at end of file + + diff --git a/themes/demo/pages/about.htm b/themes/demo/pages/about.htm index 71573c4..5005ac2 100644 --- a/themes/demo/pages/about.htm +++ b/themes/demo/pages/about.htm @@ -4,282 +4,282 @@ layout = "default" is_hidden = 0 ==
-
-
-
- ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ -
-

- Настоящая Политика конфиденциальности персональных данных (далее – Политика конфиденциальности) - действует в отношении всей информации, которую электронное СМИ TDH (далее Сайт), расположенное на - доменном имени https://tdh.gov.tm/, может получить о Пользователе во время использования сайта. -

-
- 1. ОПРЕДЕЛЕНИЕ ТЕРМИНОВ -
-
    -
  • - 1.1 В настоящей Политике конфиденциальности используются следующие термины: -
  • -
      -
    • 1.1.1. «Администрация сайта электронного СМИ TDH (далее – Администрация сайта)» – - уполномоченные сотрудники на управления сайтом, которые организуют и (или) осуществляют - обработку персональных данных, а также определяет цели обработки персональных данных, состав - персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными - данными. -
    • -
    • 1.1.2. «Персональные данные» - любая информация, относящаяся к прямо или косвенно - определенному или определяемому физическому лицу (субъекту персональных данных). -
    • -
    • 1.1.3. «Обработка персональных данных» - любое действие (операция) или совокупность действий - (операций), совершаемых с использованием средств автоматизации или без использования таких - средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, - уточнение (обновление, изменение), извлечение, использование, передачу (распространение, - предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных - данных. -
    • -
    • 1.1.4. «Конфиденциальность персональных данных» - обязательное для соблюдения Оператором или - иным получившим доступ к персональным данным лицом требование не допускать их - распространения без согласия субъекта персональных данных или наличия иного законного - основания. -
    • -
    • 1.1.5. «Пользователь сайта электронного СМИ TDH (далее Пользователь)» – лицо, имеющее доступ - к Сайту, посредством сети Интернет и использующее Сайт
    • -
    • 1.1.6. «Cookies» — небольшой фрагмент данных, отправленный веб-сервером и хранимый на - компьютере пользователя, который веб-клиент или веб-браузер каждый раз пересылает - веб-серверу в HTTP-запросе при попытке открыть страницу соответствующего сайта.
    • -
    • 1.1.7. «IP-адрес» — уникальный сетевой адрес узла в компьютерной сети, построенной по - протоколу IP. -
    • -
    -
- -
- 2. ОБЩИЕ ПОЛОЖЕНИЯ -
-
    -
  • 2.1. Использование Пользователем Сайта означает согласие с настоящей Политикой - конфиденциальности и условиями обработки персональных данных Пользователя. -
  • -
  • 2.2. В случае несогласия с условиями Политики конфиденциальности Пользователь должен прекратить - использование Сайта. -
  • -
  • 2.3.Настоящая Политика конфиденциальности применяется только к электронному СМИ TDH Электронное - СМИ TDH не контролирует и не несет ответственность за сайты третьих лиц, на которые Пользователь - может перейти по ссылкам, доступным на Сайте. -
  • -
  • 2.4. Администрация сайта не проверяет достоверность персональных данных, предоставляемых - Пользователем Сайта. -
  • -
  • 2.5. Пользователь Сайта имеет полное право отозвать свои персональные данные в любой момент, - обратившись к Администрации Сайта. -
  • -
- -
- 3. ПРЕДМЕТ ПОЛИТИКИ КОНФИДЕНЦИАЛЬНОСТИ -
-
    -
  • 3.1. Настоящая Политика конфиденциальности устанавливает обязательства Администрации Сайта по - неразглашению и обеспечению режима защиты конфиденциальности персональных данных, которые - Пользователь предоставляет по запросу Администрации сайта при подписке на новости Сайта.. -
  • -
  • 3.2. Персональные данные, разрешённые к обработке в рамках настоящей Политики - конфиденциальности, предоставляются Пользователем путём заполнения контактной формы на Сайте: -
  • -
      -
    • - 3.2.1 адрес электронной почты (e-mail); -
    • -
    -
  • 3.3. Электронное СМИ TDH не защищает Данные, которые автоматически передаются в процессе - просмотра рекламных блоков и при посещении страниц. -
  • - -
      -
    1. IP адрес;
    2. -
    3. информация из cookies;
    4. -
    5. информация о браузере (или иной программе, которая осуществляет доступ к показу рекламы); -
    6. -
    7. время доступа;
    8. -
    9. адрес страницы, на которой расположен рекламный блок;
    10. -
    11. реферер (адрес предыдущей страницы).
    12. -
    - -
      -
    • - 3.3.1. Отключение cookies может повлечь невозможность доступа к частям Сайта. -
    • -
    • - 3.3.2. Сайт осуществляет сбор статистики об IP-адресах своих посетителей. Данная информация - используется с целью выявления и решения технических проблем. -
    • -
    -
  • - 3.4. Любая иная персональная информация, неоговоренная выше (история посещения, используемые - браузеры и операционные системы и т.д.) подлежит надежному хранению и нераспространению, за - исключением случаев, предусмотренных в п.п. 5.2. настоящей Политики конфиденциальности. -
  • -
- - -
- 4. ЦЕЛИ СБОРА ПЕРСОНАЛЬНОЙ ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЯ -
-
    -
  • - 4.1. Персональные данные Пользователя Администрация Сайта может использовать в целях: -
  • -
      -
    • - 4.1.1. Идентификации Пользователя для направления ему по электронной почте актуальных - новостей и полезной информации от Администрации Сайта. -
    • -
    • - 4.1.2. Установления с Пользователем обратной связи, включая направление уведомлений, - запросов, касающихся использования Сайта. -
    • -
    • - 4.1.3. Определения места нахождения Пользователя для обеспечения безопасности, - предотвращения мошенничества. -
    • -
    • - 4.1.4. Подтверждения достоверности и полноты персональных данных, предоставленных - Пользователем. -
    • -
    • - 4.1.5. Предоставления Пользователю эффективной клиентской и технической поддержки при - возникновении проблем связанных с использованием Сайта. -
    • -
    -
- - -
- 5. СПОСОБЫ И СРОКИ ОБРАБОТКИ ПЕРСОНАЛЬНОЙ ИНФОРМАЦИИ -
-
    -
  • - 5.1. Обработка персональных данных Пользователя осуществляется без ограничения срока, любым - законным способом, в том числе в информационных системах персональных данных с использованием - средств автоматизации или без использования таких средств. -
  • -
  • - 5.2. Персональные данные Пользователя могут быть переданы уполномоченным органам государственной - власти Туркменистана только по основаниям и в порядке, установленным законодательством - Туркменистана. -
  • -
  • - 5.3. Администрация сайта принимает необходимые организационные и технические меры для защиты - персональной информации Пользователя от неправомерного или случайного доступа, уничтожения, - изменения, блокирования, копирования, распространения, а также от иных неправомерных действий - третьих лиц. -
  • -
- - -
- 6. ОБЯЗАТЕЛЬСТВА СТОРОН -
-
    -
  • - 6.1. Пользователь обязан: -
  • -
      -
    • - 6.1.1. Предоставить информацию о персональных данных, необходимую для пользования Сайтом. -
    • -
    • - 6.1.2. Обновить, дополнить предоставленную информацию о персональных данных в случае - изменения данной информации. -
    • -
    -
  • - 6.2. Администрация сайта обязана: -
  • -
      -
    • - 6.2.1. Использовать полученную информацию исключительно для целей, указанных в п. 4 - настоящей Политики конфиденциальности. -
    • -
    • - 6.2.2. Обеспечить хранение конфиденциальной информации в тайне, не разглашать, а также не - осуществлять продажу, обмен, опубликование, либо разглашение иными возможными способами - переданных персональных данных Пользователя, за исключением п.п. 5.2. настоящей Политики - Конфиденциальности. -
    • -
    • - 6.2.3. Принимать меры предосторожности для защиты конфиденциальности персональных данных - Пользователя согласно порядку, обычно используемого для защиты такого рода информации в - существующем деловом обороте. -
    • -
    -
- -
- 7. ОТВЕТСТВЕННОСТЬ СТОРОН -
-
    -
  • - 7.1. В случае утраты или разглашения Конфиденциальной информации Администрация сайта не несёт - ответственность, если данная конфиденциальная информация: -
  • -
      -
    • - 7.1.1. Стала публичным достоянием до её утраты или разглашения. -
    • -
    • - 7.1.2. Была получена от третьей стороны до момента её получения Администрацией сайта. -
    • -
    • - 7.1.3. Была разглашена с согласия Пользователя. -
    • -
    -
- - -
- 8. РАЗРЕШЕНИЕ СПОРОВ -
-
    -
  • - 8.1. При не достижении соглашения спор будет передан на рассмотрение в судебный орган в - соответствии с действующим законодательством Туркменистана. -
  • -
  • - 8.2. К настоящей Политике конфиденциальности и отношениям между Пользователем и Администрацией - сайта применяется действующее законодательство Туркменистана. -
  • -
- - - -
- 9. ДОПОЛНИТЕЛЬНЫЕ УСЛОВИЯ -
-
    -
  • - 9.1. Администрация сайта вправе вносить изменения в настоящую Политику конфиденциальности без - согласия Пользователя. -
  • -
  • - 9.2. Политика конфиденциальности вступает в силу с момента ее размещения на Сайте, -
  • -
  • - 9.3. Все предложения или вопросы по настоящей Политике конфиденциальности следует сообщать - - https://tdh.gov.tm/ru/contact# - -
  • -
  • - 9.4. Действующая Политика конфиденциальности размещена на странице по адресу - - http://event-live.ru/more/o-proekte/ - -
  • -
- - +
+
+
+ ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ
+

+ Настоящая Политика конфиденциальности персональных данных (далее – Политика конфиденциальности) + действует в отношении всей информации, которую электронное СМИ TDH (далее Сайт), расположенное на + доменном имени https://tdh.gov.tm/, может получить о Пользователе во время использования сайта. +

+
+ 1. ОПРЕДЕЛЕНИЕ ТЕРМИНОВ +
+
    +
  • + 1.1 В настоящей Политике конфиденциальности используются следующие термины: +
  • +
      +
    • 1.1.1. «Администрация сайта электронного СМИ TDH (далее – Администрация сайта)» – + уполномоченные сотрудники на управления сайтом, которые организуют и (или) осуществляют + обработку персональных данных, а также определяет цели обработки персональных данных, состав + персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными + данными. +
    • +
    • 1.1.2. «Персональные данные» - любая информация, относящаяся к прямо или косвенно + определенному или определяемому физическому лицу (субъекту персональных данных). +
    • +
    • 1.1.3. «Обработка персональных данных» - любое действие (операция) или совокупность действий + (операций), совершаемых с использованием средств автоматизации или без использования таких + средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, + уточнение (обновление, изменение), извлечение, использование, передачу (распространение, + предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных + данных. +
    • +
    • 1.1.4. «Конфиденциальность персональных данных» - обязательное для соблюдения Оператором или + иным получившим доступ к персональным данным лицом требование не допускать их + распространения без согласия субъекта персональных данных или наличия иного законного + основания. +
    • +
    • 1.1.5. «Пользователь сайта электронного СМИ TDH (далее Пользователь)» – лицо, имеющее доступ + к Сайту, посредством сети Интернет и использующее Сайт
    • +
    • 1.1.6. «Cookies» — небольшой фрагмент данных, отправленный веб-сервером и хранимый на + компьютере пользователя, который веб-клиент или веб-браузер каждый раз пересылает + веб-серверу в HTTP-запросе при попытке открыть страницу соответствующего сайта.
    • +
    • 1.1.7. «IP-адрес» — уникальный сетевой адрес узла в компьютерной сети, построенной по + протоколу IP. +
    • +
    +
+ +
+ 2. ОБЩИЕ ПОЛОЖЕНИЯ +
+
    +
  • 2.1. Использование Пользователем Сайта означает согласие с настоящей Политикой + конфиденциальности и условиями обработки персональных данных Пользователя. +
  • +
  • 2.2. В случае несогласия с условиями Политики конфиденциальности Пользователь должен прекратить + использование Сайта. +
  • +
  • 2.3.Настоящая Политика конфиденциальности применяется только к электронному СМИ TDH Электронное + СМИ TDH не контролирует и не несет ответственность за сайты третьих лиц, на которые Пользователь + может перейти по ссылкам, доступным на Сайте. +
  • +
  • 2.4. Администрация сайта не проверяет достоверность персональных данных, предоставляемых + Пользователем Сайта. +
  • +
  • 2.5. Пользователь Сайта имеет полное право отозвать свои персональные данные в любой момент, + обратившись к Администрации Сайта. +
  • +
+ +
+ 3. ПРЕДМЕТ ПОЛИТИКИ КОНФИДЕНЦИАЛЬНОСТИ +
+
    +
  • 3.1. Настоящая Политика конфиденциальности устанавливает обязательства Администрации Сайта по + неразглашению и обеспечению режима защиты конфиденциальности персональных данных, которые + Пользователь предоставляет по запросу Администрации сайта при подписке на новости Сайта.. +
  • +
  • 3.2. Персональные данные, разрешённые к обработке в рамках настоящей Политики + конфиденциальности, предоставляются Пользователем путём заполнения контактной формы на Сайте: +
  • +
      +
    • + 3.2.1 адрес электронной почты (e-mail); +
    • +
    +
  • 3.3. Электронное СМИ TDH не защищает Данные, которые автоматически передаются в процессе + просмотра рекламных блоков и при посещении страниц. +
  • + +
      +
    1. IP адрес;
    2. +
    3. информация из cookies;
    4. +
    5. информация о браузере (или иной программе, которая осуществляет доступ к показу рекламы); +
    6. +
    7. время доступа;
    8. +
    9. адрес страницы, на которой расположен рекламный блок;
    10. +
    11. реферер (адрес предыдущей страницы).
    12. +
    + +
      +
    • + 3.3.1. Отключение cookies может повлечь невозможность доступа к частям Сайта. +
    • +
    • + 3.3.2. Сайт осуществляет сбор статистики об IP-адресах своих посетителей. Данная информация + используется с целью выявления и решения технических проблем. +
    • +
    +
  • + 3.4. Любая иная персональная информация, неоговоренная выше (история посещения, используемые + браузеры и операционные системы и т.д.) подлежит надежному хранению и нераспространению, за + исключением случаев, предусмотренных в п.п. 5.2. настоящей Политики конфиденциальности. +
  • +
+ + +
+ 4. ЦЕЛИ СБОРА ПЕРСОНАЛЬНОЙ ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЯ +
+
    +
  • + 4.1. Персональные данные Пользователя Администрация Сайта может использовать в целях: +
  • +
      +
    • + 4.1.1. Идентификации Пользователя для направления ему по электронной почте актуальных + новостей и полезной информации от Администрации Сайта. +
    • +
    • + 4.1.2. Установления с Пользователем обратной связи, включая направление уведомлений, + запросов, касающихся использования Сайта. +
    • +
    • + 4.1.3. Определения места нахождения Пользователя для обеспечения безопасности, + предотвращения мошенничества. +
    • +
    • + 4.1.4. Подтверждения достоверности и полноты персональных данных, предоставленных + Пользователем. +
    • +
    • + 4.1.5. Предоставления Пользователю эффективной клиентской и технической поддержки при + возникновении проблем связанных с использованием Сайта. +
    • +
    +
+ + +
+ 5. СПОСОБЫ И СРОКИ ОБРАБОТКИ ПЕРСОНАЛЬНОЙ ИНФОРМАЦИИ +
+
    +
  • + 5.1. Обработка персональных данных Пользователя осуществляется без ограничения срока, любым + законным способом, в том числе в информационных системах персональных данных с использованием + средств автоматизации или без использования таких средств. +
  • +
  • + 5.2. Персональные данные Пользователя могут быть переданы уполномоченным органам государственной + власти Туркменистана только по основаниям и в порядке, установленным законодательством + Туркменистана. +
  • +
  • + 5.3. Администрация сайта принимает необходимые организационные и технические меры для защиты + персональной информации Пользователя от неправомерного или случайного доступа, уничтожения, + изменения, блокирования, копирования, распространения, а также от иных неправомерных действий + третьих лиц. +
  • +
+ + +
+ 6. ОБЯЗАТЕЛЬСТВА СТОРОН +
+
    +
  • + 6.1. Пользователь обязан: +
  • +
      +
    • + 6.1.1. Предоставить информацию о персональных данных, необходимую для пользования Сайтом. +
    • +
    • + 6.1.2. Обновить, дополнить предоставленную информацию о персональных данных в случае + изменения данной информации. +
    • +
    +
  • + 6.2. Администрация сайта обязана: +
  • +
      +
    • + 6.2.1. Использовать полученную информацию исключительно для целей, указанных в п. 4 + настоящей Политики конфиденциальности. +
    • +
    • + 6.2.2. Обеспечить хранение конфиденциальной информации в тайне, не разглашать, а также не + осуществлять продажу, обмен, опубликование, либо разглашение иными возможными способами + переданных персональных данных Пользователя, за исключением п.п. 5.2. настоящей Политики + Конфиденциальности. +
    • +
    • + 6.2.3. Принимать меры предосторожности для защиты конфиденциальности персональных данных + Пользователя согласно порядку, обычно используемого для защиты такого рода информации в + существующем деловом обороте. +
    • +
    +
+ +
+ 7. ОТВЕТСТВЕННОСТЬ СТОРОН +
+
    +
  • + 7.1. В случае утраты или разглашения Конфиденциальной информации Администрация сайта не несёт + ответственность, если данная конфиденциальная информация: +
  • +
      +
    • + 7.1.1. Стала публичным достоянием до её утраты или разглашения. +
    • +
    • + 7.1.2. Была получена от третьей стороны до момента её получения Администрацией сайта. +
    • +
    • + 7.1.3. Была разглашена с согласия Пользователя. +
    • +
    +
+ + +
+ 8. РАЗРЕШЕНИЕ СПОРОВ +
+
    +
  • + 8.1. При не достижении соглашения спор будет передан на рассмотрение в судебный орган в + соответствии с действующим законодательством Туркменистана. +
  • +
  • + 8.2. К настоящей Политике конфиденциальности и отношениям между Пользователем и Администрацией + сайта применяется действующее законодательство Туркменистана. +
  • +
+ + + +
+ 9. ДОПОЛНИТЕЛЬНЫЕ УСЛОВИЯ +
+
    +
  • + 9.1. Администрация сайта вправе вносить изменения в настоящую Политику конфиденциальности без + согласия Пользователя. +
  • +
  • + 9.2. Политика конфиденциальности вступает в силу с момента ее размещения на Сайте, +
  • +
  • + 9.3. Все предложения или вопросы по настоящей Политике конфиденциальности следует сообщать + + https://tdh.gov.tm/ru/contact# + +
  • +
  • + 9.4. Действующая Политика конфиденциальности размещена на странице по адресу + + http://event-live.ru/more/o-proekte/ + +
  • +
+ +
-
\ No newline at end of file +
+
diff --git a/themes/demo/pages/archive.htm b/themes/demo/pages/archive.htm index f0cf26c..1ec30b7 100644 --- a/themes/demo/pages/archive.htm +++ b/themes/demo/pages/archive.htm @@ -11,26 +11,26 @@ localeUrl[en] = "/archive" == where("locale", App::getLocale())->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->orderBy('created_at', 'desc')->get(); - }else{ - $this['todayNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->orderBy('published_at', 'desc')->take(6)->get(); - - } - - $this['dateToday'] = input("date"); - - + if(input("date")){ + $this['todayNews'] = \Indikator\News\Models\Posts::whereDate('published_at', '=', input("date")) + ->where("locale", App::getLocale())->where("status", 1) + ->where("category_id", "!=", $this->theme->colleagues_news) + ->orderBy('created_at', 'desc')->get(); + }else{ + $this['todayNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news) + ->orderBy('published_at', 'desc') + ->take(6)->get(); } + $this['dateToday'] = input("date"); + +} ?> ==
- {{'Календарь'|_}} + {{'Календарь'|_}}
@@ -92,9 +92,9 @@ function onStart(){ - \ No newline at end of file + diff --git a/themes/demo/pages/category.htm b/themes/demo/pages/category.htm index fbaa2fd..2e5d300 100644 --- a/themes/demo/pages/category.htm +++ b/themes/demo/pages/category.htm @@ -21,12 +21,16 @@ categoryPage = "category" == param('slug'); - $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->whereNotIn('category_id', [20,21,22])->orderBy('published_at', 'desc')->limit(6)->get(); + + $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news) + ->whereNotIn('category_id', [20,21,22]) + ->orderBy('published_at', 'desc') + ->limit(6)->get(); } - + function onEnd(){ if($this->newsPosts && $this->newsPosts->category){ $this->page->title = $this->newsPosts->category->name; @@ -39,8 +43,7 @@ function onEnd(){
{% endfor %} -
+
- {{(newsPosts.posts.total/newsPosts.posts.perPage)|round(0,"ceil")}} {{'страниц'|_}} + {{(newsPosts.posts.total/newsPosts.posts.perPage)|round(0,"ceil")}} {{'страниц'|_}}
@@ -107,7 +110,7 @@ function onEnd(){
{{'Последние новости'|_}}
- + {% for item in lastNews %}
@@ -115,7 +118,7 @@ function onEnd(){
@@ -123,9 +126,9 @@ function onEnd(){
- {% endfor %} + {% endfor %} - \ No newline at end of file + diff --git a/themes/demo/pages/channels.htm b/themes/demo/pages/channels.htm index 22361ac..71ef982 100644 --- a/themes/demo/pages/channels.htm +++ b/themes/demo/pages/channels.htm @@ -5,18 +5,15 @@ is_hidden = 0 == param('slug'); - - } ?> ==
-
- -
+
+ +
@@ -75,9 +72,9 @@ function onStart(){ \ No newline at end of file +} + + + diff --git a/themes/demo/pages/contact.htm b/themes/demo/pages/contact.htm index a827dfe..5f66469 100644 --- a/themes/demo/pages/contact.htm +++ b/themes/demo/pages/contact.htm @@ -3,27 +3,11 @@ url = "/contact" layout = "default" is_hidden = 0 == - Input::get('name') , 'email' => Input::get('email')]; - - Mail::send('admin.contact::mail.message', $vars, function($message) { - - $message->to('tekemuradov@gmail.com', 'Admin Person'); - $message->subject(Input::get('theme')); - - }); - -} -?> -==
-
\ No newline at end of file + diff --git a/themes/demo/pages/gallery.htm b/themes/demo/pages/gallery.htm index 491bb62..ed26735 100644 --- a/themes/demo/pages/gallery.htm +++ b/themes/demo/pages/gallery.htm @@ -19,8 +19,11 @@ function onStart(){ $gallery = Admin\Photos\Models\Photo::orderBy("date",'desc')->paginate(10); $this['gallery'] = $gallery; - - $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->whereNotIn('category_id', [20,21,22])->orderBy('published_at', 'desc')->limit(6)->get(); + $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1) + ->where("category_id", "!=", $this->theme->colleagues_news) + ->whereNotIn('category_id', [20,21,22]) + ->orderBy('published_at', 'desc') + ->limit(6)->get(); } ?> @@ -29,7 +32,6 @@ function onStart(){ - +
- \ No newline at end of file + diff --git a/themes/demo/pages/home.htm b/themes/demo/pages/home.htm index 6ee3f20..89f1c9b 100644 --- a/themes/demo/pages/home.htm +++ b/themes/demo/pages/home.htm @@ -26,58 +26,57 @@ protected $translator; function onStart() { - $this['currentLanguage'] = $this->activeLocale; - // featured news - $this->translator = Translator::instance(); $this['SelectedLanguage'] = $this->activeLocale = $this->translator->getLocale(); - $featured = \Indikator\News\Models\Posts::where("featured", true)->where("locale", App::getLocale())->where("status", 1)->orderBy('published_at', 'desc')->get()->first(); - - $this['postFeatured'] = $featured; + // featured news + $featured = \Indikator\News\Models\Posts::where("featured", true) + ->where("locale", App::getLocale())->where("status", 1) + ->orderBy('published_at', 'desc') + ->get()->first(); + + $this['postFeatured'] = $featured; if($featured->image){ - //$this['imageType'] = $featured->getImageDetails($featured->images->last->path->disk_name); - $this['imageType'] = $featured->image[0]["type"]; } - // end featured news - // last news - - $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->whereNotIn('category_id', [20,21,22])->orderBy('published_at', 'desc')->limit(10)->get(); - + $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1) + ->where("category_id", "!=", $this->theme->colleagues_news) + ->whereNotIn('category_id', [20,21,22]) + ->orderBy('published_at', 'desc') + ->limit(10)->get(); // end last news - // collegue News + // collegue News + $this['collegueNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1) + ->where("category_id", $this->theme->colleagues_news) + ->orderBy('published_at', 'desc') + ->limit(9)->get(); - $this['collegueNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", $this->theme->colleagues_news)->orderBy('published_at', 'desc')->limit(9)->get(); - $this["collegueNews_cat"] = \Indikator\News\Models\Categories::where("id", $this->theme->colleagues_news)->first(); - // end collegue News + // end collegue News // intro news 3rd column + $this['intro_cat_news'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1) + ->where("category_id", $this->theme->intro_cat_news) + ->orderBy('published_at', 'desc')->limit(10)->get(); - $this['intro_cat_news'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", $this->theme->intro_cat_news)->orderBy('published_at', 'desc')->limit(10)->get(); - $this["intro_cat"] = \Indikator\News\Models\Categories::where("id", $this->theme->intro_cat_news)->first(); - // end intro new - + } ?> == {% set CurrentLanguage = SelectedLanguage %} - - - - {% partial 'home_intro' %} - + {% partial 'home_categories' %} -{% partial 'home_media' %} \ No newline at end of file +{% partial 'home_media' %} diff --git a/themes/demo/pages/index.htm b/themes/demo/pages/index.htm index 1f2318d..179e165 100644 --- a/themes/demo/pages/index.htm +++ b/themes/demo/pages/index.htm @@ -20,15 +20,17 @@ function onStart() { $this['currentLanguage'] = $this->activeLocale; - // featured news $this->translator = Translator::instance(); $this['SelectedLanguage'] = $this->activeLocale = $this->translator->getLocale(); - $featured = \Indikator\News\Models\Posts::where("featured", true)->where("locale", App::getLocale()) - ->where("status", 1)->orderBy('published_at', 'desc') + // featured news + $featured = \Indikator\News\Models\Posts::where("featured", true) + ->where("locale", App::getLocale()) + ->where("status", 1) + ->orderBy('published_at', 'desc') ->get()->first(); - - $this['postFeatured'] = $featured; + + $this['postFeatured'] = $featured; if($featured->image){ $this['imageType'] = $featured->image[0]["type"]; } @@ -38,7 +40,9 @@ function onStart() // last news $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) ->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news) - ->whereNotIn('category_id', [20,21,22])->orderBy('published_at', 'desc')->limit(10)->get(); + ->whereNotIn('category_id', [20,21,22]) + ->orderBy('published_at', 'desc') + ->limit(10)->get(); // end last news $this['partners'] = \Admin\Partners\Models\Partner::where('type', 'partner')->get(); @@ -47,11 +51,12 @@ function onStart() // intro news 3rd column $this['intro_cat_news'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) ->where("status", 1)->where("category_id", $this->theme->intro_cat_news) - ->orderBy('published_at', 'desc')->limit(10)->get(); - + ->orderBy('published_at', 'desc') + ->limit(10)->get(); + $this["intro_cat"] = \Indikator\News\Models\Categories::where("id", $this->theme->intro_cat_news)->first(); // end intro new - + } ?> == @@ -60,4 +65,4 @@ function onStart() {% partial 'home_new_intro' %} {% partial 'home_new_banner_news' %} {% partial 'home_new_last_news' %} -{% partial 'home_n_new_media' %} \ No newline at end of file +{% partial 'home_n_new_media' %} diff --git a/themes/demo/pages/mobile.htm b/themes/demo/pages/mobile.htm index d8b1cf4..26e9850 100644 --- a/themes/demo/pages/mobile.htm +++ b/themes/demo/pages/mobile.htm @@ -8,20 +8,20 @@ is_hidden = 0

google play market

apple app store

\ No newline at end of file + diff --git a/themes/demo/pages/post.htm b/themes/demo/pages/post.htm index 879f819..ec276dd 100644 --- a/themes/demo/pages/post.htm +++ b/themes/demo/pages/post.htm @@ -9,9 +9,11 @@ id = "{{ :id }}" == where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->whereNotIn('category_id', [20,21,22])->orderBy('published_at', 'desc')->limit(10)->get(); - + $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news) + ->whereNotIn('category_id', [20,21,22]) + ->orderBy('published_at', 'desc') + ->limit(10)->get(); } ?> == @@ -21,27 +23,24 @@ function onStart(){
- -
{{ post.category.name }} @@ -65,9 +64,9 @@ function onStart(){ {{ post.statistics }} -
+
- + {% if post.image %} {% if post.image|length > 1 %}
@@ -80,9 +79,9 @@ function onStart(){ {% for key, item in post.image %} {% if key != 0%} - + - + {% endif %} {% endfor %} @@ -117,23 +116,21 @@ function onStart(){
{% endif %} - + {% endif %} - +
'2021-02-01'|date('U') %} class="news_page-text" {% else %} class="para_wrap" {% endif %}>

{{ post.content|raw }}

-
-
{{'Последние новости'|_}}
- +
{% for item in lastNews %} @@ -150,7 +147,7 @@ function onStart(){
- {% endfor %} + {% endfor %}
@@ -195,4 +192,4 @@ function onStart(){
- \ No newline at end of file + diff --git a/themes/demo/pages/search.htm b/themes/demo/pages/search.htm index bc6b5f8..9f025b8 100644 --- a/themes/demo/pages/search.htm +++ b/themes/demo/pages/search.htm @@ -9,34 +9,21 @@ localeTitle[en] = "Search" localeUrl[ru] = "/search" localeUrl[en] = "/search" -[newsPosts] -pageNumber = "{{ :page }}" -postsPerPage = 10 -noPostsMessage = "No posts found" -sortOrder = "published_at desc" -postFeatured = 0 -postPage = "archive" -categoryPage = "archive" == orderBy('published_at', 'desc')->paginate(10); - - //$this['search_results'] = \Indikator\News\Models\Posts::searchWhere(input("q"))->where("locale", App::getLocale())->orderBy('created_at', 'desc')->paginate(10); - //$search_results = \Indikator\News\Models\Posts::searchWhere(input("search"))->orderBy('created_at', 'desc')->get(); - - //dd($search_results); - - $this['query'] = input('q'); - - } + $this['query'] = input("query"); +} ?> ==
- {% for item in newsPosts.posts %} -
-
- - {{ item.published_at| date("d.m") }} - - - {{ item.published_at| date("Y") }} - -
-
- {% if newsPosts.posts.total > 10 %} + {% if search_results.total > 10 %}
- +
- + +
- +
- {{(newsPosts.posts.total/newsPosts.posts.perPage)|round(0,"ceil")}} {{'страниц'|_}} + {{(search_results.total/search_results.perPage)|round(0,"ceil")}} {{'страниц'|_}}
{% endif %} @@ -109,16 +95,16 @@ function onStart(){
- +
- {{'По вашему запросу было найдено'|_}} {{newsPosts.posts.total}} {{'статей'|_}} + {{'По вашему запросу было найдено'|_}} {{search_results.total}} {{'статей'|_}}
-
\ No newline at end of file + diff --git a/themes/demo/pages/videos.htm b/themes/demo/pages/videos.htm index 3e7c905..be63105 100644 --- a/themes/demo/pages/videos.htm +++ b/themes/demo/pages/videos.htm @@ -15,12 +15,14 @@ localeMeta_description[en] = "Top news of Turkmenistan. News by tag Video Report == paginate(10); - - $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", "!=", $this->theme->colleagues_news)->whereNotIn('category_id', [20,21,22])->orderBy('published_at', 'desc')->limit(6)->get(); - + $this['lastNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1) + ->where("category_id", "!=", $this->theme->colleagues_news) + ->whereNotIn('category_id', [20,21,22]) + ->orderBy('published_at', 'desc') + ->limit(6)->get(); } ?> == @@ -51,9 +53,6 @@ function onStart(){
@@ -71,8 +70,6 @@ function onStart(){
- -
@@ -112,7 +109,7 @@ function onStart(){ {{(videos.total/videos.perPage)|round(0,"ceil")}} {{'страниц'|_}} - + {% endif %}
@@ -145,77 +142,73 @@ function onStart(){ \ No newline at end of file + diff --git a/themes/demo/pages/weekly-news.htm b/themes/demo/pages/weekly-news.htm index f54c6d3..171dc20 100644 --- a/themes/demo/pages/weekly-news.htm +++ b/themes/demo/pages/weekly-news.htm @@ -5,30 +5,34 @@ is_hidden = 0 == where("year", $year)->orderBy('year', 'DESC')->orderBy('month', 'DESC')->orderBy('week', 'DESC')->paginate($paginate); + $this['news'] = Admin\WeeklyNews\Models\WeeklyNews::where("month", $month) + ->where("year", $year)->orderBy('year', 'DESC') + ->orderBy('month', 'DESC') + ->orderBy('week', 'DESC')->paginate($paginate); }else if(isset($month) || isset($year)){ - $this['news'] = Admin\WeeklyNews\Models\WeeklyNews::where("month", $month)->orWhere("year", $year)->orderBy('year', 'DESC')->orderBy('month', 'DESC')->orderBy('week', 'DESC')->paginate($paginate); + $this['news'] = Admin\WeeklyNews\Models\WeeklyNews::where("month", $month) + ->orWhere("year", $year) + ->orderBy('year', 'DESC')->orderBy('month', 'DESC')- + >orderBy('week', 'DESC')->paginate($paginate); }else{ - $this['news'] = Admin\WeeklyNews\Models\WeeklyNews::orderBy('year', 'DESC')->orderBy('month', 'DESC')->orderBy('week', 'DESC')->paginate($paginate); + $this['news'] = Admin\WeeklyNews\Models\WeeklyNews::orderBy('year', 'DESC') + ->orderBy('month', 'DESC')->orderBy('week', 'DESC') + ->paginate($paginate); } - - //dd(Admin\WeeklyNews\Models\WeeklyNews::all()); } ?> @@ -78,9 +82,9 @@ function onStart(){ {{'November'|_}} {% elseif month ==12 %} {{'December'|_}} - + {% endif %} - + {% else %} {{'Month'|_}} {% endif %} @@ -99,7 +103,7 @@ function onStart(){
- +
- + -
- + {% for key, item in news %}
@@ -143,10 +144,10 @@ function onStart(){ {% elseif activeLocale == "en" %} {{'Скачать'|_}} {% endif %} - +
{% endfor %} - +
{% if news.total > 15 %}
@@ -174,20 +175,13 @@ function onStart(){
- - - - \ No newline at end of file + diff --git a/themes/demo/partials/header.htm b/themes/demo/partials/header.htm index 486f521..8377c03 100644 --- a/themes/demo/partials/header.htm +++ b/themes/demo/partials/header.htm @@ -3,7 +3,6 @@ function onStart(){ $categories = \Indikator\News\Models\Categories::where("hidden", 2)->where("status", 1)->limit(6)->get(); $this["categories"] = $categories; - } ?> == @@ -16,11 +15,11 @@ function onStart(){
- +
- {{form_token()}} + {{form_token()}}
- + @@ -49,7 +48,7 @@ function onStart(){
- + @@ -72,7 +71,6 @@ function onStart(){ {% for item in categories %} {{item.name}} {% endfor %} -
+
- + - \ No newline at end of file + diff --git a/themes/demo/partials/home_categories.htm b/themes/demo/partials/home_categories.htm index 995b6b2..e03a30d 100644 --- a/themes/demo/partials/home_categories.htm +++ b/themes/demo/partials/home_categories.htm @@ -1,13 +1,16 @@ == where("id", "!=", $this->theme->politics_news)->limit(4)->get(); - + + $this['categories'] = \Indikator\News\Models\Categories::orderBy("sort_order") + ->where("id", "!=", $this->theme->politics_news)->limit(4)->get(); + $this['interesting'] = Admin\Interesting\Models\Interesing::all(); $this['news'] = Admin\WeeklyNews\Models\WeeklyNews::orderBy('created_at', 'desc')->get()->first(); - $this['mainNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("category_id", $this->theme->main_news)->orderBy('published_at', 'desc')->limit(4)->get(); + $this['mainNews'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("category_id", $this->theme->main_news) + ->orderBy('published_at', 'desc')->limit(4)->get(); $this["main_news_cat"] = \Indikator\News\Models\Categories::where("id", $this->theme->main_news)->first(); } ?> @@ -34,7 +37,7 @@ function onStart(){ {% endif %} {% endif %} - + {{item.title}} @@ -55,7 +58,7 @@ function onStart(){ {% set post_banner_link = attribute(this.theme, 'post_banner_link_' ~ activeLocale) %} @@ -76,7 +79,7 @@ function onStart(){ - +
{% for post in item.getPosts(3) %}
@@ -90,22 +93,19 @@ function onStart(){ {% endif %} {% endif %} - +
{% endfor %} - + - + {% endfor %} @@ -126,8 +126,6 @@ function onStart(){ - -
@@ -141,7 +139,7 @@ function onStart(){
- +
{% for post in item.getPosts(3) %}
@@ -158,7 +156,7 @@ function onStart(){
{% endfor %} - +
- + {% endfor %} @@ -186,4 +184,4 @@ function onStart(){ - \ No newline at end of file + diff --git a/themes/demo/partials/home_intro.htm b/themes/demo/partials/home_intro.htm index 52cff59..6547530 100644 --- a/themes/demo/partials/home_intro.htm +++ b/themes/demo/partials/home_intro.htm @@ -3,7 +3,7 @@
- \ No newline at end of file + diff --git a/themes/demo/partials/home_media.htm b/themes/demo/partials/home_media.htm index 764a9f9..64c905e 100644 --- a/themes/demo/partials/home_media.htm +++ b/themes/demo/partials/home_media.htm @@ -1,112 +1,93 @@ == limit(2)->get(); $this['videos'] = Admin\Videos\Models\Video::orderBy("date", "desc")->limit(2)->get(); } ?> == -
-
-
-
-
- - +
+
+
+
+
+ -
- -
- +
+
@@ -158,4 +139,4 @@ function onStart(){
-
\ No newline at end of file +
diff --git a/themes/demo/partials/home_n_new_media.htm b/themes/demo/partials/home_n_new_media.htm index a3136a1..7e777c6 100644 --- a/themes/demo/partials/home_n_new_media.htm +++ b/themes/demo/partials/home_n_new_media.htm @@ -33,7 +33,7 @@ function onStart(){
{% endfor %}
- +
@@ -77,7 +77,7 @@ function onStart(){
web_item-photo
- +

{{ item.title }}

@@ -93,21 +93,21 @@ function onStart(){ - \ No newline at end of file + diff --git a/themes/demo/partials/home_new_intro.htm b/themes/demo/partials/home_new_intro.htm index 5ae3a8a..e1824cb 100644 --- a/themes/demo/partials/home_new_intro.htm +++ b/themes/demo/partials/home_new_intro.htm @@ -1,63 +1,63 @@ == -
-
-
-
-
- {{'В центре событий'|_}} -
-
- {% if postFeatured.image %} -
- +
+
+
+ + diff --git a/themes/demo/partials/home_new_last_news.htm b/themes/demo/partials/home_new_last_news.htm index 34cce7b..83b75fb 100644 --- a/themes/demo/partials/home_new_last_news.htm +++ b/themes/demo/partials/home_new_last_news.htm @@ -1,12 +1,14 @@ == where("id", "!=", $this->theme->politics_news)->limit(8)->get(); + $this['categories'] = \Indikator\News\Models\Categories::orderBy("sort_order") + ->where("id", "!=", $this->theme->politics_news)->limit(8)->get(); $last_categories = $this['categories']->slice(0, 4)->pluck('id')->toArray(); - $this['last_category_posts'] = \Indikator\News\Models\Posts::whereIn('category_id', $last_categories)->where("locale", App::getLocale())->orderBy("published_at", "desc")->limit(4)->get(); + $this['last_category_posts'] = \Indikator\News\Models\Posts::whereIn('category_id', $last_categories) + ->where("locale", App::getLocale()) + ->orderBy("published_at", "desc")->limit(4)->get(); } ?> @@ -37,7 +39,7 @@ function onStart(){ {{item.title}}
- {% endfor %} + {% endfor %}
@@ -95,7 +97,7 @@ function onStart(){ {% endif %} {% endif %}
- +

{{ post.title }} @@ -143,4 +145,4 @@ function onStart(){

- \ No newline at end of file + diff --git a/themes/demo/partials/year_category.htm b/themes/demo/partials/year_category.htm index 8a3a1a3..b6b28ea 100644 --- a/themes/demo/partials/year_category.htm +++ b/themes/demo/partials/year_category.htm @@ -2,10 +2,18 @@ where("status", 1)->where("category_id", $this->theme->year_category)->orderBy('published_at', 'desc')->get()->first(); + $this['news'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1)->where("category_id", $this->theme->year_category) + ->orderBy('published_at', 'desc') + ->get()->first(); $this["cat"] = \Indikator\News\Models\Categories::where("id", $this->theme->year_category)->first(); - $this['news_second'] = \Indikator\News\Models\Posts::where("locale", App::getLocale())->where("status", 1)->where("category_id", $this->theme->year_category_second)->orderBy('published_at', 'desc')->get()->first(); + $this['news_second'] = \Indikator\News\Models\Posts::where("locale", App::getLocale()) + ->where("status", 1) + ->where("category_id", $this->theme->year_category_second) + ->orderBy('published_at', 'desc') + ->get()->first(); + $this["cat_second"] = \Indikator\News\Models\Categories::where("id", $this->theme->year_category_second)->first(); } ?> @@ -15,7 +23,7 @@ function onStart()
- +
@@ -28,9 +36,6 @@ function onStart()
- {{ news.title }} @@ -42,9 +47,6 @@ function onStart()
- {{ news_second.title }} @@ -55,4 +57,4 @@ function onStart()
- \ No newline at end of file +