Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 1592 Просмотров
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Всем привет!
Если я не ошибаюсь, то в старых версиях Joomla (1.5-2.5) была возможность загрузки сайта на нужном языке в зависимости от местоположения юзера. Сейчас же в настройках только две опции: язык сайта/настройки браузера.
Возможно я ошибаюсь, и те настройки, о которых я говорю были исключительно для JoomFish, которой я раньше пользовался.

Как бы там ни было, прошу помощу. Может кто знает, как такое реализовать.
Если подробнее: русский язык должен быть только для России, для остальных стран — английский.

Заранее всем спасибо!
*

Gerostrat

  • Захожу иногда
  • 374
  • 2 / 0
  • Свидетель чайной ложки
здра. так было на форуме чего-то такое
[Решено] Смена языка сайта по IP
Там очень ограниченное количество запросов можно делать к тому сайту для определения страны по IP. После определённого количества запросов сайт будет отдавать код 429 или что-то такое...
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
effrit, Gerostrat
Спасибо за подсказки! Я находил тот пост, на который вы ссылаетесь, но не был уверен, что это именно то, что нужно мне.
К тому же, я не понял, что делать с этим кодом. Модифицировать какой-то стандартный плагин, или же это код отдельного плагина?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
можно сделать болванку и в неё вставить
http://ссылка вырезана, так как домен распространяет вирусы/sozdanie-plagina.html

или в любой системный плагин добавить
вот это и то, что внутри (если в нем нет одноименной функции. если есть, то добавить только сам код)
Код
public function onAfterInitialise(){
}
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Вот это уже понятнее! Спасибо. Буду пробовать.
*

Gerostrat

  • Захожу иногда
  • 374
  • 2 / 0
  • Свидетель чайной ложки
ну так надо в сессию или куку записывать значение, а не злоупотреблять хорошими сервисами  ;)
Можно, это да. Но дело в том, что для каждого посетителя нужно заново определять страну, а если посещаемость 5к в сутки? 10к? 30к?
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Товарищи, в моём случае, если будет 100 посетителей в сутки, то это будет праздник.
Так что пока-что мне и этого будет достаточно, если смогу реализовать это решение с куками.
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Товарищи, в моём случае, если будет 100 посетителей в сутки, то это будет праздник.
А потом вас настигнет успех, посещалка вырастет до 500 и тут сайт загнется из-за невозможности работы с внешним сервисом )
Попробуйте SxGeo - он тоже определяет город/страну по IP, но ищет в своей локальной базе. Ее можно обновлять время от времени. Наберите это в поиске - первым же результатом будет Sypex Geo. Скрипт бесплатный и базы (раньше точно) тоже.

Упс. По ссылке выше именно про эту библиотеку и пишут. Ладно...
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Gerostrat

  • Захожу иногда
  • 374
  • 2 / 0
  • Свидетель чайной ложки
Есть модуль, работающий с базами Maxmind GeoIP https://dev.maxmind.com/geoip/geoip2/geolite2/
Базы бесплатные, но нужно региться уже.
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Gerostrat, зарегился, но как скачать не понял пока что :dry:
И что за модуль такой, который с этими базами работает?
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
effrit
Не получилось у меня его задействовать.
Взял код плагина, вставил его в заглушку, предварительно сгенерированную на сайте по вашей ссылке.
После установки плагина, к сожалению, я им воспользоваться не смог.
Во-первых он устанавливается не в /system/ плагины а в /authentication/, из-за чего при попытке авторизации сразу ошибку выдаёт. Ну то ладно ) Авторизация не нужна будет.
Во-вторых, если я правильно понял, надо ещё как-то подключать SxGeo.php, а в нутри него ещё есть ссылка на SxGeo.dat. Как всё это слепить в кучу, я не понял, и написал в личку pavel2950, от которого пока что жду ответ  ^-^

Я нашёл другой, в чём-то аналогичный, плагин: https://github.com/betweenbrain/Freegeoip-Plugin/releases
До 10 000 запросов можно в час делать.
Вот его код:
[свернуть]
Вот доступные переменные, которые он возвращает:
[свернуть]

Я попробовал, по аналогии с плагином Павла, взять данные из переменной freegeoip_country_code и заменить $uri, но совершенно ничего не вышло.
Возможно я не в той функции пытаюсь это сделать. Буду благодарен, если подскажете, как сделать, чтоб этот плагин вывел где-нибудь хотябы код текущей страны. А дальше я уже буду сам копать.
« Последнее редактирование: 11.02.2020, 18:04:05 от goga_pgasovav »
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Не знаю зачем оно вам. Но я б делал вообще без плагинов. Сперва настроил бы стандартную многоязычность джумлы, чтоб в адресе добавлялось /en/, /ru/, /ua/ и т.д., а потом добавил бы в корень сайта файл defines.php - он запускается до инициализации джумлы (и раньше всех ее плагинов, соответственно). В этом файле подключил бы библиотеку sxGeo, чтоб не тянуть ничего извне и не иметь ограничений по запросам. Из нее получал бы код страны и подменял адресный uri через $_SERVER['REQUEST_URI'] - именно его потом парсит джумла, чтоб язык подключался на одних и тех же (визуально для пользователя) ссылках без языковой метки. Если метка в ссылках нужна, то последний пункт заменить на редирект на ту же ссылку, только с подмененным языком.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну камон!
в генераторе плагина жмем на События, в Группе выбираем System и ставим галку напротив onAfterInitialise.
там же не просто кнопка "сделать зашибись", а с опциями...  ;D
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
sivers, effrit,
Камрады, ещё раз спасибо за помощь! Вопрос считаю закрытым. Всё получилось.  :D

