Как добавить текст на главную страницу OpenCart


Как добавить текст на домашнюю страницу в opencart?

Я хочу иметь возможность добавлять / редактировать текст из раздела администратора, который появится на главной странице. Лучшим решением, вероятно, будет добавление новой страницы (Каталог> Информация), но как мне добавить текст с этой страницы, чтобы он появлялся на главной странице?

Другое решение — использовать модуль Welcome для добавления текста, но это не так интуитивно понятно для владельца магазина. Он должен пойти в Модули> Добро пожаловать> Редактировать. Я хотел бы, чтобы вся информационная страница была в одном месте (Каталог> Информация)

Добавить модуль Opencart на отдельную страницу

Я работаю с OCstore 2.3. Статья приминима к любой сборке Opencart ветки 2.3x.
Есть модули, которые выводят структурированную информацию, которую можно отнести только к какой-то одной странице.
Например, модуль блоков – через который можно создать красивый, информационный блок, и вывести его на главной странице – здесь проблем нет, у нас есть схема (макет) – Главная.
А сегодня, мы будем выводить его на одной странице схемы “Информация” (information/information).

Задача была такая: Вывести модуль в схеме “Информация” (information/information) на странице “О компании”, то есть в итоге – блоки созданные модулем заменят контент ($content).
Для начала создаем нужный нам модуль. Обратите внимание на его id, эта информация нам пригодится.

Далее, нам нужно внести изменения в файл контроллера вывода позиций модуля “Вверху страницы” (content_top). Найти его можно так:

Ищём вот этот блок кода – в самом конце файла.

Как добавить текст на главную страницу OpenCart

В этой главе мы поговорим об опенкарт и научимся изменять шаблон, а также сверстаем главную страницу.

Несмотря на то, что OpenCart является довольно распространенной CMS, полного, подробного и актуального мануала по верстке для новичков для OpenCart в сети нет. Даже у меня на блоге пока только отдельные уловки по работе с данной системой. Давайте попробуем восполнить этот пробел и на конкретном примере научимся верстать под OpenCart 1.5.

Стоит отметить, что верстка под любую КМС остается версткой – мы просто располагаем элементы соответственно макету от дизайнера. Просто в каждом случае необходимо узнать, какие именно файлы менять и не забывать об их взаимосвязи. В этом плане опенкарт имеет некоторые отличия от интеграции верстки в вордпресс, к примеру.

Итак, начнем с создания шаблона. В опенкарт шаблон – это набор файлов с расширением tpl. По сути дела это обычный php файл – в нем можно писать php код, заключенный в соответствующие теги, а также html разметку. Мы не будем делать новый шаблон, а начнем править уже имеющийся. В моем случае это обуславливалось тем, что интернет магазин уже имел на страницах практически все необходимые элементы (точнее, блоки элементов), мне надо было только изменить их внешний вид. Справедливости ради, весьма кардинально.

Итак, выберите любую тему (они находятся по адресу catalog\view\theme) скопируйте её и начинайте менять. Начнем с главной страницы — catalog\view\theme\tea\template\common\home.tpl. Тема у нас называется tea, у вас, скорее всего будет так: catalog\view\theme\default\template\common\home.tpl

Посмотрим на главную страницу:

Она весьма отличается от остальных, поэтому можно смело удалить все из файла home.tpl и начать верстать с нуля. Здесь нет ни футера, ни хедера, только логотип, меню и еще картинка. То есть начало у нас такое:

Далее стили. Убираем отступы у боди и задаем размер шрифта по умолчанию для документа:

Теперь подключаем парочку стилей, которые нам понадобятся

Сама верстка чрезвычайно проста: обертка (wrapper) – в ней картинка, затем див, в котором сверху вниз див с парочкой спанов и меню под ними. А также еще сбоку картинка.

Если вы не знаете ваш код меню, то ищите его в той же папке (common) в файле header.tpl. А мы наше меню немного облагородим. Заставим выезжать и сделаем подложку при наведении:

Вроде бы теперь главная страница у нас соответствует макету. Однако, мы делаем сразу же адаптированный сайт, хорошо отображающийся и на различных мобильных устройствах. Поэтому смотрим макет адаптивки:

Что мы видим? Как только ширина экрана будет меньше 750px, мы все центрируем, добавляем отступы, а меню делаем столбиком. Насчет меню – не самое стандартное решение в данном случае, на других страницах будет обычное адаптивное. Но, что делать – такой дизайн – я всего лишь верстальщик. Итак, стили:

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

Теперь проверяем, мобайл френдли ли наш сайт по мнению основных поисковых систем?

Все отлично! У вас может возникнуть вопрос: а чем тогда отличается данная верстка от обычной, без натяжки на кмс опенкарт? В данном случае – только кодом меню. Но я и предупреждал, что ничего сложного нет.

В следующих главах мы научимся натягивать верстку опенкарт и для других страниц.

Редактирование default-шаблона на OpenCart

Автор: Хабиб Омаров · Опубликовано 02.04.2015 · Обновлено 28.02.2020

Долго не писал статью на блог, все ленился ленился и в конце запарился и решил написать одну такую полезную статью про OpenCart. И еще для тех кто не в курсе я сейчас работаю над справочником по созданию шаблона для OpenCart от А до Я, чтоб быть в курсе выхода справочника предлагаю подписаться на обновления блога.

Теперь к делу. Оценив статистику посещения моего блога я выяснил что большинство пользователей заходят на мой блог по поисковой фразе связанной с OpenCart-ом.

Почему так?

Все потому что я написал одну статью создание шаблонов для OpenCart (теория) и это статья стала в каком то смысле популярной на моем блоге и я решил продолжить тему связанную с OpenCart-ом.

Для тех кто не знает что такое OpenCart я предлагаю познакомиться со статьей знакомство с OpenCart.

И так начнем самое интересное

Когда речь заходит о создании шаблона для любой системы управления сайтами (CMS) в первую очередь мы должны искать схожий с дизайном в ТЗ шаблон. Такие мысли в голове это нормально, потому что изобретать велосипед когда вокруг их бесплатно раздают я считаю не очень целесообразным.

Перед тем как начать редактирование default-шаблона давайте познакомимся со структурой шаблона более подробно. Файлы шаблона находятся по директории

Структура шаблона OpenCart:

  • information:
    • contact.tpl — контакты – связаться с нами
    • information.tpl — информационные страницы – статьи
    • sitemap.tpl — карта сайта
  • error:
    • not_found — запрашиваемая страница не найдена
  • common:
    • column_left.tpl (левая колонка вашего шаблона)
    • column_right.tpl (правая колонка вашего шаблона)
    • content_bottom.tpl (низ средней колонки вашего шаблона)
    • content_top.tpl (верх средней колонки вашего шаблона)
    • footer.tpl (низ-подвал вашего шаблона)
    • header.tpl (верх- шапка вашего шаблона)
    • home.tlp (домашняя страница)
    • maintenance.tpl
    • success.tpl — страница успешной выполнении операции
  • checkout:
    • cart.tpl — страница корзины
    • checkout.tpl — оформление заказа
    • confirm.tpl — подтверждение заказа
    • guest.tpl — гостевое оформление заказа
    • guest_shipping.tpl
    • login.tpl — выбор способа оформления заказа
    • payment_address.tpl
    • payment_method.tpl — способ оплаты
    • register.tpl — страница регистрации через ссылку в корзине
    • shipping_address.tpl
    • shipping_method.tpl
  • affiliate:
    • account.tpl — страница личного кабинета партнёра
    • edit.tpl — страница редактирования личной информации партнёра
    • forgotten.tpl — страница восстановления забытого пароля партнёра
    • login.tpl — страница входа / регистрации партнёра
    • password.tpl — восстановление пароля партнёра
    • payment.tpl — способы оплаты
    • register.tpl — регистрация нового партнёра
    • tracking.tpl — страница реферальных ссылок партнёра
    • transaction.tpl — история выплат партнёра
  • account:
    • account.tpl — страница личного кабинета покупателя
    • address_form.tpl — страница редактирования адреса
    • address_list.tpl — страница адресов
    • download.tpl — страница файлов для скачивания
    • edit.tpl — страница редактирования личной информации покупателя
    • forgotten.tpl — страница восстановления забытого пароля покупателя
    • login.tpl — страница входа / регистрации покупателя
    • newsletter.tpl — страница E-Mail рассылки
    • order_info.tpl — страница просмотра заказа
    • order_list.tpl — страница истории заказов
    • password.tpl — страница изменения пароля
    • register.tpl — страница регистрации
    • return_form.tpl — страница оформления возврата товара
    • return_info.tpl — страница с информацией об определённом возврате
    • return_list.tpl — страница с информацией о совершённых возвратах
    • reward.tpl — страница бонусных баллов
    • transaction.tpl — страница истории финансовых операций покупателя
    • voucher.tpl — страница подарочных сертификатов
    • wishlist.tpl — страница закладок
  • mail
    • Письмо о подтверждении
  • module
    • Здесь находятся файлы установленных различных модулей, редактировать можно из админ-панели Дополнения -> Модули
  • payment
    • Варианты и способы оплаты заказа
  • product
    • category.tpl — вывод группы товаров
    • manufacturer_info.tpl — товары по производителю
    • manufacturer_list.tpl — списком всех производителей
    • product.tpl — вывод одного товара;
    • review.tpl — вывод отзыва о товаре
    • search.tpl — поиск и результаты поиска;
    • special.tpl — выбор специальных предложений
    • compare.tpl — страница сравнения товаров

