Новости Joomla

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

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

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Нашел статью как выводить айпи пользователя в отчет вебвизора. У всех вроде как работает, а вот с Joomla проблемы. Автор рекомендует обратиться к спецеалистам по данной CMS. Подскажите, пожалуйста, как получить и передать параметр, который поймает IP.
Код метрики:

Код
<!-- Yandex.Metrika counter -->

<script type="text/javascript">
var yaParams = {ip_adress: «<? echo $_SERVER[‘REMOTE_ADDR’];?>»};
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter12345678 = new Ya.Metrika({
                    id:12345678,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true,
                    params:window.yaParams
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/watch.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/12345678" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
« Последнее редактирование: 23.03.2016, 15:27:12 от b2z »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
/**
     * Функция возвращает текущий IP адрес
     * @return string|null
     */
    public function getIp()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } elseif (!empty($_SERVER['REMOTE_ADDR'])) {
            $ip = $_SERVER['REMOTE_ADDR'];
        } else {
            $ip = null;
        }

        return $ip;
    }
так во всех cms одинаково
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Код: javascript
<script>
var ip;
$.ajaxSetup({
    async: false
});
$.getJSON('//ipinfo.io/', function(data) {
    IP = data.ip;
});
console.log(ip);
</script>
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Код: php-brief
/**
     * Функция возвращает текущий IP адрес
     * @return string|null
     */
    public function getIp()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } elseif (!empty($_SERVER['REMOTE_ADDR'])) {
            $ip = $_SERVER['REMOTE_ADDR'];
        } else {
            $ip = null;
        }

        return $ip;
    }
так во всех cms одинаково

в каком файле это прописывать надо? у меня метрика в CustomCode шаблона, там добавлял этот параметр, в итоге метрика мне выдовала все что угодно, только не ип. сейчас вот так выглядит все https://yadi.sk/i/7wyHdYwKqJfyu
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Код: javascript
<script>
var ip;
$.ajaxSetup({
    async: false
});
$.getJSON('//ipinfo.io/', function(data) {
    IP = data.ip;
});
console.log(ip);
</script>

