Всего 125 972 комментария

Николай Савин
30 марта 2022, 16:39
0
Рекомендую попробовать ZoomX на сайте-доноре. Компонент отлично справляется с построением API как раз с json ответами, и умеет отдавать сразу файлы, если вдруг вы его будете формировать заранее.
Роман
30 марта 2022, 16:05
+1
Как вы выводите записи на страницу? Если все сложно, можно использовать js пагинацию
Lori
30 марта 2022, 15:59
0
Спасибо! Думаю все таки сделаю задачу в cron на вторичном сайте, чтобы он делал запрос по расписанию на какой-нибудь update.php основного сайта, а тот уже пусть выдает ответ в виде json с новыми расценками товаров
Евгений Webinmd
30 марта 2022, 11:45
0
ну так перетащите часть из верхнего меню в подпункты (Иконка шестеренки в правом углу — Меню ). Либо у вас зум стоит в браузере
Николай Савин
29 марта 2022, 20:33
+1
Обмен между двумя сайтами лучше производить в формате JSON. Это общепринятая система.
Инициатором обмена может быть как одна, так и другая сторона.
Варианты, которые вижу я.
1. Изменение цены одного продукта. В этом случае запускается событие, которое отправляет API запрос на сайт на сайт-приемник. В запросе артикул продукта и цена.
2. Изменение группы цен на сайте-доноре, в результате какой-то синхронизации со складом, например. В этом случае формируется текстовый файл json формата и посылается уведомление о готовности новых данных, со ссылкой на файл. Сайт-приемник, получив уведомление запускает скрипт обработки json файла
3. Сайт-приемник, самостоятельно, по расписанию запрашивает сайт-донор. Если товаров не много — то забирает на лету сформированный json Ответ. Если товаров много, то забирает файл, подготовленный заранее.
4. Если товаров много, то можно пойти дальше. Сайт-приемник первым запросом отправляет уведомление донору и необходимости подготовить свежие данные. Затем через несколько минут (сколько там нужно временим на подготовку файла с ценами), вторым запросом забирает подготовленный файл.

В целом все крутится вокруг json файла (или массива данных) и нескольких достаточно простых API запросов.
Николай Савин
29 марта 2022, 13:55
1
0
Если отключить — то получается не смогут. Согласен здесь проблема.
Наиболее простое решение это опираться на IP адрес клиента и срывать\показывать нужные компоненты.
Но это отдельный проект. Владельцы и разработчики далеко не дураки — я думаю в конце концов придумают решение.
Sergey (Sentinel)
29 марта 2022, 13:49
0
Также авторам компонентов modstore, связанных с этими соцсетями — требуется компоненты отключить
А если компонент захотят купить из другой страны, где не запрещены эти соцсети, то не смогут?
Lori
29 марта 2022, 12:06
0
Спасибо большое! Вариант с выгрузкой + cron мне больше нравится!
Наумов Алексей
29 марта 2022, 11:58
+1
Да нормальный вариант.
Или на основном сайте сделайте выгрузку в простейший файл (текстовый) в формате «артикул: цена», а со второго по cron раз в час считывайте его да и обновляйте цены.
Fi1osof
Fi1osof
28 марта 2022, 17:42
0
Не за что!
Артур Шевченко
28 марта 2022, 17:41
0
Спасибо за пакет. Прям огонь! Вот только жаль, что его почему-то не популяризировали.
Артур Шевченко
28 марта 2022, 17:40
0
Хорошо, что разобрались.
Fi1osof
Fi1osof
28 марта 2022, 17:11
0
Я тогда с гитом был на Вы совсем и с гитхабом тоже. Многое не знал. В итоге, скорее всего, просто создал новый репозиторий и пушнул в него. В MODX-репозитории тоже не сразу стал указывать ссылки на гитхаб, в большинстве случаев потому что выкладывать пакеты стал раньше, чем гитхабом пользоваться. Этот же vapor в репозиторий в 2013 году выложил, а в гитхабе только в 2015 году первый коммит. То есть я потом постепенно стал выкатывать исходники в гитхаб.
А заорхивировал я практически все свои репы, связанные с MODX, потому что это теперь не мой профиль.
Іван Клімчук
28 марта 2022, 16:18
0
Ну вот пока ты не написал, это было неочевидно. Цели обесценить твой труд у меня не было. Твой пакет на github заархивирован, ссылки на оригинальный код (в виде форка) нет, чтобы это можно было увидеть хотя бы здесь — github.com/modxcms/vapor/network/members. В описании пакета на modx.com тоже ничего нет о том, как было на самом деле (а выложить там может каждый, просто загрузив архив с пакетом). Спасибо, что написал и пояснил.
Fi1osof
Fi1osof
28 марта 2022, 16:03
+4
Добавлю объективности. Автором этого пакета являюсь именно я, и выложен он мной. Хотя львиная доля его, конечно же, написана Джейсоном. С тем же успехом можно говорить, что все сайты, написанные на MODX, идут за авторством MODX LLC, ведь в большинстве случаев основная часть этих сайтов написана командой MODX.
А тем vapor-ом, который лежит у Джейсовна, в чистом виде, пользоваться вот так не совсем получится. Очень подробно (в том числе и про авторство), написано вот здесь: freecode.academy/topics/modxcloud.com-vapor-i-klonirovanie-sajtov.html

