Всего 125 957 комментариев

Іван Клімчук
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, какие трудности могут возникнуть?
Артур Шевченко
27 марта 2022, 13:19
0
Тогда твой заказчик должен быть готов нормально так раскошелиться, но, подозреваю, это его заинтересует ещё меньше. Всем было бы проще, если бы все мессенджеры выкатили открытый API как телеграм, но, например богомерзкий Whatsapp принадлежит жадному еврею, который за всё денег хочет, а в качество не желает.
Роман
27 марта 2022, 12:51
0
В метрику можно передавать звонки с подменных номеров.
Николай Савин
27 марта 2022, 12:45
0
Вам принципиально определять язык через сегмент адреса?
Было бы существенно проще, если бы язык шел поддоменом. en.site-region3.ru/
В текущем случае вы конечно осилите переключение языка основываясь на host + /lang/
Но останутся нерешенными проблемы внутри JS. Все ajax запросы будут улетать на базовый хост, и ответы будут приходить на базовом языке.
Александр Мельник
27 марта 2022, 06:59
0
спасибо. Да, проще всего с телеграмом, но как раз он заказчика и не интересует(
Артур Шевченко
27 марта 2022, 00:07
+1
Поделюсь тем, что знаю сам. Про viber не знаю ничего. У whatsapp нет открытого api для ботов и вообще боты там доступны только для бизнес аккаунтов, для разовой разработки очень невыгодно. Полноценного бота можно написать только для Телеграм и насколько я знаю, как раз номер телефона не нужен, проще искать пользователя по username. Что касается «как отправлять конкретному пользователю и закрыть для поиска», то закрывать для поиска смысла нет, т.к. на сайте надо записать username и в телеге этому пользователю надо написать боту, таким образом если кто-то просто найдёт бота и что-то ему напишет, то всё равно ничего не получит, т.к. не зарегистрирован на сайте.
Александр Коваленко
26 марта 2022, 22:02
0
Всем добра!
Прочитал почти все комментарии но не нашел вопроса с похожим запросом.
У меня есть много однотипных сайтов site-region1.ru, site-region2.ru, site-region3.ru и тд.
Для некоторых нужна мультиязычность (site-region3.ru русская версия, site-region3.ru/en/ — английская)
Каждый регион имеет свой контекст. И если есть языковая версия, то она выносится в новый контекст.
Использовал код для переключения контекстов отсюда — bezumkin.ru/sections/tips_and_tricks/2439/
Но использовал для доменов и поддоменов, который использует http_host для проверки.

Вот)))
Вопрос в том, как соединить эти 2 метода проверки, чтобы проверить http_host, а потом base_url?
Спасибо большое за любую помощь!
Константин
26 марта 2022, 19:03
0
Извиняюсь, может криво сформулировал. Есть реклама на сайт, есть подменные номера, статистика по ним передается в ройстат. А еще есть СЕО и необходимо отслеживать звонки с органического трафика. То есть там никакой подмены нет. Просто телефон и человек может позвонить, не кликом по телефону, а набрать руками с телефона. Это как-то надо отслеживать.
Александр Туниеков
26 марта 2022, 13:53
0
У вас же вся работа с картой объектов на фронте, верно?
Верно. Но и перетащить в админку не сильно долго. Только пока смысла напрягаться нет. Мне по работе на фронте удобнее. Еще требуется getTables и bootstrap. Но от bootstrap не особо сложно отказаться.
Павел Гвоздь
26 марта 2022, 07:19
0
А у меня в пакете вообще всё управление происходит в админке. На фронте только вывод, юзер на фронте не сможет ничего редактировать. У вас же вся работа с картой объектов на фронте, верно? В этом, пожалуй, основное и главное отличие компонентов.

Я не против публикации компонента в Modstore, даже по той же цене, что сейчас у imgArea.
Александр Туниеков
26 марта 2022, 04:00
0
Получился практически полный аналог imgArea :-). Едиственное существенное отличие у меня редактор во фронте, а imgArea редактор в админке. А я не пускаю юзеров в адинку без необходимости.
Плюс отличия:
1) у меня карта выводиться на svg, а у Павла на map. Ну это не критично.
2) У меня можно вызвать модалку на карте с любыми параметрами. Только модалка на бутстрап.

А вообще если бы знал что есть imgArea, то со своим компонентом бы не парился :-(. Но зато узнал много нового и с js немного прокачал :-).
Интересно. По новым правилам опубликуют или нет :-)
Александр Туниеков
26 марта 2022, 03:11
0
Блин ну почуму я не видел этого компонента???!!!
Klike
25 марта 2022, 21:14
0
Спасибо, поправил. По поводу сохранения, может где-то всё таки не так, потому что код скопирован с рабочего проекта. Когда убирал лишнее, допустил ошибку в $modx->events->name, в остальном всё должно работать.
Антон
25 марта 2022, 15:49
0
Не очень работает.
В первой строчке ошибка $modx->events->name — должно быть так $modx->event->name
В остальном код полностью скопировал.
Все отображается в админке. Поле в базу добавлено. Но поле не сохраняется в админке, не понял в чем проблема.
Роман
25 марта 2022, 15:40
0
Вы так описали задачу.