Перейти к содержанию
ArtemPitov

Пункты меню (Вопрос по Database)

Рекомендуемые сообщения

Доброго времени суток ГОСПОДА  :-)

 

Поведайте мне пожалуйста, куда будет правильнее всего записывать  дополнительные пункты главного меню которые будут созданы модулем ?

PS // думал пилить все в settings  :ph34r:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

лучше использовать отдельную таблицу для этих целей

settings для настроек, и если пунктов будет 100500 - ничего хорошего не выйдет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таком случае и модель нужно для модуля писать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по-правильному - да

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

суть модели я понимаю, но еще модуль с моделями не писал, для бек-энда нужна модель это понятно, а вот для  фронт-энда так же ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и вопрос сразу тогда по шапке фронт-энда 

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
  $this->model_setting_setting->editSetting('menu_settings', $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'));
}

тут мы отправляем данные на обработку в модель $this->model_тут модель_модуля ->editSetting('menu_settings', $this->request->post);

а сама инициализация модуля где происходит, то есть что бы опенкарт понимал что модуль установлен ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и вопрос сразу тогда по шапке фронт-энда...

По этому разобрался, открыв модель )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

еще возник один вопрос по созданию БД для модуля 

 

У меня в меню модуля три отдельных таблицы которые несут свой функционал, для каждого функционала нужно создавать отдельно таблицу ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сесть и подумать

возможно, все нужные данные можно будет хранить в одной таблице?

 

без обид, но бОльшая часть ваших вопросов - прямо как у ребенка, с той разницей что тема взрослая :ugeek:

может имеет смысл спрашивать про действительно сложные моменты, а не про все подряд? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Учту, я только учусь, вот и стараюсь по максимуму спросить, спасибо за ответ

Изменено пользователем afwollis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что бы не создавать тему задам вопрос тут, товарищи знатоки, помогите понять как правильно сделать

 

Есть такая форма

<form>
  <select>
    <option value="id"> </option> 
  </select>
  <input name="name[number_row][language_id]"> </input>
</form>

на выходе получаем трехмерный массив который записывается в таблицу settings ключи и значения отдельно  для select и для input 

 

Обработка в контроллере выглядит так

if (isset($this->request->post['form-menu-settings'])) {
			$menu_settings = $this->request->post['form-menu-settings'];
		} elseif($this->config->get('form-menu-settings')) {
			$menu_settings = $this->config->get('form-menu-settings');
		} else{
			$menu_settings = array();
		}

		$data['menu_settings'] = array();

		foreach($menu_settings as $setting){
			$data['menu_settings'][] = array(
				'menu_settings_category' => $menu_settings['category'],
				'menu_settings_stiker'   => $menu_settings['stiker']
			);
		} 

Сам вопрос, как записать значения (сериализованные массивы) select и input в  таблицу settings в одну колонку под одним ключом ?

Изменено пользователем ArtenPitov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу хранения пунктов меню - я бы выбрал настройки модуля, по аналогии с модулем featured.

Их же не тыщу штук будет.

 

По поводу последнего и остального - не усложняйте сериализацией и многомерностью.

 

Посмотрите любой модуль, делайте по аналогии, продумывайте UI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ, по поводу пунктов меню, так и решил пилить в setting, но тут встал в ступор с сортировкой пунктов меню - тут же не выйдет использовать сортировку из бд (правда еще не разбирался с этим ). И сама цель - хочу все настройки пилить через один модуль вот и заморочился с многомерностью массива, может разумнее будет просто сделать насколько форм в одном модуле ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавьте еще одно поле - sort_order и делайте по аналогии с сортировкой модулей.

Откройте файл catalog/controller/common/column_left.php и посмотрите как устроена сортировка модулей из setting.

$sort_order = array(); 

foreach ($module_data as $key => $value) {
  $sort_order[$key] = $value['sort_order'];
}

array_multisort($sort_order, SORT_ASC, $module_data);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то я до этого не додумался, спасибо Вам что "ткнули носом" буду разбираться

Изменено пользователем ArtenPitov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.