Для создание собственного шаблона, то есть для редактирования default-шаблона Вам не придется изменить весь шаблон и все файлы. Их можно менять по мере редактирования и по мере необходимости.

Позиции для модулей

  • content_top.tpl — верх страницы
  • content_bottom.tpl — низ страницы
  • column_left.tpl — левая колонка
  • column_right.tpl — правая колонка

Позиции в OpenCart

Начало работы

Любой макет шаблона разделен по блокам, то есть присутствуют такие блоки как шапка, левый блок, правый блок, подвал и все.

Для нашего шаблона тоже поступим так, открываем файл header.tpl и начинаем редактирование, сам процесс редактирования не описать, так как нужно на примере создаваемого шаблона показать.

Таким образом открываем все файлы из папки common по очереди и изменяем по соответствии макету. И конечно же Вам придется владеть языками верстки такими как HTML и CSS.

Внимание

Наверное у вас в макете будут нарисованы еще какие то модули в левых и правых блоках макета, чтоб их создать или редактировать необходимо найти схожий модуль в интернете и установить.

Потом после того как установили модуль переходим в директорию modules находим файл нужной директории и редактируем.

content_top.tpl, content_bottom.tpl, column_left.tpl и column_right.tpl это всего лишь позиции в шаблоне на OpenCart, в этих файлах только метод вызова модулей в эти позиции, редактировать их тоже нужно, но не бойтесь если там не найдете нужного файла модуля

P.S Статья будет обновляться, если есть какие то вопросы пищите в комментариях

Кастомизация OpenCart с помощью модуля html и bootstrap

Привет друзья! Сегодня хочу поделиться тем, как вставить html код в opencart и кастомизировать главную страницу интернет-магазина. Делать мы это будем на дефолтном шаблоне. Я предпочитаю работать с русифицированной сборкой OpenCart под названием OcStore. Хотя OcStore это не официальный релиз, но все же, мне нравится эта сборка, так как она адаптирована под русскоязычный рынок.

Используя стандартный модуль html, мы выведем два блока в шаблоне. Один будет баннером с картинкой на всю его ширину, с текстом и нарисованной в фотошопе кнопкой «Подробнее». Этот блок сделаем кликабельным, и ссылка может вести на карточку товара, акционный товар или категорию. Куда вам будет лучше, туда и поставите свою ссылку. Получится вот такой результат.

Второй текстовый блок html opencart представляет собой ряд на всю ширину шаблона с тремя колонками. В каждой колонке будет иконка со шрифта font-awesome, заголовок третьего уровня и параграф с текстом. Такой модуль html дает возможность оптимизировать главную страницу opencart под приоритетные вашему бизнесу поисковые запросы. Выбираете важные ключевые слова из своего семантического ядра, гармонично вставляете их и окружаете небольшим текстом. Такой текстовый блок в html opencart даст отличную возможность для поисковой оптимизации сайта. У меня получился вот такой seo-блок.

Итак, если вам интересно как вставить свой html код в opencart, то читаем далее.

Делаем seo оптимизацию с помощью модуля html

Итак, в консоли управления заходим в меню «Дополнения» и выбираем модуль «HTML содержимое». Жмем на кнопку «Редактировать». В открывшейся странице мы видим поля, которые нужно заполнить:

  1. Название модуля (будет отображаться в админке, для вас);
  2. Заголовок модуля (будет отображаться на сайте, для пользователей);
  3. Описание (html содержимое opencart);
  4. Статус (после редактирования нужно включить).

Переделываем OpenCart в CMS сайта-визитки, или OpenCart «витрина» style

Меня часто спрашивают, как превратить CMS интернет-магазина OpenCart в обычную витрину без возможности покупок, регистрации etc. То есть чтобы на этом движке можно было организовать аналог сайта-визитки, но с витриной товаров.

OpenCart очень распространенная в наших широтах CMS, в основном из-за простоты кода и понятной структуры каталогов в движке, в отличии от PrestaShop, где чуть сложнее разобраться, или Magento, где вообще черт ногу сломит (обещали 2-ю версию сделать намного проще), что позволяет довольно быстро начинающему создателю сайтов разобраться в системе и переделать ее под себя.

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

И так начнем. Все действия проводились на сборке ocStore 1.5.4.1, но больших отличий от 1.5.1.3, 1.5.3.1, 1.5.5.1 не наблюдается, так что вы можете пробовать на других версиях движка. Все действия желательно проводить на свежеустановленом движке, дабы не нарушить правки кода, если они были до этого. И естественно не вздумайте проделывать все махинации на рабочем проекте в интернете, только локалка или тестовый домен, иначе рискуете уложить рабочий проект! Я обязан был это написать, так как статью будут читать не только многоуважаемые хабраюзеры, а и новички, забредшие сюда из ПС, которые тут же полезут к себе на сайт править все подряд.

Немного теории. OpenCart построен на модели MVC (Model-View-Controller). Model содержит функционал по работе с БД. Находится по адресу /catalog/model и /admin/catalog/model . View – это шаблон, то есть та часть, которая отвечает за вывод данных в браузер. Находится по адресу /catalog/view и /admin/catalog/view . Controller – обрабатывает данные из model и формирует данные для view. Находится по адресу /catalog/controller и /admin/catalog/controller . Все, что мы будем делать, относится только к шаблону, так что все действия будем проводить с view.

Часть 1. Фронт-энд

Для начала отключим ненужные функции, такие как язык и валюта. В админ-панели идем по пути Система – Локализация – Языки и удаляем английский язык. Далее идем в Система – Локализация – Валюты и удаляем евро и рубль, так чтоб осталась одна валюта – доллар. Можно оставить и рубль, но сначала придется ее поставить валютой по умолчанию. Можно, конечно попытать свое счастье в удалении и последней валюты, но тогда мы увидим красивую надпись на красном фоне, глаголящую «Валюту нельзя удалить, поскольку она назначена по умолчанию!». Да в прочем она нам и не мешает.

Далее давайте уберем с шапки корзину, поиск, вход/регистрацию и ссылки под ними. Идем по пути /catalog/view/theme/default/template/common/header.tpl и удаляем строки 52-70:

Топ-пост этого месяца:  Категории функций — Классы — WordPress

На освободившееся место можно добавить телефон, skype, icq, email, live support, адрес и другие средства коммуникации. Да в принципе все, что пожелаете. Как это сделать, я думаю, писать не стоит – с принципами блочной верстки все знакомы, а если не знакомы, то в интернете полно материала по данной теме.

Теперь взглянем на главную. Что нам здесь не нравится:

  • Слайдшоу
  • Рекомендуемые
  • Производители

Сначала отключим слайдшоу. Идем в Дополнения – Модули – Слайдшоу и удаляем единственный баннер, который там есть.

Далее у нас на главной висит модуль Рекомендуемые товары, вот его то мы и будем использовать в качестве витрины, поэтому для красоты переименуем его в «Витрина». Идем по пути
/catalog/language/russian/module/featured.php и меняем «Рекомендуем» на «Витрина». Теперь нам нужно переделать вывод самого модуля. Идем по пути /catalog/view/theme/default/template/module/featured.tpl и удаляем строки 11-23:

