{{ article.name }}
+{{ article.description }}
+ +diff --git a/public/store/controller/blog/article.php b/public/store/controller/blog/article.php
index 1cfa83c..b6b7d85 100644
--- a/public/store/controller/blog/article.php
+++ b/public/store/controller/blog/article.php
@@ -180,21 +180,30 @@ class ControllerBlogArticle extends Controller {
$data['rating'] = (int)$article_info['rating'];
$data['gstatus'] = (int)$article_info['gstatus'];
$data['description'] = html_entity_decode($article_info['description'], ENT_QUOTES, 'UTF-8');
+
+ $this->load->model('tool/image');
+
+ if ($article_info['image']) {
+ $data['thumb'] = $this->model_tool_image->resize($article_info['image'], 1200, 760);
+ } else {
+ $data['thumb'] = false;
+ }
+
+ $data['date_added'] = date($this->language->get('date_format_short'), strtotime($article_info['date_added']));
+ $data['viewed'] = (int)$article_info['viewed'];
$data['articles'] = array();
$data['button_more'] = $this->language->get('button_more');
$data['text_views'] = $this->language->get('text_views');
- $this->load->model('tool/image');
-
$results = $this->model_blog_article->getArticleRelated($this->request->get['article_id']);
foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $this->config->get('configblog_image_related_width'), $this->config->get('configblog_image_related_height'));
} else {
- $image = false;
+ $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('configblog_image_related_width'), $this->config->get('configblog_image_related_height'));
}
if ($this->config->get('configblog_review_status')) {
@@ -216,17 +225,25 @@ class ControllerBlogArticle extends Controller {
);
}
- $this->load->model('tool/image');
$data['products'] = array();
$results = $this->model_blog_article->getArticleRelatedProduct($this->request->get['article_id']);
foreach ($results as $result) {
if ($result['image']) {
- $image = $this->model_tool_image->resize($result['image'], $this->config->get('configblog_image_related_width'), $this->config->get('configblog_image_related_height'));
+ $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
} else {
- $image = false;
+ $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
}
+
+ $product_images = $this->model_catalog_product->getProductImages($result['product_id']);
+
+ if ($product_images) {
+ $additional_image = $this->model_tool_image->resize($product_images[0]['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
+ } else {
+ $additional_image = false;
+ }
+
if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
} else {
@@ -244,6 +261,12 @@ class ControllerBlogArticle extends Controller {
} else {
$tax = false;
}
+
+ $rent_prices = array_filter([$result['price'], $result['price_2']], function($price) {
+ return (float)$price > 0;
+ });
+
+ $min_price = $rent_prices ? min($rent_prices) : 0;
if ($this->config->get('configblog_review_status')) {
$rating = (int)$result['rating'];
@@ -256,6 +279,13 @@ class ControllerBlogArticle extends Controller {
$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
+ 'additional_thumb' => $additional_image,
+ 'price_n' => $result['price'],
+ 'price_2' => $this->currency->format($this->tax->calculate($result['price_2'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']),
+ 'price_2_n' => $result['price_2'],
+ 'price_3' => $this->currency->format($this->tax->calculate($result['price_3'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']),
+ 'price_3_n' => $result['price_3'],
+ 'min_price' => $this->currency->format($this->tax->calculate($min_price, $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']),
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('configblog_article_description_length')) . '..',
'price' => $price,
diff --git a/public/store/language/ru-ru/blog/article.php b/public/store/language/ru-ru/blog/article.php
index 355e02f..ff90f1c 100644
--- a/public/store/language/ru-ru/blog/article.php
+++ b/public/store/language/ru-ru/blog/article.php
@@ -17,7 +17,7 @@ $_['text_views'] = 'Просмотров:';
$_['button_more'] = 'подробнее';
$_['text_tax'] = 'Без НДС:';
$_['text_related'] = 'Похожие статьи';
-$_['text_related_product'] = 'Сопутствующие Товары';
+$_['text_related_product'] = 'Связанные платья';
// Entry
$_['entry_name'] = 'Ваше Имя:';
@@ -32,4 +32,4 @@ $_['error_name'] = 'Заголовок отзыва должен соде
$_['error_text'] = 'Текст отзыва должен содержать от 25 до 1000 символов!';
$_['error_rating'] = 'Пожалуйста, оцените статью!';
$_['error_captcha'] = 'Код, указанный на картинке, введен неверно!';
-?>
\ No newline at end of file
+?>
diff --git a/public/store/view/theme/dominik/assets/css/main.css b/public/store/view/theme/dominik/assets/css/main.css
index e85bfd5..cdb19da 100644
--- a/public/store/view/theme/dominik/assets/css/main.css
+++ b/public/store/view/theme/dominik/assets/css/main.css
@@ -837,3 +837,763 @@ section{
padding: 15px;
}
}
+
+.blog-category-page {
+ background: linear-gradient(180deg, #f8f6f5 0, #fff 520px);
+ color: #14142b;
+}
+
+.blog-category-hero {
+ padding: 34px 0 64px;
+}
+
+.blog-category-breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 4px;
+ padding: 0;
+ margin: 0 0 34px;
+ list-style: none;
+ color: rgba(20, 20, 43, 0.58);
+ font-size: 14px;
+}
+
+.blog-category-breadcrumb span {
+ display: inline-block;
+ margin: 0 8px;
+ color: var(--color-secondary);
+}
+
+.blog-category-breadcrumb a:hover {
+ color: #14142b;
+}
+
+.blog-category-hero__grid {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) minmax(300px, 440px);
+ gap: clamp(32px, 6vw, 88px);
+ align-items: center;
+}
+
+.blog-category-hero__grid--single {
+ grid-template-columns: minmax(0, 780px);
+}
+
+.blog-category-eyebrow {
+ display: block;
+ color: var(--color-dark-gray);
+ font-size: 12px;
+ line-height: 1.3;
+ letter-spacing: 0.14em;
+ text-transform: uppercase;
+}
+
+.blog-category-hero h1 {
+ max-width: 820px;
+ margin: 14px 0 0;
+ color: #14142b;
+ font-size: clamp(42px, 5.8vw, 82px);
+ font-weight: 400;
+ line-height: 1.04;
+}
+
+.blog-category-hero__copy p,
+.blog-category-hero__description {
+ max-width: 700px;
+ margin-top: 22px;
+ color: rgba(20, 20, 43, 0.72);
+ font-size: 18px;
+ line-height: 1.65;
+}
+
+.blog-category-hero__description p:last-child {
+ margin-bottom: 0;
+}
+
+.blog-category-hero__image {
+ position: relative;
+ min-height: 380px;
+}
+
+.blog-category-hero__image::before {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ bottom: -20px;
+ left: -20px;
+ border: 1px solid var(--color-secondary);
+ content: "";
+}
+
+.blog-category-hero__image img {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ min-height: 380px;
+ object-fit: cover;
+}
+
+.blog-category-refine {
+ padding: 25px 0;
+ background: #f4efed;
+ border-top: 1px solid rgba(216, 206, 203, 0.82);
+ border-bottom: 1px solid rgba(216, 206, 203, 0.82);
+}
+
+.blog-category-refine__head {
+ margin-bottom: 14px;
+}
+
+.blog-category-refine__list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+}
+
+.blog-category-refine__item {
+ display: inline-flex;
+ padding: 10px 17px;
+ background: #fff;
+ border: 1px solid rgba(20, 20, 43, 0.11);
+ color: #14142b;
+ font-size: 14px;
+ transition: background-color 0.2s, border-color 0.2s, color 0.2s;
+}
+
+.blog-category-refine__item:hover {
+ background: #14142b;
+ border-color: #14142b;
+ color: #fff;
+}
+
+.blog-category-content {
+ padding: 72px 0 80px;
+}
+
+.blog-category-heading {
+ display: flex;
+ align-items: end;
+ justify-content: space-between;
+ margin-bottom: 30px;
+}
+
+.blog-category-heading h2,
+.blog-category-empty h2 {
+ margin: 9px 0 0;
+ color: #14142b;
+ font-size: clamp(30px, 3vw, 44px);
+ font-weight: 400;
+ line-height: 1.15;
+}
+
+.blog-category-grid {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 30px 20px;
+}
+
+.blog-category-card {
+ display: flex;
+ min-width: 0;
+ flex-direction: column;
+ background: #fff;
+ border: 1px solid rgba(20, 20, 43, 0.1);
+ transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s;
+}
+
+.blog-category-card:hover {
+ border-color: rgba(20, 20, 43, 0.24);
+ box-shadow: 0 20px 46px rgba(20, 20, 43, 0.09);
+ transform: translateY(-5px);
+}
+
+.blog-category-card__image {
+ display: block;
+ aspect-ratio: 1.2 / 1;
+ overflow: hidden;
+ background: #f1eeed;
+}
+
+.blog-category-card__image img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ transition: transform 0.45s;
+}
+
+.blog-category-card:hover .blog-category-card__image img {
+ transform: scale(1.045);
+}
+
+.blog-category-card__body {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ padding: 22px 22px 20px;
+}
+
+.blog-category-card__meta {
+ display: flex;
+ min-height: 18px;
+ flex-wrap: wrap;
+ gap: 10px;
+ align-items: center;
+ color: rgba(20, 20, 43, 0.56);
+ font-size: 12px;
+ letter-spacing: 0.08em;
+ line-height: 1.35;
+ text-transform: uppercase;
+}
+
+.blog-category-card__divider {
+ width: 3px;
+ height: 3px;
+ background: var(--color-secondary);
+ border-radius: 50%;
+}
+
+.blog-category-card__views {
+ display: inline-flex;
+ gap: 5px;
+ align-items: center;
+}
+
+.blog-category-card__views svg {
+ fill: none;
+ stroke: currentColor;
+ stroke-width: 1.4;
+}
+
+.blog-category-card h3 {
+ margin: 14px 0 0;
+ color: #14142b;
+ font-size: 24px;
+ font-weight: 400;
+ line-height: 1.2;
+}
+
+.blog-category-card h3 a:hover {
+ color: var(--color-dark-gray);
+}
+
+.blog-category-card p {
+ margin: 13px 0 0;
+ color: rgba(20, 20, 43, 0.68);
+ font-size: 15px;
+ line-height: 1.6;
+}
+
+.blog-category-card__footer {
+ display: flex;
+ gap: 14px;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 21px;
+ margin-top: auto;
+}
+
+.blog-category-card__link {
+ display: inline-flex;
+ gap: 9px;
+ align-items: center;
+ color: #14142b;
+ font-size: 12px;
+ letter-spacing: 0.14em;
+ text-transform: uppercase;
+}
+
+.blog-category-card__link:hover {
+ color: var(--color-dark-gray);
+}
+
+.blog-category-card__link svg {
+ fill: none;
+ stroke: currentColor;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+}
+
+.blog-category-card__rating {
+ display: flex;
+ color: #b59b78;
+ font-size: 14px;
+ letter-spacing: 1px;
+}
+
+.blog-category-card__rating .is-empty {
+ color: #ded9d4;
+}
+
+.blog-category-pagination {
+ display: flex;
+ gap: 18px;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 38px;
+}
+
+.blog-category-pagination ul.pagination {
+ gap: 6px;
+ margin: 0;
+}
+
+.blog-category-pagination .page-link {
+ min-width: 42px;
+ padding: 10px 13px;
+ color: #14142b;
+ text-align: center;
+ border-color: rgba(20, 20, 43, 0.13);
+ border-radius: 0 !important;
+ box-shadow: none;
+}
+
+.blog-category-pagination .page-link:hover,
+.blog-category-pagination .active .page-link {
+ background: #14142b;
+ border-color: #14142b;
+ color: #fff;
+}
+
+.blog-category-pagination__results {
+ color: rgba(20, 20, 43, 0.58);
+ font-size: 14px;
+}
+
+.blog-category-empty {
+ padding: 50px;
+ background: #f8f6f5;
+ border: 1px solid rgba(20, 20, 43, 0.1);
+ text-align: center;
+}
+
+.blog-category-empty .btn {
+ margin-top: 24px;
+}
+
+@media (max-width: 991px) {
+ .blog-category-hero__grid {
+ grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
+ gap: 42px;
+ }
+
+ .blog-category-hero__image,
+ .blog-category-hero__image img {
+ min-height: 320px;
+ }
+
+ .blog-category-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+}
+
+@media (max-width: 767px) {
+ .blog-category-hero {
+ padding: 24px 0 42px;
+ }
+
+ .blog-category-breadcrumb {
+ margin-bottom: 24px;
+ }
+
+ .blog-category-hero__grid {
+ grid-template-columns: 1fr;
+ gap: 28px;
+ }
+
+ .blog-category-hero h1 {
+ font-size: 42px;
+ }
+
+ .blog-category-hero__copy p,
+ .blog-category-hero__description {
+ margin-top: 16px;
+ font-size: 16px;
+ }
+
+ .blog-category-hero__image {
+ margin-left: 12px;
+ }
+
+ .blog-category-hero__image,
+ .blog-category-hero__image img {
+ min-height: 250px;
+ }
+
+ .blog-category-hero__image::before {
+ top: 12px;
+ right: 12px;
+ bottom: -12px;
+ left: -12px;
+ }
+
+ .blog-category-content {
+ padding: 50px 0 56px;
+ }
+
+ .blog-category-grid {
+ grid-template-columns: 1fr;
+ gap: 18px;
+ }
+
+ .blog-category-card h3 {
+ font-size: 22px;
+ }
+
+ .blog-category-pagination {
+ align-items: start;
+ flex-direction: column;
+ padding-top: 28px;
+ }
+
+ .blog-category-empty {
+ padding: 34px 20px;
+ }
+}
+
+.blog-article-page {
+ background: #fff;
+ color: #14142b;
+}
+
+.blog-article-hero {
+ padding: 34px 0 72px;
+ background: linear-gradient(180deg, #f8f6f5 0, #fff 100%);
+}
+
+.blog-article-hero__grid {
+ display: grid;
+ grid-template-columns: minmax(0, 0.95fr) minmax(380px, 1.05fr);
+ gap: clamp(36px, 6vw, 90px);
+ align-items: center;
+}
+
+.blog-article-hero__grid--single {
+ grid-template-columns: minmax(0, 920px);
+}
+
+.blog-article-hero h1 {
+ max-width: 760px;
+ margin: 14px 0 0;
+ color: #14142b;
+ font-size: clamp(42px, 5.3vw, 76px);
+ font-weight: 400;
+ line-height: 1.06;
+}
+
+.blog-article-meta {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 11px;
+ align-items: center;
+ margin-top: 26px;
+ color: rgba(20, 20, 43, 0.58);
+ font-size: 12px;
+ letter-spacing: 0.1em;
+ line-height: 1.35;
+ text-transform: uppercase;
+}
+
+.blog-article-meta__divider {
+ width: 3px;
+ height: 3px;
+ background: var(--color-secondary);
+ border-radius: 50%;
+}
+
+.blog-article-meta__views {
+ display: inline-flex;
+ gap: 6px;
+ align-items: center;
+}
+
+.blog-article-meta__views svg {
+ fill: none;
+ stroke: currentColor;
+ stroke-width: 1.4;
+}
+
+.blog-article-meta__rating {
+ display: flex;
+ color: #b59b78;
+ font-size: 14px;
+ letter-spacing: 1px;
+}
+
+.blog-article-meta__rating .is-empty {
+ color: #ded9d4;
+}
+
+.blog-article-hero__image {
+ position: relative;
+ min-height: 520px;
+}
+
+.blog-article-hero__image::before {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ bottom: -20px;
+ left: -20px;
+ border: 1px solid var(--color-secondary);
+ content: "";
+}
+
+.blog-article-hero__image img {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ min-height: 520px;
+ object-fit: cover;
+}
+
+.blog-article-content {
+ padding: 82px 0;
+}
+
+.blog-article-content__grid {
+ display: grid;
+ grid-template-columns: minmax(0, 790px) minmax(250px, 330px);
+ gap: clamp(40px, 7vw, 108px);
+ justify-content: center;
+ align-items: start;
+}
+
+.blog-article-copy {
+ color: rgba(20, 20, 43, 0.78);
+ font-size: 18px;
+ line-height: 1.8;
+}
+
+.blog-article-copy > :first-child {
+ margin-top: 0;
+}
+
+.blog-article-copy p {
+ margin: 0 0 20px;
+}
+
+.blog-article-copy h2,
+.blog-article-copy h3 {
+ color: #14142b;
+ font-weight: 400;
+ line-height: 1.18;
+}
+
+.blog-article-copy h2 {
+ margin: 46px 0 17px;
+ font-size: 34px;
+}
+
+.blog-article-copy h3 {
+ margin: 34px 0 14px;
+ font-size: 25px;
+}
+
+.blog-article-copy blockquote {
+ padding: 24px 0 24px 26px;
+ margin: 34px 0;
+ color: #14142b;
+ border-left: 2px solid var(--color-secondary);
+ font-size: 22px;
+ line-height: 1.55;
+}
+
+.blog-article-copy img {
+ width: 100%;
+ margin: 18px 0 28px;
+}
+
+.blog-article-copy a {
+ color: #14142b;
+ border-bottom: 1px solid var(--color-secondary);
+}
+
+.blog-article-copy a:hover {
+ color: var(--color-dark-gray);
+}
+
+.blog-article-aside {
+ position: sticky;
+ top: 94px;
+ padding: 28px;
+ background: #f4efed;
+ border: 1px solid rgba(216, 206, 203, 0.9);
+}
+
+.blog-article-aside p {
+ margin: 14px 0 0;
+ color: rgba(20, 20, 43, 0.74);
+ font-size: 16px;
+ line-height: 1.65;
+}
+
+.blog-article-aside__link {
+ display: inline-flex;
+ gap: 9px;
+ align-items: center;
+ margin-top: 22px;
+ color: #14142b;
+ font-size: 11px;
+ letter-spacing: 0.13em;
+ text-transform: uppercase;
+}
+
+.blog-article-aside__link:hover {
+ color: var(--color-dark-gray);
+}
+
+.blog-article-aside__link svg {
+ fill: none;
+ stroke: currentColor;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+}
+
+.blog-article-downloads {
+ max-width: 790px;
+ padding-top: 24px;
+ margin: 28px auto 0;
+ border-top: 1px solid rgba(20, 20, 43, 0.12);
+}
+
+.blog-article-downloads a {
+ display: block;
+ color: #14142b;
+}
+
+.blog-article-downloads span {
+ color: rgba(20, 20, 43, 0.58);
+}
+
+.blog-article-section {
+ padding: 76px 0 84px;
+}
+
+.blog-article-section__head {
+ margin-bottom: 30px;
+}
+
+.blog-article-section__head h2 {
+ margin: 9px 0 0;
+ color: #14142b;
+ font-size: clamp(30px, 3vw, 44px);
+ font-weight: 400;
+ line-height: 1.15;
+}
+
+.blog-article-products {
+ background: #f8f6f5;
+ border-top: 1px solid rgba(216, 206, 203, 0.72);
+ border-bottom: 1px solid rgba(216, 206, 203, 0.72);
+}
+
+.blog-article-products .product-card {
+ background: #fff;
+}
+
+.blog-article-products .product-card .images {
+ aspect-ratio: 0.82 / 1;
+ overflow: hidden;
+ background: #eee;
+}
+
+.blog-article-products .product-card .images img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.blog-article-related__grid {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 20px;
+}
+
+@media (max-width: 991px) {
+ .blog-article-hero__grid {
+ grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr);
+ gap: 44px;
+ }
+
+ .blog-article-hero__image,
+ .blog-article-hero__image img {
+ min-height: 430px;
+ }
+
+ .blog-article-content__grid {
+ grid-template-columns: 1fr;
+ gap: 30px;
+ }
+
+ .blog-article-aside {
+ position: static;
+ }
+
+ .blog-article-related__grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+}
+
+@media (max-width: 767px) {
+ .blog-article-hero {
+ padding: 24px 0 48px;
+ }
+
+ .blog-article-hero__grid {
+ grid-template-columns: 1fr;
+ gap: 30px;
+ }
+
+ .blog-article-hero h1 {
+ font-size: 42px;
+ }
+
+ .blog-article-hero__image {
+ margin-left: 12px;
+ }
+
+ .blog-article-hero__image,
+ .blog-article-hero__image img {
+ min-height: 300px;
+ }
+
+ .blog-article-hero__image::before {
+ top: 12px;
+ right: 12px;
+ bottom: -12px;
+ left: -12px;
+ }
+
+ .blog-article-content {
+ padding: 54px 0;
+ }
+
+ .blog-article-copy {
+ font-size: 16px;
+ line-height: 1.75;
+ }
+
+ .blog-article-copy h2 {
+ margin-top: 38px;
+ font-size: 28px;
+ }
+
+ .blog-article-copy blockquote {
+ padding: 20px 0 20px 18px;
+ margin: 28px 0;
+ font-size: 19px;
+ }
+
+ .blog-article-aside {
+ padding: 22px;
+ }
+
+ .blog-article-section {
+ padding: 54px 0 60px;
+ }
+
+ .blog-article-related__grid {
+ grid-template-columns: 1fr;
+ gap: 18px;
+ }
+}
diff --git a/public/store/view/theme/dominik/template/blog/article.twig b/public/store/view/theme/dominik/template/blog/article.twig
index 80596f0..eb1b044 100644
--- a/public/store/view/theme/dominik/template/blog/article.twig
+++ b/public/store/view/theme/dominik/template/blog/article.twig
@@ -1,436 +1,131 @@
{{ header }}
{{ content_top }}
-{{ heading_title }}
-
- {{ text_related_product }}
-
{{ article['description'] }}
- {% if configblog_review_status %} - {% if article.rating %} - - {% endif %} - {% endif %} -Идеи, советы и вдохновение для вашего особенного дня.
+ {% endif %}{{ text_empty }}
- {% endif %} -{{ article.description }}
+ +