Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как создать блог? Или блог для "бедных".


unknown

Recommended Posts

Работает на Ocstore 2.1.0.2

Для тех кто не хочет покупать модули и кому не страшно потом получить ошибки, добро пожаловать.

Для создания блога нам понадобится:

1. OpenCart (проверял на ocstore 2.1.0.2)

2. Модуль  Персонализованные шаблоны

3. images.png.2ed33537e808404c3cfef6c8f2a4eed1.png

 

Всё просто.

1. Устанавливаете модуль.

2. Создаете категорию с названием Блог и SEO URL.

3. С папки /catalog/view/theme/default/template/product - копируете файлы category.tpl и product.tpl, переименовываете их в понятные для вас названия (например, blog_category.tpl и blog_post.tpl ), вносите в них любые правки, загружаете обратно.

4. Админка - Дополнения - Модули - Персонализованные шаблоны - редактировать.

 

Для категории блога:

  • Добавить модуль
  • Тип шаблона: Для категории
  • Категории: Блог
  • Файл нового шаблона: product/blog_category (вводить нужно без .tpl, можете нажать "проверить путь" для проверки)

 

Для постов в блоге:

  • Добавить модуль
  • Тип шаблона: Шаблон для всех товаров из определенной категории (только с SEO URL)
  • Категории: Блог
  • Файл нового шаблона: product/blog_post (вводить нужно без .tpl, можете нажать "проверить путь" для проверки)

 

Сохранить.

 

Теперь у нас есть Блог, со своим дизайном.

 

Но наш блог, не совсем блог, и посты не посты, а товар, поэтому они будут появляться в результатах поиска, а также в модуле Последние поступления.

Решение такое.

в

/catalog/model/catalog/product.php

 

ищем

public function getLatestProducts($limit) {

к запросу

$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN `" . DB_PREFIX . "product_to_category` p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND p2c.category_id <> '59' ORDER BY p.date_added DESC LIMIT " . (int)$limit);

добавляем

AND p2c.category_id <> '59'

59 - это id категории Блог. У вас он может быть другой.

Получается вот так

$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN `" . DB_PREFIX . "product_to_category` p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND p2c.category_id <> '59' ORDER BY p.date_added DESC LIMIT " . (int)$limit);

После этого, в Последние поступления все "товары" "категории" 59 - "Блог", попадать не будут.

 

Теперь поиск.

/catalog/controller/product/search.php

 

ищем

$data['products'][] = array(

добавляем

'stock'       => $result['quantity'],

получаем

				$data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'stock'       => $result['quantity'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'] . $url)
				);

 

дальше в

/catalog/view/theme/default/template/product/search.tpl

 

ищем

<?php foreach ($products as $product) { ?>

 

Под ним добавляем

<?php if ($product['stock'] >= 0) { ?>

а также закрывающую скобку в конце, перед закрывающей скобкой foreach products as product

<?php } ?>

>=0 будет выводить товары в наличии и не в наличии (количество больше или равно 0)

> 0 только те, которые в наличии (количество больше 0)

 

В стандартном шаблоне выглядит так

Spoiler

<?php foreach ($products as $product) { ?>
        <?php if ($product['stock'] >= 0) { ?>
        <div class="product-layout product-list col-xs-12">
          <div class="product-thumb">
            <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div>
            <div class="caption">
              <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4>
              <p><?php echo $product['description']; ?></p>
              <?php if ($product['price']) { ?>
              <p class="price">
                <?php if (!$product['special']) { ?>
                <?php echo $product['price']; ?>
                <?php } else { ?>
                <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
                <?php } ?>
                <?php if ($product['tax']) { ?>
                <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                <?php } ?>
              </p>
              <?php } ?>
              <?php if ($product['rating']) { ?>
              <div class="rating">
                <?php for ($i = 1; $i <= 5; $i++) { ?>
                <?php if ($product['rating'] < $i) { ?>
                <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span>
                <?php } else { ?>
                <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span>
                <?php } ?>
                <?php } ?>
              </div>
              <?php } ?>
            </div>
            <div class="button-group">
              <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
              <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button>
              <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button>
            </div>
          </div>
        </div>
        <?php } ?>
        <?php } ?>

 

 

При создании Новости в Блоге, нужно будет проставить количество -1, тогда новость не попадет в выдачу поиска по сайту

Готово.

Змінено користувачем unknown
  • +1 1
Надіслати
Поділитися на інших сайтах


После того как сделаем этот велосипед,аккуратно закатываем его в сайрай и забываем.

Возвращаемся на форум и ставим хотя бы это

Скрытый текст

1430989171_1871837159.jpg

 

  • +1 3
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.