Этим мы отключили показ цены, рейтинга товара, а так же кнопку Купить. Кому нужен рейтинг товаров, может оставить строки 20-22.

Теперь увеличим картинки товаров в модуле, уж очень они мелкие. Идем в Дополнения – Модули – Рекомендуемые и ставим размер картинок равным 140.

Далее идет модуль Карусель, в котором показываются лого производителей со ссылками на страницу производителя. Если у вас много производителей и вы хотите показывать информацию о них, то можно этот модуль оставить. Ну а если же он не нужен, то идем в Дополнения – Модули – Карусель и удаляем баннер Производители.

Теперь главная у нас выглядит так:

Далее идем в категории. Для начала сменим размер картинок товаров. Идем в Система – Настройки – Мой Магазин – Изображения и меняем размер изображения в списке товаров на 140. Далее поставим режим отображения Сетка по умолчанию. Идем по пути /catalog/view/theme/default/template/product/category.tpl и в 179 строке меняем list на grid:

Далее нам надо убрать цену, кнопку покупки и ссылки В закладки и В сравнение. В этом же файле убираем стоки 77-97:


Вроде бы все, но после сохранения у нас на месте бывших элементов появились загадочные надписи “null”. Это скрипт выбора list/grid отдает теперь уже пустые строки. Поэтому удаляем строки 117-119:

Еще в категориях можно убрать надпись «В этой категории нет товаров». Это нужно тогда, когда вы будете вставлять текст (описание категорий), допустим О нас, Наше портфолио, Наши партнеры, Сотрудничество etc. и соответственно в этих разделах не будет товаров, то будет появляться эта, никому не нужная надпись. Так что в этом же файле убираем строку 104:

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

Аналогично убираем лишнее в сравнении товаров. Идем по пути /catalog/view/theme/default/template/product/compare.tpl и убираем строки 35-46:

Теперь идем на страницу товара. Для начала убираем ненужные Бонусные баллы и Наличие. Идем по пути /catalog/view/theme/default/template/product/product.tpl и убираем строки 30-33, оставляя в конце 33-й строки закрывающий тег :

Далее там же уберем цену. Убираем строки 34-57:

Убираем так же кнопку Купить, количество, добавление в закладки и в сравнение. Убираем строки 204-218:

Теперь страница товара выгладит так:

Остался футер. Идем по пути /catalog/view/theme/default/template/common/footer.tpl и убираем строки 29-37:

Этим мы убрали блок Личный Кабинет в футере. На его место можно добавить твиттер ленту или же вконтакте/фейсбук плагин, в прочем все, что прийдется по вкусу.

Вот и все. Теперь можно добавить пафосный текст на главной с помощью модуля Приветствие и создавать свои пункты меню, переход по которым будет открывать статьи, как в обычном сайте-визитке.

В данном примере все товары перекочевали в раздел Наша продукция.

С фронт-эндом закончено.

Часть 2. Бек-энд

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

Записки инженера

Доступным языком заметки по IT технологиям

Добавляем новую страницу (схему) в OpenCart

Иногда возникает потребность в создание новой страницы или схемы под OpenCart, под страницей я буду понимать новую связку файла представления (.tpl) и контроллера (php).

Как пример мы хотим сделать страницу, где будет выводиться все последние поступления. Это будет пустая страница типа home.tpl, в админпанели OpenCart мы установим стандартный модуль «Последние» и добавим его на вывод в наш новую схему.

Итак создаем новую страницу или схему в CMS OpenCart

Первым делом создадим директорию latest по адресу catalog\controller. Заходим в нее и создаем php файл контроллера, назовем его также, т.е. latest.php

Внутри контроллера пропишем

Это стандартный контроллер для шаблона home.tpl, изменили мы только название класса с «ControllerCommonHome» на «ControllerLatestLatest» и строки с
«/template/common/home.tpl» на «/template/latest/latest.tpl».

Для страницы где выводиться последние поступления это будет достаточно, по сути мы создаем клон шаблона common/home.tpl.

Далее создаем файл представления для нашей страницы, переходим в catalog/view/theme/имя_вашей_темы/template

и создаем одноименную директорию, как и в контроллере, т.е. «latest». Переходим в нее и создаем файл шаблон latest.tpl. Наполняем его содержимым, т.к. мы создаем клон home.tpl, то наполним его идентичным содержимым, т.е.

Переходим в панель администратора, далее в Система->Дизайн->Схема. Добавляем новую схему с именем «Поступления» и указываем путь к контроллеру нашей новой страницы, т.е. к «latest/latest».

Если мы хотим чтобы на нашей страницы выводились новые поступления, мы должны разрешить модулю «Последние» отображаться на страницы «Поступления». Для этого заходим в Дополнения->Модули и напротив модуля «Последние» нажимаем изменить, после чего выбираем схему «Поступления», положение вверх страницы и статус «Включено».

Проверяем, вводим в строке браузера http://s-engineer.ru/index.php?route=latest/latest (s-engineer.ru — в случае локального расположенния OpenCart, иначе доменное имя вашего сайта), должно все открыться без ошибок.

Теперь добавим переменную с ссылкой на наш шаблон. Для этого открываем контролер шаблона в котором хотим что бы была видна данная ссылка и добавляем следующие строки

Например, это может быть контроллер представления header.tpl, т.е. catalog\controller\common\header.php

Теперь в файле представления header.tpl будет видна переменная $latest с ссылкой, мы можем ее использовать таким образом

При нажатие на данную ссылку, мы перейдем на нашу новую схему или страницу.

Человек с ником Noir, подсказал как можно создать отдельную страницу без правки кода.
Думаю, это будет полезно разместить здесь.

Если же просто нужно вывести на отдельной странице какой-то модуль или модули (ну, например, захотел один клиент иметь отдельную страницу «Каталог», где выводятся главные категории магазина не менюшкой, а в виде блоков с картинками, заголовками и кратким описанием) — так вообще никакой код писать писать не надо.
Создал новую схему, не привязывая ее к контроллеру, там прописал нужный модуль в нужной позиции, создал новую статью в информации, привязал к ней в «дизайне» созданную схему — и все дела: модуль вылез в нужном месте статьи, статья имеет администрируемые заголовок, ЧПУ ссылку и метаданные. Дела ровно 2 минуты, клиент счастлив.

Вам будет интересно:

Буду признателен если вы поделитесь данным постом

  1. Funny пишет:

Отличная статья. коротко и о главном. Спасибо.

10 баллов из 5! Огромное спасибо автору статьи!

Шикарно! Спасибо большое, очень подробно.

может пригодится чуваки замутили, платные модули, бесплатно ссылка

Большое спасибо, толк!

Да, страница получается но выводится с:
Запрашиваемая страница не найдена.

Можно только модули к ней прикрутить, а сообщение это все равно выдается.

Если «страница не найдена», значит вы сделали что то не так. В качестве результат вы должны получить новую страница без контента (т.е. с шапкой с колонками и с подвалом)

с версией 1.5.5.1.1 такая штука пройдет?

Должно, принцип от версий не меняется. Если что то не получиться, напишите, посмотрим

Все получилось, спасибо. Добавила не в header, а в футер ссылку. Такой вопрос как поменять ссылку http://мой-домен/index.php?route=latest/latest на ЧПУ типа http://мой-домен/novinki?

Честно говоря, не пробывал ЧПУ на OpenCart.

Но, насколько я знаю в OpenCart есть встроенная подержка ЧПУ (система -> настройки -> сервер). В рунете пишут что данная реализация с проблемами, появляется дублирование страниц (т.е. два урла на одну страницу, пример: мой_домен/карандаши/белый_карандаш и мой_домен/белый_карандаш), что для поисковиков не есть хорошо.

Думаю копать надо к модулям … поищите модуль реализующий ЧПУ, на примете могу сказать «SeoPro».

ЧПУ для всех страниц прописаны.
Имеется в виду для той страницы, которая создается в этой статье.

Хм…
для ЧПУ вы используете модуль SEO Pro?

Да. Стоит модуль SEO Pro. ЧПУ прописывала для каждой страницы через админ панель. А как быть с этой страницей, в админке ведь ее нет, как быть?

Я проработаю этот вопрос, установлю SEO Pro и посмотрю что можно сделать.

В любом случае спасибо за статьи. Такой полной информации мало в сети.

