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

Помогите вывести категории+подкатегории продукта

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

Допустим у нас есть product_id,  имея этот product_id из таблицы product_to_category мы получаем category_id, далее если у этой категории нету под категорий то выводим имя ее на всех доступных языках, если есть под категории то выводим так 

 

главная категория >> под категория >> если есть еще подкатегория и т.д

 

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

	public function getAllCategories($parent_id = 0, $depth = 0, $name = '', $path = '') {
		$category_data = array(); 
			
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
		//todo: left join category to store
		$depth++;
			   					
			if ($name) {$cat_name = $name . ' >> ' . $category_description_data;} else {$cat_name = $category_description_data;}			
			if ($path) {$cat_path = $path . '_' . $result['category_id'];} else {$cat_path = $result['category_id'];}
			
			$category_data[] = array(
				'category_id' => $result['category_id'],
				'name'        => $cat_name,
				'depth'  			=> $depth,
				'path'				=> $cat_path
			);
		
			$category_data = array_merge($category_data, $this->getAllCategories($result['category_id'], $depth, $cat_name, $cat_path));
		}
		
		return $category_data;
		
	}

То есть данная модель делает все как и нужно, но в установлен не один язык, и мне нужно просто чтоб сюда

 

'name'        => $cat_name, 

 

была не строка ввиде вывода для одного языка, а массив сразу на всех языках, по типу language_id = cat_name(Велик >> Шины), language_id = cat_name(Bicycle >> Wheels) и т.д, вот не получается как эту рекурсию построить так чтоб я мог получать сразу имя на всех языках, а не для одного.... конечно можно функцию выполнять столько раз сколько языков в параметр засунуть Language_id и сувать его в query, но эт какой-то лохотрон) Спасибо за помощь, как-бы мне требуется только сделать эту штуку multilanguage  :( а то не много ввел в заблуждение в заголовком product_id тут не нужен, просто вывод всех категорий на всех языках и все

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

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


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

Выполняйте функцию 2 раза с разным (int)$this->config->get('config_language_id'). Потом составляйте нужный массив, так проще, быстрей и рентабельней. 

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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