Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

2 часа назад, askmeask сказал:

Можно ли на странице искать как в jquery, например: 

$('.product-page__img-slider-item>a')

и потом в цикле получать значения атрибутов href?

Здравствуйте.
Нет, в модуле свой подход который отличается от поиска как в jquery.

Но да можно получать значения в цикле, называются повторяющиеся границы парсинга. По возможностям не уступает а даже превосходит.
Подробнее про возможности настройки границ париснга вы можете узнать из этого видео.

Спойлер

 

 

Надіслати
Поділитися на інших сайтах

В 20.08.2021 в 23:29, Rassol2 сказал:

ВНИМАНИЕ!!!

PHP скрипт позволяющий парсить характеристики с Группами, и раскладывать атрибуты с учетом групп.
 

Предисловие.
Скрипт довольно сложный так как пришлось полностью переписать логику работы атрибутов, и заняло много времени.
Этот же скрипт будет свидетельствовать тому что вы можете расширять возможности модуля как вам угодно. В данном случаи я полностью переписал логику работы атрибутов, по этой же логике вы можете переписать любую часть модуля которая работает не так как вы мечтаете.
Так же вы можете дописать любую другую часть.

Инструкция к скрипту.
Если вы собираетесь использовать этот скрипт для работы атрибутов то сразу отключайте стандартную логику работы атрибутов.
Вот так.
 

  Показать контент

1zos1cp.png


Единственное что, можете выбрать группу для атрибутов по умолчанию. Этот параметр так же учитывается в скрипте.

Далее настраиваем работу С скриптом.
Выбираем какой скрипт, и выбираем когда выполнять.

Выполнять нужно исключительно После парсинга в ИМ!

  Показать контент

kXDhLTP.png


Сам файл скрипта будет прикреплен к этому посту в самом низу.
Вы можете его загрузить через фтп в директорию /admin/simplepars/scripts/
Или же создать свой и перенсти туда код через встроенный редактор, просто скопировать вставить и сохранить.

 

Код для просмотра.

  Показать контент