Олеся, зайдите в phpmyadmin и сделайте следующий запрос:

INSERT INTO oc_url_alias (query, keyword) VALUES (‘latest/latest’, ‘novinki’);

Модуль «SEO Pro» хранит свои настройки в базе данных, а если быть точнее то в таблице url_alias. Т.к. мы нашу новую страницу в админ. панели не видим, то мы добавим настройки напрямую в таблицу. Это должно сработать.

novinki — ЧПУ
lastest/latest — адрес на который привязываем выше указанный ЧПУ

Выдает #1054 — Unknown column ‘‘latest’ in ‘field list’

Странно…
Такого рода ошибки возникают только при использование SELECT и UPDATE.
Олеся, вы уверены что вы вели
INSERT INTO oc_url_alias (query, keyword) VALUES (‘latest/latest’, ‘novinki’);

Кстати, проверьте как у вас называется таблица url_alias, у меня допустим таблица с префиксом «oc», т.е. «oc_url_alias».

Получилось. Запрос скопировала от сюда — выдавало #1054 – Unknown column ‘‘latest’ in ‘field list’, потом заново перепечатала запрос в блокноте и вставила — результат добавлена 1 строка. Видимо ошибка была в коде — недопустимый символ.
Еще раз спасибо. Отняла у вас столько времени.

Ошибка скорее всего была в кавычках, забыл вам сказать, при копирование напрямую с сайта это может возникать.

Давайте под итожим для будущих посетителей, теперь при запросе «доменное_имя_сайта/novinki» открывается наша новая схема latest.tpl?

Всегда пожалуйста, Олеся я всегда вас рад видеть на моем блоге «записки инженера».

Да. Теперь страница имеет ЧПУ “доменное_имя_сайта/novinki”. Еще раз спасибо. Буду применять ваши знания.

здравствуйте.
шикарные у вас статьи …конечно я мало что понимаю(в опенкарте совсем зеленый), но за 3 дня поисков в интернете ничего более глубокого не нашел. хотя и это не совсем то, что я ищу.
не подскажете как вывести на главной все товары с пагинацией? но не через стандартные модули.
отличные уроки по opencart*у, жаль что мало.
спасибо.
п.с. капча не работает: семь*…=21 …ввожу 3 – выдает ошибку

Спасибо за комментарий.
Про OpenCart в рунете сам ничего найти не мог) информации очень мало, поэтому решил написать сам.
Спасибо, что сообщили про капчу. Оставил только сложение и вычитание, вроде все работает.

Под пагинацией вы имеете ввиду нумерацию страниц? Если мне память не изменяет, то она вроде есть по умолчанию, количество товаров на странице (и соотвествено количество страниц) настраивается в панели администратора.

да, под пагинацией понимаю нумерацию страниц. если это есть, то подскажите где найти в админке? ато кроме как через модули акций, последних и рекомендованных ничего не нашел, а они не подходят

спасибо за скорый ответ — аж как-то не привычно)

Всегда пожалуйста, но у меня к сожалению на текущий момент нет развернутого OpenCart-а под рукой, чтобы я мог посмотреть и сориентировать вас. Я постараюсь завтра или послезавтра посмотреть и ответить вам.

Установить кол-во товаров, при превышение которых появляется пагинация (нумерация страниц) можно в админ панели, по адресу:
Система -> Настройки, далее жмете “Изменить”, в появившейся окне выбираете вкладку “Опции” и в поле “Витрина” указываете кол-во товаров.

По поводу, вывода товара. Вы можете установить, что-бы по умолчанию товар всегда выводился сеткой. Для этого надо открыть файл представления “catalog\view\theme\default\template\product\category.tpl” и в самом конце (примерно на

194 строке), вам нужно закомментировать:

if (view) <
display(view);
> else <
display(‘list’);
>

после чего добавьте, следующею строку:

Все, теперь товар по-умолчанию всегда будет выводиться сеткой.

спасибо конечно, но опять не то. меня интересовало как на главной вывести все товара магазина не через «рекомендуемые» или «последнее».
после длительных и безрезультатных поисков было принято решение плюнуть на все и сделать по другому.
спасибо за участие)

Спасибо за комментарий. Извиняюсь, я наверное не понял Вас)

Прошу прощения за мелочность, но в самом конце статьи тег указан со свойствами тега . У тега не бывает alt=»» w > И нет закрывающего тега .
Мелочь, а кто-то может и не заметить

Дмитрий, спасибо за замечание, вы кому то спасли бессонную ночь).

Реально полезная статья, до этого 2 смотри ничего понятно не было

Здраствуйте схему я создал подключил прописал
при добавлении модуля категории и прочего работает отображаеться а вот если в схему добавть код то он не отображаеться почему ?

Добрый день Арсен, ошибки есть какие нибудь?

Если я скажу: «что дело, скорее всего в коде, которым вы наполняете схему», то это проблему вам не решит. Надо смотреть конкретику.

Пока копался вручную в опенкарте, разобрался как он работает. Хорошая cms, понять код не составляит труда, если человек знаком c MVC, чего не скажешь о битриксе. Отправлю эту страницу в закладки, чтобы подглядывать, если что-то забуду, спасибо!

Спасибо за комментарий!

Мне очень приятно осознавать, что мои посты кому то приносят пользу.

Да, 1С-Битрикс придерживается идеологии MVC скажем «не так сильно» как OpenCart, но изучать её тоже можно.
Для ознакомления, рекомендую пост Обзор 1С-Битрикс, принцип работы

Я немного знаком с битриксом, в нём тоже приходилось копаться, но сделать что-то в опенкарте для меня намного быстрее чем в битриксе. Спасибо за ссылку) Может пригодится.

В сентября начну выкладывать статьи о микроконтроллерах и интерфейсах. Если вас интересует данные «железные» темы, всегда рад вас здесь видеть…

//Если вас интересует данные “железные” темы, всегда рад вас здесь видеть…
Я бы с радостью, очень интересует это направление, спасибо, но возможно у меня просто не будет времени, диплом, госы, вот что меня ждёт очень скоро ��

Удачной сдачи Государственных экзаменов и защиты диплома!

Низкий поклон автору! 2 дня искал что-то подобное, а оказалось как два байта об асфальт! Надо было замутить библиотеку, т.е. статьи, но отдельной страницей. тут всё просто, делаем новую страницу и лепим на неё модуль Новости. Вуа-ля! СПАСИБО.
Только есть маленький нюанс, хотелось бы узнать как сделать в 100% похожим дизайн на все страницы? А то немного новая страничка скривилась, сместилась чуток влево. Может сам что накосячил, может где-то в стилях или других кодах уже раньше покопался…
Я уже полностью код из файла home.tpl в latest.tpl один к одному скопировал. Что еще отвечает за прорисовку?


Пишу вдогонку. Тысяча извинений, проблема не в вашем коде. Просто страница Библиотека открывается как и положено по аналогии ваших ссылок (я заменил на своё) …biblioteka/biblioteka, а вот потом при кликах открываются страницы от модуля Новости, например http://www.fentezi43.ru/index.php?route=information/news&news_ > Значит тут собака порылась, именно в новостном модуле.
Еще раз СПАСИБО за статью!

Спасибо вам Alex, за то что читаете мои посты =)

Топ-пост этого месяца:  Как автоматизировать подготовку и публикацию текстов для коммерческого сайта

Добрый день.
Прошу прощения, а как добавить мета-теги description и keywords в новосозданную страницу? Я имею ввиду description отличный от главной страницы.
Спасибо

Юрий здравствуйте. Вы можете управлять мета-тегами description и keywords через контроллер вашей новой страницы. Откройте контроллер (для нашего примера «catalog\controller\latest\latest.php»), найдите строки :

$this->data[‘description’] = $this->document->getDescription();
$this->data[‘keywords’] = $this->document->getKeywords();

присвойте данным переменным ваши значения, например

$this->data[‘description’] = «Ваше описание для данной страницы»;
$this->data[‘keywords’] = «Ваши ключи для вашей страницы»;

Давно я таких легких и подробных статей не видел. Всё разжевано и по полочкам. ОГРОМНОЕ ВАМ СПАСИБО!

Есть не большой вопрос.

