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

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

С нами с 02 сентября 2016; Место в рейтинге пользователей: #64
Александр Мельник
17 мая 2019, 08:21
0
Хотел почитать документацию и посмотреть демо, но googlesheets.boshnik.ru не отвечает.
Александр Мельник
15 мая 2019, 20:50
0
file_update я неверно написал по памяти.
Александр Мельник
15 мая 2019, 17:00
0
сравнил файл с зараженного сайта и нет — они идентичны даже побайтово.
Очень странно. Даже если предположить, что кто-то внес изменения, воспользовался ими, а потом удалил, то в журнале modx должно быть две записи -resource_update для этого файла.
Александр Мельник
15 мая 2019, 15:31
0
сравнил лишь визуально, спасибо за совет
Александр Мельник
03 мая 2019, 20:09
0
спасибо, информация о которой стоит подумать… Вы правы, я пока что не вижу разницы между компонентом и пакетом и считал, что это одно и тоже)
Александр Мельник
03 мая 2019, 17:59
0
Вы очень хорошо постарались. Прямо нет слов.
Но вопросов становится все больше и даже как-то совестно вас ими засыпать. Постараюсь кратко.
— у меня нет задачи как у автора этого вопроса вести разработку на двоих, но если бы была, я бы наверное использовал статичные файлы или возможности парсера pdoTools для работы с файлами и плюс дамп базы данных. Мне кажется это намного проще держать в системе контроля версий еще и sql файл, чем городить огород с modExtra. Но скорее всего это изза неумения с ним работать.
— Откуда вы берете информацию о том как работать с modExtra? На гитхабе лежит два варианта этого компонента. В ветке версия 1 более старый и в ветке мастер более новый. По версии один еще можно найти на сайте Василия Наумкина пример разработки. Но по новой версии ничего кроме 10 строчек в файле описании на гитхабе и нет. И ставить это в вину Василию нельзя, он писал его для себя и ему и так все понятно.
— как по мне, компонент созданный при помощи modExtra представляет собой прежде всего некий класс, объект которого мы можем получить и достучаться до его методов. Не могу понять как это можно использовать для разработки всего сайта, а не отдельного функционала. Вы не создаете класс, вернее не пользуетесь им (мне кажется нельзя собрать пакет не имея основного класса компонента), а только создаете чанки, сниппеты и так далее и пользуетесь тем, что в момент установки компонента все это автоматически регистрируется в базе?
— но тогда получается, что вам после каждого внесения изменения, после каждой новой строчки или созданного чанка нужно пересобирать компонент? Да я видел в учебнике Василия информацию о том, что систему можно «обмануть» и настроить системные настройки так, чтобы modx смотрел не в core/components а в директорию с разрабатываемым компонентом, но… это справедливо только для первой версии компонента. Я сегодня потратил время на первичное ознакомление с версией которая сейчас лежит в master и у меня возникла такая же проблема как и многих пользователей. После сборки компонента удаляется содержимое директории в которой велась разработка, а сам компонент раскладывается по core и assets.
— максимальное место на котором я туплю – вновь создаваемый компонент ведь никак не пересобирает уже имеющиеся. Он пересобирает только себя. А значит нет никакой возможности повлиять на стандартный чанк или сниппет того или иного компонента. Нужно будет переписывать отдельными файлами все чанки всех используемых на сайте компонентов, если мне нужно внести в них одно слово?
— К примеру мы создали файлик шаблона. Как modExtra позволит прикрепить к нему TV поля? Или придется писать отдельный плагин, чтобы он срабатывал в mgr и прикреплял TV?
— к примеру я создал некую конфигурацию MIGX, привязал ее к TV, TV к шаблону и заполнил данными. Как modExtra сможет передать эту информацию другому разработчику? Ведь и сама конфиграция migx и записанный там json лежит в отдельных таблицах базы данных, а компонент созданный на основе modExtra знает только об одной таблице (ну может и не об одной, но только о тех таблицах, чьи схемы в нем созданы)?
— Ну и в заключение, хочу заметить, что уделил сегодня немного времени modExtra и вот с чем столкнулся. Установил modx 2.7.1 склонировал modExtra, переименовал, запустил сборку и сразу получил установленный компонент. Скачал пакет и установил его на другой сайт, тоже 2,7,1, на том же сервере и… ничего. Файлы не создались, в логе установки куча ошибок. Насколько я понял, все ошибки связаны с тем, что сервер на windows. Поскольку даже путь к установке компонента был сгенерирован с прямым слешами для Linux, а не с обратным как для windows. Ну и плюс странная ошибка xPDOVehicle does not support resolvers of type. Скорее всего эта точка тоже означает linux указатель на текущую директорию.
Загрузка рабочего пространства пакета...
Рабочее пространство загружено, сейчас устанавливаем пакет...
modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace collections to the routing based system.
Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array ( [name] => tpl.sayhello.item )
Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array ( [name] => tpl.sayhello.office )
xPDOVehicle does not support resolvers of type .
xPDOVehicle does not support resolvers of type .
Path specified for package sayhello is not a valid or accessible directory: C:/OSPanel/domains/garant/core/components/sayhello/model/
Успешно установлен пакет sayhello-2.0.0-pl
И получается, что созданный на основании modExtra компонент и собранный в пакет, никто не сможет установить на openServer. А кто бы что не говорил, я лично видел что многие из уважаемых посетителей этого сайта им пользуются. Хотя все снова может поясняться исключительно моей криворукостью, ведь собирают же люди пакеты и устанавливаются они у меня.
Но в любом случае, спасибо за желание помочь.
Александр Мельник
03 мая 2019, 11:29
0
Не совсем это ожидал я услышать, но спасибо за ответ.
Александр Мельник
03 мая 2019, 10:37
0
Я так и подумал.
Раз уж зашла речь об modExtra и если у вас есть время — расскажите поподробнее, как используя компонент для создания компонентов разрабатывать сайт. А тем более не одному. Вот правда, у меня в голове не укладывается. Я воспринимаю компонент, как некий отдельный самостоятельный кусок кода, который решает конкретную задачу.
Как например modExtra поможет работать над функционалом того же минишопа? Вот правда, расскажите подробное, реально интересно. Как вести разработку вдвоем? Сайт должен где быть расположен? на удаленном сервере у которого доступ к файлам есть у обоих разработчиков и они оба через свои IDE скачивают файлы сайта и работают с ними? Как modExtra может помочь к примеру с редактированием шаблона почтового сообщения, который отправляется покупателю при оформлении заказа в магазине? Ведь этот шаблон устанавливается вместе с компонентом minishop и представляет из себя только запись в базе? Я задаю вопрос не чтобы показать, что вы не правы, не воспринимайте это в таком ключе — я просто не понимаю как это работает. Я еще понимаю когда Зернов в своем gitmodx написал скрипты, которые при запуске шерстят базу данных, вытаскивают оттуда сниппеты, чанки и так далее и создают из них файлы — это хотя бы мне понятно, а вот как moExtra может помочь разрабатывать новый сайт причем одновременно двумя тремя разработчиками — я не понимаю. Спасибо.
Александр Мельник
03 мая 2019, 10:12
0
При чем здесь компонент?
Автор этого вопроса говорил просто о возможности работать с чанками, шаблонами и сниппетами как с статичными файлами и эта возможность заложена в сам modx без всяких компонентов.
Александр Мельник
02 мая 2019, 21:15
+1
Ресурсы, чанки, шаблоны, сниппеты мв MODX можно сделать статичными, и использовать для контроля версий git.
могу быть не прав, но в вашем случае это не поможет. Статичный ресурс все равно делает запись в базе данных, и даже если ваш напарник каким-то образом получит файл, то без синхронизации базы данных ничего не будет работать.
Посмотрите на компонент… ну это и не совсем компонент, в общем на gitmodx хотя и он не решает всех вопросов.
Может я чего-то не знаю о MODX, но мне лично очень не хватает в нем миграций для базы данных, как это сделано в yii2
Александр Мельник
25 апреля 2019, 17:38
+1
Иван, огромная просьба, если это возможно.
Сделайте пожалуйста выделение активного пункта меню слева — более очевидным.
На старом сайте это была одна из самых для меня ужасных вещей, там активный пункт выделялся легким курсивом и я совершенно терялся, где я нахожусь. Сейчас сделали выделение цветом и это уже более приятно, но все равно глаз должен долго проходиться по всем пунктам, пока не увидит не черный а синий цвет.
Может задать background-color ибо для меня легкая ориентация на проекте, а особенно если это документация, намного даже важнее чем язык, на котором написана документация.
Я даже помню, что пытался на старом сайте применить свои стили, но к сожалению обнаружил, что современные браузеры не дают такой возможности.
Спасибо.
Александр Мельник
25 апреля 2019, 17:08
0
К сожалению, раздел Вопрос не гарантирует что будет получен ответ.
Да и вынужден признать, что активность ответов сильно упала за последние два года.
Сложно судить о причинах этого.

