Новости 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

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Приветствую форумчан! Столкнулся недавно с такой бедой. Нашел в сети сайт-клон своего горячо любимого сайта. Какие-то хулиганы с помощью проги TelePort выкачали сайт и разместили на созвучном домене, при этом не забыв навешать саповской рекламы. Хотел реализовать защиту от скачки на другом своем сайте, по третьему способу описанному  здесь http://blog.theringing.net/noteleport-ili-kak-zashhitit-sajt-ot-polnogo-vykachivaniya/.
Заминка произошла при добавлении вот этого фрагмента кода в шапку сайта
Код
<?php
include “flooders.inc.php”;
$f=new Flooders(”/tmp/ban.txt”);
$f->Check(403);
?>
Добавлял в файле index.php шаблона сайта. После вставки кода, сайт не отображается, убираю код - все нормально. Подскажите что не так делаю.  !
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Защита от скачивания сайта!
« Ответ #1 : 14.02.2010, 00:39:57 »
Цитировать
Добавлял в файле index.php шаблона сайта. После вставки кода, сайт не отображается, убираю код - все нормально. Подскажите что не так делаю.  !
А файл flooders.inc.php у вас есть, который собственно подключаете?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #2 : 14.02.2010, 00:46:23 »
Да ,конечно, flooders.inc.php сделан, положен в корень сайта. Код который должен быть на “подставной” странице также присутствует, скрытую ссылку сделал, а вот с кодом , который должен быть по идее в шапке - заминка.   
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Защита от скачивания сайта!
« Ответ #3 : 14.02.2010, 00:49:26 »
если видите белую страницу - смотрим error.log сервера
Ошибка может быть как в подключаемом файле так и в неверном пути до него
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #4 : 14.02.2010, 00:57:08 »
понял, будем смотреть error.log . так и есть - страница белая.
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #5 : 14.02.2010, 19:29:06 »
После вставки вышеуказанного кода в шапку шаблона сайта (файл index.php), журнал ошибок (error_log) выдает следующее

[Sun Feb 14 19:08:09 2010] [error] PHP Warning: include(\xe2\x80\x9cfloodersincphp\xe2\x80\x9d) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/u184407/mysite.ru/www/templates/mysite/index.php on line 17
[Sun Feb 14 19:08:09 2010] [error] PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening '\xe2\x80\x9cfloodersincphp\xe2\x80\x9d' for inclusion (include_path='.:') in /home/u184407/mysite.ru/www/templates/mysite/index.php on line 17
[Sun Feb 14 19:08:09 2010] [error] PHP Fatal error: Class 'Flooders' not found in /home/u184407/mysite.ru/www/templates/mysite/index.php on line 18

*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Защита от скачивания сайта!
« Ответ #6 : 14.02.2010, 19:32:30 »
выдает ошибку подключения файла, еще раз проверьте наличие файла, пути к нему в инклюде, CHMOD на чтение
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #7 : 14.02.2010, 19:48:19 »
Еще некоторые моменты:

1) Сайт оригинал - Joomla 1.5.12
2) На сайте стоит компонент Photoslide GK2, который на сайте-клоне не функционирует (этот компонент выводит изображения на главной странице, что-то вроде слайдшоу) На клоне выводятся только превьюшки, а само изображение не отображается.
3) При переходе по внешней ссылке на сайте-клоне выскакивает окно где написано :
http://www.ссылка на какой-либо сайт.ru//  

This file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  

Do you want to open it from the server? Yes No

3) На моем сайте стоит компонент автоматического перевода от Google, при попытке перевода на сайте-клоне выскакивает окно, где написано : Google   Error     Bad Request
    Your client has issued a malformed or illegal request.
*

Gazon

  • Захожу иногда
  • 138
  • 7 / 0
  • Образец морали куртуазной
Re: Защита от скачивания сайта!
« Ответ #8 : 14.02.2010, 19:55:58 »
Не отходя от кассы.. Как реализовать данный пункт?
Цитировать
2. Ограничение по количеству просмотренных страниц за назначенный промежуток времени.
*

rubasket

  • Захожу иногда
  • 346
  • 13 / 1
  • RuBasket.com
Re: Защита от скачивания сайта!
« Ответ #9 : 14.02.2010, 19:57:26 »
при чем здесь это ? 0-о
Только я знаю,что могу (C) Джон Локк 
Why him ?Mmm? What  about me? БЕНЖАМИН Л
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #10 : 14.02.2010, 20:02:17 »
Gazon, я ухватился за 3ий вариант, его и пытаюсь реализовать. Разберешься со вторым - честь тебе и хвала. ;)
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #11 : 14.02.2010, 20:33:39 »
Наличие файлов проверил, CHMOD выставил как надо, пути тоже вроде верно. На этот раз  error_log выдает следующее

[Sun Feb 14 20:20:15 2010] [error] PHP Parse error: syntax error, unexpected '"' in /home/u184407/mysite.ru/www/flooders.inc.php on line 63