Как можно сделать перелистывание страниц на информационных страницах? Например как в продукции. Если товаров больше 10, то следующая страница и т.д. А то создал пустую страницу, загрузил туда фотки, и страница получилась очень длинной. Какую часть кода, можно перенести из продукции, чтобы на информационных страницах, тоже работал ограничитель длинны страницы?

Добрый вечер Юрий, спасибо что читаете мои статьи.

Я посмотрю как решить эту проблем, если она окажется технически не сложна, постараюсь в понедельник (1 декабря) дать рекомендацию.
Сейчас с набегу не скажу) что да как

Доброе утро Юрий, я посмотрел, вашу задачу сразу не решить. Я могу вам предложить свои услуги по внедрению «пагинатора» (перелистывание страниц) на страницу информация, если заинтересуетесь пишите комментарий и я отвечу по электронной почте.

Здравствуйте. Внимательно изучил эту статью, но так и не смог решить свой вопрос. Мне необходимо создать новый макет/схему на основе product.tpl. Задача состоит в том, чтобы в карточке товара выбирать дизайн product_new.tpl и отображение товара происходило по данным нового макета.
Беда в том, что внесенные изменения в новый макет, после назначения его какому-то продукту не отображаются…

Добрый день Артем!

А почему бы просто не подправить шаблон «product.tpl» под ваш новый макет? И не создавать новый.

Дело в том, что для разных товаров должна быть разная схема вывода. И стандартный “product.tpl” уже используется…

Огромное спасибо! Все просто и легко оказывается) Не могла вывести все категории на одной странице с созданием пункта меню. А это оказывается просто) Спасибо!

Всегда спасибо Ирина, заходите еще =)

$this->data[‘description’] = $this->document->getDescription();
$this->data[‘keywords’] = $this->document->getKeywords();

Но у вас в “catalog\controller\latest\latest.php” нет
$this->data[‘description’] = $this->document->getDescription();
$this->data[‘keywords’] = $this->document->getKeywords();
Что тогда делать?

Я хочу вывести акционные товары отдельной страницей. для этого я создал директорию special по адресу catalogcontroller, в ней и создал php файл контроллера- special.php
document->setTitle($this->config->get(‘config_title’));
$this->document->setDescription($this->config->get(‘config_meta_description’));
$this->data[‘heading_title’] = $this->config->get(‘config_title’);
if (file_exists(DIR_TEMPLATE . $this->config->get(‘config_template’) . ‘/template/special/special.tpl’)) <
$this->template = $this->config->get(‘config_template’) . ‘/template/special/special.tpl’;
$this->data[‘template’] = $this->config->get(‘config_template’);
> else <
$this->template = ‘default/template/special/special.tpl’;
>

$this->children = array(
‘common/column_left’,
‘common/column_right’,
‘common/content_top’,
‘common/content_bottom’,
‘common/footer’,
‘common/header’
);
$this->response->setOutput($this->render());
>
>
?>

Далее создал файл представления для страницы catalog/view/theme/shadow/template и создал директорию, как и в контроллере, т.е. «special». в ней создал файл special.tpl

в панели администратора, Система->Дизайн->Схема добавил новую схему с именем «Скидки» и указал путь т.е. к «special/special». http://[email protected]@@av.ru/с…ial/special.php

По идее для вывода на новой странице новых акций, нужно разрешить модулю «Акции» отображаться на странице «Скидки». Для этого в Дополнения->Модули напротив модуля «Акции» изменяем и выбираем схему «Скидки».

Я хотел чтобы на новую страницу акционных товаров выходить можно было щелкнув на картинку. для этого я вставил в header.tpl ссылку на http://[email protected]@@av.ru/i…special/special картинкой Skidki4.png

При нажатие на данную картинку переходим на новую страницу.

НО в ней нет акционных товаров. Подскажите уважаемые гуру что не так? [email protected]@@rav.ru

Добрый день Александр!

Трудно ответить, в чем загвоздка.
Александр попробуйте выбрать для данного модуля уже «стандартную» схему, посмотрите работает ли он вообще.

Хм… удаленно так проблему не решить.

Если вам интересно я могу взяться за данную проблему, стоимость работы мы можем обсудить по электронной почте.

Здравствуйте, у вас такие хорошие уроки! Может сможете подсказать, как добавить вывод последних новостей из блога в футере? Т к , стандартными средствами их можно расположить только в теле контента

Добрый день Людмила!

Я посмотрел, для того что-бы добавить новую позицию для модуля, нужно отредактировать контроллер footer.php и footer.tpl. Редактировать кода не мало и я пока такие вещи делать не пробовал, поэтому советовать не буду, что бы не вводить в заблуждение.
В будущем обязательно напишу статью по данному вопросу!

Доброго дня. Спасибо еще раз огромное за статьи. у меня opencart 2.0.3.1 (последняя версия) сделал все как сказали) но вот в последнем этапе не появляется переменная с новой страницей в header.tpl. а так все работает и страницу открывает. то есть не получается в головной странцие вывести на нее ссылку. подскажите в чем может быть проблема. заранее спасибо.

Добрый день Сергей!

Возможно в данной свежей версии, разработчики сделали какие-то изменения и объявляют переменную ссылку

другим образом.
Посмотрите как дело обстоит с другими переменными ссылками на другие страницы в вашей версии… в header.php должны быть обязательно ссылки на другие схемы.

Спасибо за ответ. скажите пожалуйста вновь создаваемая катеригория родительская товаров, где располагается ее html код. создал категорию, а внизу выходит кнопка, которая мне не нужна с текстом желаю удалить ее, но никак не могу на код выйти где он находится в браузере путь пишет: «http://ocstore/index.php?route=product/category&path=71» никак это path=71 не могу найте. Спасибо заранее. Opencart стоит 2.0.3.1 напомню.

означает, что необходимо выполнить файл контроллера product/category (файл category.php) и ему передать параметр path с значением 71. Если вы откроете контроллер product/category (файл category.php), то в коде мы найдет фрагмент

который как раз принимает значений данного параметр и присваивает какой-то переменной.

Здравствуйте!
Помогите решить задачу. Мне нужно, чтобы для определенной категории применялся макет, отличный от дефолтного, т.е. другой файл шаблона .tpl. Сделала все по Вашей инструкции, только клонировала не home, а product/category. В header.php переменную прописала. В новый .tpl внесла изменения, но они не отображаются на странице нужной категории, там все как и было, в адресной строке http://имя-домена.рф/index.php?route=product/category&path=66. А если в браузере напрямую ввести маршрут, страница отображается правильно, шапка, подвал, даже модули показывает, но пишет «Категория не найдена». OpenCart последней версии.
Спасибо)

Добрый день Светлана!

Интересная задача, с таким дело пока еще не имел.

Попробуйте в панели администратора зайти в категории, далее дизайн и выбрать вашу схему (который вы создали). Если не получится, то придется поколдовать с контроллером (т.е. с header.php файлом),
нужно добавить условие которое проверяет что за текущая категория, далее если для неё нужно вывести другой шаблон, прописываем

$this->template = $this->config->get(‘config_template’) . ‘/template/product/ваш_новый_шаблон.tpl’;

$this->template = $this->config->get(‘config_template’) . ‘/template/product/category.tpl’;

Если нужна помощь, мы можем договориться, я могу отработать данный прием у себя и вам уже выдать готовую пошаговую инструкцию.

Здравствуйте! Спасибо за ответ)
Первый способ сразу попробовала, не работает.
Насчет контроллера — почему header.php, а не category.php? Ваша мысль понятна, но сама реализовать не смогу, только если с Вашей помощью). Можно узнать, каковы условия Вашей помощи?
Еще такой момент — OpenCart последней версии сам делает ЧПУ для страниц, без дополнительных модулей. У страниц с новым шаблоном также должны быть ЧПУ, введенные в админке для данной категории.
Вообще мне нужна возможность делать разные «превьюшки» товаров для разных категорий. Может, Вы знаете какой-то другой способ?

Да, я опечатался)
Только править нужно product.php, этот контроллер принимает запрос и далее передает данные в шаблон category.tpl.

Светлана давайте я вам напишу на почту и дальше мы будем вести диалог там.

