SyntaxCode Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) Доброго времени суток ! Делаю модуль блоков для OP2 Структура такая: 1. Картинка || 2. Заголовок || 3. Текст || 4. Ссылка || 5. Сортировка Соответствен создал таблицу в БД box_img_id int(3) box_id int(3) link varchar(255) image varchar(255) title varchar(255) description varchar(255) sort int(3) Сам ступор у меня с моделями и передачей в БД в какой папке писать модель для модуля Змінено 30 вересня 2015 користувачем ArtenPitov Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) В модулях используется коробочная модель extension/module. Смотрите модуль HTML, он маленький и там все понятно. Змінено 30 вересня 2015 користувачем halfhope Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 В модулях используется коробочная модель extension/module. Смотрите модуль HTML, он маленький и там все понятно. Если я правильно понял, тогда логика такая => Добавляем свою модель => admin\model\extension\my_box.php Потом подключаем в контроллере => $this->load->model('extension/my_box'); Ну и оставляем сами действия с модулем $this->load->model('extension/module'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('html', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } Строго не судите я только учусь ) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 Никто не судит) Нет, все не так. Сейчас попытаюсь объяснить. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Буду очень признательный Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) UPD Боже мой, походу я так давно не спал. Вы все правильно подумали и правильно сделали с model/module/my_box.php. Я же как-то пропустил мимо глаз весь текст . Подумал, что нужно создать обычный модуль OpenCart, для которого не используется модель. Ну раз уж я написал я отправлю: В OpenCart (в админке) у модуля есть всего 2 файла - файл контроллера и файл шаблона причем создание и редактирование происходит тоже с помощью них. Контроллер как мы уже знаем, обрабатывает инфу из моделей и передает/выводит в шаблон. Контроллер модуля админки должен: сохранить настройки получить данные для модуля, чтобы потом передать их в view (при редактировании) сгенерировать данные "по умолчанию" (при создании нового модуля) Все это делается в одной функции index используя встроенные модели. 1. Для сохранения данных используется вот такой стандартный код (на примере модуля my_box): if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('my_box', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } При отправке формы на этот же адрес он создаст новый модуль или отредактирует существующий, если передан module_id 2, 3. Получение данных модуля(редактирование) и установка данных "по умолчанию", если данные модуля не были получены(создание нового). Создание нового модуля и редактирование отличается лишь тем, что в при редактировании в адресной строке передается module_id. Если module_id объявлен, то идет получение данных модуля с этим module_id. И в шаблон передаются данные модуля для формы. Если не объявлен, то ставим данные по умолчанию вместо данных модуля. Это все можно сделать вот так: // Проверка module_id и получение данных модуля if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $module_info = $this->model_extension_module->getModule($this->request->get['module_id']); } // Проверка данных для кадого поля формы if (isset($this->request->post['name'])) { $data['name'] = $this->request->post['name']; //В случае ошибки (если они у вас обрабатываются в функции validate) ставим в форму данные, которые отправили, чтобы их не потерять } elseif (!empty($module_info)) { $data['name'] = $module_info['name']; //Если данные модуля получены, то ставим их } else { $data['name'] = ''; //Если не получены, то ставим данные по умолчанию } Надеюсь понятно объяснил. Создайте модель model/module/my_box.php, обычно туда все модели для модулей кладем. Потом можно будет загрузить: $this->load->model('module/my_box'); Змінено 30 вересня 2015 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) В модулях используется коробочная модель extension/module. Смотрите модуль HTML, он маленький и там все понятно. Змінено 30 вересня 2015 користувачем halfhope Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 В модулях используется коробочная модель extension/module. Смотрите модуль HTML, он маленький и там все понятно. Если я правильно понял, тогда логика такая => Добавляем свою модель => admin\model\extension\my_box.php Потом подключаем в контроллере => $this->load->model('extension/my_box'); Ну и оставляем сами действия с модулем $this->load->model('extension/module'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('html', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } Строго не судите я только учусь ) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 Никто не судит) Нет, все не так. Сейчас попытаюсь объяснить. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Буду очень признательный Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) UPD Боже мой, походу я так давно не спал. Вы все правильно подумали и правильно сделали с model/module/my_box.php. Я же как-то пропустил мимо глаз весь текст . Подумал, что нужно создать обычный модуль OpenCart, для которого не используется модель. Ну раз уж я написал я отправлю: В OpenCart (в админке) у модуля есть всего 2 файла - файл контроллера и файл шаблона причем создание и редактирование происходит тоже с помощью них. Контроллер как мы уже знаем, обрабатывает инфу из моделей и передает/выводит в шаблон. Контроллер модуля админки должен: сохранить настройки получить данные для модуля, чтобы потом передать их в view (при редактировании) сгенерировать данные "по умолчанию" (при создании нового модуля) Все это делается в одной функции index используя встроенные модели. 1. Для сохранения данных используется вот такой стандартный код (на примере модуля my_box): if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('my_box', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } При отправке формы на этот же адрес он создаст новый модуль или отредактирует существующий, если передан module_id 2, 3. Получение данных модуля(редактирование) и установка данных "по умолчанию", если данные модуля не были получены(создание нового). Создание нового модуля и редактирование отличается лишь тем, что в при редактировании в адресной строке передается module_id. Если module_id объявлен, то идет получение данных модуля с этим module_id. И в шаблон передаются данные модуля для формы. Если не объявлен, то ставим данные по умолчанию вместо данных модуля. Это все можно сделать вот так: // Проверка module_id и получение данных модуля if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $module_info = $this->model_extension_module->getModule($this->request->get['module_id']); } // Проверка данных для кадого поля формы if (isset($this->request->post['name'])) { $data['name'] = $this->request->post['name']; //В случае ошибки (если они у вас обрабатываются в функции validate) ставим в форму данные, которые отправили, чтобы их не потерять } elseif (!empty($module_info)) { $data['name'] = $module_info['name']; //Если данные модуля получены, то ставим их } else { $data['name'] = ''; //Если не получены, то ставим данные по умолчанию } Надеюсь понятно объяснил. Создайте модель model/module/my_box.php, обычно туда все модели для модулей кладем. Потом можно будет загрузить: $this->load->model('module/my_box'); Змінено 30 вересня 2015 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 В модулях используется коробочная модель extension/module. Смотрите модуль HTML, он маленький и там все понятно. Если я правильно понял, тогда логика такая => Добавляем свою модель => admin\model\extension\my_box.php Потом подключаем в контроллере => $this->load->model('extension/my_box'); Ну и оставляем сами действия с модулем $this->load->model('extension/module'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('html', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } Строго не судите я только учусь ) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 Никто не судит) Нет, все не так. Сейчас попытаюсь объяснить. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Буду очень признательный Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) UPD Боже мой, походу я так давно не спал. Вы все правильно подумали и правильно сделали с model/module/my_box.php. Я же как-то пропустил мимо глаз весь текст . Подумал, что нужно создать обычный модуль OpenCart, для которого не используется модель. Ну раз уж я написал я отправлю: В OpenCart (в админке) у модуля есть всего 2 файла - файл контроллера и файл шаблона причем создание и редактирование происходит тоже с помощью них. Контроллер как мы уже знаем, обрабатывает инфу из моделей и передает/выводит в шаблон. Контроллер модуля админки должен: сохранить настройки получить данные для модуля, чтобы потом передать их в view (при редактировании) сгенерировать данные "по умолчанию" (при создании нового модуля) Все это делается в одной функции index используя встроенные модели. 1. Для сохранения данных используется вот такой стандартный код (на примере модуля my_box): if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('my_box', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } При отправке формы на этот же адрес он создаст новый модуль или отредактирует существующий, если передан module_id 2, 3. Получение данных модуля(редактирование) и установка данных "по умолчанию", если данные модуля не были получены(создание нового). Создание нового модуля и редактирование отличается лишь тем, что в при редактировании в адресной строке передается module_id. Если module_id объявлен, то идет получение данных модуля с этим module_id. И в шаблон передаются данные модуля для формы. Если не объявлен, то ставим данные по умолчанию вместо данных модуля. Это все можно сделать вот так: // Проверка module_id и получение данных модуля if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $module_info = $this->model_extension_module->getModule($this->request->get['module_id']); } // Проверка данных для кадого поля формы if (isset($this->request->post['name'])) { $data['name'] = $this->request->post['name']; //В случае ошибки (если они у вас обрабатываются в функции validate) ставим в форму данные, которые отправили, чтобы их не потерять } elseif (!empty($module_info)) { $data['name'] = $module_info['name']; //Если данные модуля получены, то ставим их } else { $data['name'] = ''; //Если не получены, то ставим данные по умолчанию } Надеюсь понятно объяснил. Создайте модель model/module/my_box.php, обычно туда все модели для модулей кладем. Потом можно будет загрузить: $this->load->model('module/my_box'); Змінено 30 вересня 2015 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 Никто не судит) Нет, все не так. Сейчас попытаюсь объяснить. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Буду очень признательный Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) UPD Боже мой, походу я так давно не спал. Вы все правильно подумали и правильно сделали с model/module/my_box.php. Я же как-то пропустил мимо глаз весь текст . Подумал, что нужно создать обычный модуль OpenCart, для которого не используется модель. Ну раз уж я написал я отправлю: В OpenCart (в админке) у модуля есть всего 2 файла - файл контроллера и файл шаблона причем создание и редактирование происходит тоже с помощью них. Контроллер как мы уже знаем, обрабатывает инфу из моделей и передает/выводит в шаблон. Контроллер модуля админки должен: сохранить настройки получить данные для модуля, чтобы потом передать их в view (при редактировании) сгенерировать данные "по умолчанию" (при создании нового модуля) Все это делается в одной функции index используя встроенные модели. 1. Для сохранения данных используется вот такой стандартный код (на примере модуля my_box): if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('my_box', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } При отправке формы на этот же адрес он создаст новый модуль или отредактирует существующий, если передан module_id 2, 3. Получение данных модуля(редактирование) и установка данных "по умолчанию", если данные модуля не были получены(создание нового). Создание нового модуля и редактирование отличается лишь тем, что в при редактировании в адресной строке передается module_id. Если module_id объявлен, то идет получение данных модуля с этим module_id. И в шаблон передаются данные модуля для формы. Если не объявлен, то ставим данные по умолчанию вместо данных модуля. Это все можно сделать вот так: // Проверка module_id и получение данных модуля if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $module_info = $this->model_extension_module->getModule($this->request->get['module_id']); } // Проверка данных для кадого поля формы if (isset($this->request->post['name'])) { $data['name'] = $this->request->post['name']; //В случае ошибки (если они у вас обрабатываются в функции validate) ставим в форму данные, которые отправили, чтобы их не потерять } elseif (!empty($module_info)) { $data['name'] = $module_info['name']; //Если данные модуля получены, то ставим их } else { $data['name'] = ''; //Если не получены, то ставим данные по умолчанию } Надеюсь понятно объяснил. Создайте модель model/module/my_box.php, обычно туда все модели для модулей кладем. Потом можно будет загрузить: $this->load->model('module/my_box'); Змінено 30 вересня 2015 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Буду очень признательный Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) UPD Боже мой, походу я так давно не спал. Вы все правильно подумали и правильно сделали с model/module/my_box.php. Я же как-то пропустил мимо глаз весь текст . Подумал, что нужно создать обычный модуль OpenCart, для которого не используется модель. Ну раз уж я написал я отправлю: В OpenCart (в админке) у модуля есть всего 2 файла - файл контроллера и файл шаблона причем создание и редактирование происходит тоже с помощью них. Контроллер как мы уже знаем, обрабатывает инфу из моделей и передает/выводит в шаблон. Контроллер модуля админки должен: сохранить настройки получить данные для модуля, чтобы потом передать их в view (при редактировании) сгенерировать данные "по умолчанию" (при создании нового модуля) Все это делается в одной функции index используя встроенные модели. 1. Для сохранения данных используется вот такой стандартный код (на примере модуля my_box): if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('my_box', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } При отправке формы на этот же адрес он создаст новый модуль или отредактирует существующий, если передан module_id 2, 3. Получение данных модуля(редактирование) и установка данных "по умолчанию", если данные модуля не были получены(создание нового). Создание нового модуля и редактирование отличается лишь тем, что в при редактировании в адресной строке передается module_id. Если module_id объявлен, то идет получение данных модуля с этим module_id. И в шаблон передаются данные модуля для формы. Если не объявлен, то ставим данные по умолчанию вместо данных модуля. Это все можно сделать вот так: // Проверка module_id и получение данных модуля if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $module_info = $this->model_extension_module->getModule($this->request->get['module_id']); } // Проверка данных для кадого поля формы if (isset($this->request->post['name'])) { $data['name'] = $this->request->post['name']; //В случае ошибки (если они у вас обрабатываются в функции validate) ставим в форму данные, которые отправили, чтобы их не потерять } elseif (!empty($module_info)) { $data['name'] = $module_info['name']; //Если данные модуля получены, то ставим их } else { $data['name'] = ''; //Если не получены, то ставим данные по умолчанию } Надеюсь понятно объяснил. Создайте модель model/module/my_box.php, обычно туда все модели для модулей кладем. Потом можно будет загрузить: $this->load->model('module/my_box'); Змінено 30 вересня 2015 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) UPD Боже мой, походу я так давно не спал. Вы все правильно подумали и правильно сделали с model/module/my_box.php. Я же как-то пропустил мимо глаз весь текст . Подумал, что нужно создать обычный модуль OpenCart, для которого не используется модель. Ну раз уж я написал я отправлю: В OpenCart (в админке) у модуля есть всего 2 файла - файл контроллера и файл шаблона причем создание и редактирование происходит тоже с помощью них. Контроллер как мы уже знаем, обрабатывает инфу из моделей и передает/выводит в шаблон. Контроллер модуля админки должен: сохранить настройки получить данные для модуля, чтобы потом передать их в view (при редактировании) сгенерировать данные "по умолчанию" (при создании нового модуля) Все это делается в одной функции index используя встроенные модели. 1. Для сохранения данных используется вот такой стандартный код (на примере модуля my_box): if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { if (!isset($this->request->get['module_id'])) { $this->model_extension_module->addModule('my_box', $this->request->post); } else { $this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post); } $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } При отправке формы на этот же адрес он создаст новый модуль или отредактирует существующий, если передан module_id 2, 3. Получение данных модуля(редактирование) и установка данных "по умолчанию", если данные модуля не были получены(создание нового). Создание нового модуля и редактирование отличается лишь тем, что в при редактировании в адресной строке передается module_id. Если module_id объявлен, то идет получение данных модуля с этим module_id. И в шаблон передаются данные модуля для формы. Если не объявлен, то ставим данные по умолчанию вместо данных модуля. Это все можно сделать вот так: // Проверка module_id и получение данных модуля if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $module_info = $this->model_extension_module->getModule($this->request->get['module_id']); } // Проверка данных для кадого поля формы if (isset($this->request->post['name'])) { $data['name'] = $this->request->post['name']; //В случае ошибки (если они у вас обрабатываются в функции validate) ставим в форму данные, которые отправили, чтобы их не потерять } elseif (!empty($module_info)) { $data['name'] = $module_info['name']; //Если данные модуля получены, то ставим их } else { $data['name'] = ''; //Если не получены, то ставим данные по умолчанию } Надеюсь понятно объяснил. Создайте модель model/module/my_box.php, обычно туда все модели для модулей кладем. Потом можно будет загрузить: $this->load->model('module/my_box'); Змінено 30 вересня 2015 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень
SyntaxCode Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль
afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
SyntaxCode Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0
Recommended Posts