Александр Мельник

Александр Мельник

С нами с 02 сентября 2016; Место в рейтинге пользователей: #52
05 декабря 2019, 09:46
0
Вам наверное везет с заказчиками и это сплошь порядочные предприниматели)
В моей практике обычно так — если нужно парсить сайт, это означает что хотят перепродавать чужие товары без спроса с наценкой. И наверное в этом нет ничего ужасного, но меня почему-то с детства приучили что это не хорошо и не честно, поэтому я и называю это моими «тараканами»)
Ну и во-вторых, если поставщик хочет чтобы его товаром пользовались, он придумает удобный способ подачи этого товара — сделает какой-то файл с товаров в xml или json или разработает api для получения товаров. Если этого нет, то скорее всего сайт не хочет, чтобы его товары кто-то «крал».
04 декабря 2019, 21:03
0
Последнее занудство с моей стороны и иду спать)
Никак, а это в целом играет какую то роль для посетителя?)
Для посетителя — нет. Для СЕО — большая разница где физически будет товар. Ведь от этого как минимум зависит URL и уровень вложенности страницы.
04 декабря 2019, 20:52
0
К примеру есть на сайте доноре категория — ковры. в ней товар Ковер персидский. Есть категория — Для дома. В ней товар — Ковер персидский.
Для начала предположим что это один товар — идентичный.
Как ваша программа определяет, какая категория для него реальная?
А как понимает какая категория для него виртуальна?

А другой вариант. Это два разных совершенно ковра. Просто и тот и тот персидский и назвали их — Ковер персидский. Получается что один ковер будет утерян при парсинге? Ведь программа один из ковром посчитает дублем.
04 декабря 2019, 20:47
0
Скажите, а на основании чего ваша программа принимает решение, в какую «виртуальную» директорию положить дубль?
Или что, при парсинге сайта на вашем сайте создается и точная копия категорий и подкатегорий как на сайте доноре?
04 декабря 2019, 20:45
0
Я не умею настолько хорошо работать с этим инструментом, но поверьте это возможно и очень быстро. Ексель неимоверно мощная программа для обработки данных.
Я не говорю что ваш компонент плох или не нужен.
Я честно признаюсь, впервые от вас сегодня узнал, что кто-то парсит сайты сразу в базу, а потом борется с дублями. Думал что все работают также с экселевскими файлами. Век живи — век учись.
04 декабря 2019, 20:33
0
Ну во первых вы живете в каких-то «мажорных» местах и если в ваших краях 30 000 это минималка то мои поздравления.
Но дело не в этом, а в том, что если менеджер умеет работать с Ексель на высоком уровне, то проверка 50 000 товаров проходит за 5 минут.
04 декабря 2019, 19:42
0
Чисто юмора ради (хотя заметка и так вышла довольно юморная).
В продолжение этой фразы
Почему-то многие забывают (или даже не знают, хехе) что MODX написан на PHP.
Я когда впервые увидел код сайта на modx был уверен, что это какой-то неведомый мне язык программирования. Какие-то [[+id]], непонятные скобочки, синтаксис которого не видел нигде, какие-то телевизоры)
И если бы меня кто спросил — я бы клялся что это все что угодно, но не php ибо мне в учебниках ничего подобного не попадалось.
04 декабря 2019, 18:51
0
Я вас понял.
Я вообще негативно отношусь к парсингу чужих сайтов, но это лично мои «тараканы».
Но если все же приходится это делать, мы не делаем это напрямую в базу, а в экселевский файл, затем контент менеджеры используя формулы экселя удаляют дубли и все ненужное.
04 декабря 2019, 10:41
0
Позволяет, если у них разный алиас
совершенно верно, но в 99% случаев алиас формируется автоматически по pagititle, а значит если одинаковое название то и одинаковый алиас.
Ну да ладно, это не важно. Я просто тоже не совсем понимаю концепцию этого дополнения.
04 декабря 2019, 09:00
+1
Обратитесь лучше в поддержку хостинга, чтобы они дали рабочий вариант.
Действительно все сильно зависит от настроек хостинга.
У меня есть сайты на бегет, таймвеб, рег ру, ник ру, мастерхост, айхор и на паре совсем экзотических площадок и практически везде команды для htaccess приходится вносить разные. Так что самый верный способ — переложить это на плечи техподдержки.
04 декабря 2019, 08:50
0
Не совсем понял.
ищет дубли по названию товаров (pagetitle) и удаляет
1. По-моему дублями с точки зрения поисковых систем считаются не страницы с одинаковым pagetitle, этот процесс сложнее чем просто одинаковое название. Да и плюс, как я сталкиваюсь в практике, разные разработчики по разному используют поле pagetitle, кто-то отправляет его в h1 на страницу, а кто-то в title
2. Разве модекс позволяет сохранить два ресурса с идентичными названиями? Как могут возникнуть два идентичных pagetitle? Или имеется ввиду похожие названия? Но тогда вопросов еще больше, что есть такое «похожие» и как определять степень схожести. Если на сайте два ресурса «Товар 1» и «Товар 1-1» какой-то из них автоматом будет удален?
24 ноября 2019, 15:00
0
Согласен с вами во многом, но
— я не решаю с кем работать а с кем нет, я работаю на компанию и решает директор.
— я также часто агитирую о создании нового сайта, но не всегда это возможно. К примеру если существующий сайт создан на платной версии какого то движка. Заказчик не станет покупать еще раз лицензию на Битрикс или на движок CS CART (стоимость лицензии 150 000 рублей). Так же заказчик никогда не в состоянии полноценно описать, что его сайт умеет и приходится оценивать только на глаз. И ты такой сделал новый сайт, ориентируясь на то что видишь, а заказчик такой — ой забыла сказать — у нас же еще есть приложение для мобильного телефона на play market, оно же будет работать да? )) И таких нюансов море.
И пачку скриптов импорта данных со старого, с конвертацией «как надо»
Круто! Моих знаний на это не хватит, особенно учитывая что мы не придерживаемся одного двух движков, чтобы изучить их настолько, чтобы писать скрипты для конвертации данных из одного в другое. Одновременное приходится работать с 7-8 движками.