Я тут пока писала Вам ответ, случайно решила свою задачу другим способом)) Мне нужно было для разных категорий выводить разные «превью» одного и того же товара. Можно было конечно использовать разные category.tpl шаблоны, но встал вопрос — как выводить «превью» в модулях — Рекомендуемые, Акции и т.д.? В общем, я в админке в поле UPC товара ввожу номер (пусть будет называться номер шаблона вывода «превью»), а в файле category.tpl уже вывожу кусок кода, отвечающий за вывод «превью», в зависимости от значения этого поля. И во всех модулях можно сделать аналогично. Как думаете, пойдет такой способ? Вроде работает)

Не подскажете, можно ли этот кусок кода вынести в отдельный файл, а в шаблонах его подключать? Как это делается? Я php совсем не знаю. Или может ссылку дадите, где посмотреть?

Вам большое спасибо, у Вас замечательный сайт, много полезного нашла. Если еще будут сложные вопросы, обращусь к Вам))

Добрый день Светлана!

Я думал вам надо выводить разные оформленные страницы для каждой категории, походу я вас не правильно понял)

Ну а почему и нет, идея интересная, я как понимаю вам придется создавать несколько копий одного продукта с разными превью?
Светлана выложите в комментарий этот кусок кода, в будущем это возможно кому-то поможет.

Кусок вынести можно и подключить его с помощью include (см. официальную документацию). Другое дело, что это работать будет, но не будет считаться грамотным, все логику работы лучше выносить в контроллер, а потом уже результат выдавать в шаблон, который просто вырисовывает.

Спасибо вам большое Светлана, заходите и спрашивай, я всегда постараюсь помочь =)

День добрый.
Не могу понять. Задача: сделать страницу информации без хедера/футера/сайдбаров. Создал новые контроллер new.php (копия home.php) и шаблон empty.tpl(без хедера и тд) В админке>схемы создал новый макет, в которой прописал путь к шаблону empty/empty
Создаю новую статью и задаю ей эту схему. Но почему-то страница все равно отображается по шаблону information/information.tpl
1.5.4.1

Добрый день Роман!

Скорее всего проблема в контроллере, найдите строки

if (file_exists(DIR_TEMPLATE . $this->config->get(‘config_template’) . ‘/template/common/home.tpl’)) <
$this->template = $this->config->get(‘config_template’) . ‘/template/common/home.tpl’;
> else <
$this->template = ‘default/template/common/home.tpl’;

Что у вас указанно вместо home.tpl ?

Здравствуйте, спасибо. Я нашел решение, как посадить новость на другой шаблон.

if (file_exists(DIR_TEMPLATE . $this->config->get(‘config_template’) . ‘/template/information/information_’ . $information_id . ‘.tpl’)) <
$this->template = $this->config->get(‘config_template’) . ‘/template/information/information_’ . $information_id . ‘.tpl’;
> elseif (file_exists(DIR_TEMPLATE . $this->config->get(‘config_template’) . ‘/template/information/information.tpl’)) <
$this->template = $this->config->get(‘config_template’) . ‘/template/information/information.tpl’;
> else <
$this->template = ‘default/template/information/information.tpl’;
>

Спасибо, что привели решение, возможно это кому-то поможет.

Буду рад вас видеть на s-engineer.ru

Тоже хочу сказать автору, огромное спасибо! И в свою очередь поделиться решением своей проблемы с ЧПУ (я создала новую схему, и в базу данных в таблицу oc_url_alias внесла свои значения, но ничего не произошло, ссылки остались старыми). Как оказалось, опенкарт имеет внутреннее кеширование запросов, я зашла в папку system/cashe/ нашла файл cache.seo_pro, и очистила его содержимое — в итоге все ссылки встали на свои места

Спасибо вам Елена!

Ваш совет обязательно кому-то пригодиться.

Всегда вас рад видеть на s-engineer.ru!

ОГРОМНОЕ СПАСИБО ЗА ПОДРОБНЫЙ И ПРОСТОЙ, ПОНЯТНЫЙ ОТВЕТ НА ЧАСТОИНТЕРЕСУЕМЫЙ ВОПРОС. Делала по аналогии — акции!

Всегда пожалуйста Елена!
Заходите еще =)

Помогите решить.
Задача — необходимо вывести содержимое, например, из файла temp.tpl в любое место на сайте. Т.е. создал и с помощью вывести это в любом месте любого шаблоне опенкарта.

Если есть урок по данной теме, буду признателен.

Добрый вечер Алексей, я написал вам на почту.

Здравствуйте! Спасибо за толковое разъяснение.

Есть задача. В админпанели во вкладке Клиенты есть таблица со списком клиентов:
Имя клиента | E-mail | Группа клиентов | Статус | IP | Дата |

Мне нужно вывести эту таблицу на вновь созданной странице latest/latest.

Я попытался прописать путь к этой странице в контроллере customer.php (вставка после строки 668):
$this->response->setOutput($this->load->view(‘default/template/latest/latest.tpl’, $data));

В файл latest.tpl я добавил строки, выводящие эту таблицу, взятые из файла customer_list.tpl

Но в итоге выходит ошибка Notice: Undefined variable:…..

Подскажите, пожалуйста, что не так.

доброй ночи! Спасибо огромное за статью!
Интересует следующий вопрос — как в схеме сайта удалить определенный блок? допустим футер.
Огромное вам спасибо

Доброе утром Роман.

За отображение той или иной схеме сайта отвечает tpl файл представления (который лежит в catalog/view/theme/имя_вашей_темы/template), если вы, хотите удалить какой либо блок, то делать это нужно там. Вам нужно найти файл представления интересующей вас схемы.
Как это сделать? Могу ошибаться, но напротив схемы есть кнопка «изменить», нажимая её, вы увидите что за контроллер отвечает за данную схему. Например latest/latest, т.е. в папке latest есть файл контроллера latest.php. В контроллере найдите следующий фрагмент
$this->template = ‘default/template/latest/latest.tpl’ ;
Здесь как раз, описан, какой файл представления отвечает за данный контроллер (соответственно и схему). Открываете его и редактируйте.

Если возникнут проблемы, пишите я всегда отвечу.

Создать новую схему получилось без проблем — визуально она тоже выглядела как и home. В файле контроллера latest.php — лежит путь к файлу latest.tpl — когда я начинаю редактировать файл .tpl визуально ничего не изменяется, схема моего latest.tpl полностью дублирует и Вашу, данные действия пытаюсь сделать на голой версии opencart 1.5.6.4.

Как я пытаюсь тестировать данные изменения. Я создал новую категорию через админ панель, применил к ней созданную схему latest и пытаюсь редактировать файл latest.tpl, заливая новую версию на хост — но ничего не меняется, даже если файл latest.tpl оставить полностью пустым. Всегда выводится текст и картинки, которые я залил при создании категории.

Кстати, как показывает firebag — по сути нету отдельно хедера, нету отдельно футера у базовой темы опенкарт, все сидит в теге body, и дивы класса body имеют id «header», «footer» і тд…

Но задача стоит прежняя убрать лже-футер и лже-хедер с новой схемы — чтобы выводился только нужный текст.
Очень прошу помощи, где я мог допустить ошибку?
Беспокоит так же и то, что когда я оставляю полностью чистым файл latest.tpl — визуальных изменений нет.
Спасибо большое за помощь!

Главная ошибка может крыться на поверхности — новосозданную схему можно применить к категории, которая была создана через админ панель?

Суть проблемы.
В пункте Дизайн, в подпункте Макеты, далее Главная я установил модули: Слайдер, Новые поступления, Хиты продаж, Рекомендуемые, Карусель производителей.
Шаблон Дефолтный, тестирую на локалке.
На главной странице отображается только Слайдер, а далее
— Новые поступления, причем только 5 шт товара
— Хиты продаж — 4 шт

Но не выводятся — рекомендованные товары, хотя очередность установлена данного модуля — 3

Вопрос. Подскажите, как исправить или изменить количество товаров в модуле «Новые поступления», сейчас 5 шт, нужно хотяб для симметрии — 8 шт и почему не отображается модуль — «Рекомендованные», хотя при дефолтных демо товарах все отображалось, а после удаления оных рекомендованные товары перестали отображаться на главной, хотя в связях товара я все указал?

Честно говоря, с версией 2.0 я работал мало. Так что сразу не подскажу, но могу попытаться помочь в персональном порядке, если интересует дайте мне знать и мы спишемся по e-mail.

версия у меня 2.1.0.0


Много подобных решений реализации задуманного встретилось в сети. Возможно с Вашего источника, блогеры сделали рерайт. Но не суть. Благодарю за материал ваш.. Но есть вопрос следующий:

