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

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

С нами с 02 сентября 2016; Место в рейтинге пользователей: #64
Александр Мельник
30 мая 2020, 21:14
+1
Спасибо, но formdata он вроде для отправки форм. я смотрел на него, не подходит (или я не умею его готовить)
Очень удобным для меня открытием оказались коллекции данных js — form
learn.javascript.ru/form-elements
сделал пока некий метод на них, но не уверен что смог учесть все нюансы. В форме могут содержаться элементы разных типов. Так например у инпутов нужно получать value, у textarea получать innerHtml, checkbox нужно проверять на наличие атрибута checked и так далее и это чтобы получить то, что мне давала даже не одна строка, а одно слово в jquery — serializeArray()
Александр Мельник
30 мая 2020, 19:31
0
что-то переделка всего 4 строк с jquery на синтаксис javascript дается тяжко)
А что нет никакого метода для получения данных из формы?
.serializeArray();
давал мне массив объектов в виде name — value
0: Object { name: "price", value: "22000" }
1: Object { name: "price", value: "150000" }
2: Object { name: "brand", value: "Maugli" }
length: 3
а javascript не подскажите, имеет метод получения сразу всех заполненных полей формы?
Я вот для себя открыл, что оказывается существует некая коллекция форм
learn.javascript.ru/form-elements
которая содержит в себе все формы, все элементы всех форм и так далее
Могу делать цикл, сам создавать сам объекты и наполнить ими какой-то массив. Но тогда нужно еще и проверять какой элемент выбран (например если есть input type radio), ну тоесть я то нагорожу 30 строчек кода). Но может я просто не нашел удобного метода в языке js для работы с данными с формы?
Александр Мельник
30 мая 2020, 18:23
0
а я дурак. наверное же вместо document addEventListener можно назначить на заранее полученный элемент.
Александр Мельник
29 мая 2020, 10:35
0
можно примонтировать удалённую папку с помощью SSH к пустой папке.
совершенно верно, какое-то время поступал так. Но поверьте, не сравниться с удобством, которое дает редактор
— не разрывается связь никогда, не знаю как они этого добиваются
— и самая фишка, которую я не стал выше описывать, потому что обещал всего два слова, а накатал 200). vscode при подключении к удаленному серверу позволяет установить конкретно для этого сервера свой набор плагинов. Тоесть если на этом сервере вы работаете c apache, php — вы в редакторе устанавливаете соответствующие плагины и они находятся на сервере. Тоесть если вы отключились — то их на локальном компьютере нет. На втором сервере работает с nodejs, vuejs — устанавливаете плагины для них и опят таки только для этого сервера. И локально может стоять свой набор. И выходит что достаточно просто подключиться к нужному серверу, чтобы не только удобно работать с файлами, но и иметь уже настроенную среду (не знаю как правильно сформулировать).
локальная разработка с нуля удобнее.
С нуля — вопросов нет. А вот если сайт уже проработал 5 лет и разросся до огромных размеров, а еще если это самописка кем то написаная и файлы с кодом там находятся в любых самых неожиданных местах, то мне показалось удобным работать именно через vscode по ssh — работет индексация, работает поиск по файлам и их содержимому.
Для примера, частая проблема с которой я сталкивался в phpstorm
есть сайт огромный, пришел нам от каких то разработчиков и уже через час начинают валить задачи от заказчика, от руководства, от сеошников (от них особенно ибо как показать работу, если сайт уже 5 лет на рынке и заказчик недоволен результатами? Нужно говорить что все на сайте было плохо, но сейчас мы вам тут такое СЕО наведем — завтра станете миллионером). У тебя максимум час на то чтобюы вообще понять на чем создан сайт, это cms framework самописка? Какой язык там вообще) Ты создаешь проект в phpstorm удаленный, и начинаешь настройку. Нужно указать какие директории с сайта будут скачаны на локальный компьютер. Ты примерно прикинул, что вот тут вроде ядро или что то похожее. Вот тут какой, то код. А вот тут файлы изображений. Зачем они нам, убрать конечно. Создается локальный проект и пошла работа. Но через неделю соешники говорят, мы провели анализ и изображения на сайте слишком большие, нужно уменьшить. Вижу что да, на сайте как-то гененрируются превьюшки. Ищем ищем как и находим, что есть файл lalala.php в котором код по ресайзу картинок и этот файл находится точнехонько в директории с файлами картинок, которую мы на первом этапе исключили. И вот далее проблемы. У меня всегда возникают проблемы при добавлении даже директории в проект, если она ранее была исключена, вечно что то глючит после этого, но тут можно списать на криворукость. Но как добавить один файл?? помоему phpstorm этого не позволяет, можно добавить в проект только всю директорию целиком, а в ней 50000 картинок и один файл php.
Вот у меня с этим часто проблемы возникали.
Александр Мельник
29 мая 2020, 09:03
+2
Ничто не вечно) Вот и вы уже, хоть и были ярым противником, но перешли на локальную разработку. Это хорошо, что вы экспериментируете, это вы молодец.
Скажу два слова, какой для себя нашел способ работать с сайтами. В редакторе Visual Studio Code допилили работу с проектами через ssh. Шикарно на мой взгляд. Редактор подключается к серверу, мы работаем со всеми файлами совершенно не скачивая их на свой локальный компьютер, при этом код индексируется, не нужно настраивать никаких дополнительных загрузок файлов при сохранении — любое сохранение и так влияет на файл на сервере. Что еще — редактор устанавливает на сервер к которому мы подключились свой «сервер», который позволяет установить поддержку работы для php например, или javascript. Терминал редактора сразу уже работает на удаленном сервере, тоесть если мы вызывали терминал, то мы уже подключены к удаленному серверу и передаем команды туда. Работает xdebug (каюсь пока не проверял, инфа с сайта microsoft). Для меня чем хорошо — у нас чаще всего ведется не разработка новых сайтов, а поддержка и переработка старых. Так вот сайты иногда весят по 100 а то и 200 гигабайт. И как с таким работать? Локально скачивать 200 гигов себе? Или даже если создать подключение через phpStorm то все равно создается ведь локальный проект и тебе нужно заранее точно выбрать, какие директории и какие файлы тебе пригодятся в работе. А в случае подключения через ssh даже если сайт весит 200 гигов — мне нет разницы, я подключился и вижу все файлы. Что еще могу добавить — каким то чудом соединение не разрывается. Редактор может быть открытым 18 часов в сутки и я сажусь и все работает, никаких переподключений к серверу. Хотя например если я просто со своего терминала подключусь к тому же cерверу по ssh, то меня через 10 минут выкинет — напишет, что выбросило по таймауту с ошибкой — broken pipe.
Я пытался найти аналогию такого же подключения в phpstorm и не нашел, возможно плохо искал. Ну и большой плюс для visual studio code для меня — это синхронизация всего что можно, я частенько переустанавливаю системы, экспериментирую с разными семействами linux, и я могу одной командой чистую установку vscode превратить в свою — внешний вид, настройки, подключения, установленные дополнительные плагины, не знаю, даже разный размер шрифта если я ранее его задал для разных файлов — все это за минуту устанавливается и применяется. Очень удобно, тоже не нашел ничего подобного в phpstorm.
Александр Мельник
27 мая 2020, 21:50
+1
пришлите им пол банки сгущенки)
Александр Мельник
27 мая 2020, 21:44
0
Я к сожалению пишу не для того, чтобы помочь. Просто в очередной раз хочу выразить недоумение.
Мне кажется что я один использую компонент tickets исключительно как способ оставлять комментарии о товаре.
И каждый раз с ужасом читаю — «сделал сайт на tickets» или «создаю ticket»… Сколь многогранен и непознан мной этот компонент.
Александр Мельник
25 мая 2020, 16:49
+1
Интересная тема. Пусть у вас получится.
Поскольку база теперь — это файл, лежащий в корне сайта, то среди выгод вижу например — сильно облегченный деплой сайта и плюс контроль версий, который включает и базу.
Александр Мельник
23 мая 2020, 21:39
0
Сайт выглядит как одностраничный лендинг, откуда вы там 180 000 страниц набрали. И в карте сайта у вас одна страница.
Ну это конечно не мое дело, просто удивлен.

