Jump to content

Есть ли в БД информация про картинки категорий?


Recommended Posts

День добрый.

 

По необходимости написал себе sql скрипт (отчет) по товарам к которым не привязана ни одна картинка.

Хочу написать подобный отчет для категорий, но в упор не вижу в БД этой информации.

Скажем id картинки - id категории.

 

Данная связка в БД вообще есть или нет?

 

Спасибо.

 

Link to comment
Share on other sites

В базе или нет, какая разница? Картинки у категорий есть и они хранятся в папке /img/c/, только что проверил загрузив категории картинку через админ. панель. Хранятся они там в виде файлов:

id_category.jpg

id_category-шаблон_изображения.jpg

 

Шаблоны изображений хранятся в таблице __DB_PREFIX__image_type, вместе с размерами.

 

Вот и проверьте есть ли у всех. Сделайте выборку всех категорий и проверьте наличие файлов им соответствующих в папке. 

 

Ну а отчет уже выводите либо в текстовый файл, либо сразу в окно, либо каким-то другим методом. Это уже от ваших личных предпочтений зависит.

Link to comment
Share on other sites

В базе или нет, какая разница? Картинки у категорий есть и они хранятся в папке /img/c/, только что проверил загрузив категории картинку через админ. панель. Хранятся они там в виде файлов:

id_category.jpg

id_category-шаблон_изображения.jpg

 

Шаблоны изображений хранятся в таблице __DB_PREFIX__image_type, вместе с размерами.

 

Вот и проверьте есть ли у всех. Сделайте выборку всех категорий и проверьте наличие файлов им соответствующих в папке. 

 

Ну а отчет уже выводите либо в текстовый файл, либо сразу в окно, либо каким-то другим методом. Это уже от ваших личных предпочтений зависит.

 

Тот вариант что предлагаете Вы (через FS), предполагает наличие админаских прав и доступа к FS сайта.

А я хотел сделать запрос в SQL положить его в админку и отдать юзеру на выполнение.

 

Так у меня получилось сделать с товарами.

Т.е. теперь пользователь который наполняет сайт может запустить этот отчет и реально увидеть на каких товарах нет картинок.

 

Ок, вопрос можно закрыть ...

С картинками категорий просто через SQL не получится, как я изначально и предполагал...

 

Всем спасибо за ответы.

Link to comment
Share on other sites

На базе этого из category.php можно в админке вывести список категорий без картинок...

	public function getSubCategories($id_lang, $active = true)
	{
		$groups = FrontController::getCurrentCustomerGroups();
		$sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');

		$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
		SELECT c.*, cl.id_lang, cl.name, cl.description, cl.link_rewrite, cl.meta_title, cl.meta_keywords, cl.meta_description
		FROM `'._DB_PREFIX_.'category` c
		LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.(int)$id_lang.')
		LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`)
		WHERE `id_parent` = '.(int)$this->id.($active ? ' AND `active` = 1' : '').' AND cg.`id_group` '.$sqlGroups.'
		GROUP BY c.`id_category`
		ORDER BY `level_depth` ASC, c.`position` ASC');
		
		foreach ($result as &$row)
		{
			$row['id_image'] = file_exists(_PS_CAT_IMG_DIR_.$row['id_category'].'.jpg') ? (int)$row['id_category'] : Language::getIsoById((int)$id_lang).'-default';
			$row['legend'] = 'no picture';
		}

		return $result;
	}
Edited by Kerm (see edit history)
Link to comment
Share on other sites

Да Вы правы, но я хотел вывод используя только запрос к БД.

А так получается нужно делать отдельную страницу - отчет для категорий.

 

К примеру по товарам есть связка id товара и id изображения, по сути я проверяю только это совпадение не проверяя есть ли физическое наличие картинки в FS.

Конечно несовсем правильно, но если на FS ни кого не пускать то врятли там что то само собой пропадет, ну и тогда данный запрос будет стремится к 100% точности.

Link to comment
Share on other sites

А если сделать  скрипт запускающийся по крону который будет в БД добавлять 0 или 1 в зависимости есть картинка или нет и потом SQL запросом получать информацию как ты хотел.

Link to comment
Share on other sites

А если сделать  скрипт запускающийся по крону который будет в БД добавлять 0 или 1 в зависимости есть картинка или нет и потом SQL запросом получать информацию как ты хотел.

Для этого все-равно нужен PHP. Как я понял по условию, условно доступ есть только к базе данных. Выполнить эту задачу средствами SQL не представляется возможным.

Link to comment
Share on other sites

А если сделать  скрипт запускающийся по крону который будет в БД добавлять 0 или 1 в зависимости есть картинка или нет и потом SQL запросом получать информацию как ты хотел.

И так тоже можно, но это дополнительный гиморой.

Решил ограничится только товарами, кстати если кому запрос нужен пишите выложу.

Link to comment
Share on other sites

×
×
  • Create New...