Jump to content
Sign in to follow this  
kate1987

[Решено] Иконки для категорий

Recommended Posts

Здравствуйте. Хочу кроме изображения категории добавить еще и иконку для категории (скрин http://joxi.ru/L21JRR5UDa8ZAX) Для этого в таблице category содала новое поле

  icon varchar(255) utf8_general_ci   Да NULL

Потом в админке в контроллере категории добавила

	if (isset($this->request->post['icon'])) {
			$this->data['icon'] = $this->request->post['icon'];
		} elseif (!empty($category_info)) {
			$this->data['icon'] = $category_info['icon'];
		} else {
			$this->data['icon'] = '';
		}

строка 318 и

if (isset($this->request->post['icon']) && file_exists(DIR_IMAGE . $this->request->post['icon'])) {
			$this->data['thumb1'] = $this->model_tool_image->resize($this->request->post['icon'], 100, 100);
		} elseif (!empty($category_info) && $category_info['icon'] && file_exists(DIR_IMAGE . $category_info['icon'])) {
			$this->data['thumb1'] = $this->model_tool_image->resize($category_info['icon'], 100, 100);
		} else {
			$this->data['thumb1'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
		}

строка 337

 

в файле category.tpl

  <tr>
              <td>Иконка</td>
              <td valign="top"><div class="icon"><img src="<?php echo $thumb1; ?>" alt="" id="thumb1" />
                  <input type="hidden" name="icon" value="<?php echo $icon; ?>" id="icon" />
                  <br />
                  <a onclick="image_upload('icon', 'thumb1');"><?php echo $text_browse; ?></a>  |  <a onclick="$('#thumb1').attr('src', '<?php echo $no_image; ?>'); $('#icon').attr('value', '');"><?php echo $text_clear; ?></a></div></td>
            </tr>

Но иконка не сохраняется. Прошу подсказать где я ошиблась.

Share this post


Link to post
Share on other sites

А в модель запись/считывание нового поля (как минимум в 3-х местах) кто будет добавлять?

Share this post


Link to post
Share on other sites

Верно постоянно модель забываю, спасибо

Share this post


Link to post
Share on other sites

В итоге еще и в модели нужно добавить в строке 11

if (isset($data['icon'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "category SET icon = '" . $this->db->escape(html_entity_decode($data['icon'], ENT_QUOTES, 'UTF-8')) . "' WHERE category_id = '" . (int)$category_id . "'");
		}
		

строка 69

	if (isset($data['icon'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "category SET icon = '" . $this->db->escape(html_entity_decode($data['icon'], ENT_QUOTES, 'UTF-8')) . "' WHERE category_id = '" . (int)$category_id . "'");
		}

В двух местах как оказалось)

 

И все работает

Share this post


Link to post
Share on other sites

Теперь не могу добавить в файл вывода( в модуле category_wall

 

в блок

$this->data['categories'][] = array(

после

'thumb' => $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_height']),

добавила


	'thumb1' => $this->model_tool_image->resize($result['icon'], 40, 40),

не выодится и ругается на переменную Icon Notice: Undefined index: icon

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

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.