Ruslan Brest, rb.labtodo.com

Разработка ПО, сайтов и веб-сервисов. CodeIgniter, PHP, MySQL, W3C CSS/XHTML, MaxSite CMS, OpenCart, PrestaShop

Opencart 1.5.x (admin): показ в списке категорий их SEO Keyword

Опубликовано: 10 сентября 2011.
Автор: Ruslan Brest.

Рубрика: Howto | OpenCart.

Просмотров: 1242.
Подписаться на комментарии по RSS.

Буду краток:

Рецепт приготовления:

diff --git a/public_html/admin/controller/catalog/category.php b/public_html/admin/controller/catalog/category.php
index d449b87..4a33c14 100644
--- a/public_html/admin/controller/catalog/category.php
+++ b/public_html/admin/controller/catalog/category.php
@@ -108,6 +108,7 @@ class ControllerCatalogCategory extends Controller {
 		$this->data['text_no_results'] = $this->language->get('text_no_results');
 
 		$this->data['column_name'] = $this->language->get('column_name');
+		$this->data['column_seo_keyword'] = $this->language->get('column_seo_keyword');
 		$this->data['column_sort_order'] = $this->language->get('column_sort_order');
 		$this->data['column_action'] = $this->language->get('column_action');
 
@@ -406,6 +408,7 @@ class ControllerCatalogCategory extends Controller {
 			$output[$result['category_id']] = array(
 				'category_id' => $result['category_id'],
 				'name'        => $name,
+				'keyword'     => $result['keyword'],
 				'sort_order'  => $result['sort_order'],
 				'selected'    => $selected,
 				'action'      => $action,
diff --git a/public_html/admin/language/english/catalog/category.php b/public_html/admin/language/english/catalog/category.php
index 88a5549..669bb3a 100644
--- a/public_html/admin/language/english/catalog/category.php
+++ b/public_html/admin/language/english/catalog/category.php
@@ -9,6 +9,7 @@ $_['text_image_manager']     = 'Image Manager';
 
 // Column
 $_['column_name']            = 'Category Name';
+$_['column_seo_keyword']     = 'SEO Keyword';
 $_['column_sort_order']      = 'Sort Order';
 $_['column_action']          = 'Action';
 
diff --git a/public_html/admin/language/russian/catalog/category.php b/public_html/admin/language/russian/catalog/category.php
index 6acd92a..faa975b 100644
--- a/public_html/admin/language/russian/catalog/category.php
+++ b/public_html/admin/language/russian/catalog/category.php
@@ -9,6 +9,7 @@ $_['text_image_manager']     = 'Менеджер изображений';
 
 // Column
 $_['column_name']            = 'Название категории';
+$_['column_seo_keyword']     = 'SEO URL';
 $_['column_sort_order']      = 'Порядок сортировки';
 $_['column_action']          = 'Действие';
 
diff --git a/public_html/admin/model/catalog/category.php b/public_html/admin/model/catalog/category.php
index 27a35f4..ffbee94 100644
--- a/public_html/admin/model/catalog/category.php
+++ b/public_html/admin/model/catalog/category.php
@@ -193,7 +193,7 @@ class ModelCatalogCategory extends Model {
 	}
 
 	public function getCategoriesByParentId($parent_id = 0) {
-		$query = $this->db->query("SELECT *, (SELECT COUNT(parent_id) FROM " . DB_PREFIX . "category WHERE parent_id = c.category_id) AS children FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY c.sort_order, cd.name");
+		$query = $this->db->query("SELECT *, (SELECT COUNT(parent_id) FROM " . DB_PREFIX . "category WHERE parent_id = c.category_id) AS children FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) LEFT JOIN opencart_url_alias ua ON ( ua.query = CONCAT('category_id=', c.category_id) ) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY c.sort_order, cd.name");
 
 		return $query->rows;
 	}
diff --git a/public_html/admin/view/template/catalog/category_list.tpl b/public_html/admin/view/template/catalog/category_list.tpl
index 76cdd01..b5d9af9 100644
--- a/public_html/admin/view/template/catalog/category_list.tpl
+++ b/public_html/admin/view/template/catalog/category_list.tpl
@@ -23,6 +23,7 @@
             <tr>
               <td width="1" style="text-align: center;"><input type="checkbox" onclick="$('input[name*=\'selected\']').attr('checked', this.checked);" /></td>
               <td class="left"><?php echo $column_name; ?></td>
+              <td class="left"><?php echo $column_seo_keyword; ?></td>
               <td class="right"><?php echo $column_sort_order; ?></td>
               <td class="right"><?php echo $column_action; ?></td>
             </tr>
@@ -41,6 +42,7 @@
               <?php } else { ?>
                 <td class="left"><?php echo $category['indent']; ?><?php echo $category['name']; ?></td>
               <?php } ?>
+              <td class="left"><?php echo $category['keyword']; ?></td>
               <td class="right"><?php echo $category['sort_order']; ?></td>
               <td class="right"><?php foreach ($category['action'] as $action) { ?>
                 [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
@@ -49,7 +51,7 @@
             <?php } ?>
             <?php } else { ?>
             <tr>
-              <td class="center" colspan="4"><?php echo $text_no_results; ?></td>
+              <td class="center" colspan="5"><?php echo $text_no_results; ?></td>
             </tr>
             <?php } ?>
           </tbody>
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us

Комментариев: 6

  1. Денис
    12.09.2011 в 14:09:28 | #1

    очень-очень полезна!

  2. elko
    18.09.2011 в 03:33:08 | #2

    Notice: Undefined index: keyword in \home\mydomain.com\admin\controller\catalog\category.php on line 105

    105. 'keyword' => $result['keyword'],

  3. Ruslan Brest
    18.09.2011 в 07:42:30 | #3

    elko, а какая версия Opencart? В 1.5.1.1 (1.5.1.2) такую строку можно найти только в 411 строке. В заголовке указано, что этот патч для 1.5.x. С предыдущими версиями OC не сталкивался.

  4. 06.12.2011 в 23:45:37 | #4

    Еще вопрос появился, в версии 1.5.1.3 в admin/model/catalog/category.php такой строки нет $query = $this->db->query("SELECT *, (SELECT COUNT(parent_id) FROM " . DB_PREFIX . "category WHERE parent_id = c.category_id) AS children FROM " . DB_PREFIX . "category c LEFT JOIN " . ....

    я пока не очень силен в php, можете подсказать какой код нужно сюда вставлять?

  5. Ruslan Brest
    09.12.2011 в 22:20:23 | #5

    Deus, пардон, времени сейчас нет - постараюсь в воскресенье или субботу посмотреть, чем 1.5.1.3 отличается.

  6. totoro
    22.04.2012 в 22:28:34 | #6

    для 1.5.1.3 одна поправка:

    $query = $this->db->query("SELECT *, (SELECT COUNT(parent_id) FROM " . DB_PREFIX . "category WHERE parent_id = c.category_id) AS children FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) LEFT JOIN oc_url_alias ua ON ( ua.query = CONCAT('category_id=', c.category_id) ) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY c.sort_order, cd.name");

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором, введите email и пароль. Напишите комментарий. В дальнейшем ваша связка email-пароль позволит комментировать, получать уведомления об ответах и редактировать свои данные. Не забудьте про активацию (инструкция придёт на email, указанный при регистрации).

Авторизация: Facebook. MaxSiteAuth. Loginza

(обязательно)