А по поводу «тормозит», тут ничего умного не скажу. Проекты которые планируются как большие и нагруженные, нужно изначально правильно планировать — не использовать TB, создавать свои таблицы для данных, подбирать сервер с учетом этих нагрузок и пятое десятое. Не обрадую вас, скорее всего у вас вряд ли получится существенно улучшить работу сайта.
Александр Мельник
22 мая 2020, 20:05
0
Сформулируйте четко что вы хотите.
передать в чанк url текущей страницы вместе с GET
как можно достать только GET параметр
хочу брать GET оформленного заказа minishop2
Я так понимаю, что вы говорите о странице, которую видит покупатель после оформленного заказа.
Хотите забирать из url номер заказа?
Он и так доступен на этой странице и обратиться к нему можно через {$order.num}
Александр Мельник
15 мая 2020, 13:54
0
Где в вашем коде инпут name=id?
Александр Мельник
13 мая 2020, 20:34
0
не стал проверять все 40 сайтов, проверил около 10ти.
на 4 не отображаются, на 6 отображаются.
Сайты на разных серверах.
В чем причина, не знаю.

приложения из modx.com и modmore при этом отображаются корректно.
Александр Мельник
12 мая 2020, 16:06
+1
просмотреть список всех модулей для php можно в ubuntu командой
php -m
проверьте, может там нет в перечне curl
Александр Мельник
07 мая 2020, 08:42
0
Да это разумно, спасибо
Александр Мельник
06 мая 2020, 17:54
0
Недавно столкнулся на одном из хостингов с тем, что они блокируют отправку писем если ящик отправитель не существует в реальности. Тоесть указываю я в emailsender — noreply@mysite.com и все отправляется. Переношу сайт на другой хостинг — не отправляется. Пишу в поддержку они говорят, что согласно нашему договору, пункт такой-то, мы блокируем отправку если ящика отправителя нет в реальности.
Наверное это мало имеет отношение к вашему случаю, но вы все-таки обратитесь в службу поддержки хостинга, у них есть логи отправки почты и там будет уже видно в чем проблема.
Александр Мельник
06 мая 2020, 14:48
0
Так ты же выбираешь опции
это был не полный код, полный выглядит так
$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => 'height', 'msProductOption.value:IN'=> [152]));
$q->where(array(
    'msProductOption.key' => 'presure', 
    'msProductOption.value:IN'=> [900],
    


));

