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

[Поддержка] NewsBlog - создавайте неограниченное количество категорий со статьями


netruxa

Recommended Posts

56 минут назад, netruxa сказал:

@nenadolala когда удаляете модификатор newsblog, из базы ничего не удаляется. поэтому при переустановке и создании новой категории - ей назначается новый ID. Если у Вас не дефолтный шаблон, файлы шаблона newsblog тоже перенесены из папки default или лежат на месте? через админку расположение не поменяете, только вручную через редактор tpl файлов. Комменты ВК включаются в админке в настройке категории

Спасибо за обратную связь! Но, увы я так и не понял, что необходимо сделать, чтобы правильно и без потерь обновиться. Надо из базы удалить все данные о модуле и установить по новой? Файлы шаблоны должны быть куда то перенесены? Подскажите куда, я постараюсь это сделать.Возможно задаю тугие вопросы, но я увы не специалист во всех этих делах)) Все пробую делать сам и потому не всегда все сразу получается. Виджеты ВК я активировал сразу в настройках категорий, это я нашел без проблем.

Надіслати
Поділитися на інших сайтах


@nenadolala правильно обновиться - это удалить старый newsblog, установить новый и обновить кеш. Если меняли что-либо в файлах шаблона в папке /catalog/view/theme/default/template/newsblog то лучше забекапить ее

если требуется помощь - пишите [email protected]

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

16 минут назад, netruxa сказал:

@nenadolala правильно обновиться - это удалить старый newsblog, установить новый и обновить кеш. Если меняли что-либо в файлах шаблона в папке /catalog/view/theme/default/template/newsblog то лучше забекапить ее

если требуется помощь - пишите [email protected]

Спасибо еще раз. Сначала сам попробую, ну люблю людей зазря дергать)) Но если не получится, то обращусь. Еще раз спасибо за обратную связь. Доброго дня !

Надіслати
Поділитися на інших сайтах


4 часа назад, netruxa сказал:

@nenadolala правильно обновиться - это удалить старый newsblog, установить новый и обновить кеш. Если меняли что-либо в файлах шаблона в папке /catalog/view/theme/default/template/newsblog то лучше забекапить ее

если требуется помощь - пишите [email protected]

Сейчас хотел скачать последнюю версию 20170906, но почему-то она уже не доступна (нет в списке файлов), есть только версия 20171002. Это новая версия или какой то сбой в наименовании? Спасибо.

Надіслати
Поділитися на інших сайтах


@nenadolala 20171002 это самая последняя, сегодняшняя версия

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

Хочу сказть большое спасибо автору за такой функциональный и полезный модуль.
Внесу свой небольшой вклад. Решил реализовать на базе модуля галерею изображений, иначе портфолио.
И все бы хорошо, но обязательно требовалось выводить уникальное описание под каждой картинкой в слайдере.
Другой вариант применения - прописывать уникальные атрибуты для каждого изображения, выводить в title, alt картинки в статье.

Сразу скажу, я не программист (я только учусь) и возможно есть более правильные и изящные способы реализации подобного функционала. Буду рад замечаниям и советам.

Делал на дефолтном шаблоне OCStore 2.3 на базе последней версии модуля NewsBlog 20171002.

 

Spoiler

Добавим подпись для основного изображения:
1. Для начала добавим ячейку в БД, для этого:
- открываем PHPmyadmin и находим таблицу newsblog_article
- создаем ячейку, например image_alt, тип "VARCHAR", Длина/значение "255", Сравнение "utf8_generil_ci".

2. Далее открываем admin/model/newsblog/article.php
Сначала будем править 


