Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Axelenz

Users
  
  • Posts

    744
  • Joined

  • Last visited

Everything posted by Axelenz

  1. Подскажите, планируется ли расширение возможностей модуля для работы с атрибутами ? В частности, интересует автоматическое создание (по принципу, если нет созданных в ИМ) групп атрибутов, т.е. спарсить и создать у себя такую же группу. И "красивая" заливка атрибутов с донора по группам, как в первоисточнике... Сами атрибуты будут выстроены в пределах группы по алфавиту, это понятно. При большом количестве товаров сортировать атрибуты по важности просто не реально. Но по группам то разбить реализуемо ? Как-то так, как у донора:
  2. Вот так лучше будет: {reg[#(\s*\<br\>\s*)+#]}|<br> "{reg[#<br>{2,}#]}|" а такая конструкция и не сработает. Тут что написано то ? 2 или более подряд идущих <br>. Подряд! А как правило между ними есть или горизонтальные или вертикальные разделители... Ну и экранирование мета-символов отсутствует...
  3. Нет, у меня крошки все на месте, без них не получилось бы разбрасывать товар покатегорийно... Но согласен, что такой вариант не везде и не всегда пройдёт... Парсю всё в csv, потом беру только те номера id, на которых есть товар, чтобы с "пустыми" id не возиться и скормлю потом, пусть cron работает по этим ссылкам, никакой даже очереди сканирования мне не нужно ) Главное сделать "запас" ссылок на будущее.
  4. Подскажите, если при парсинге Opencart я использую ссылки минуя ЧПУ типа такого donor.com.ua/index.php?route=product/product&product_id=1 ... donor.com.ua/index.php?route=product/product&product_id=4000 чтобы не заморачиваться с поиском ссылок на довольно кривом сайте просто в Excel по формуле вывел список . Вместо, например более 6000 ссылок в очереди сканирования я получаю всего 4000 с запасом на будущее и не заморачиваюсь с поисками, вставляю их в ссылки на товары. Могут быть в этом подходе какие-то минусы, что я не учёл ?
  5. Из хотелок... Удобно было бы, чтобы присутствовало в Изображения (Парсинг в ИМ) поле, где можно было бы указывать ограничение на количество загружаемых фото. Например: Выбираем 1 - загружается только Главное изображение, 2 - Главное и дополнительное 3 - и так далее. ALL - все фото (по умолчанию). И при всех Обновлениях и пр. действиях сохранялась бы логика количества изображений.
  6. Спасибо за подсказку. Заменил файлы на нормальные стандартные... пусть разбираются те, кто накосячил, моя работа наполнить магазин товарами не смотря ни на что...
  7. Спасибо, всё теперь на русском при выполнении inst.php Но кто-то полазил в контроллере в файлах категорий, производителя и товара и теперь вижу такую картину при загрузке через SimplePars
  8. Warning: Cannot modify header information - headers already sent by (output started at /sata1/home/users/sportzona/www/www.*****************/inst.php:1) in /sata1/home/users/sportzona/www/www.********************.com.ua/inst.php on line 3 Модуль SimplePars успешно установлен/обновлен! А это правильный ответ пришёл теперь ? В базе есть файл key с кодировкой cp1251_general_ci
  9. Подскажите, на ocStore 3.0.2.0 при выполнении inst.php вылезают кракозябры Модуль SimplePars успешно установлен/обновлен! Где искать проблемы с кодировкой ? есть один файл _key в базе в кодировке cp1251
  10. Для этого и существуют эти настройки: Делаете в проекте проверку по Производителю, т.е. указываете в этом месте границу Производитель и условия, по которым товар загружать/не загружать. Но поможет в том случае, если донор педантично заполняет поле производитель ) Ну и нужно помнить, что Адидас и Adidas для модуля не одно и то же...
  11. Я не знаю, как с помощью <{skip}> можно привести текст к такому виду, как мне нужно, с выборочным сохранением форматирования текста: Вот так даже можно записать: {reg[#\<(.+)\>\h*\</\1\>#u]}| {reg[#\<(.+)\>\</\1\>#]}| {reg[#\h{2,}#u]}| {reg[#^\s+|\s+$#mu]}|
  12. Всем желающим почистить текст от "паразитных" пустых тегов с пробельными символами или без них, предлагаю использовать регулярные выражения типа: {reg[#(\<.+\>\h*?\</.+\>)*?#u]}| {reg[#^\s+|\s+$#m]}| Текст до и после обработки см. на картинке, там всё понятно...
  13. Так удалить можно, но... а что делать с такой конструкцией, где есть полезный текст: <p><em>Текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст</em></p> Её тоже удалить ?
  14. Столкнулся с ситуацией, когда не получается простым способом удалить конструкцию, например, вот такого плана: <p><em> </em></p> Использовать регулярные выражения не вижу смысла, а штатными не получается, предвидя вопрос, сразу отвечаю: и копировал с текста, и вставлял сам пробел и в нотепад смотрел что там... но не удаляется это так просто. Единственный способ, которым снёс, не прибегая к помощи регулярных выражений: <p><em>{.}</em></p>| но этот способ меня не устраивает... мало ли что туда может случайно попасть при ошибке заполнения: цифра или буква... Предлагаю расширить основные операторы в поиск замене на: {_} - Один любой пробельный горизонтальный символ. И туда запихнуть абсолютно все возможные горизонтальные пробельные символы, включая юникодовские... {_*} - группа любых пробельных горизонтальных символов. И чтобы удаляло всю группу последовательных пробельных горизонтальных символов в любой последовательности, пока не встретит НЕ пробельный символ.
  15. {reg[#(\d+)\D+?(\d+)\D+?(\d+)#u]}|$2 Берём по порядку $1, $2, $3 Ну и перевод на человеческий язык: Первая группа из цифр $1 (одна или больше), за которыми следуют НЕ цифры 1-на или больше (нежадный), за которыми следует вторая группа из цифр $2 (одна или больше), за которыми следуют НЕ цифры 1-на или больше (нежадный), за которыми следует третья группа из цифр $3 (одна или больше). Возвратить группу $2 {reg[#[^\d]#]}| или так {reg[#\D#]}| или так {reg[#[^0-9]#]}| Забыл написать, следующую регулярку можно поставить вот эту на тот случай, если у Вас в тексте могут встречаться лишние, например, пробельные символы. Она удалит всё, что НЕ является ЦИФРАМИ. В принципе, возможно написать и одной строкой: {reg[#^\D*?(\d+)\D+?(\d+)\D+?(\d+)\D*?$#u]}|$2 {reg[#^[^\d]*?(\d+)[^\d]+?(\d+)[^\d]+?(\d+)[^\d]*?$#u]}|$2 {reg[#^\D*?([^\D]+)\D+?([^\D]+)\D+?([^\D]+)\D*?$#u]}|$2 {reg[#^[^0-9]*?([0-9]+)[^0-9]+?([0-9]+)[^0-9]+?([0-9]+)[^0-9]*?$#u]}|$2 результат будет тот же...
  16. Добрый день. Имею на локалке ocStore 2.3.0.2.3 Пробую установить новый АОП v.9.3 Настройки Open Server 5.2.2 следующие: не получается поставить... Причём, версия 9.2 работает без проблем... Попробовал снова установить 9.1 - устанавливается и работает без проблем с for php7.1. Попробовал снова установить 9.2 - устанавливается и работает без проблем с for php7.2. Попробовал снова установить 9.3 - выдаёт ошибку. Пробовал несколько раз и брал for php7.1 и for php7.2. В архиве for php7.3 к сожалению нет... Получаю: Кто подскажет, куда копать ?
  17. Прошлый пост по удалению пробельных символов из текста В прошлом сообщении я расписывал несколько регулярных выражений для "чистки" текста от лишних пробельных символов. Но чем хороши регулярные выражения, что почти всегда можно найти, как это реализовать по-другому. Варианты регулярного выражения, которое приводит текст к виду "стих" (с сохранением перевода строки в конце строки) 1. Вариант использует \s - пробельный символ. {reg[#\h{2,}#]}| - тут пробел {reg[#^\s+|\s+$#m]}| 2. Вариант использует \S - непробельный символ. {reg[#\h{2,}#]}| - тут пробел {reg[#^[^\S]+|[^\S]+$#m]}| 3. Вариант использует $1 - захваченную группу. {reg[#\h{2,}#]}| - тут пробел {reg[#^\s+(.*?)\s+$#m]}|$1 4. Вариация из 2-го и 3-го вариантов. {reg[#\h{2,}#]}| - тут пробел {reg[#^[^\S]+(.*?)[^\S]+$#m]}|$1 ... Результат после преобразования:
  18. Может Вы про это: {reg[#<a\s.*?href="(.+?)".*?>(.+?)</a>#]}|$2 Чтобы удаляло - после черты ничего не ставим, чтобы заменить - ставим, на что заменить... Вы задаёте постоянно не конкретные вопросы, но хотите получать на них конкретные ответы. Подумайте над тем, что правильно сформулированный вопрос несёт в себе 50% ответа на него... Когда научитесь задавать правильные вопросы - половина их сразу отпадёт. Автор модуля физически не сможет параллельно с разработкой модуля проводить курсы программирования, изучения html, регулярных выражений и пр. основ сайтостроения и парсинга. Так же, как продавец автомобилей не должен заниматься обучением вождения... Что значит возвращать содержимое ? Чтобы вернуть то, что уже есть - не нужно ничего с ним делать. Чтобы удалить - после "|" оставляем пустое место, т.е. заменить на "пусто". Чтобы заменить - после "|" подставляем на что меняем...
  19. {reg[#\v{2,}#]}|{br} {reg[#\h{2,}#]}| - тут пробел {reg[#^\s+|\s+$#m]}| Человеческим языком: Первым выражением сводим все дубли вертикальных переносов к одному {br}. Вторым выражением сводим все горизонтальные пробельные символы к одному " ". Третьим - убираем в каждой строке в начале и в конце любые оставшиеся пробельные символы. Получаем полную зачистку от лишних пробельных символов... \s - любой пробел (такой же как [\t\n\r\f]) \h - горизонтальный разделитель. Табуляция, пробел и все символы в Unicode категории «разделители» \v - вертикальные разделители. новая строка и все символы «разделители строк» в Unicode Конкретно в Вашем случае, amd4 может и достаточно было бы {reg[#^\s+|\s+$#m]}| но... для того, чтобы понять это, необходимо спарсить всё в csv и проверить... Лично я всегда перестраховываюсь и вставляю формулы с разумной избыточностью... не всегда на сайтах встретишь "чистый код" ( Рекомендую всем начинающим взять себе на заметку и не задавать автору модуля одни и те же вопросы изо дня в день. То, что описано выше помогает получить, например, Описание товара, с сохранением существующих переносов строки. Как пример - стихи. Если перенос строки не важен (простой текст), то рекомендую использовать более простой вариант "метлы": {reg[#\s{2,}#]}| - тут стоит пробел. Его не видно, но он там есть! {reg[#^\s+|\s+$#]}| Первое правило превратит ВСЕ (от 2-х и больше) пробелы, табуляции, переводы строк и пр. в один пробел. Второе правило - обрежет любой пробельный символ в начале и в конце текста. Ну а дальше можно отталкиваться от того, что Вы хотите получить, какой вид текста. Если даже этих двух способов очистки Вам явно не хватает - изучайте, что такое обычная граница парсинга, что такое повторяющаяся граница парсинга... В справке есть ответы на 99% возможных вопросов, а 1% автор умышленно оставил пользователям для нашего же развития )
  20. Чтобы не рассекречивать свой супер-пупер-шмупер засекреченный проект, которого даже в интернете не найти, воспользуйтесь самым простым способом избавиться от пустот: {reg[#\s{2,}#]}| - тут стоит пробел. Его не видно, но он там есть! {reg[#^\s+|\s+$#]}| Первое правило превратит ВСЕ пробелы, табуляции, переводы строк в один пробел. Второе правило обрежет пробел в начале и в конце. Ну а дальше можно отталкиваться от того, что Вы хотите получить, какой вид текста. Есть одна простая зависимость: чем сложнее необходимо регулярное выражение, чтобы достать нужную информацию - значит тем меньше пользователь читал справку автора модуля... Как правило, всегда можно обойтись самыми простыми наборами регулярок, автор модуля уже всё продумал и решил за нас... ) Как он правильно показывал в недавних сообщениях, почти под каждую задачу можно найти не один а несколько способов решения. Чем проще решение - тем оно красивее с точки зрения логики...
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.