<?php
  
  # УПРАВЛЕНИЕ АТРИБУТАМИ 
  
  //Укажите номер границы парсинга в которой находится текст подготовленный для загрузки в атрибуты.
  $gran_id = 0;

  //////////////////////////////////////////////////
  // Работа с атрибутами при СОЗДАНИИ товара 
  // 0 - Не работать с атрибутами
  // 1 - Создавать атрибута если такого нет, добавлять атрибуты в товар
  // 2 - Добавлять в товар без создания новых атрибутов
  ////////////////////////////////////////////////////
  $r_attr = 0;

  //////////////////////////////////////
  // Работа с атрибутами при ОБНОВЛЕНИИ товара 
  // 0 - Не работать с атрибутами.
  // 1 - Создавать/Добавлять/Обновлять атрибуты.
  // 2 - Добавить/Обновить атрибуты в товаре, не создавать новые.
  // 3 - Добавить новый не обновлять существующие, не создавать новые
  // 4 - Обновить значения существующих атрибутов, не добавлять, не создавать новые.
  // 5 - Удалить все атрибуты в товаре и загрузить заново
  ///////////////////////////////////////
  $u_attr = 0;

  // Разрешить или запретить создание новый груп атрибутов. 
  // 1 - разрешить 
  // 0 - запретить, в этом случаи для атрибутов будет указана группа с настроек модуля.
  $add_new_group = 1;



  //навожу удобство.
  $setting = $script_data['setting'];
  $langs = $this->getLang($setting);


  //определяем что у нас обновление или добавлени товара. 
  $add_permit = 0;
  $up_permit = 0;
  $pr_id = 0;

  if($script_data['permit']['add']['permit']){
    $pr_id = $script_data['permit']['add']['pr_id'];
    $add_permit = 1;
  }elseif($script_data['permit']['up']['permit']){
    $pr_id = $script_data['permit']['up']['pr_id'];
    $up_permit = 1;
  }

  //Разбиваем границу на массив
  if(!empty($script_data['form']['script_gran'][$gran_id])){
    $attr_str = $script_data['form']['script_gran'][$gran_id];
  }else{
    $attr_str = '';
  }
  $attr_arr = explode('{g-start}', $attr_str);

  foreach ($attr_arr as $key => &$value) {
    $value = explode('{g-stop}', $value);

    //присваемвам для удобства ключи.
    if(empty($value[1])){
      $value['group'] = '';
      $value['value'] = $this->madeAttrArrey($value[0]);
    }else{
      $value['group'] = trim($value[0]);
      $value['value'] = $this->madeAttrArrey($value[1]);
    }
    unset($value[0]);
    unset($value[1]);

  }


  //обрабатываем полученные данные.
  foreach($attr_arr as $attr_data){

    // Проверяем есть ли такая группа атрибутов в магазине. И если нет создаем. И возврашаем id
    // По умолчанию группа будет с настрек модуля;
    $group_id = $setting['r_attr_group'];
    
    if(!empty($attr_data['group'])){
      
      //Приводим в порядок имя группы.
      $grop_name = mb_substr(trim($attr_data['group']), 0, 64);

      //проверяем есть ли группа атрибутов
      $group_id = getGroupId($this, $grop_name);

      //если такая группа отсуцтвует создаем ее.
      if(empty($group_id) && $add_new_group){
        $group_id = addNewGroupAttr($this, $grop_name, $langs, $dn_id);
      }

      if(empty($group_id)){ $group_id = $setting['r_attr_group']; }

    }

    //дополнительный блок исключительно для пятой версии атрибутов при обновлении.
    if($u_attr == 5 && $up_permit){
      #Сначала удаляем все атрибуты из товара.
      $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `product_id`=".(int)$pr_id);
    }

    //переходим к работе с атрибутами.
    foreach($attr_data['value'] as $attr){

      //Работае с атрибутами при создании товара
      if($r_attr == 1 && $add_permit){

        $attr['id'] = getIdAttr($this, $attr[0], $group_id);
        #Если нету тогда создаем.
        if($attr['id'] == 0){
          $attr['id'] = addAttr($this, $attr[0], $langs, $group_id, $dn_id);

          //Если после создания атрибут есть тогда записываем его в товар. Если нет проходим дальше.
          if($attr['id'] != 0){
            $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
          }

        }else{
          #Если такой атрибут найден тогда присвяеваем его товару.
          $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
        }

      }elseif($r_attr == 2 && $add_permit){

        $attr['id'] = getIdAttr($this, $attr[0], $group_id);
        //Если есть такой атрибут добавляем его в товар. Если нет пропускаем.
        if($attr['id'] != 0){
          $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
        }

      }

      //Работа с атрибутами при обновлении товара.
      if($u_attr == 1 && $up_permit){

        $attr['id'] = getIdAttr($this, $attr[0], $group_id);

        #Если нету тогда создаем.
        if($attr['id'] == 0){

          $attr['id'] = addAttr($this, $attr[0], $langs, $group_id, $dn_id);
          //Если после создания атрибут есть тогда записываем его в товар. Если нет проходим дальше.
          if($attr['id'] != 0){
            $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);

            $log[] = ['name'=>'Атрибут добавлен в товар '.trim($attr[0]), 'value'=>trim($attr[1])];
          }

        }elseif($attr['id'] > 0){

          //Проверяем есть ли в товере такой атрибут.
          $check_attr = $this->db->query("SELECT * FROM `".DB_PREFIX."product_attribute`
            WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);

          if($check_attr->num_rows > 0){

            //Значит такой атрибут есть и нужно его обновить.
            $attr[1] = trim($attr[1]);
            $this->db->query("UPDATE `".DB_PREFIX."product_attribute` SET `text`='".$this->db->escape($attr[1])."' WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);
            $log[] = ['name'=>'Атрибут обновлен в товаре '.$attr[0], 'value'=>$attr[1]];

          }else{

            //если нет тогда добавить его в товар.
            $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
            $log[] = ['name'=>'Атрибут добавлен в товар '.trim($attr[0]), 'value'=>trim($attr[1])];
          }
        }

      }elseif($u_attr == 2 && $up_permit){

        $attr['id'] = getIdAttr($this, $attr[0], $group_id);

        #Если сушествует тогда проверяем если в товаре.
        if($attr['id'] > 0){

          //Проверяем есть ли в товере такой атрибут.
          $check_attr = $this->db->query("SELECT * FROM `".DB_PREFIX."product_attribute`
            WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);

          if($check_attr->num_rows > 0){

            //Значит такой атрибут есть и нужно его обновить.
            $attr[1] = trim($attr[1]);
            $this->db->query("UPDATE `".DB_PREFIX."product_attribute` SET `text`='".$this->db->escape($attr[1])."' WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);
            $log[] = ['name'=>'Атрибут обновлен в товаре '.$attr[0], 'value'=>$attr[1]];

          }else{

            //если нет тогда добавить его в товар.
            $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
            $log[] = ['name'=>'Атрибут добавлен в товар '.trim($attr[0]), 'value'=>trim($attr[1])];
          }
        }

      }elseif($u_attr == 3 && $up_permit){

        $attr['id'] = getIdAttr($this, $attr[0], $group_id);

        #Если сушествует тогда проверяем если в товаре.
        if($attr['id'] > 0){

          //Проверяем есть ли в товере такой атрибут.
          $check_attr = $this->db->query("SELECT * FROM `".DB_PREFIX."product_attribute`
            WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);

          //если нет тогда добавить его в товар.
          if($check_attr->num_rows == 0){
            $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
            $log[] = ['name'=>'Атрибут добавлен в товар '.trim($attr[0]), 'value'=>trim($attr[1])];
          }
        }

      }elseif($u_attr == 4 && $up_permit){
        
        $attr['id'] = getIdAttr($this, $attr[0], $group_id);

        #Если сушествует тогда проверяем если в товаре.
        if($attr['id'] > 0){

          //Проверяем есть ли в товере такой атрибут.
          $check_attr = $this->db->query("SELECT * FROM `".DB_PREFIX."product_attribute`
            WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);

          if($check_attr->num_rows > 0){

            //Значит такой атрибут есть и нужно его обновить.
            $attr[1] = trim($attr[1]);
            $this->db->query("UPDATE `".DB_PREFIX."product_attribute` SET `text`='".$this->db->escape($attr[1])."' WHERE `product_id`=".(int)$pr_id." AND `attribute_id`=".(int)$attr['id']);
            $log[] = ['name'=>'Атрибут обновлен в товаре '.$attr[0], 'value'=>$attr[1]];

          }
        }

      }elseif($u_attr == 5 && $up_permit){

        $attr['id'] = getIdAttr($this, $attr[0], $group_id);

        #Если нету тогда создаем.
        if($attr['id'] == 0){

          $attr['id'] = addAttr($this, $attr[0], $langs, $group_id, $dn_id);
          //Если после создания атрибут есть тогда записываем его в товар. Если нет проходим дальше.
          if($attr['id'] != 0){
            $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);

            $log[] = ['name'=>'Атрибут добавлен в товар '.trim($attr[0]), 'value'=>trim($attr[1])];
          }

        }elseif($attr['id'] > 0){
          //если нет тогда добавить его в товар.
          $this->addAttrToProduct($pr_id, $attr, $langs, $dn_id);
          $log[] = ['name'=>'Атрибут добавлен в товар '.trim($attr[0]), 'value'=>trim($attr[1])];
        }

      }


    }
  }


