Многим начинающим в познании opencart интересует наверное как бы самому написать модули с нуля. Такой темы я не нашел, есть только косвенные инфо. Если есть опыт с чего начать - поделитесь. Все с нуля... Первое это наверное какие файлы нужны и где находятся. Для админки и для публичного вывода (Визуальный вывод)
Добрый вечер Все зависит от того, что за модуль вы собираетесь создать Для отображения вашего модуля во "фронтэнде (каталоге)" нужно создать файл catalog/view/theme/имя вашей темы/template/module/имя вашего модуля.tpl Для его (вашего модуля) обработки, нужно создать файл catalog/controller/module/имя вашего файла.php Для обмена вашего модуля данными с базой, нужно: - либо создать файл catalog/model/module/имя вашего файла.php - либо подключать файлы в вашем контроллере, и вынимать из них (подключенных файлов) необходимую информацию Для отображения настроек вашего модуля в "бэкэнде (админке)" нужно создать файл admin/view/template/module/имя вашего файла.tpl Для его (вашего модуля) обработки, нужно создать файл admin/controller/module/имя вашего файла.php Для обмена вашего модуля данными с базой, нужно: - либо создать файл admin/model/module/имя вашего файла.php - либо подключать файлы в вашем контроллере, и вынимать из них (подключенных файлов) необходимую информацию P.S. А вообще, если ничего не понимаешь в коде, лучше в него (код) не лезть
$this->document->title = $this->language->get('heading_title'); В чем разница то что выше и то что пониже. Просто выводилась ошибка - если указать верхнее. Поставил то что по ниже все работать начал. $this->document->setTitle($this->language->get('heading_title'));
Могу предположить, что: первый вариант используется в версиях 1.4.х второй вариант используется в версиях 1.5.х
либо создать файл admin/model/module/ Этой папки нет, тогда вручную создать? просто есть папки: catalog design localisation report sale setting tool user. может я не правильно понял. $this->load->model('tool/имя вашего файла.php'); или просто подключить так.
Все правильно, такой папки "по-умолчанию" нет Ну так и задача у вас стоит - создать свой собственный модуль, а что он (модуль) должен делать, и нужно ли создавать файл "модели", или ограничиться подключением уже существующих файлов - это уже вам решать
есть база данных "НАЗВАНИЕ БАЗЫ" в этой базе есть таблица "ТАБЛИЦА". и "СТРОКА" Что важно писать в файле который отвечает за связь с базой. Например будем добавлять в "ТАБЛИЦУ" с "СТРОКА" В файле admin/view/template/module/имя вашего файла.tpl обычные данные с кодом " <td class="left">Ввод данных<input type="text" name="myname" value="" class="mynameclass" /></td> "
Нет тут ничего... Вот простая форма PHP: <div class="content"> <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form_s"><input name="www" type="text" value=""> <a class="button" onclick="$('#form_s').submit();">Выполнить</a> </form> </div> Что надо дописать в файле admin/view/template/module/имя вашего файла.tpl Чтобы добавлялись данные в указанную таблицу и столбец? Как правильнее писать? Код: <?php class ModelCatalogName extends Model { public function addName($) { $this->db->query("INSERT INTO " . DB_PREFIX . "tbl_name"); } } ?>
Для слепого и сонце ето ничего, не в обиду слепым сказанно! во первых без контролера в вашем случае не обойтись. Во 2, addName($) либо передавайте параметр ф-ции через переменную либо уберите ненужное $ в 3, INSERT INTO " . DB_PREFIX . "tbl_name ето что такое вопше, выдернули из чего то и то неправильно ) Хоть бы форму(шаблон) нормально оформили что и куда Вам там передать, потом бы просили о помочи.
А что там не нормально то? просто я начинающий (студент) Вот и не разбираюсь, прошу помочь разобраться. Да я вытащил с другого файла, просто сравнивал с другими файлами. А что за переменная <?php echo $action; ?> откуда она берется? <?php class ModelCatalogName extends Model { public function addName($www) { $this->db->query("INSERT INTO " . DB_PREFIX . "tbl_name"); } } ?> Подключение к MySql в контроллере тоже надо прописать? Если да то как?
Про ООП прочитайте, поймете что такое $this->db->query То есть не надо, конект делается в системе* сам Ето в контролере был прописан адрес етой переменной, а он нужен чтоб дать понять куда отправлять данные формы
В данном шаблоне, код: <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form_s"> будет иметь следующий разбор: <form action="<?php echo $action; ?>" <!-- Редирект на страницу\скрипт, после отправки данных методом--> method="post" <!--который будет выполнен для кнопки--> с id="form_s"> Тоесть, при клике на <a class="button" onclick="$('#form_s').submit();">Выполнить</a> у нас срабатывает отправка из данной формы значения, которое мы ввели тут: <input name="www" type="text" value=""> Для того, что б это форма передавала через контроллер значения, сперва нужно создать индекс, для нашей страницы: <?php class ControllerCatalogName extends Model { public function index() { $this->data['action'] = $this->url->link('catalog/controller/addName'); } public function addName($data) { $this->db->query("INSERT INTO " . DB_PREFIX . "tbl_name"); } } ?>
Вполне вероятно, что свойство "title" в объекте "document" имеет статус "private", соответственно поменять его можно только методомй этого же объекта
Что то у меня каша в голове. Я правильно понимаю последовательность обращений файлов: 1. В первую очередь отправляем данные из файла admin/view/template/module/имя вашего файла.tpl 2. К файлу контроллеру admin/controller/module/имя вашего файла.php 3. А далее к файлу admin/model/tool/имя вашего файла.php (я туда закинул) и только потом добавляет в базу данных? Если так то зачем после 3 пункта еще раз отправлять данные через контроллер? (Может кого то глупый вопрос, просто у меня столько инфо в голове и все смешалось. )
Во первых, грамотней всего, по структуре MVC запросы в\из базы делать в файлк модели, используя функции в контроллере. Во вторых, предлагаю вместо абстрактного срача, перейти к конкретной задаче. Наведите пример того, что нужно реализовать (без фанатизма).
Модуль, чтобы добавлял к продуктам ШИРИНУ ВЫСОТУ И ДЛИНУ (размер одинаковый для всех - коробка) такие поля как length width height , по умолчании там 0. Для таблицы oc_product. Чтобы выбирать категорию и добавлялись только выбранной категории все эти данные. admin/controller/module/volume.php admin/view/template/module/volume.tpl admin/model/tool/volume.tpl
Итак, есть уже наброски... как стержень, создаем файл контроллера, от которого будет отталкиваться как модель, так и файл отображения, так и файл языковых данных... стартуемс: Контроллер: TPL файл: Ладно, уговорили, выложу последний файл - ключ к успеху. ставить по адресу: admin\model\module\volume.php Специально повторюсь, ВСЕ ФАЙЛЫ РАЗЛОЖИТЬ ПО ИХ ПУТЯМ и тогда будет всё работать.
сходи СЮДА тут много вкусных уроков и ПО PHP в частности -> Видеоуроки ->Программирование или Литература -> Языки Программирования Не в обиду сам там много чего скачал...
Как подключить теги которые можно выбрать? Видел еще какие то теги, например [product] Можно использовать теги: {ID} - номер заказа {DATE} - дата заказа {TIME} - время заказа {SUM} - сумма заказа {PHONE} - телефон клиента Все эти теги стандартные opencart или самим придумывать?