Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Рекомендованные сообщения

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

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


Да и сам понимаю что не может. Тем более что запрос статический же. Чертовщина какая то....

Причем даже если я закомментирую строку с удалением - все равно как то мляха удаляет((

Ссылка на комментарий
Поделиться на других сайтах


@Malciska У вас скорее сложилось такое впечатление потому что @Reanimaster хочет что бы в модуле было реализовано под него. А я в таком случаи посылаю его писать самому ту реализацию которая ему нужна. А не вношу в ветку модуля.
А он все равно упорно продолжает.

Ну и раньше я писал что Такой возможности в модуле нет.

Теперь я вместо этого пишу Вы можете это сделать через PHP скрипты.

К примеру как сегодня написал пользователь, хочу парсить блог.
загрузки блога в модуле нет, так как нужно еше определить какие блоги используют и какая структура базы.
Но он же может сам доделать заполнение базы через PHP под свои нужды, да. Значит я ему и говорю что встроенного нет, но он может сам дописать. :)

 

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

3 минуты назад, Reanimaster сказал:


Да и сам понимаю что не может. Тем более что запрос статический же. Чертовщина какая то....

Причем даже если я закомментирую строку с удалением - все равно как то мляха удаляет((

Тогда проверьте что бы у вас не было вот тут выбрано действие удалять атрибуты и создавать заново.
 

Спойлер

TU2eEgZ.png

 

Ссылка на комментарий
Поделиться на других сайтах

@Reanimaster Со всех 14 000 строк кода модуля.
Строка с запросом на удаление из таблицы атрибутов, встречается 3 раза.
DELETE FROM `".DB_PREFIX."product_attribute` - Вот эта.

1. Это в той функции что вы правите. Дай бог что бы вы правили, а не просто у себя изменяли, а на сервер тоже загружать не забывали.
2. В функции удаление атрибутов создание заново, что на скришоте выше я показал.
3. В редакторе товаров где удаление всех атрибутов из товара.

Все больше нигде таких запросов в коде нет. Можете сами убедится.

Ссылка на комментарий
Поделиться на других сайтах

6 минут назад, Rassol2 сказал:

Все больше нигде таких запросов в коде нет. Можете сами убедится.

 

Прошу прощения. Но косяк найден))

 

В коде что вы мне дали нет foreach на языки)))

 

Вот в оригинале. Я как то и проглядел этот момент) Все равно спасибо большое за уделенное время.

 

Спойлер

image.png.1e5dbfc938f2cfeaa60e2c8286aa841c.png

 

P.S. Сейчас вот сижу и думаю. Лучше бы мля я это время потратил на написание скрипта))):grin:

Ссылка на комментарий
Поделиться на других сайтах


Прошу прощения. Достал уже наверное. Как в логе вывести ID языка?
В этой же функции

 

$log = ['name' => $attr[0], 'value'=>$attr[1], 'attr_id'=> $attr['id']];
$this->log('addAttrToProductLog', $log, $dn_id);

 

Ссылка на комментарий
Поделиться на других сайтах


59 минут назад, Malciska сказал:

Анекдот немножко переделанный по теме:

 

Папа-программист сидит за компьютером. Рядом сидит маленький сын и эл. магазин создает.  Вдруг сын спрашивает:
— Папа, а как мне тут особые файлы на сервер прислать или еще какое нибудь нестандартное решение организовать?
Отец, не поворачивая головы от компьютера:
— Ок, вот тебе PHP скрипты, ты можете это сделать сам.
Пауза минут на десять, после чего сын робко спрашивает:
— Пап, а с кем это ты сейчас разговаривал?

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

Всем все равно не угадищ. Основная линия как была так и есть. Гикам скрипты.
А еше это решит 2 важные для меня проблемы.

1. Иногда просят адаптацию под что то, что нужно одному. Я такое сделать в коде модуля не могу. А только для конкретного юзера.
Он мне за это заплатит, так как я не могу это делать для него любимого бесплатно. Но он потеряет совместимость с основной веткой модуля, и все обновление для него недоступны. Если обновится моя работа затрется. А я не могу поддерживать основную ветку, и ветку для каждого с личной свистелкой. Скрипты это решают. Так как они не встроены в основную логику модуля.
Как по мне это важно.

