First Things First: Opencart Check List / Opencart. C чего начать: How is the OpenCart framework structured?

Владелец перевода установил такие права доступа, что вы не можете просматривать чужие версии перевода здесь.
Английский оригинал Перевод на русский

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

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

(анонимно) 3.12.10 в 5:20

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

(анонимно) 3.12.10 в 5:25

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

(анонимно) 3.12.10 в 5:26

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

(анонимно) 3.12.10 в 5:41

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

(анонимно) 3.12.10 в 5:42

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

(анонимно) 3.12.10 в 5:43

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

(анонимно) 3.12.10 в 5:44

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

(анонимно) 3.12.10 в 5:58

2. Язык

(анонимно) 3.12.10 в 5:59

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

(анонимно) 3.12.10 в 6:02

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

(анонимно) 3.12.10 в 6:04

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

(анонимно) 3.12.10 в 6:04

РУССКИЙ: $_['text_review'] = 'Описание товара';

(анонимно) 3.12.10 в 6:05

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

(анонимно) 3.12.10 в 6:24

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

(анонимно) 3.12.10 в 6:08

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

(анонимно) 3.12.10 в 6:08

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

(анонимно) 3.12.10 в 6:17

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

(анонимно) 3.12.10 в 6:29

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

(анонимно) 3.12.10 в 7:01

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

(анонимно) 3.12.10 в 7:00

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

(анонимно) 3.12.10 в 7:09

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

(анонимно) 3.12.10 в 7:02

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

(анонимно) 3.12.10 в 7:01

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

(анонимно) 3.12.10 в 7:02

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

(анонимно) 3.12.10 в 7:04

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

(анонимно) 3.12.10 в 7:04

ИЩЕМ:

(анонимно) 3.12.10 в 6:35

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

(анонимно) 3.12.10 в 7:05

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

(анонимно) 3.12.10 в 7:05

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

(анонимно) 3.12.10 в 6:35

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

(анонимно) 3.12.10 в 7:05

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

(анонимно) 3.12.10 в 7:06

ГОТОВО!

(анонимно) 3.12.10 в 6:20

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

(анонимно) 3.12.10 в 7:06

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

(анонимно) 3.12.10 в 7:07

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

(анонимно) 3.12.10 в 6:31

ИЩЕМ:

(анонимно) 3.12.10 в 6:31

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

(анонимно) 3.12.10 в 6:59

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

(анонимно) 3.12.10 в 6:37

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

(анонимно) 3.12.10 в 6:32

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

(анонимно) 3.12.10 в 6:59

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

(анонимно) 3.12.10 в 6:34

ГОТОВО!

(анонимно) 3.12.10 в 6:34

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

(анонимно) 3.12.10 в 6:38

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

(анонимно) 3.12.10 в 6:37

ИЩЕМ:

(анонимно) 3.12.10 в 6:39

Следующая страница →

Минутку...