//проверка присуцтвия группы атрибутов.
function getGroupId($thiss, $grop_name){

  //проверяем есть ли такая граппа атрибутов.
  $group_id = $thiss->db->query("SELECT attribute_group_id FROM `".DB_PREFIX."attribute_group_description` WHERE name = '".$thiss->db->escape($grop_name)."'");
  #$thiss->wtfarrey($group_id);

  //если есть используем ее, если нет создаем.
  if($group_id->num_rows > 0){
    $group_id = $group_id->row['attribute_group_id'];
  }else{
    $group_id = 0;
  }

  return $group_id;
}

//создание новой группы.
function addNewGroupAttr($thiss, $grop_name, $langs, $dn_id){

  //Создаем новую группу.
  $thiss->db->query("INSERT INTO `".DB_PREFIX."attribute_group` SET sort_order = '0'");
  $group_id = $thiss->db->getLastId();

  //Описание группы
  foreach($langs as $lang){
    $thiss->db->query("INSERT INTO `".DB_PREFIX."attribute_group_description` SET attribute_group_id = ".(int)$group_id.", name = '".$thiss->db->escape($grop_name)."', language_id =".(int)$lang['language_id']);
  }

  $path = DIR_LOGS."simplepars_id-".$dn_id.".log";
  $text = date("Y-m-d H:i:s").'| -> СОЗДАНА НОВАЯ ГРУППА для атрибутов | Название - ['.$grop_name.'] | id новой группы - ['.$group_id.']'.PHP_EOL;
  file_put_contents($path, $text, FILE_APPEND);

  return $group_id;
}

