Готовый перевод First Things First: Opencart Check List / Opencart. C чего начать: How is the OpenCart framework structured?

Как OpenCart организован? / Как я добавляю/изменяю контент сайта?

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

OpenCart состоит из двух составляющих. "Админка" ("admin") и "Каталог" ("catalog"). Сразу видно за что каждая из частей приложения отвечает. Самое приятное, что обе составляющие имеют одинаковые функциональность и структуру. Существует также общий набор файлов, используемых обеими частями, и называемый "Библиотека" ("library"). Файлы в библиотеке используются для создания структур данных и глобальных переменных, необходимых для основы корзины, а также для вызова любой из общих функций.

Для простоты примера, я буду работать с каталогом.

Каждая из страниц, которую вы видите, состоит из трёх основных частей.

1. Контроллер

Это главный файл, в котором осуществляются вычисления, запросы к данным и прочая магия. Это так же то место, где переменным присваиваются значения, устанавливается язык и потом передаётся переменным отображения, что бы мы увидели результат. Файлы контроллера находятся в папке "controller" каталога и админки в зависимости от того, что вы собираетесь изменить.

2. Язык

Это то, где устанавливается язык. Языковые файлы состоят из пар "константа=значение". Имя константы используется в коде и никогда не меняется. Меняются только значения в соответствии с языком. Например:

АНГЛИЙСКИЙ: $_['text_review'] = 'Product Review';

ИСПАНСКИЙ: $_['text_review'] = 'De Revisión de Producto';

РУССКИЙ: $_['text_review'] = 'Обзор товара';

Заметьте, что левая часть (константа) не меняется. Меняется только значение для выбранного языка. Языковые файлы находятся в языковой папке.

3. Отображение

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

$view->set('entry_page', $language->get('entry_page'));
// Присваивает переменной с именем "entry_page" значение,
// взятое из языкового файла и соответствующее константе
// с именем аналогичным имени переменной.

Файлы отображения находятся в папке темплейтов. Просто, не правда ли?

Соберём это всё вместе

Большинство файлов контроллеров имеют довольно интуитивные имена, например вот как они выглядят:

product.php = страница товара

cart.php = страница корзины

home.php = главная страница

Для начала мы изменим наш файл контроллера:

ПРАВИМ: catalog/controller/home.php

ИЩЕМ:

Код: Выбрать весь

$view->set('text_latest', $language->get('text_latest'));

ПОСЛЕ ДОБАВЛЯЕМ:

Код: Выбрать весь

$view->set('text_holiday', $language->get('text_holiday'));

ГОТОВО!

Теперь мы добавим это новое значение в наш языковый файл:

ПРАВИМ: catalog/language/english/controller/home.php

Затем мы создадим новую константу и присвоим ей значение

ИЩЕМ:

Код: Выбрать весь

$_['text_latest'] = 'Latest Products';

ПОСЛЕ ДОБАВЛЯЕМ:

Код: Выбрать весь

$_['text_holiday'] = 'Happy Holidays to your family from www.MySite.com!';

ГОТОВО!

И наконец мы добавим её в файл отображения

ПРАВИМ: catalog/template/default/content/home.tpl

ИЩЕМ:

Код: Выбрать весь

ДОБАВИТЬ ПОСЛЕ:

Код: Выбрать весь

ГОТОВО!

Теперь загрузите свою главную страницу и вы должны увидеть своё новое сообщение.

Это всё!

Переведено на Нотабеноиде
http://notabenoid.org/book/12910/41981

Настройки

Готово:

89.28% КП = 1.0

Непереведённые фрагменты будут пропущены.