Исходники на гитхабе github.com/MODX-Club/vapor
Есть там и такой файл: github.com/MODX-Club/vapor/blob/master/import.php, которого нет в исходном пакете.

Очень «рад» твоей высокой оценке моим трудам (немало пришлось покопать ядро, написать решения). В погоне за пропогандой MODX ты слишком уж забываешь о конечных разработчиках, и что они тоже имеют ценность.
Іван Клімчук
28 марта 2022, 09:40
+2
Добавлю объективности, автор сего пакета ни разу не Николай. Даже несмотря на то, что под его именем лежит пакет в репозитории. Код инструмента здесь github.com/modxcms/vapor и он авторства команды MODX LLC, в частности Jason Coward и Mike Schell, если верить github. Там же есть еще один инструмент — github.com/modxcms/teleport, который тоже весьма интересен.
Константин Ильин
27 марта 2022, 22:00
+1
Если я правильно понял о поиске языковой версии в урл, то вот
<?
// Массив допустимых язоковые версий, можно сделать настройку в модх и через getOption() получить, но это лишний запрос к БД
$allowLanguages = ['en','es'];

// Разбор урла
$queryArray = parse_url($_SERVER['HTTP_REFERER']);


// Разбор пути запроса 
$urlArray = explode('/',  $queryArray['path']);

// Если первый сегмент пути есть в массиве допустимых языков, соответственно урл содержит языковую версию
if(in_array($urlArray[1], $allowLanguages)){
    
    // Тут ищем контекст с языковой версией и делаем переключение на него или что-то другое

}
Николай Савин
27 марта 2022, 14:09
0
Я могу ошибаться. Тогда коллеги меня поправят.

Возьмем к примеру компонент mSearch2 и его автодополнения в поисковой строке.
Компонент отправляет запросы к серверу, беря за основу текущий хост. Который всегда без сегментов адреса.
Сервер используя хост, получает язык контекста и отдает ответ на языке чистого хоста.

Таким образом находясь на адресе site-region3.ru/en/ сервер будет запрашивать контекст основываясь только на хосте site-region3.ru и язык ответа для поисковых запросов будет русский (ну или какой там будет основным)

И таких компонентов, которые берут за основу только хост — много. Их можно дорабатывать конечно. Просто возни больше.
Александр Коваленко
27 марта 2022, 13:29
0
Да, это основное требования для SEO. Чтобы языковые версии оставались внутри одного домена или поддомена.
Поэтому ищу способ решения задачи в такой форме. Не совсем понял про JS, какие трудности могут возникнуть?