//Проверяем сушествует ли атрибут в нужно группе. 
function getIdAttr($thiss, $name, $group_id){
  $name = substr(trim($name), 0, 256);
  #Убираем двое точие в конце атрибута.
  if(substr($name, -1) == ':'){ $name = substr($name, 0, -1); }
  #Вдруг имя атрибута стало пустым.
  if(empty($name)){
    return 0;
  }

  $rows = $thiss->db->query("SELECT d.attribute_id as attr_id FROM `".DB_PREFIX."attribute_description` d INNER JOIN ".DB_PREFIX."attribute a ON 
    d.attribute_id = a.attribute_id WHERE attribute_group_id = ".(int)$group_id." AND d.name ='".$thiss->db->escape($name)."'");
  if($rows->num_rows == 0){
    $attr_id = 0;
  }else{
    $attr_id = $rows->row['attr_id'];
  }
  return $attr_id;
}

//Создаем атрибут и возврашаем его id
function addAttr($thiss, $name, $langs, $group_id, $dn_id){
  $name = substr(trim($name), 0, 256);
  $attr_id = 0;
  #Убираем двое точие в конце атрибута.
  if(substr($name, -1) == ':'){ $name = substr($name, 0, -1); }

  if(empty($name)){
    return $attr_id;
  }

  $thiss->db->query("INSERT INTO `".DB_PREFIX."attribute` SET `attribute_group_id`='".(int)$group_id."',`sort_order`=0");
  $attr_id = $thiss->db->getLastId();

  //проверяем что бы создался
  if($attr_id > 0){
    #Записываем в дескрипшн.
    foreach($langs as $lang){
      $thiss->db->query("INSERT INTO ".DB_PREFIX."attribute_description SET attribute_id = '".(int)$attr_id."', language_id = '".(int)$lang['language_id']."', name = '".$thiss->db->escape($name)."'");
    }
    //Сообшаем о создании нового атрибута.
    $log = ['attr_name' => $name, 'r_attr_group' => $group_id];
    $thiss->log('AddNewAttr', $log, $dn_id);
  }else{
    $log = ['attr_name' => $name, 'r_attr_group' => $group_id];
    $thiss->log('NoAddNewAttr', $log, $dn_id);
  }

  return $attr_id;
}

?>

 


Настройки скрипта.
 

  Показать контент

3NXTrKW.png


1. Укажите id границы парсинга в которой составлен текст для работы с атрибутами (Как составлен текст будет описано дальше.)
2. Укажите режим работы атрибутов при создании товара. (Цифра от 0 до 2)
3. Укажите режим работы пр обновлении товара. (Цифра от 0 до 5)
4. Разрешить создавать группы атрибутов или нет. Если указано нет то группа для атрибутов будет братся из настроек атрибутов что я показал в начале статьи.

 

Как составлять строку для создания атрибутов с учетом групп.
Логика формирования осталась прежняя, имя атрибута отделяется от значения тегом {csvnc} но так же добавились еше два тега.
{g-start} - текст начала имени группы атрибутов.

{g-stop} - текст окончания имени группы атрибутов.
Модуль сперва находит группу атрибутов, и затем все атрибуты которые идут после группы будут записаны в эту группу. Пока не закончатся или не встретится указание новой группы.

Пример нового формата.

  Показать контент

{g-start}Электрические характеристики{g-stop}Выбор диапазона{csvnc}Автоматический{csvnc}Аналого-цифровой преобразователь{csvnc} 4 канала, 24 бит{csvnc}  Рабочий диапазон частот{csvnc}  От 2 Гц до 20 кГц{csvnc}  Дискретизация{csvnc}  51,2 Гц{csvnc}  Функции обработки цифрового сигнала{csvnc}  Автоматически настраиваемый фильтр защиты от наложения частот, фильтр верхних частот, прореживание, наложение, отсечение части сигнала, быстрое преобразование Фурье и усреднение.{csvnc}  Частота дискретизации{csvnc}  От 2,5 кГц до 50 кГц{csvnc}  Динамический диапазон{csvnc}  128 дБ{csvnc}  Отношение сигнала/шума{csvnc}  100 дБ{csvnc}  Разрешение быстрого преобразования Фурье{csvnc}  800 линий{csvnc}  Спектральные окна{csvnc}  Ганнирование{csvnc}  Единицы измерения частоты{csvnc}  Гц, порядки, цикл/мин{csvnc}  Единицы измерения амплитуды{csvnc}  дюйм/с, мм/с, колебательная скорость в дБ (VdB (США)), колебательная скорость в дБ (VdB* (Европа)){csvnc}  Энергонезависимая память{csvnc}  Карта памяти SD micro, 2 Гб внутренней памяти + разъем для установки пользовательского дополнительного устройства хранения данных{csvnc}{g-start}Общие характеристики{g-stop}  Размеры (В x Ш x Д){csvnc}  18,56 см x 7,00 см x 26,72 см (7,30 дюйма x 2,76 дюйма x 10,52 дюйма){csvnc}  Масса (с аккумуляторной батареей){csvnc}  1,9 кг (4,2 фунта){csvnc}  Дисплей{csvnc}  VGA, 320x240, цветной, диагональ 5,7 дюйма, жидкокристаллический дисплей на тонкоплёночных транзисторах со светодиодной подсветкой{csvnc}  


Как это будет работать?
При использовании этого скрипта атрибуты будут создаваться, каждый в своей группе.
Так же при обновлении добавлении скрипт будет проверять присутствие атрибута в конкретной группе.
То есть теперь атрибутов могут быть одинаковые атрибуты и располагаться в разных группах, и скрипт при добавлении и обновлении будет учитывать это.

================================
Все кому это было нужно копируйте ссылку сохраняйте себе.
Так же с этим постом заканчиваю вопрос скриптов.
Я думаю скрипт который состоит из 350 строк использует как встроенные функции в модуль, так и свои личные функции, получает данные из модуля для своей работы, является самым большим пособием по написанию собственных скриптов под любые задачи!

Сам PHP скрипт attr_group.php => attr_group.php

Чтобы можно было воспользоваться скриптом достаточно его загрузить через фтп в директорию /admin/simplepars/scripts/? 
или вышла новая версия модуля simplpars, в которой это предусмотрено?) Не могу понять. т.к. закинул в эту папку , кэш почистил , модификаторы обновил, нет вкладки PHP скрипты)

 