Конкретно по вашему случаю — не понятно. Раз вы видите сообщение,(только это не от ajaxForm) это от minishop овского JS то значит обращение к коннектору произошло успешно и данные изменены. По идее только после этого выдается уведомление. Почему после обновления страницы все слетает, не ясно.
Вы используете стандартные чанки в корзине?
Мой совет — пробуйте пошагово дебажить и смотреть что вообще происходит. Смотрите ошибки в консоле браузера.
Иногда довольно не тривиально отловить ошибку.
Я например постоянно попадаюсь на вот такой фишке. Я проживаю в Украине и у нас заблокирован доступ к яндекс. Большинство проектов так или иначе использует сервисы яндекса и у меня получается беда. Открытие любой страницы сайта происходит минимум 30 секунд, пока сервер пытается связаться с серверами яндекса, у него не получается, он 30 секунд пытается… и только после этого полноценно загружается страница. Чтобы избежать этого включаю VPN и проблема уходит. Но тут настает неожиданность — при работе через VPN просто не срабатывает все функции minishop. Товар не добавляется в корзину, ничего не меняется. Ты в панике ищешь в чем же дело, потом отключаешь VPN и все сразу заработало… Так что нюансов море. Или еще пример, недавно на одном проекте резко упали продажи. Пришлось просматривать вебвизор и видеть, что у многих покупателей просто происходит сбой при оформлении в корзине, перестают работать кнопки. Делаем кучу тестовых заказов, все ок, а у покупателей все крашится. Пока не вычислили, что всех этих покупателей объединяло одно — они не заполняли вручную каждое поле в корзине, а их браузеры типа предоставляют возможность хранить данные о себе и одним махом заполнять. И оказалось что именно в этот момент js скрипты minishop сходят с ума, выдают ошибку и дальнейшая работа js прерывается. Я такими «приблудами» как автозаполнение не пользуюсь, поэтому вычислить этот глюк было очень сложно.
Александр Мельник
25 апреля 2019, 16:52
0
Вы показали бы, а как вы вообще организовали сортировку контекстов.
Странно работает — это в смысле не так как хочется? )
Александр Мельник
25 апреля 2019, 13:15
0
Не совсем понимаю.
Что в вашем понимании — словарь. В моем — это скажем толковый словарь. Где есть слова и есть описание его значения.
Вы хотите сделать словарь медицинских терминов?
Чтобы рускоговорящий человек зашел на русскую версию сайта, ввел слово — проктолог и нашел его значение?
А казах зашел на казахскую версию, ввел это слово на казахском и нашел значение на казахском?
Александр Мельник
25 апреля 2019, 10:23
0
Спасибо. Наверное следует вообще убрать из установки галочку — удалять каталог setup или нет. Не давать пользователю совершить ошибку.
Александр Мельник
24 апреля 2019, 22:19
+2
например здесь
github.com/fenom-template/fenom/tree/master/docs/ru
Кстати там посмотрите описание циклов foreach
можно даже не задавать отдельную переменную и инкрементировать ее, а воспользоваться итерациями цикла.
Александр Мельник
24 апреля 2019, 22:16
+1
Вот тут почитайте как сделать выборку нужных ресурсов по определенным условиям, как сменить шаблон к примеру и сохранить.
ilyaut.ru/xpdo/
Александр Мельник
24 апреля 2019, 22:10
0
Не понимаю.
Вы создаете на JS запрос к скрипту на php
Передаете в php какие-то параметры, которые будут доступны либо в $_GET либо в $_POST в зависимости от выбранного метода ajax запроса.
в нём пачка запросов к другому сайту
В чем — в нем? в php скрипте? Что значит запросов к другому сайту? Через curl?
браузер обрезает по таймауту (1 минута).
браузер не может ничего обрезать. Сервер имеет время на выполнение скрипта и если за это время не получен ответ, то выдается ошибка 50*
Если ваш php скрипт не успевает на сервере обработать информацию за 60 секунд, настраивайте файл php.ini и в нем задавайте большее время для работы скрипта.
Александр Мельник
24 апреля 2019, 21:55
1
+1
Что в вашем понимании — рацион и почему он выводится через сниппет migx?
Если под рационом понимать его прямое значение — набор блюд, то наверное это должны быть разные товары? Но никак не Migx записи.
Но что бы это не значило.
Создаете php файл. В нем подключаете index.php из корня modx. В дальнейшем через объект приложения $modx делаете выборку нужных вам… хм… не знаю чего — рационов. Производите над ними изменения, через сеттеры и геттеры и сохраняете.
Файл запускаете по крону.