В общем, если кому-то ещё понадобится нечто подобное, то вот инструкция:
1. Идём сюда: Смена языка сайта по IP и берём код из поста.
2. Создаём пустой плагин и вставляем в него этот код. Плагин можно сгенерировать тут: http://ссылка вырезана, так как домен распространяет вирусы/sozdanie-plagina.html В "Событиях" обязательно выбрать группу 'system'.
3. В плагине меняем условия на те, которые вас будут устраивать.
4. Иждём сюда: https://sypexgeo.net/ru/download/ и качаем Sypex Geo API (Sypex Geo для PHP 5.2+) и Базы данных для Sypex Geo 2.2 (в моём случае — Sypex Geo Country, для определения страны)
5. В корень папки с плагином нужно положить эти два файла.
На этом всё.
« Последнее редактирование: 11.02.2020, 21:47:43 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Не прошло и полгода, как я возвращаюсь к вам со своими бедами  ;D
Короче говоря, всё работало как часы, НО! Переключение языков перестало работать. Что логично, т.к. сколько бы мы не переключали язык, при загрузке страницы плагин всё равно подменит его в зависимости от местоположения.

Я в PHP совсем не силён, и кукиз тем более никогда не использовал с помощью PHP (хотя в JS постоянно ими пользуюсь).
Модифицировал код вот так:

Код: php
<?php
defined('_JEXEC') or die;

class PlgSystemAutochangelang extends JPlugin {
    public function onAfterInitialise() {
        $app = JFactory::getApplication();
        if ($app->isSite()) {
            $uri = $_SERVER['REQUEST_URI'];           

            include_once __DIR__.'/SxGeo.php';

            $SxGeo = new SxGeo( __DIR__ .'/SxGeo.dat', SXGEO_BATCH | SXGEO_MEMORY);
            $get_country = $SxGeo->getCountry($_SERVER['REMOTE_ADDR']);
           
            if (!isset($_COOKIE['jcountry'])) {
                setcookie('jcountry', $get_country, time() + 2592000, '/');
                if ($get_country != 'RU' && strpos($uri, '/ru/')!== false) {
                    $uri = str_replace('/ru/', '/en/', $uri);
                } elseif ($get_country == 'RU' && strpos($uri, '/en/')!== false) {
                    $uri = str_replace('/en/', '/ru/', $uri);
                }
            }

            if ($uri != $_SERVER['REQUEST_URI']) {
                header('HTTP/1.1 303 See Other');
                header('Location: '.$uri);
                exit();
            }
        }
    }
}
?>

После этого языки переключаются как положено, но местоположение Россия никогда не срабатывает, хотя в куках записывается код страны 'RU'.
Как только убираю из кода проверку куки, то определение местоположения снова работает, а переключение языков — нет.
Отсюда вопрос: что я делаю не так?  :o
« Последнее редактирование: 12.02.2020, 17:54:02 от goga_pgasovav »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
в момент переключения языков на js запиши куку "не_юзать_автомат".
код внутри плагина оберни в условие на проверку наличия этой куки...
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
effrit,
Ну так по логике моего кода и так проверка с условием (если я нигде не ошибся):

1. Проверяю, наличие куки, если её НЕТ то идём дальше
2. Устанавливаем куку, делаем принудительное переключение языка

Если кука существует, то и происходить дальше не должно ничего.
Или я не прав?  *ОХ-Х-Х*
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Ну это просто какое-то наваждение  :'(
Перенёс проверку в самое начало кода, но всё равно не работает.
Как только убираю !isset($_COOKIE['jcountry']) сразу заводится! :dry:
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Разробрался!
Вот финальный код
[свернуть]
Кроме этого, хотелось бы добавить, что на каждую ссылку языка в «переключателе» необходимо повесить установку кукис через JS.
Я это сделал так:
Код: js
$('#language a').on('click', function(e) {
        $.cookie('jcountry', '1', { expires: 30, path: '/' });
});

P.S.: Значение куки значения не имеет ) Пардон за каламбур. Без этого скрипта работать будет, но с глюками.
P.S.2: Само собой, для работы jQuery c кукис, надо подключить соответствующий плагин. Я уже много лет использую этот: https://github.com/carhartl/jquery-cookie
« Последнее редактирование: 12.02.2020, 18:51:51 от goga_pgasovav »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает мобильная версия сайта

Автор jeans

Ответов: 4
Просмотров: 520
Последний ответ 21.05.2025, 12:44:06
от jeans
Разные меню для мобильной и для ПК версии сайта

Автор jimka

Ответов: 7
Просмотров: 953
Последний ответ 24.03.2025, 20:03:01
от R31rus
Множество несуществующих ссылок при обходе сайта роботом Яндекс

Автор goga_pgasovav

Ответов: 7
Просмотров: 1152
Последний ответ 10.12.2024, 18:44:25
от goga_pgasovav
Антивирус нашел вредоносный код в двух файлах сайта polyfill

Автор buto

Ответов: 4
Просмотров: 904
Последний ответ 19.10.2024, 10:56:55
от wishlight
Шаблон для данной страницы недоступен. сообщите об этом Администратору сайта

Автор 62411

Ответов: 2
Просмотров: 1142
Последний ответ 30.03.2024, 13:15:16
от web1