Надіслати
Поділитися на інших сайтах


1 минуту назад, egortide сказал:

Чтобы можно было воспользоваться скриптом достаточно его загрузить через фтп в директорию /admin/simplepars/scripts/? 
или вышла новая версия модуля simplpars, в которой это предусмотрено?) Не могу понять. т.к. закинул в эту папку , кэш почистил , модификаторы обновил, нет вкладки PHP скрипты)

 

Поддержка скриптов появилась с версии 4.6 и новее.

Надіслати
Поділитися на інших сайтах

12 минут назад, askmeask сказал:

Подскажите пожалуйста, как с помощью поиск замены удалить все до последнего слеша:

 

/_sh/6/677m.jpg

{.*}/|

Надіслати
Поділитися на інших сайтах

Подскажите решение, когда парсю сайт sanmix.нетюа и teplolinia.комюа начинает сайт тормозить мой страницы грузяться по 11 секунд. Когда удаляю чисто категорий( товары не трогаю) сайт начинает хорошо работать 

Надіслати
Поділитися на інших сайтах


3 часа назад, REVO123 сказал:

Подскажите решение, когда парсю сайт sanmix.нетюа и teplolinia.комюа начинает сайт тормозить мой страницы грузяться по 11 секунд. Когда удаляю чисто категорий( товары не трогаю) сайт начинает хорошо работать 