1.Как сделать вывод последних товаров на отдельную страницу, только из конкретной категории.
2.И как разделить такие страницы вывода последних товаров (правильно создать клоны), где на каждую выводится последние поступления только из своей категории, не из всех?

Добрый день Андрей =)

Я завтра отвечу на ваш вопрос, сегодня много дел.

Интересно насчет рерайта моей статьи, можете дать ссылочки?

Не то чтобы один к одному изложено всё у других, просто все примеры, которые «нагуглил» — они с таким же примером, где для случая создания дополнительной страницы latest (последние поступления) те же правки.. Но окружающий текст другой. Так что всё норм.

Топ-пост этого месяца:  API Google-диаграмм (Google Charts). Установка и настройка

Я вот добился вывода товаров из нужных категорий, правкой SQL-запроса в этом файле: …/catalog/model/catalog/product.php
Запрос в самой функции lastes — public function getLatestProducts($limit), где он чуть ниже, но урезан где не менялось

SELECT p.product_id….
…………………
AND p2c.category_id NOT IN (57,88,87,86,85,84,)
…………..

Вот этот «AND p2c.category_id» указывает далее какие ID-категории пропускать, а из всех остальных выводить. Можно там и прировнять конкретную категорию, но как-то на мой взгляд нелепо это лезть, и менять запрос таким образом. И надо было сначала увидеть все эти ненужные ID из базы данных..
Короче вроде то, но не то. Так как нужен вывод 3 разных групп последних товаров, на страницы-клоны lastes

Добрый вечер Андрей, не было времени ответить ранее.

Статьи мои походу действительно воруют, погуглил, примеры на многих сайтах совпадают, печаль…

Прировнять конкретную категорию не вариант.
Вы можете добавить свой аргумент в функцию getLatestProducts, в теле этой функции добавьте код, который в зависимости от параметра будет делать нужный вам SQL запрос.

В контроллере, вы уже можете передать в функцию getLatestProducts параметр указывающий какие категории надо вывести.

Если есть трудности в реализации, я могу помочь, дайте мне знать.

И снова Здравствуйте.. )

Я тоже отвлёкся немного по другим вопросам, потому и позже отвечаю по своей проблеме. Да, снова не получилось реализовать задуманное. Возможно по невнимательности где-то запутался.

Делал дубликат такой же страницы «Последние поступления», можно сказать клон от новосозданной «latest» по описанному вами способу. Всё в новых директориях лежит «latest-dub», в схемах(админка) всё новое отображается, но ничего не выводит на сайт этим клоном.
Да и вообще, а как второй клон (копия первого «latest») будет работать, если он зависит от модуля «Последние», где и указывается тащить всё в подряд, а не из конкретной категории.. Там в админке этого модуля только указывается количество, размеры картинок, и схему указать.

Добрый день Андрей =)

Вам нужно выводить в каждом клоне latest товары определенной категории?

Совершенно верно! Появилась потребность из всех 20 категорий магазина, выделить(подчеркнуть) три популярных. И сделать ссылки на них в слайдере.
Но нужно чтобы последние поступившие товары в эти свои категории, каждые выводились на отдельные страницы «latest», «latest2», «latest3″…

Думаю, тут надо подправить модуль latest, добавить в его настройку (в панели управления) опцию какую категорию (или категории) выводить.

Я делал алогичные вещи (добавлял дополнительные опции), но для панели управления сайтом, а не модуля.
ссылка на пост

Попробуйте сделать по аналогии, но для модуля.
Если не получиться, вы всегда можете обратиться ко мне, напишите мне и мы свяжемся по почте.

Добрый день! Такой вопрос, мне нужно на отдельно созданной странице выводить ссылки на другие страницы, причём ссылки при каждой загрузке страницы должны выводиться разные. Я создал массив php, куда включил все ссылки нужные мне, и завёл переменную которая рандомно выводит ссылки из массива.
Вопрос: как можно вывести эту переменную на фронт, на конкретную страницу? Я так понимаю что массив можно хранить в information.php, а вот как вывести переменную на определенную страницу?

За вывод чего-либо на отдельной страницы отвечают ptl шаблоны (которые называются «представления»). За какие страницы отвечает какой шаблон можно посмотреть в моей статье
Структура OpenCart.

Реализация «вывести рандомный элемент» лучше сделать в контроллере (файлы php), который подготовит данные (выберет рандомный элемент) и передаст его шаблону.

OpenCart построен по методологии MVC, Тимур, если возникают трудности с пониманием о чем я написал выше, то рекомендую сначала разобраться с MVC.

А как сделать что бы не выводило из конкретной категории, у меня на главной странице отображается модуль, мне нужно что бы из категории с ид 90 не отображался товар, как сделать?

Добрый день Веломир.

Надо работать с массивом products в контроллере category, у меня сейчас в обрез время, но я могу вам помочь.
Если интересует моя услуга дайте мне знать и мы спишемся по e-mail.

А подскажите как сделать схему чтоб в категории вверху выводилась статья потом был каталог и после ниже продолжение статьи. например как здесь http://e******.ru

Добрый день Evgen, ссылку которую вы дали заблокирована.

В вашем случае нужно править контроллер… возьмите как образец контроллер /catalog/controller/information/information.php, он отвечает за страницу с выводом статьи.
Вам нужно взять его функционал и поместить в контроллер вашей страницы. Например если вы хотите для главной, то контроллер следующий /catalog/controller/common/home.php.
Далее нужно доработать файл представление home.tpl, добавить в него вывод статьи.

Evgen, если нужна более подробная консультация, свяжитесь со мной на странице услуги

хочу сделать такую же страницу, выдает ошибку
на строку 6: Notice: «Indirect modification of overloaded property ControllerPagesNewinshop::$data has no effect in … pages/newinshop.php адрес сайта

Данную статью я писал для Opencat до версий 2.0.

Делайте по аналогии с другими страницами вашей версии OpenCart, если будут проблемы вы можете связаться со мной на странице услуги

Огромное спасибо за статью. Это именно то, что искала. Буду пробовать.

Спасибо вам Алиса, что вы читаете меня =)

Спасибо, за статью! А как быть с языками?
Переключение между языками со страницы /index.php?route=latest/latest не работает.

Добрый день DizeL!

Хм, переключение должно работать в любом случае.
А что происходит, выскакивает ошибка?

Добрый день! Нет ошибки. Вопрос, как перевести текст модуля на другой язык.

Пока решил, вставив в контроллер схемы текст простой страницы (в моем случае с 10 ID):

$this->language->load(‘information/information’);
$this->load->model(‘catalog/information’);
$information_ > $information_info = $this->model_catalog_information->getInformation($information_id);
$this->data[‘description’] = html_entity_decode($information_info[‘description’], ENT_QUOTES, ‘UTF-8’);

DizeL, посмотрите как это реализовано в других контроллерах, я сейчас загружен работой.
Идея такова, что текст модуля хранится в его языковых файлах, которые для разных языках располагаются в разных директориях.

Например для контроллера \catalog\controller\information\contact.php
языковые файлы находятся в директориях
catalog\language\russian\information\contact.php — для русского языка
и
catalog\language\english\information\contact.php — для английского языка

При переключение языка, используется тот или иной языковой файл.

Здравствуйте. Все делаю по инструкции, а страница все-равно пустая остается. И еще в файле представления header.tpl нигде не могу найти свою переменную. Может где-то допущена ошибка? Помогите разобраться.

Так, страница заполнилась, нашла ошибку. А ссылку сделать, как Вы описываете так и не получилось.

Добрый день Gals!

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