И три года меня не сильно беспокоили эти все моменты с гитом, поскольку работаю я один и о ужас, но по ftp мне гораздо быстрее перенести какую-то фичу с локального сайта на продакшен. Но скорее всего у нас появится новый разработчик и хотелось бы наладить более продуктивный процесс. Вот и получается что во вне рабочего времени пытаюсь испробовать различные способы работать совместно через гитхаб с уже существующими сайтами, пока что больно и приносит больше проблем чем выгоды.
24 ноября 2019, 13:20
0
Вспомнил и еще проблему, с которой приходится сталкиваться при попытке взять под контроль версий сайт на продакшене.
Как я писал выше, чтобы клонировать туда удаленный репозиторий, предварительно нужно скопировать и удалить, а затем частично восстановить файлы. И если на сайте присутствуют файлы, названные киррилицей, то скорее всего в процессе копирования их названия исказятся. И у 50% товаров исчезнут изображения, потому как менеджер залил файл «юбка белая.jpg» а после копирования и перезаливки файлов вернулся #!!&&& ***.jpg
24 ноября 2019, 12:58
0
Я писал цифры (150 гигабайт и 17 000 000) не имея ввиду что-то конкретное, но могу сказать что из 35 проектов, которые мы обслуживаем, около 5 имеют общий размер (файловой системы) без учета базы — от 100 до 200 гигов. Особенно этим страдают Битрикс и Джумла (и да да, такое тоже у нас есть ибо руководитель фирмы берет на обслуживание любые сайты).

Можно создать общий сайт разработки dev.site.ru, который подключить к рабочей БД только для теста!!! А программистам можно поднять свои локальные версии для работы.
Выходит что мои «страхи» оправданы? И для того чтобы корректно работать над одним сайтом двум разработчикам нужно иметь 4 версии сайта — Рабочая, тестовая и у каждого разработчика локальная. И тут конечно следующей волной накатывает проблема точного совпадения сред разработки сразу в 4 местах, но вы ответите мне словом Докер, а я морально не готов к этому)) поэтому пока опустим данный факт.