Привожу полный код flooders.inc.php
Код
<?
    class Flooders {
        var $filename;    /* Имя файла, в котором хранится список  */
                          /* запрещенных IP адресов                */

        var $timeout;     /* Время, на которое производится бан IP */
                          /* адреса. По умолчанию - 600 (10 минут) */

        var $log;         /* Имя лог-файла.                        */

        var $AGENTS;      /* Массив - список разрешенных агентов   */

        /*                                                             */
        /* Конструктор - в параметрах можно указать основные настройки */
        /*                                                             */
        /*   $filename - имя файла, в котором хранится список          */
        /*               забаненных адресов.                           */
        /*   $timeout - время, в секундах, на которое банится IP.      */
        /*                                                             */
        /* Пример: $f=new Flooders("ban.txt",3600);                    */
        /*                                                             */

        function Flooders($filename="flooders.txt",$timeout=600) {
            $this->filename=$filename;
            $this->timeout=$timeout;
            $this->AGENTS=Array();
            $this->log="";
            }

        /*                                                             */
        /* Задает имя лог-файла. Если имя файла пустое, то лог-файл    */
        /* не испольщуется                                             */
        /*                                                             */

        function SetLogFileName($filename) {
            $this->log=$filename;
            }
       
        /*                                                             */
        /* Проверка IP адреса на нахождение в бан-листе.               */
        /*                                                               */
        /* Если $http_errror==0, то возвращает true, если IP адрес     */
        /* забанен, и false, если IP адрес разрешен.                   */
        /*                                                             */
        /* Если $http_error==404 и IP адрес забанен, то выводится      */
        /* стандартная страница 404 сервера Apache                     */
        /*                                                             */
        /* Если $http_error==403 и IP адрес забанен, то выводится      */
        /* стандартная страница 403 сервера Apache                     */
        /*                                                             */

        function Check($http_error=0) {
            GLOBAL $HTTP_SERVER_VARS;

            $ip1=$HTTP_SERVER_VARS["REMOTE_ADDR"];
            $ip2=$HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
            $ip1=str_replace(":","_",$ip1);
            $ip2=str_replace(":","_",$ip2);

            $curtime=time();

            $d=@file($this->filename);
            if (!is_array($d)) {print "Ошибка чтения из файла "".$this->filename."".";return(false);}

            $found=false;
            for ($i=0;$i<count($d);$i++) {
                $e=explode(" : ",$d[$i]);
                if ($e[1]==$ip1 && trim($e[2])==$ip2 && $e[0]+$this->timeout>$curtime) {$found=true;break;}
                }
            if ($http_error==404 && $found==true) {
                header("HTTP/1.0 404 Not Found");
                die("\n The requested URL ".$HTTP_SERVER_VARS["REQUEST_URI"]." was not found on this server.");
                }
            if ($http_error==403 && $found==true) {
                header("HTTP/1.0 403 Forbidden");
                die("n\n\n\n <h1>Forbidden</h1>

    nYou don't have permission to access ".$HTTP_SERVER_VARS["REQUEST_URI"]."non this server. \n

    \n".$HTTP_SERVER_VARS["SERVER_SIGNATURE"]."n");
                }
            return($found);
            }

        /*                                                             */
        /* Добавления IP адреса в бан-лист                             */
        /*                                                             */

        function Ban() {
            GLOBAL $HTTP_SERVER_VARS;

            $agent=" ".$HTTP_SERVER_VARS["HTTP_USER_AGENT"];
            for ($i=0;$i<count($this->AGENTS);$i++) {
                if (strpos($agent,$this->AGENTS[$i])) return;
                }

            $ip1=$HTTP_SERVER_VARS["REMOTE_ADDR"];
            $ip2=$HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
            $ip1=str_replace(":","_",$ip1);
            $ip2=str_replace(":","_",$ip2);

            $curtime=time();

            $d=@file($this->filename);
            if (!is_array($d)) {print "Ошибка чтения из файла "".$this->filename."".";}

            for ($i=0;$i<count($d);$i++) {
                $e=explode(" : ",$d[$i]);
                if ($e[1]==$ip1 && trim($e[2])==$ip2) unset($d[$i]);
                }

            if (need_add) {
                if (!empty($this->log)) {
                    $fw=fopen($this->log,"at");
                    if ($fw) {
                        fputs($fw, date("Y-m-d H:i:s")." [".$ip1."|".$ip2."]".$agent."n");
                        fclose($fw);
                        }
                    }
                $d[]=$curtime." : ".$ip1." : ".$ip2."n";
                }

            $fw=@fopen($this->filename,"wt");
            if (!$fw) {print "Ошибка записи в файла "".$this->filename."".";return;}

            foreach ($d as $e) fputs($fw,$e);
            fclose($fw);
            }
       
        function AddAlowAgent($agent) {
            $this->AGENTS[]=$agent;
            }
        }
    ?>
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Защита от скачивания сайта!
« Ответ #12 : 14.02.2010, 20:35:02 »
мы должны считать строки чтобы найти где там неправильные кавычки?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #13 : 14.02.2010, 20:37:18 »
63 строка

if (!is_array($d)) {print "Ошибка чтения из файла "".$this->filename."".";return(false);}
*

NEOLiT

  • Осваиваюсь на форуме
  • 35
  • 2 / 0
Re: Защита от скачивания сайта!
« Ответ #14 : 16.02.2010, 14:17:17 »
Может кто-то предложит свои варианты для защиты сайта на Joomla от TelePorta и ему подобных оффлайн браузеров. Что можно еще предпринять? В сети на эту тему ничего стоящего не нашел, все что нашел - это ссылка в первом посте.
Делаете Вы сайт с уникальным дизайном и контентом, стараетесь, а потом пионерят весь Ваш сайт целиком и делают в сети клон, что не очень то приятно...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 58927
Последний ответ 29.11.2023, 14:41:12
от sivers
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 4008
Последний ответ 12.11.2023, 23:37:03
от all_zer
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1905
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Версия сайта для слабовидящих

Автор nikos

Ответов: 22
Просмотров: 44404
Последний ответ 27.11.2020, 11:04:18
от chernobyl
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 2192
Последний ответ 14.08.2020, 07:16:44
от rsn