$q->sortby('msProductOption.value','ASC');
$q->select('DISTINCT(msProductOption.value), msProduct.id');
//$q->where(array('msProductOption.key' => $key));
if (!empty($category)) {
    $ids = $modx->getChildIds($category);
    $ids[] = $category;
    $q->innerJoin('msCategory', 'msCategory', 'msCategory.id=msProduct.parent');
    $q->where(array('msCategory.id:IN' => $ids));
}

$q->prepare();
print_r($q->toSQL());
Я пробовал второй и третий код, который вы написали — они не сработали и выдавали ошибки синтаксиса sql. Возможно это связано с тем, что в примерах условие простое КЛЮЧ — Значение. А у меня условие (Опция называется вот так и ее значение вот такое — это первый where и второй — опция называется как-то иначе и ее значение вот такое).
Тоесть как-то так
$q->where(array(
    'OR:msProductOption.key' => 'presure', 
    'msProductOption.value:IN'=> [900],

));
приводит к ошибке.
А вот первый код, где можно передать дополнительно константу — я пропустил, спасибо.

Но по сути, на данный момент я считаю что sql запрос получается то правильным, по крайней мере составляй я его сам, составил бы так же и два условия ДОЛЖНЫ соединятся через AND, если я хочу найти товар у которого одна опция равна чему то и вторая тоже равна чему то. Но почему-то этого не происходит, как только два условия
WHERE ( ( `msProductOption`.`key` = 'height' AND `msProductOption`.`value` IN ('152') ) AND ( `msProductOption`.`key` = 'presure' AND `msProductOption`.`value` IN ('900') ) )
идут через AND то результат выборки пуст, хотя точно есть товар у котороо высота 154 и давление 900.

В общем, где-то торможу я)