Один программист делает копию сайта, пушит её на гитхаб (или др. систему управления версиями). А другой тянет её себе. Тут сложно объяснить, если не знаешь матчасть.
В техническом плане вопросов нет, но все же:
— что все файлы сайта запихивать в репозиторий? Тут еще одно мое недопонимание. Я считаю что правильно в репозитории держать только те файлы, которые важны для разработки, все остальное оставляя в игноре. Но есть и огромные минусы такого моего подхода. Ну во первых не всегда ясно что понадобится, особенно если сайт представляет собой незнакомый движок или самописку и там один только автор знает где у него что. Ну и во вторых, имея такой репозиторий на основании его нельзя поднять полноценную копию сайта. Я помню мы как-то обсуждали этот вопрос с Артемом Зерновым и он сказал, что да — он добавляет в репозиторий сайт целиком. Поэтому вопрос, как поступаете вы?
— как изменения с удаленного репозитория попадают на действующий сайт? Мы не можем выполнить git clone изначально чтобы клонировать репозиторий на продакшен сервер. Клонирование может быть произведено либо в отдельную директорию имя которой мы укажем либо в текущую директорию при условии что она пуста. Но у нас там файлы сайта. И выход только один, все удалить, склонировать репозиторий, но! мы ведь в репозиторий не будем добавлять все директории и файлы сайта, а значит предварительно перед этой операций нужно сделать копию всех файлов сайта, затем после того как слонирован репозиторий вернуть недостающие файлы на сервер (и скорее всего это придется делать пофайлово и это займет не один час) и все это время сайт на продакшене будет недоступен.
Посетители не видят сайт, заказчик злой, плюс предварительно нужно отключить все рекламные компании по сайту и прочие приблуды… Звучит как репетиция ада и на самом деле примерно так и происходит в реальности. Я вот по этому и «насильно» у всех выпытываю как же они пользуются этим инструментом, но как правило в ответах только общие фразы и рассказ о том как удобно. Но наверное это происходит от того, что мало кто «страдает такой ерундой» как поддержка и переработка старых, пришедших от других разработчиков сайтов.
24 ноября 2019, 10:51
0
Конечно хотелось больше конкретики, но и на том спасибо.
Думаю что есть огромная разница между разработкой кода фреймворка и работы с существующим проектом. К примеру да, я не представляю как правильно вести поддержку сайта, пришедшего со стороны.
Берет директор на обслуживание и доработку сайт, скажем на битриксе, уже работающий три года проект, весом 150 гигабайт и базой данных в 17 000 000 записей. И говорит — а теперь мы все переделываем ( о как часто я слышу эту фразу). И начинается список задач, от задач по изменению и добавлению логики, так и визуальных — работы с версткой. И такие задачи не выполнишь просто с файлами, поскольку чтобы увидеть результат. сам сайт должен функционировать. Тоесть если мы меняем какую то логику работы с товарами, то чтобы понять получилось или нет — нужны товары, а товары это записи в базе данных.

