ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 (змінено) В модулях используется коробочная модель extension/module. Смотрите модуль HTML, он маленький и там все понятно. Змінено 30 вересня 2015 користувачем halfhope Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 30 вересня 2015 Share Опубліковано: 30 вересня 2015 Никто не судит) Нет, все не так. Сейчас попытаюсь объяснить. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ArtemPitov Опубліковано: 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... ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... 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... ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
ArtemPitov Опубліковано: 30 вересня 2015 Автор Share Опубліковано: 30 вересня 2015 Спасибо) да знакомое чувство работать до утра) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Новый модуль
afwollis Опубліковано: 13 жовтня 2015 Share Опубліковано: 13 жовтня 2015 так и хочется сказать: - чувак, расчехлись, собери мыслишки и СКЛЕПАЙ ОДНУ ТЕМУ по проблемам в процессе разработки своего модуля, вместо тысячи отдельных с невнятными вопросами по выдернутому из контекста коду. Надіслати Поділитися на інших сайтах More sharing options... ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
ArtemPitov Опубліковано: 15 жовтня 2015 Автор Share Опубліковано: 15 жовтня 2015 Все-все )) я уже все сам )) не буду создавать больше дурацких тем, просто познаю что куда и какие переменные, функции откуда )) Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0
Recommended Posts