Jump to content
Sign in to follow this  
ArtemPitov

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

Recommended Posts

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

 

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

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

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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);

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

Edited by afwollis

Share this post


Link to post
Share on other sites

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

 

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

<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 в одну колонку под одним ключом ?

Edited by ArtenPitov

Share this post


Link to post
Share on other sites

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Добавьте еще одно поле - 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);

Share this post


Link to post
Share on other sites

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

Edited by ArtenPitov

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.