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

Для админской части модуля коментов нужно 4 функции:

Начинается модуль всегда так:

<!--?php 
class ModelCommentsComments extends Model {
&lt;/pre&gt;
&lt;p&gt;Схема названия класса такая же, как в названии контроллера.&lt;/p&gt;
&lt;pre lang="php"&gt;
public function getAll () {
		$comments = array();
		$this-&gt;db-&gt;query("CREATE TABLE IF NOT EXISTS " . DB_PREFIX . "comments (
			`id` INT(11) NOT NULL AUTO_INCREMENT,
			`name` VARCHAR(255) NOT NULL,
			`image` VARCHAR(255) NOT NULL,
			`text` TEXT NOT NULL,
			PRIMARY KEY(`id`)
		)");
		$query = $this-&gt;db-&gt;query("SELECT * FROM " . DB_PREFIX . "comments ORDER BY id");
		foreach ($query-&gt;rows as $result) {
			$comments[] = $result;
		}
 
		return $comments;
	}
&lt;/pre&gt;
&lt;p&gt;Функция getAll будет получать из БД все записи:&lt;/p&gt;
&lt;p&gt;Для начала создается массив, куда будем записывать результат.&lt;br ?-->
Затем ключевое для opencart: $this-&gt;db-&gt;query
Это значит, что нужно обратиться к классу Model (так как наш класс наследуется от модели), в ней найти объект db - который имеет в себе функции для безопасного общения с базой. Используется функция query - запрос, в котором аргументами выступает обычный mySql запрос.

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

“Если не существует таблицы префикс_всех_таблиц_вашей_бд_comments, то создать ее. Создать в ней столбцы id name image text с параматрами. Главный ключ – id”

Чтобы научиться писать такие строчки – ищите по словам “синтаксис mysql, примеры”
Эта строчка не будет выполнена, если таблица есть – т.е. при любом кроме первого вызове этой функции.

Сам запрос следует далее

$this-&gt;db-&gt;query("SELECT * FROM " . DB_PREFIX . "comments ORDER BY id");

Опять таки “по человечески”: Выбрать все записи из такой то таблицы, сортируя по id.
И этот результат выборки с базы с помощью цикла foreach разбиваем на строчки и все их помещаем в массив $comments

Остальные функции аналогичны и не особо сложные. Специфики OpenCart нету, сложности могут возникнуть только в запросах к БД.

public function addNew ($name,$image,$text){
		$this-&gt;db-&gt;query("INSERT INTO " . DB_PREFIX . "comments (`name`, `image`, `text`) VALUES
    ('".$name."','".$image."','".$text."')");
	return 'added';
	}
public function updateRow ($id,$name,$image,$text){
		$this-&gt;db-&gt;query("UPDATE " . DB_PREFIX . "comments SET name = '".$name."', image= '".$image."', text = '".$text."' WHERE id = '" . (int)$id . "'");
	return 'updated';
	}
public function deleteRow ($id){
		$this-&gt;db-&gt;query("DELETE FROM " . DB_PREFIX . "comments WHERE id = ".$id);
	return 'deleted';
	}

Таким образом строятся все файлы модели. Это просто функции запросов к БД.
Ниже можно скачать этот файл (переименован в .txt) и прочитать другие части.

Как написать модуль OpenCart (Часть 1)
Как написать модуль OpenCart (Часть 3)
Как написать модуль OpenCart (Часть 4)
comments.txt