Я мало понимаю в этом, но кажется у меня все точно также как и в других ссылках прописано.:(

Добрый день Gals! Ответил Вам на почтовый ящик.

Добрый день. По Вашей схеме создал страницу, присвоил ей url и разместил в ней модуль категорий, выглядит так http://www.my_domain/store. Но при переходе с нее в категорию или продукт получается http://www.my_domain/category/product. Подскажите, пожалуйста, как добиться вида в строке http://www.my_domain/store/categoty/product?

Добрый день Виктор.

Вам нужно смотреть в сторону ЧПУ. Погуглите как работать с ЧПУ на OpenCart, на данном сайте я эту тему не освещал.

Спасибо, интересное решение, но у меня не заработало… делал по аналогии только не с home а с categoriy . К сожалению наверное нужно чтото еще править, т.к. title не изменились по новой схеме а остались старые……

Добрый вечер. Странно..
Попробуйте, посмотрите как у вас реализован контроллер и представление для category, делайте все по аналогии как в ваших файлах в OpenCart.
Когда я писал данный пост, OpenCart версии 2.x еще не было.

Как добавить текст на домашнюю страницу в opencart?

Я хочу иметь возможность добавлять / редактировать текст из раздела администратора, который появится на главной странице. Лучшим решением, вероятно, будет добавление новой страницы (Каталог> Информация), но как мне добавить текст с этой страницы, чтобы он появлялся на главной странице?

Другое решение — использовать модуль Welcome для добавления текста, но это не так интуитивно понятно для владельца магазина. Он должен пойти в Модули> Добро пожаловать> Редактировать. Я хотел бы, чтобы вся информационная страница была в одном месте (Каталог> Информация)

Как добавить перевод в текстовые строки opencart?

Я использую Opencart v2.3.0.2.
Нужна помощь в том, как перевести некоторые текстовые строки. Я добавил несколько ссылок в свое меню заголовка (в /catalog/view/theme/mytheme/template/common/header.tpl), используя код:

Также я добавил новые строки и переводы в footer.php (/catalog/language/ru-ru/common/footer.php):

Наконец я зарегистрировал эти переводы в header.php (/catalog/controller/common/header.php):

Ведь когда я открываю страницу с меню, она показывает только перевод текста для $text_products , В других местах это показывает только значение text_novosti а также text_onas , Но вместо этого следует показать переводы из footer.php.

Помогите пожалуйста, как правильно отображать переводы?

Или, может быть, есть способ жестко кодировать тексты на основе языка? Что-то вроде:

Переделываем OpenCart в CMS сайта-визитки, или OpenCart «витрина» style

Меня часто спрашивают, как превратить CMS интернет-магазина OpenCart в обычную витрину без возможности покупок, регистрации etc. То есть чтобы на этом движке можно было организовать аналог сайта-визитки, но с витриной товаров.

OpenCart очень распространенная в наших широтах CMS, в основном из-за простоты кода и понятной структуры каталогов в движке, в отличии от PrestaShop, где чуть сложнее разобраться, или Magento, где вообще черт ногу сломит (обещали 2-ю версию сделать намного проще), что позволяет довольно быстро начинающему создателю сайтов разобраться в системе и переделать ее под себя.

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

И так начнем. Все действия проводились на сборке ocStore 1.5.4.1, но больших отличий от 1.5.1.3, 1.5.3.1, 1.5.5.1 не наблюдается, так что вы можете пробовать на других версиях движка. Все действия желательно проводить на свежеустановленом движке, дабы не нарушить правки кода, если они были до этого. И естественно не вздумайте проделывать все махинации на рабочем проекте в интернете, только локалка или тестовый домен, иначе рискуете уложить рабочий проект! Я обязан был это написать, так как статью будут читать не только многоуважаемые хабраюзеры, а и новички, забредшие сюда из ПС, которые тут же полезут к себе на сайт править все подряд.

Немного теории. OpenCart построен на модели MVC (Model-View-Controller). Model содержит функционал по работе с БД. Находится по адресу /catalog/model и /admin/catalog/model . View – это шаблон, то есть та часть, которая отвечает за вывод данных в браузер. Находится по адресу /catalog/view и /admin/catalog/view . Controller – обрабатывает данные из model и формирует данные для view. Находится по адресу /catalog/controller и /admin/catalog/controller . Все, что мы будем делать, относится только к шаблону, так что все действия будем проводить с view.

Часть 1. Фронт-энд

Для начала отключим ненужные функции, такие как язык и валюта. В админ-панели идем по пути Система – Локализация – Языки и удаляем английский язык. Далее идем в Система – Локализация – Валюты и удаляем евро и рубль, так чтоб осталась одна валюта – доллар. Можно оставить и рубль, но сначала придется ее поставить валютой по умолчанию. Можно, конечно попытать свое счастье в удалении и последней валюты, но тогда мы увидим красивую надпись на красном фоне, глаголящую «Валюту нельзя удалить, поскольку она назначена по умолчанию!». Да в прочем она нам и не мешает.

Далее давайте уберем с шапки корзину, поиск, вход/регистрацию и ссылки под ними. Идем по пути /catalog/view/theme/default/template/common/header.tpl и удаляем строки 52-70:

На освободившееся место можно добавить телефон, skype, icq, email, live support, адрес и другие средства коммуникации. Да в принципе все, что пожелаете. Как это сделать, я думаю, писать не стоит – с принципами блочной верстки все знакомы, а если не знакомы, то в интернете полно материала по данной теме.

Теперь взглянем на главную. Что нам здесь не нравится:

  • Слайдшоу
  • Рекомендуемые
  • Производители

Сначала отключим слайдшоу. Идем в Дополнения – Модули – Слайдшоу и удаляем единственный баннер, который там есть.

Далее у нас на главной висит модуль Рекомендуемые товары, вот его то мы и будем использовать в качестве витрины, поэтому для красоты переименуем его в «Витрина». Идем по пути
/catalog/language/russian/module/featured.php и меняем «Рекомендуем» на «Витрина». Теперь нам нужно переделать вывод самого модуля. Идем по пути /catalog/view/theme/default/template/module/featured.tpl и удаляем строки 11-23:

Этим мы отключили показ цены, рейтинга товара, а так же кнопку Купить. Кому нужен рейтинг товаров, может оставить строки 20-22.

Теперь увеличим картинки товаров в модуле, уж очень они мелкие. Идем в Дополнения – Модули – Рекомендуемые и ставим размер картинок равным 140.

Далее идет модуль Карусель, в котором показываются лого производителей со ссылками на страницу производителя. Если у вас много производителей и вы хотите показывать информацию о них, то можно этот модуль оставить. Ну а если же он не нужен, то идем в Дополнения – Модули – Карусель и удаляем баннер Производители.

Теперь главная у нас выглядит так:

Далее идем в категории. Для начала сменим размер картинок товаров. Идем в Система – Настройки – Мой Магазин – Изображения и меняем размер изображения в списке товаров на 140. Далее поставим режим отображения Сетка по умолчанию. Идем по пути /catalog/view/theme/default/template/product/category.tpl и в 179 строке меняем list на grid:

Далее нам надо убрать цену, кнопку покупки и ссылки В закладки и В сравнение. В этом же файле убираем стоки 77-97:

Вроде бы все, но после сохранения у нас на месте бывших элементов появились загадочные надписи “null”. Это скрипт выбора list/grid отдает теперь уже пустые строки. Поэтому удаляем строки 117-119:

Еще в категориях можно убрать надпись «В этой категории нет товаров». Это нужно тогда, когда вы будете вставлять текст (описание категорий), допустим О нас, Наше портфолио, Наши партнеры, Сотрудничество etc. и соответственно в этих разделах не будет товаров, то будет появляться эта, никому не нужная надпись. Так что в этом же файле убираем строку 104:

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

Аналогично убираем лишнее в сравнении товаров. Идем по пути /catalog/view/theme/default/template/product/compare.tpl и убираем строки 35-46:

Теперь идем на страницу товара. Для начала убираем ненужные Бонусные баллы и Наличие. Идем по пути /catalog/view/theme/default/template/product/product.tpl и убираем строки 30-33, оставляя в конце 33-й строки закрывающий тег :

Далее там же уберем цену. Убираем строки 34-57:

Убираем так же кнопку Купить, количество, добавление в закладки и в сравнение. Убираем строки 204-218:

Теперь страница товара выгладит так:

Остался футер. Идем по пути /catalog/view/theme/default/template/common/footer.tpl и убираем строки 29-37:

Этим мы убрали блок Личный Кабинет в футере. На его место можно добавить твиттер ленту или же вконтакте/фейсбук плагин, в прочем все, что прийдется по вкусу.

Вот и все. Теперь можно добавить пафосный текст на главной с помощью модуля Приветствие и создавать свои пункты меню, переход по которым будет открывать статьи, как в обычном сайте-визитке.

В данном примере все товары перекочевали в раздел Наша продукция.

С фронт-эндом закончено.

Часть 2. Бек-энд

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

Добавить комментарий