это следует писать в скрипте метрики?
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Код: html4strict
<script type="text/javascript">
var IP;
$.ajaxSetup({
    async: false
});
$.getJSON('//ipinfo.io/', function(data) {
   IP = data.ip;
});
var yaParams = {ip_adress: IP };
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter12345678 = new Ya.Metrika({
                    id:12345678,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true,
                    params:window.yaParams
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/watch.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/12345678" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Код: html4strict
<script type="text/javascript">
var IP;
$.ajaxSetup({
    async: false
});
$.getJSON('//ipinfo.io/', function(data) {
   IP = data.ip;
});
var yaParams = {ip_adress: IP };
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter12345678 = new Ya.Metrika({
                    id:12345678,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true,
                    params:window.yaParams
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/watch.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/12345678" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

не хочет он ип ловить(. опять выводит вместо ип абракадабру. https://yadi.sk/i/ktsdJDypqJgrq

возможно причина в том, что я не в файл PHP метрику вставил, а в КастомКод шаблона.
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Нашел статью как выводить айпи пользователя в отчет вебвизора. У всех вроде как работает, а вот с Joomla проблемы. Автор рекомендует обратиться к спецеалистам по данной CMS. Подскажите, пожалуйста, как получить и передать параметр, который поймает IP.
Код метрики:



Не удачный я шаблон выбрал походу.(((  
P.S. Метрика перед закрывающимся тегом боди.
Может так кто поможет.
Мне еще шрифт надо подключить, Raleway Thin (кирилический), это у меня тоже не получилось. Если есть желающие сделать это за не дорого, пишите цену и контакты.
« Последнее редактирование: 19.03.2016, 12:11:36 от aleck »
*

Skaneris

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Похоже, как будто у вас редактор шаблона изменяет код перед выводом, по тому и не работает. А можете дать ссылку на сайт? Тот исходный код, который вы выложили должен работать.
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Настройка IP для сбора метрикой происходит в настройках кода ни как сайт не может отдавать другой IP если код метрики вставлен правильно.
Не удачный я шаблон выбрал походу.(((   
P.S. Метрика перед закрывающимся тегом боди.
Может так кто поможет.
Мне еще шрифт надо подключить, Raleway Thin (кирилический), это у меня тоже не получилось. Если есть желающие сделать это за не дорого, пишите цену и контакты.
Шаблон думаю тут не имеет отношения ни какого. Просто неправильно вставлен, если конечно ни с чем не конфликтует.
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Похоже, как будто у вас редактор шаблона изменяет код перед выводом, по тому и не работает. А можете дать ссылку на сайт? Тот исходный код, который вы выложили должен работать.
proitlab точка ru
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Настройка IP для сбора метрикой происходит в настройках кода ни как сайт не может отдавать другой IP если код метрики вставлен правильно.Шаблон думаю тут не имеет отношения ни какого. Просто неправильно вставлен, если конечно ни с чем не конфликтует.
в комментариях к статье, у многих, у кого сайт на Joomla, проблемы с этим кодом. но кто то как-то решил их. вот я подумал это просто, поэтому и решил заморочится из любопытсва. оказалось что не просто.
сайт не работает мой, мне по сути эти айпи и не нужны, просто теперь уже дело принципа вроде. режут глаз не понятные символы вместо айпи которые вставились в метрику.
*

Skaneris

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
В скрипте страницы вашего сайта нет строки присваивающей IP адрес переменной ip_adress массива yaParams (var yaParams = {ip_adress: «<? echo $_SERVER[‘REMOTE_ADDR’];?>»}; )

Рекомендую вам попробовать следующий вариант:
Установите у себя на сайте модуль, который позволяет выводить javascript и php код, например вот этот mod_flexi_customcode_v30 или подобный.
Вставьте в него ваш код Яндекс-Метрики и выведите где-нибудь на позиции футера, в самом низу. Если будете использовать указнный мной модуль, то в настройках не забудьте переключить USING PHP CODE? в положение YES

Уверен, что всё должно заработать.
« Последнее редактирование: 19.03.2016, 20:54:32 от Skaneris »
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
В скрипте страницы вашего сайта нет строки присваивающей IP адрес переменной ip_adress массива yaParams (var yaParams = {ip_adress: «<? echo $_SERVER[‘REMOTE_ADDR’];?>»}; )

Рекомендую вам попробовать следующий вариант:
Установите у себя на сайте модуль, который позволяет выводить javascript и php код, например вот этот mod_flexi_customcode_v30 или подобный.
Вставьте в него ваш код Яндекс-Метрики и выведите где-нибудь на позиции футера, в самом низу. Если будете использовать указнный мной модуль, то в настройках не забудьте переключить USING PHP CODE? в положение YES

Уверен, что всё должно заработать.


Модуль установил. Но с кодом **yaParams (var yaParams = {ip_adress: «<? echo $_SERVER[‘REMOTE_ADDR’];?>»}; )**, в переменной ip_adress, показывает только двойные ковычки вида <>. Попробовал вот так **<?php echo '<script>var yaParams = {ip_adress: "'. $_SERVER['REMOTE_ADDR'] .'" };</script>'; ?>** - через FireBug увидел что в первом скрипте, в переменной ип есть, но в вебвизоре его пока не вижу. Сижу вот жду, пока там все обновится, что бы посмотреть что он в отчете покажет.
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Модуль установил. Но с кодом **yaParams (var yaParams = {ip_adress: «<? echo $_SERVER[‘REMOTE_ADDR’];?>»}; )**, в переменной ip_adress, показывает только двойные ковычки вида <>. Попробовал вот так **<?php echo '<script>var yaParams = {ip_adress: "'. $_SERVER['REMOTE_ADDR'] .'" };</script>'; ?>** - через FireBug увидел что в первом скрипте, в переменной ип есть, но в вебвизоре его пока не вижу. Сижу вот жду, пока там все обновится, что бы посмотреть что он в отчете покажет.


IP в метрике так и не отобразились...
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
IP в метрике так и не отобразились...
Вы что-то где-то криво вставили - http://clip2net.com/s/3vQGw1U
Для этой цели модули какие-то ставить не надо было, в шаблоне прописали бы. А если есть свой один js-файл для всего "своего" js-кода, то лучше там, асинхронно загружать.
Веб-разработка: заказ. Только новая разработка.
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Вы что-то где-то криво вставили
Об этом с самого начало было сказано, но ТС ищет, что то где то читает, то что пишут не те кого читать надо.
*

aleck

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Вы что-то где-то криво вставили - http://clip2net.com/s/3vQGw1U
Для этой цели модули какие-то ставить не надо было, в шаблоне прописали бы. А если есть свой один js-файл для всего "своего" js-кода, то лучше там, асинхронно загружать.

Большое спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка Яндекс captcha

Автор Kadadzher

Ответов: 0
Просмотров: 207
Последний ответ 16.10.2025, 11:19:32
от Kadadzher
Пароль Пользователя

Автор Олег5

Ответов: 3
Просмотров: 808
Последний ответ 14.02.2025, 10:41:20
от fbr
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1496
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Множество несуществующих ссылок при обходе сайта роботом Яндекс

Автор goga_pgasovav

Ответов: 7
Просмотров: 1434
Последний ответ 10.12.2024, 18:44:25
от goga_pgasovav
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1499
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav