Opencart 1.5.x (admin): показ в списке категорий их SEO Keyword
Буду краток:
Рецепт приготовления:
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>
Еще записи по теме
- Opencart 1.5.x (catalog): SEO - автоматическое заполнение meta keywords
- Извините за задержку
- Улучшение поиска в OpenCart 1.5: поиск по описанию, подкатегориям, по модели и SKU
- Как облегчить процесс публикации изменений на сервер
- Индикация цен опций товара заменена на абсолютную величину (вместо разницы +X руб, -Y руб)
- Opencart 1.5.1.3 (backend): Продажи - Заказы - Товары: показ колонки SKU в списке товаров
- Opera: добавляем "автоскролл" и быстрое скрытие/показ адресной строки





Комментариев: 6
очень-очень полезна!
Notice: Undefined index: keyword in \home\mydomain.com\admin\controller\catalog\category.php on line 105
105. 'keyword' => $result['keyword'],
elko, а какая версия Opencart? В 1.5.1.1 (1.5.1.2) такую строку можно найти только в 411 строке. В заголовке указано, что этот патч для 1.5.x. С предыдущими версиями OC не сталкивался.
Еще вопрос появился, в версии 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, можете подсказать какой код нужно сюда вставлять?
Deus, пардон, времени сейчас нет - постараюсь в воскресенье или субботу посмотреть, чем 1.5.1.3 отличается.
для 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");