Шаблон remarket , Версия ocStore 3.0.3.7

Надіслати
Поділитися на інших сайтах


10 часов назад, REVO123 сказал:

Подскажите решение, когда парсю сайт sanmix.нетюа и teplolinia.комюа начинает сайт тормозить мой страницы грузяться по 11 секунд. Когда удаляю чисто категорий( товары не трогаю) сайт начинает хорошо работать 

Система. Настройки. Отключить подсчет товаров в категориях

Надіслати
Поділитися на інших сайтах


12 часов назад, REVO123 сказал:

Подскажите решение, когда парсю сайт sanmix.нетюа и teplolinia.комюа начинает сайт тормозить мой страницы грузяться по 11 секунд. Когда удаляю чисто категорий( товары не трогаю) сайт начинает хорошо работать 

Здравствуйте.
Интересно вы решили привязать слово тормозить и парсинг.
Исходя из вашего вопроса уже понятно что это как бы вопрос не к парсингу а к работе вашего движка.
Такие вопросы стоит задавать просто в обшей ветке опенкарта, а не в ветке парсера.

  • +1 2
Надіслати
Поділитися на інших сайтах

Добрый день.

Может кто-то сталкивался и решал подобную задачу - есть товар с выбором цвета, возможно ли спарсить этот товар как несколько товаров? (каждый цвет - отдельный товар).

 

Мне что-то вообще никак не видится решение посредством этого модуля. 

Надіслати
Поділитися на інших сайтах


17 минут назад, askmeask сказал:

Добрый день.

Может кто-то сталкивался и решал подобную задачу - есть товар с выбором цвета, возможно ли спарсить этот товар как несколько товаров? (каждый цвет - отдельный товар).

 

Мне что-то вообще никак не видится решение посредством этого модуля. 

Найдите возможность получить выгрузку xml и обработать модулем. Там должны быть отдельными товарами. 

Вариант- обработать товары обработчиком xml с выделением опций отдельными товарами. 

Подробнее эту возможность нужно смотреть непосредственно на доноре.

Змінено користувачем partshez
Надіслати
Поділитися на інших сайтах


10 минут назад, askmeask сказал:

Может кто-то сталкивался и решал подобную задачу - есть товар с выбором цвета, возможно ли спарсить этот товар как несколько товаров? (каждый цвет - отдельный товар).

 

Мне что-то вообще никак не видится решение посредством этого модуля. 

Добрый день.

Я постоянно решаю именно такие задачи с помощью данного модуля, поскольку основной товар, с которым сейчас приходится много работать - это матрасы и пр. товары с опциями и даже связанными опциями....

Но это задача. которая разрешима только при определённом уровне знаний... а модуль лишь инструмент. Приобретение гоночного автомобиля не делает автоматически его владельца Шумахером... Поэтому вопрос нужно рассматривать не в плоскости "что умеет модуль", а в плоскости "что умею я"...

  • +1 1
Надіслати
Поділитися на інших сайтах


Подскажите, 

{g-start} - текст начала имени группы атрибутов.

{g-stop} - текст окончания имени группы атрибутов.

 Эти теги добавляются исключительно через поиск-замену? 

Надіслати
Поділитися на інших сайтах


5 минут назад, kamrik сказал:

Подскажите, 

{g-start} - текст начала имени группы атрибутов.

{g-stop} - текст окончания имени группы атрибутов.

 Эти теги добавляются исключительно через поиск-замену? 

Да поскольку на сайте вы этого не встретите.

Надіслати
Поділитися на інших сайтах

