Kredov long

[Помогите] Название товара

Тема в разделе "OpenCart", создана пользователем Philips, 15 июл 2014.

  1. Philips

    Philips

    Регистрация:
    15 июл 2014
    Сообщения:
    9
    Симпатии:
    0
    После редактирования названия товара с символом " обрезается остальное название. Пример:
    1) название до редактирования Acer TravelMate TMP633-M-33124G32akk 13.3" 1366x768, Intel Core i3-3120M 2.5GHz, 4Gb, 320Gb, WiFi
    2) название после редактирования Acer TravelMate TMP633-M-33124G32akk 13.3"

    Помогите :smile:

    версия магазина ocstore 1.5.5.2
     
  2. Philips

    Philips

    Регистрация:
    15 июл 2014
    Сообщения:
    9
    Симпатии:
    0
    Что никто не знает как решить такую проблему?((
     
  3. beak

    beak

    Регистрация:
    22 янв 2013
    Сообщения:
    161
    Симпатии:
    43
    Есть способ простой и посложнее. Простой - для обозначения дюймов используй не двойные кавычки, а две одинарные - ''. Посложнее - связан с правкой кода. Если нужно, пиши, расскажу.
     
  4. ilinv

    ilinv

    Регистрация:
    2 июн 2014
    Сообщения:
    13
    Симпатии:
    0
    Дак уж расскажите всем, чтобы все знали
     
  5. beak

    beak

    Регистрация:
    22 янв 2013
    Сообщения:
    161
    Симпатии:
    43
    Задача - экранировать кавычки в строке.
    Моя версия ОС - 1.5.6.1, не думаю, что будет сильно отличаться от 1.5.5.2. Замены выделены красным.
    /admin/model/catalog/product.php
    Ищем (строка 135):

    foreach ($data['product_description'] as $language_id => $value) {
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "'");
    }

    меняем на:

    foreach ($data['product_description'] as $language_id => $value) {
    $value['name']= htmlspecialchars_decode($value['name']);
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "'");
    }

    /admin/view/template/catalog/product_form.tpl
    Ищем (строка 30):

    <td><input type="text" name="product_description[<?php echo $language['language_id']; ?>][name]" size="100" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['name'] : ''; ?>" />

    меняем на:

    <td><input type="text" name="product_description[<?php echo $language['language_id']; ?>][name]" size="100" value="<?php echo isset($product_description[$language['language_id']]) ? htmlspecialchars($product_description[$language['language_id']]['name']) : ''; ?>" />
     
    panasys, biolion и Philips нравится это.
  6. Philips

    Philips

    Регистрация:
    15 июл 2014
    Сообщения:
    9
    Симпатии:
    0
    Спасибо тебе человечище!) теперь всё работает как надо!