Maximke
Постоялец
- Регистрация
- 22 Июл 2015
- Сообщения
- 117
- Реакции
- 7
- Автор темы
- #1
Opencart 1.5.6.4
Модуль експорта хмл товаров, не могу понять почему не показывает название категории, а ссылку на категорию вставляет без $path
index.php?route=product/category&path=¤cy=EUR
Этот же модуль на opencart 1.5.4 работает нормально
Не пойму почему не работает
Генерирует ссылку но ID категории не пишет, точно так же как и название категории
Модуль експорта хмл товаров, не могу понять почему не показывает название категории, а ссылку на категорию вставляет без $path
index.php?route=product/category&path=¤cy=EUR
Этот же модуль на opencart 1.5.4 работает нормально
Код:
<?php
class ControllerFeedShopXML extends Controller {
private $currencies = array();
public function index() {
if ($this->config->get('shopxml_status')) {
$xmlstr = '<?xml version="1.0" encoding="utf-8" ?>
<root></root>';
$xml = new SimpleXMLElement($xmlstr);
if(isset($_GET["lang_export"])){
$languages = array();
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'");
foreach($query->rows as $result){
$languages[$result['code']] = $result;
}
if(isset($languages[$_GET["lang_export"]]["language_id"])){
$this->config->set("config_language", $_GET["lang_export"]);
$this->config->set("config_language_id", $languages[$_GET["lang_export"]]["language_id"]);
}
}
$this->load->model('catalog/category');
$this->load->model('catalog/product');
$this->load->model('tool/image');
$products = $this->model_catalog_product->getProducts();
foreach($products as $product){
$item = $xml->addChild('item');
$item->name = $product['name'];
if(isset($product["description"]) && isset($_GET["desc_export"])){
$item->description = html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8') ;
}
if($product['image']){
$item->image = $this->model_tool_image->resize($product['image'], 500, 500);
} else{
$item->image = $this->model_tool_image->resize('no_image.jpg', 500, 500);
}
$categories = $this->model_catalog_product->getCategories($product['product_id']);
$string = '';
$lastCat = '';
$caturl = '';
foreach($categories as $category){
$path = $this->getPath($category['category_id']);
$caturl = HTTP_SERVER . $this->config->get("config_language").'/'.'index.php?route=product/category&path=' . $path;
if($path){
foreach(explode('_', $path) as $path_id){
$category_info = $this->model_catalog_category->getCategory($path_id);
$lastCat = $category_info['name'];
if($category_info){
if(!$string){
$string = $category_info['name'];
} else{
$string .= ' >> ' . $category_info['name'];
}
}
}
}
break;
}
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency");
foreach ($query->rows as $result) {
if($result['status'] == 1){
$this->currencies[$result['code']] = array(
'currency_id' => $result['currency_id'],
'title' => $result['title'],
'symbol_left' => $result['symbol_left'],
'symbol_right' => $result['symbol_right'],
'decimal_place' => $result['decimal_place'],
'value' => $result['value']
);
}
}
if(isset($this->request->get['cur_export']) && (array_key_exists($this->request->get['cur_export'], $this->currencies))){
$this->currency->set($this->request->get['cur_export']);
} else{
$this->currency->set($this->config->get('config_currency'));
}
$currency_code = $this->currency->getCode();
$currency_value = $this->currency->getValue();
$item->link = HTTP_SERVER .'?route=product/product&product_id=' . $product['product_id'].'¤cy='.$currency_code;
$caturl .= '¤cy='.$currency_code;
if((float)$product['special']){
$item->price = $this->currency->format($this->tax->calculate($product['special'],
$product['tax_class_id']),
$currency_code,
$currency_value,
false);
} else{
$item->price = $this->currency->format($this->tax->calculate($product['price'],
$product['tax_class_id']),
$currency_code,
$currency_value,
false);
}
$item->category = $lastCat;
$item->category_full = $string;
$item->category_link = $caturl;
$item->manufacturer = $product['manufacturer'];
$item->model = $product['model'];
$item->in_stock = $product['quantity'];
$item->upc = $product['quantity'];
$item->weight = $product['weight'];
}
$this->response->addHeader('Content-Type: application/xml');
$this->response->setOutput($xml->asXML());
}
}
protected function getPath($parent_id, $current_path = '') {
$category_info = $this->model_catalog_category->getCategory($parent_id);
if ($category_info) {
if (!$current_path) {
$new_path = $category_info['category_id'];
} else {
$new_path = $category_info['category_id'] . '_' . $current_path;
}
$path = $this->getPath($category_info['parent_id'], $new_path);
if ($path) {
return $path;
} else {
return $new_path;
}
}
}
}
?>
Не пойму почему не работает
Код:
$caturl = HTTP_SERVER . $this->config->get("config_language").'/'.'index.php?route=product/category&path=' . $path;
if($path){
foreach(explode('_', $path) as $path_id){
$category_info = $this->model_catalog_category->getCategory($path_id);
$lastCat = $category_info['name'];
if($category_info){
if(!$string){
$string = $category_info['name'];
} else{
$string .= ' >> ' . $category_info['name'];
Генерирует ссылку но ID категории не пишет, точно так же как и название категории
Последнее редактирование: