Перейти к содержанию
Официальный форум поддержки Simpla

Выбор свойств при создании/редактировании категории


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

При создании и редактировании свойства товара вы можете указать, к товаром какой категории будет применимо это свойство. НО в симпле нет обратного действия, нельзя при создании и редактировании категории указать свойства, которые будут применимы к товарам данной категории.

 

Я решил это немного подправить, получилось так:

post-1241-0-78887200-1409660903_thumb.jpg

 

Как пользоваться, думаю понятно... Попробую расписать как это организовать!

 

1. В api/Features.php находим функцию

public function update_feature_categories($id, $categories){   ...}

и после нее добавляем новую:

public function update_category_features($id, $features){	$id = intval($id);	$query = $this->db->placehold("DELETE FROM __categories_features WHERE category_id=?", $id);	$this->db->query($query);			if(is_array($features))	{		$values = array();		foreach($features as $feature)			$values[] = "($id , ".intval($feature).")"; 		$query = $this->db->placehold("INSERT INTO __categories_features (category_id, feature_id) VALUES ".implode(', ', $values));		$this->db->query($query);		// Удалим значения из options 		$query = $this->db->placehold("DELETE o FROM __options o WHERE o.product_id in 				 (SELECT c.product_id FROM __products_categories c WHERE c.category_id = ?)				 AND o.feature_id not in (?@)", $id, $features);		$this->db->query($query);	}	else	{		// Удалим значения из options 		$query = $this->db->placehold("DELETE o FROM __options o WHERE o.product_id in 				 (SELECT c.product_id FROM __products_categories c WHERE c.category_id = ?)", $id);		$this->db->query($query);	}}

2. Открываем simpla/CategoryAdmin.php и после

$category->description = $this->request->post('description');

добавляем

$features = $this->request->post('features');

Чуть ниже, после 

// Загрузка изображения$image = $this->request->files('image');if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions)){	$this->categories->delete_image($category->id);	move_uploaded_file($image['tmp_name'], $this->root_dir.$this->config->categories_images_dir.$image['name']);	$this->categories->update_category($category->id, array('image'=>$image['name']));}

добавляем это:

$this->features->update_category_features($category->id, $features);

и почти в конце после 

$categories = $this->categories->get_categories_tree();

добавляем:

$features = $this->features->get_features();$this->design->assign('features', $features);$feature_categories_tmp = array();if (!empty($category->id)) {	$feature_categories = $this->features->get_features(array('category_id' => $category->id));	foreach ($feature_categories as $f_cat) {		$feature_categories_tmp[] = $f_cat->id;	}}$this->design->assign('feature_categories', $feature_categories_tmp);

 

3. Открываем simpla/design/html/category.tpl и в удобное место вставляем "селектлист"

<!-- Свойства категории -->	<div class="block layer">	<h2>Свойства категории</h2>	<select class="multiple_categories" multiple name="features[]">	{foreach $features as $feature}		<option value="{$feature->id}" {if in_array($feature->id, $feature_categories)}selected{/if}>{$feature->name|escape}</option>	{/foreach}	<select></div>

 

Вроде все. Делал на быструю руку и возможно мог что-нибудь упустить.

post-1241-0-78887200-1409660903_thumb.jpg

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

Тег <select> должен быть парным, т.е. второй должен быть закрытым </select>.

И еще, при данном дополнении не будет работать решение "Наследование свойств при создании категории" написанное Вами же.

http://forum.simplacms.ru/topic/7762-%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%BF%D1%80%D0%B8-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8/?hl=%2B%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F+%2B%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0

Изменено пользователем FDA
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...