2. Как определить что нужно вносить в модуль а что нет ?
Вот я до этого момента записываю кол-во обращений хочу, хочу, хочу.
Потом реализовываю. А по факту это никому не нужно. Время потрачено толку нет. Теперь я посылаю на скрипты. Либо реализовываю людям. И если спрос на один и тот же скрипт возрастает я вношу эту логику в модуль. Причем еше на уровне скрипта я могу довести логику до совершенства.

Что бы не быть многословным.
Кто нибудь знает где это ?
9FE8QnN.png

Вот хоть кто то знает где это находится ? :grin:
На это потрачено тонна времени, это поддерживается, но никто этим не пользуется.
Вот такие траты времени я буду оптимизировать через скрипты.

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, Reanimaster сказал:

Прошу прощения. Достал уже наверное. Как в логе вывести ID языка?
В этой же функции

 


$log = ['name' => $attr[0], 'value'=>$attr[1], 'attr_id'=> $attr['id']];
$this->log('addAttrToProductLog', $log, $dn_id);

 

В массив $log добавите еше id языка.


Затем найдите строку
if($mark == 'addAttrToProductLog'){
Ну и там по аналогии поправите текст. Ваш id языка будет находится в массиве $data
Короче все по аналогии.

Спойлер

FHIwWwm.png

 

Ссылка на комментарий
Поделиться на других сайтах

7 минут назад, Rassol2 сказал:

Вот хоть кто то знает где это находится ? :grin:

Я знаю)))

Ссылка на комментарий
Поделиться на других сайтах


7 минут назад, Rassol2 сказал:

Вот такие траты времени я буду оптимизировать через скрипты.

Все верно, собственно говоря. Вы молодец!)

Ссылка на комментарий
Поделиться на других сайтах


4 минуты назад, Rassol2 сказал:

В массив $log добавите еше id языка.

Благодарю. Просто у меня ощущение что при загрузке атрибутов что то не так с определением языка. Хочу проверить.

Ссылка на комментарий
Поделиться на других сайтах


28 минут назад, Rassol2 сказал:

Что бы не быть многословным.
Кто нибудь знает где это ?

Находится в Менеджер url/Парсинг в кеш... но никогда не пользовался... даже не было такой потребности )

Ссылка на комментарий
Поделиться на других сайтах


Только что, Axelenz сказал:

Находится в Менеджер url/Парсинг в кеш... но никогда не пользовался... даже не было такой потребности )

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

Может дальше вообще выкину за ненадобностью, и кеш будет создаваться только в момент парсинга. То чем реально пользуются.

Ссылка на комментарий
Поделиться на других сайтах

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

То чем реально пользуются.

 

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

Ссылка на комментарий
Поделиться на других сайтах


В общем если интересно. Психанул, залил 1 язык. Экспортировал таблицу, заменил lang_id залил назад. Дешево и сердито)

Ссылка на комментарий
Поделиться на других сайтах


6 часов назад, Rassol2 сказал:

Ой, кажись вышло такое правило придумать :grin:

{reg[#(\d)+,+(\d)#]}|$1.$2

При всём уважении... не стал бы рекомендовать данное регулярное выражение для использования...

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

 

Спойлер

image.png.a6e7e527b68b268e76522e5d2e2646d7.png

 

Я бы рекомендовал в таких случаях использовать более универсальное регулярное выражение, при желании даже можно поправить, если кто-то случайно до или после запятой поставил пробел (защита от дурака):

 

{reg[#(\d)\040?,\040?(\d)#]}|$1.$2

 

Вот отчёт, как это отрабатывает:

 

Спойлер

image.png.17ce0099373341042f678b25baf7e7c9.png

 

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах


11 минут назад, Axelenz сказал:

При всём уважении... не стал бы рекомендовать данное регулярное выражение для использования...

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

 

  Скрыть контент

image.png.a6e7e527b68b268e76522e5d2e2646d7.png

 

Я бы рекомендовал в таких случаях использовать более универсальное регулярное выражение, при желании даже можно поправить, если кто-то случайно до или после запятой поставил пробел (защита от дурака):

 

{reg[#(\d)\040?,\040?(\d)#]}|$1.$2

 

Вот отчёт, как это отрабатывает:

 

  Скрыть контент

image.png.17ce0099373341042f678b25baf7e7c9.png

 

Благодарю!

Ссылка на комментарий
Поделиться на других сайтах


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

Ссылка на комментарий
Поделиться на других сайтах

5 часов назад, Rassol2 сказал:

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


Есть предложение при парсинге в ИМ в рамках одного проекта дать возможность пропускать в задании ссылки с ошибками.
То есть мы начали сбор ссылок. Собрали предположим 12 000 ссылок. Из которых 1000 попалась с ошибкой 404 или ещё какой-то.
И в парсинг мы должны отдать в идеале 11 000 ссылок с правильным кодом ответа.

Ссылка на комментарий
Поделиться на других сайтах


3 минуты назад, Starychenko сказал:


Есть предложение при парсинге в ИМ в рамках одного проекта дать возможность пропускать в задании ссылки с ошибками.
То есть мы начали сбор ссылок. Собрали предположим 12 000 ссылок. Из которых 1000 попалась с ошибкой 404 или ещё какой-то.
И в парсинг мы должны отдать в идеале 11 000 ссылок с правильным кодом ответа.

В менеджере юрл вы можете отфильтровать ссылки по ошибками. Причем выбрать определенные ошибки. И удалить их из списка.

Ссылка на комментарий
Поделиться на других сайтах

В 28.04.2021 в 22:15, Malciska сказал:

 

Автор Вы Молодец !!! Респект Респект Респект !!!

В ногу со временем и потребностями :)

 

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

может если все немножко упростить, то эту фишку увидим уже в след. обнове :) ?

 

Обьясню потребность... 

 

Допустим я настроил фильтр сбора ссылок, собрал ссылки на товары, спарсил, обработал, запустил товары в продажу. Список ссылок на товары сохранил.

Запустил проект на медленный крон пару раз в неделю на поиск у донора новых товаров. 

И чтобы уже обработанные товары не мешались в результатах... 

Сделайте пожалуйста возможность при сборе ссылок на товары в настройках фильтра указать "исключить сохраненные ссылки"

Таким образом будет сразу и просто видно что у донора есть нового...

 

У кого крупные доноры или их немного, тому это может и неактуально.

В моем случае у донора 30-50 товаров и доноров много.

Каждый новый товар я все равно осматриваю, обрабатываю и т.д.

Хмм ... хоть вы и обьясняли как это сделать почти, но хочется чтобы было попроще :)

 

Изменено пользователем Malciska
Ссылка на комментарий
Поделиться на других сайтах


ВНИМАНИЕ!!!
При работе с собственными скриптами вылез неприятный момент.
Собственные скрипты использовать в много поточном режиме не получится, только в один поток.
Это обусловлено пространством имен самого PHP и это я обойти не могу.

 

Собственно есть два пути реализации этой функции, либо в один поток, и один скрипт можно использовать только один раз в в пределах одного задания.
Либо полностью отказаться от возможности передачи параметров от парсера вашим скриптам. Что вообще не допустимо :(

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

Ссылка на комментарий
Поделиться на других сайтах

Обновление 4.6-2_beta
Введено ограничение при использовании собственных PHP скриптов.


При использовании скриптов модуль сможет парсить исключительно в однопоточном режиме. Не смотря на настройки потоков в проекте.
Так же в одном проекте подключить один скрипт можно только один раз.

В принципе все то что я описал три часа назад.
 

Ссылка на комментарий
Поделиться на других сайтах

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

Напоминайте что я обещал сделать после реализации скрптов :)

Доброе утро.

Проски IPv6)

Ссылка на комментарий
Поделиться на других сайтах


-

 

Изменено пользователем Reanimaster
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.