public function addArticle($data) {

Находим:


$this->db->query("INSERT INTO " . DB_PREFIX . "newsblog_article SET date_available = '" . $this->db->escape($data['date_available']) . "', status = '" . (int)$data['status'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

Меняем на 


$this->db->query("INSERT INTO " . DB_PREFIX . "newsblog_article SET date_available = '" . $this->db->escape($data['date_available']) . "', status = '" . (int)$data['status'] . "', image_alt = '" .  $this->db->escape($data['image_alt']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

Добавили строку


image_alt = '" .  $this->db->escape($data['image_alt']) . "'

Спускаемся ниже к 


public function editArticle($article_id, $data) {

 Находим


$this->db->query("UPDATE " . DB_PREFIX . "newsblog_article SET date_available = '" . $this->db->escape($data['date_available']) . "', status = '" . (int)$data['status'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE article_id = '" . (int)$article_id . "'");

Меняем на 


$this->db->query("UPDATE " . DB_PREFIX . "newsblog_article SET date_available = '" . $this->db->escape($data['date_available']) . "', status = '" . (int)$data['status'] . "', image_alt = '" .  $this->db->escape($data['image_alt']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE article_id = '" . (int)$article_id . "'");

Также добавили


image_alt = '" .  $this->db->escape($data['image_alt']) . "'

Тут все, идем дальше

 

3. Теперь добавим поле ввода в админку
Для этого сначала поправим контроллер /admin/controller/newsblog/article.php

Находим:


$data['entry_image'] = $this->language->get('entry_image');

после нее вставляем:


$data['entry_image_alt'] = $this->language->get('entry_image_alt');

Находим:


$data['placeholder'] = $this->model_tool_image->resize('no_image.png', 100, 100);

после нее вставлем:


if (isset($this->request->post['image_alt'])) {
            $data['image_alt'] = $this->request->post['image_alt'];
        } elseif (!empty($article_info)) {
            $data['image_alt'] = $article_info['image_alt'];
        } else {
            $data['image_alt'] = '';
        }

4. А также добавим поле непосредственно на страницу редактирования статьи /admin/view/template/newsblog/article_form.tpl
Находим


<div class="tab-pane" id="tab-data">

и после


<div class="form-group">
    <label class="col-sm-2 control-label" for="input-image"><?php echo $entry_image; ?></label>
        <div class="col-sm-10">
            <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a>
            <input type="hidden" name="image" value="<?php echo $image; ?>" id="input-image" />
        </div>
</div>

вставляем


<div class="form-group">
    <label class="col-sm-2 control-label" for="input-image_alt"><span data-toggle="tooltip" title="<?php echo $help_image_alt; ?>"><?php echo $entry_image_alt; ?></span></label>
        <div class="col-sm-10">
         <input type="text" name="image_alt" value="<?php echo $image_alt; ?>" placeholder="<?php echo $entry_image_alt; ?>" id="input-image_alt" class="form-control" />
        </div>
</div>

5. Чтобы случайно не забыть, что это за поле такое, открываем /admin/language/ru-ru/newsblog/article.php
Находим


$_['entry_image']                  = 'Изображение записи:';

после вставляем


$_['entry_image_alt']             = 'Текст для изображения';

Проверям. В режиме создания/редактирования статьи на вкладке «Данные» под изображением должно появиться поле «Текст для изображения», вводим какое-нибудь описание, сохраняем.
Ошибок быть не должно, содержимое поля сохраняется.

 

6. Теперь самое интересное. Выведем текст в title изображения, хотя его можно использовать на свое усмотрение.

Открываем /catalog/model/newsblog/article.php
Ищем


public function getArticle($article_id) {

и ниже в


if ($query->num_rows) {

после 


'image'            => $query->row['image'],

добавляем


'image_alt'        => $query->row['image_alt'],

7. Открываем /catalog/controller/newsblog/article.php
Находим


if ($settings && $settings['show_preview'])

и перед ней вставляем


$data['image_alt'] = $article_info['image_alt'];

8. И наконец откроем /catalog/view/theme/default/template/newsblog/article.php
Найдем 


<li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>

и заменим на 


<li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $image_alt; ?>" alt="<?php echo $heading_title; ?>" /></a></li>


Мы добавили вывод текста в атрибут title нашего основного изображения.

 

Едем дальше. У нас есть также дополнительные изображения, для которых тоже неплохо было бы добавлять произвольные описания.

 

Spoiler

Добавим подпись для дополнительных изображений, тех, что на вкладке Изображения:

1. Для начала добавим ячейку в БД, для этого:
- открываем PHPmyadmin и находим таблицу newsblog_article_image
- создаем ячейку, например image_title, тип "VARCHAR", Длина/значение "255", Сравнение "utf8_generil_ci".

2. Далее открываем admin/model/newsblog/article.php
Сначала будем править 


public function addArticle($data) {

Находим:


if (isset($data['article_image'])) {
            foreach ($data['article_image'] as $article_image) {
                $this->db->query("INSERT INTO " . DB_PREFIX . "newsblog_article_image SET article_id = '" . (int)$article_id . "', image = '" . $this->db->escape($article_image['image']) . "', sort_order = '" . (int)$article_image['sort_order'] . "'");
            }
        }

Меняем на 


if (isset($data['article_image'])) {
            foreach ($data['article_image'] as $article_image) {
                $this->db->query("INSERT INTO " . DB_PREFIX . "newsblog_article_image SET article_id = '" . (int)$article_id . "', image = '" . $this->db->escape($article_image['image']) . "', image_title = '" .  $this->db->escape($article_image['image_title']) . "',  sort_order = '" . (int)$article_image['sort_order'] . "'");
            }
        }

Добавили строку


image_title = '" .  $this->db->escape($article_image['image_title']) . "'

Спускаемся ниже к 


public function editArticle($article_id, $data) {

Находим


if (isset($data['article_image'])) {
            foreach ($data['article_image'] as $article_image) {
                $this->db->query("INSERT INTO " . DB_PREFIX . "newsblog_article_image SET article_id = '" . (int)$article_id . "', image = '" . $this->db->escape($article_image['image']) . "', sort_order = '" . (int)$article_image['sort_order'] . "'");
            }
        }

Меняем на 


if (isset($data['article_image'])) {
            foreach ($data['article_image'] as $article_image) {
                $this->db->query("INSERT INTO " . DB_PREFIX . "newsblog_article_image SET article_id = '" . (int)$article_id . "', image = '" . $this->db->escape($article_image['image']) . "', image_title = '" .  $this->db->escape($article_image['image_title']) . "', sort_order = '" . (int)$article_image['sort_order'] . "'");
            }
        }

Также добавили


image_title = '" .  $this->db->escape($article_image['image_title']) . "'

  
Тут все, идем дальше

3. Теперь добавим поле ввода в админку
Для этого сначала поправим контроллер /admin/controller/newsblog/article.php

Находим строку


$data['entry_image'] = $this->language->get('entry_image');

и после нее вставлем


$data['entry_image_title'] = $this->language->get('entry_image_title');

Находим 


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

и после


'thumb'      => $this->model_tool_image->resize($thumb, 100, 100),

Вставляем


'image_title'=> $article_image['image_title'],

4. А также добавим поле непосредственно на страницу редактирования статьи /admin/view/template/newsblog/article_form.tpl
Находим


<div class="tab-pane" id="tab-image">

в <thead> 
после


<td class="text-left"><?php echo $entry_image; ?></td>

вставляем


<td class="text-left"><?php echo $entry_image_title; ?></td>

чуть ниже, в <tbody> 
после


<td class="text-left"><a href="" id="thumb-image<?php echo $image_row; ?>" data-toggle="image" class="img-thumbnail"><img src="<?php echo $article_image['thumb']; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a><input type="hidden" name="article_image[<?php echo $image_row; ?>][image]" value="<?php echo $article_image['image']; ?>" id="input-image<?php echo $image_row; ?>" /></td>

вставляем


<td class="text-left"><input type="text" name="article_image[<?php echo $image_row; ?>][image_title]" value="<?php echo $article_image['image_title']; ?>" placeholder="<?php echo $article_image['image_title']; ?>" class="form-control"></td>

еще ниже, в <tfoot>


<td colspan="2"></td>

меняем на 


<td colspan="3"></td>

Далее находим функцию 


function addImage() {

после 


html += '  <td class="text-left"><a href="" id="thumb-image' + image_row + '"data-toggle="image" class="img-thumbnail"><img src="<?php echo $placeholder; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /><input type="hidden" name="article_image[' + image_row + '][image]" value="" id="input-image' + image_row + '" /></td>';

вставляем


html += '  <td class="text-left"><input type="text" name="article_image[' + image_row + '][image_title]" value="" placeholder="<?php echo $entry_image_title; ?>" class="form-control"></td>';

5. Чтобы случайно не забыть, что это за поле такое, открываем /admin/language/ru-ru/newsblog/article.php
Находим строку


$_['entry_image']                  = 'Изображение записи:';

после нее вставляем


$_['entry_image_title']         = 'Текст для изображения';

Проверям. В режиме создания/редактирования статьи на вкладке «Изображения» должен появиться столбец «Текст для изображения», добавляем изображение, вводим какое-нибудь описание, сохраняем.
Ошибок быть не должно, содержимое полей сохраняется.

 

6. Теперь самое интересное. Выведем текст в title дополнительных изображений, хотя его можно использовать на свое усмотрение.

Открываем /catalog/controller/newsblog/article.php
Находим


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

и после


'original'    => HTTP_SERVER.'image/'.$result['image'],

вставляем


'image_title' => $result['image_title'],

7. И наконец откроем /catalog/view/theme/default/template/newsblog/article.php
Найдем 


<li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>

и заменим на 


<li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $image['image_title']; ?>" alt="<?php echo $heading_title; ?>" /></a></li>

Мы добавили вывод текста в атрибут title дополнительных изображений товара.

 

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


@qazzor см. первый пост с описанием модуля:

Цитата

Любой материал можно связывать с любыми количеством категорий, при этом seo-url будет формироваться только по той категории, которая считается главной

 

@basterbac спасибо и респект за доработку. Возможно внедрю это в следующей версии, не помешает. Беглым взглядом посмотрел, вроде ошибок нет. В итоге все получилось? работают alt-ы?

Надіслати
Поділитися на інших сайтах

@netruxa  Да, было бы неплохо внедрить, крайне полезная на мой взгляд возможность.

Да, все работает, я хотел скрины прикрепить, но времени разбираться особо не было.

 

Доделаю сайт, отправлю ссылку для примера, что удалось с помощью вашего модуля реализовать.

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


Подскажите плиз поставаил а дате j F Y l и выдаёт мне названия на английском языке и названия месяцев и день недели. Как можно чтоб на русской копии сайта было на русском а англ чтоб было на англ

Надіслати
Поділитися на інших сайтах


@alexcer93 там надо будет в шаблоне date изменить на strftime

см. http://php.net/manual/ru/function.strftime.php

Надіслати
Поділитися на інших сайтах

17 hours ago, hadouken said:

Здравствуйте! Поставил ваш модуль, все работает отлично, НО! почему-то не работает ЧПУ, подскажите как исправить? стоит SeoPro. Версия opencart 2.0.3.1

 

1. На других страницах работает? Если нет, то смотрим в сторону .htaccess. Удаляем расширение .txt

2. Если работает, то смотрим в сторону чистки кэша сеопро.

 

а вообще неплохо бы уточнять версию движка\сборки.. ;)

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


@basterbac спасибо за помощь в ответе) там скорее всего кэш сео про не обновился

Надіслати
Поділитися на інших сайтах

5 часов назад, basterbac сказал:

 

1. На других страницах работает? Если нет, то смотрим в сторону .htaccess. Удаляем расширение .txt

2. Если работает, то смотрим в сторону чистки кэша сеопро.

 

а вообще неплохо бы уточнять версию движка\сборки.. ;)

На других страницах все нормально работает. .htaccess настроен, это уже боевой сайт на хостинге. Кэши чищу после каждой манипуляции, как в разделе "Модули - Модификаторы - Очистить кеш модификаторов - Обновить кеш модификаторов", так и в папке /system/storage/cache

Версия opencart 2.0.3.1 сказал же

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


@hadouken присылайте доступы на [email protected] - посмотрю

Надіслати
Поділитися на інших сайтах

@basterbac  там вообще оказалось не мой модуль стоит, с темой ошибся))

Надіслати
Поділитися на інших сайтах

Добрый день.

Хочу поделиться багом. Обнаружил ошибки валидации в админке. И для категории и для статьи поле Название отмечено как обязательное, но при сохранении пустое поле валидация пропускает и статья/категория сохраняется.

Посмотрел в контроллерах - в функциях валидации проверки на поле name нету.

 

Версия модуля: 20171002.

Версия Opencart: 2.3.0.2.

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


@locker10 спасибо за найденный баг

 

@koshsh используются виджеты комментариев Vkontakte, Facebook, Disqus

Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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