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

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

С нами с 02 сентября 2016; Место в рейтинге пользователей: #64
Александр Мельник
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 Тогда в выпадающем списке вы будете видеть Да или Нет, а в коде оперировать нулем или единицей.
Александр Мельник
21 ноября 2019, 11:50
0
ну Бог с ним, конечно. Я практически не использую в работе vsCode, но это нельзя назвать работоспособным.
Мало того, что ты обязан знать точно как называются методы объекта modx, написать его почти полностью, но и это не дает эффекта. Только если ты сотрешь несколько букв из уже написанного метода и напишешь их снова то только тогда увидишь подсказку. То есть понимаете да, я пишу $modx->sendRed и ничего никаких подсказок, потом стираю Red и пишу заново Red и только тогда вижу подсказку, что такой метод существует.
Александр Мельник
21 ноября 2019, 09:09
+1
Можно взглянуть на написанные вами инструкции? Человек старался и поделился с другими.
Александр Мельник
20 ноября 2019, 21:55
+1
попробовал установить и я.
Kubuntu 19.04, apache2, php7.2, mysql 5.7.28.
Заработало, но не сразу.
Я выставил опцию (могу назвать неточно), но мол установить демо-сайт и получил ошибку на финальном этапе.
Внимание ошибка!
Программа установки Evolution CMS не смогла установить/изменить некоторые таблицы базы данных.
Следующая ошибка возникла во время установки
Column count doesn't match value count at row 1 во время выполнения SQL запроса REPLACE INTO `cd43_web_user_attributes` VALUES ('1','1','Site Admin','0','you@example.com','','','0','0','0','25','1129049624','1129063123','0','f426f3209310abfddf2ee00e929774b4','0','0','','','','','','','','', UNIX_TIMESTAMP(), 0)
а причина явно в том, что пользователя я то переназвал на прошлом экране и теперь он не admin. Нужно подправить этот момент вам, но это мелочи.
Александр Мельник
19 ноября 2019, 13:52
0
Необычно)
Как правило, желание делать что-то изящно, возникает тогда, когда в руках много известных технологий и знаний, когда видишь различные пути решения одной и той же задачи.

Но когда этого нет, то «Понимаю, что можно сделать через pdoResources,» — это шикарный вариант.
Александр Мельник
17 ноября 2019, 16:34
0
Можно сказать что работает, но достаточно странно.
Попробую описать.
Если внутри php файла обратиться к $modx-> то предлагаются лишь стандартные функции, не имеющие отношения к модексу.
Начинаю прописывать руками, к примеру $modx->sendR но мне снова предлагаются лишь стандартные функциии и никакого sendRedirect (пролистал весь лист предлагаемых подстановок и ничего похожего на sendRedirect()) Но! Стоит удалить букву R в $modx->sendR и прописать ее снова, то в этом случае уже подсказывается, что есть такой метод.
Но даже в этом случае, когда я выбрал предложенный метод sendRedirect() редактор не подсказывает, какие параметры к примеру этот метод должен принимать.