Если не сложно, Сергей, можете написать именно цепочку конкретных действий, которую вы бы использовали вот для такой задачи.
1. Есть работающий «старый» сайт. Размещен на хостинге заказчика, весит сотню гигов, база данных огромна.
2. Руководителем ставится задача — теперь мы занимаемся обслуживанием и переработкой сайта и сразу например ряд задач (от изменения внешнего вида до изменения логики работы с заказами)
3. Есть два программиста, которые должны работать одновременно. Естественно на работающий сайт должны попадать уже только проверенные программные решения.
И проблемы, которые я предвижу ввиду своей неопытности:
1. Нужна как минимум одна копия сайта, с которой нужно вести работу. Проблема скорее не технического, а жизненного характера, поскольку заказчик на предложение докупить на своем выделенном сервере еще 150 гигов, скажет — а не пошли бы вы. Но это так, реалии жизни.
2. команда git clone не может быть выполнена не в пустой директории. А это означает, что для того чтобы взять под контроль версий работающий сайт, его файлы придется удалять. (причем удалить все, выполнить клонирование с удаленного репозитория, а затем восстановить файлы, которые не содержаться в репозитории). Может данную проблему уже научились решать или правильнее инициализировать репозиторий как раз на живом сайте… именно поэтому я и спрашиваю совета у вас более опытных.
3.
Новую функциональность принято разрабатывать в отдельных ветках. Тогда два твоих программиста не зависят друг от друга.
Программист 1 сделал свою работу, результатом которой есть некая ветка Ветка1 уже запушеная на гитхаб. Второе в тоже время закончил свою работу и результат Ветка2. Оба они идут на сервер, на котором расположен тестовый сайт, делают пулл своих изменений и переключаются на свои ветки. Но сервер то один, репозиторий то один, а значит в один момент времени может быть активная только одна ветка. Программист 1 включает свою ветку, начинает проверять работает ли его фича по заказам, но в этот момент программист 2 включает свою ветку — в итоге файлы на сайте меняются, у первого все перестало работать…
4. Опять таки, чтобы избежать проблем в пункте 3 я вижу только вариант, что у каждого разработчика есть еще и своя версия сайта (тоесть полноценно работающая, с базой данных и прочее), на которой он может проверить свой код.
ps.Кто такой Шифу?
pss Иван, а можно ссылку на ту инструкцию?
22 ноября 2019, 20:59
+1
MODX 3, насколько я знаю, обещали выпустить в 2012 году в первый раз).
Так что не удивительно, что разработчики «смотрят» и в другие стороны. Я в последнее время «влюбился» в микрофреймворк SLIM 4 и очень кайфую от возможности масштабировать его в любую сторону -контейнер зависимостей, любые шаблонизаторы (есть ТВИГ адаптированный под Slim), Doctrine для работы с сущностями, весь composer, жесткое следование psr-7 и psr-15…
22 ноября 2019, 20:45
0
Saving Happens Automatically
No need to run the $resource->save() method as that happens automatically.
docs.modx.com/revolution/2.x/developing-in-modx/basic-development/plugins/system-events/ondocformsave
21 ноября 2019, 23:41
0
{'pdoResources'|snippet:[
***
***
'tvPrefix'=>''
]}
без такой надписи к имени ТВ добавляется tv.latestTag
добавив ее вы сможете обращаться просто к {latestTag}
21 ноября 2019, 20:37
0
Ох накрутили вы).
Что вы хотите в финале получить?
ТВ… не открывают доступ к шаблонам или как вы там сформулировали.
Обращаясь к
$_modx->resource.latestTag
вы обращаетесь к текущему ресурсу. Если вы вызываете это на странице категории, но к категориям не привязан данный ТВ то вы ничего и не получите.
Если вы хотите на странице категории прописать какое-то условие, связанное с ТВ которое есть у продукта, вам нужно получить это значение у какого-то конкретного продукта. к примеру так
{55|resource:'latestTag'}
где 55 айдишник какого-то товара.
Но скорее всего вы хотите что то делать с этим ТВ у товара, только не на странице товара, а в категории. Вы пишите
На странице с шаблоном «Категория» выводятся карточки с данными страниц с шаблонами (Продукт).
Как выводятся? Наверное же каким-то сниппетом? К примеру если это pdoResources то нужно воспользоваться параметром includeTVs и добавить к выборке ваше ТВ. Тогда в чанке, который отвечает за отображение одного товара вы сможете оперировать
{if $latestTag  == 'Да'}
    {include 'tpl_latestTag'}
{/if}
И кстати последуйте совету Дмитрия, перепишите варианты выбора для ТВ. Правильнее Нет==0||Да==1 Тогда в выпадающем списке вы будете видеть Да или Нет, а в коде оперировать нулем или единицей.