Работаю с новым скриптом для групп и атрибутов. Осталось одна маленькая задачка)
Может кто-нибудь подскажет как в поиске и замене убрать куски такого рода куски html кода: 
 

Цитата

<span class='attr__about b-source_tooltip j-tooltip-byclick cr-source_tooltip-right' data-title='Максимальная мощность потребления электроэнергии при работе. От этого показателя зависит, насколько быстро нагревается вода.<br>Водонагреватели высокой мощности (от 3500 Вт) могут не комплектоваться шнуром питания и вилкой. Для подключения такого оборудования к электросети мы рекомендуем обращаться к специалистам.'>

 

Надіслати
Поділитися на інших сайтах


13 минут назад, egortide сказал:

Работаю с новым скриптом для групп и атрибутов. Осталось одна маленькая задачка)
Может кто-нибудь подскажет как в поиске и замене убрать куски такого рода куски html кода: 
 

 

<span class='attr__about{skip}>|

  • +1 2
Надіслати
Поділитися на інших сайтах


50 минут назад, egortide сказал:

<span class='attr__about b-source_tooltip j-tooltip-byclick cr-source_tooltip-right' data-title='Максимальная мощность потребления электроэнергии при работе. От этого показателя зависит, насколько быстро нагревается вода.<br>Водонагреватели высокой мощности (от 3500 Вт) могут не комплектоваться шнуром питания и вилкой. Для подключения такого оборудования к электросети мы рекомендуем обращаться к специалистам.'>

Именно в этой части кода правильно убрать html:

<span class='attr__about{skip}='|

'>|

Тогда Вы получите "чистый" текст.

Если использовать

35 минут назад, partshez сказал:

<span class='attr__about{skip}>|

то Вы получите обрезок текста вот такой:

 

Водонагреватели высокой мощности (от 3500 Вт) могут не комплектоваться шнуром питания и вилкой. Для подключения такого оборудования к электросети мы рекомендуем обращаться к специалистам.'>

 

 

Змінено користувачем Axelenz
  • +1 4
Надіслати
Поділитися на інших сайтах


13 минут назад, yurok79 сказал:

Грузило товары, потом выскочила ошибка

Warning: mysqli::set_charset(): Error executing query in /var/data/www/storage/modification/system/library/db/mysqli.php on line 13

 

не подскажете в чем дело?

не подскажу так как тут двойное комбо.
Первое комбо -  Ошибка выскакивает не в файле модуля а в стандартной библиотеке опенкарт. В библиотеке по работе с базой данных.
Второе комбо - Судя по ошибке кто то модифицировал СТАНДАРТНУЮ библиотеку опенкарта по работе с базой данных.

И получается что у вас ошибка в файле в который кто то влез и что то вписал, а как правило считается лазить в эти библиотеки плохим тоном.
Так что я даже не представляю что у вас там наворочено, и почему теперь выскакивает ошибка в работе с базой данных.

Надіслати
Поділитися на інших сайтах

@yurok79 единственное что могу предложить написать в поддержку что бы убедится что у них база данных не падает от нагрузки.
То есть исключить возможность железной проблемы. Если напишут что с стороны хостинга проблем нет, придется лесть и смотреть что там наворочено. :sad:

Надіслати
Поділитися на інших сайтах

1 час назад, partshez сказал:

<span class='attr__about{skip}>|

Спасибо. получилось!

Только да, товарищ  Axelenz прав. скорректировал)

 

Змінено користувачем egortide
  • +1 1
Надіслати
Поділитися на інших сайтах


Обновление 4.7_stable

Исправил все известные недочеты. И так как давно нет сообщений о проблемах зафиксирую результат.
Если конечно что то найдете пишите в срочном порядке буду править.

  • +1 3
Надіслати
Поділитися на інших сайтах

Мой поставщик в карточке товара указывает сопутствующие товары. Коды этих сопутствующих я без проблем спарсил и поместил в свободное поле (UPC) через запятую.
Вопрос только вот в чем: Opencart сопутствующие товары связывает через id товара, как можно сделать так, чтобы связать через их через Артикул, т.к. в него я помещаю код товара поставщика.

 

Снимок экрана 2021-08-24 133257.png

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.