Новости Joomla

Вышли релизы безопасности Joomla 6.1.3 и Joomla 5.4.8

Релиз безопасности Joomla 6.1.3 и Joomla 5.4.8

Проект Joomla! рад сообщить о выходе Joomla 6.1.3 и Joomla 5.4.8. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

Joomla 5+ пакет для интеграции с API Почты России: нормализация данных, расчёт доставки, создание отправлений, партии, документы, возвраты, поиск отделений, справочники и SOAP-отслеживание.

v.3.0.0. Что нового?
Это дальнейшее развитие ранее закрытой Joomla-библиотеки для работы с API сервиса Отправка (для бизнеса) Почты России. Поэтому версия не 1.0.0, а 3.0.0.

Сейчас эта библиотека ушла от собственных реализаций и стала Joomla-обёрткой известного PHP SDK от Lapay Group.

Возможности библиотеки.
- получение настроек аккаунта, точек сдачи и текущего остатка запросов к API;
- нормализация адресов, ФИО и телефонов перед созданием отправления;
- расчёт тарифа и срока доставки;
- создание, поиск, изменение, удаление и возврат заказов в состояние «Новые»;
- проверка надёжности получателя;
- создание партий, просмотр партий и заказов внутри партии;
- генерация пакета печатных документов и формы Ф103;
- создание, изменение и удаление возвратных отправлений;
- поиск отделений по индексу, адресу и координатам, получение сервисов отделения;
- локальный список стран;
- SOAP-отслеживание операций по РПО и работа с билетами пакетного трекинга.

👩‍💻 Joomla-возможности.
В пакете библиотеки WT Otpravkapochtaru есть поля Joomla Form для расширений. Они позволяют работать в интерфейсе Joomla с некоторыми типами данных, получаемых по API из вашего личного кабинета в ЛК Почты России для бизнеса.
На данный момент в библиотеке доступны 3 поля списков, которые отображают доступные в аккаунте ОПС, типы и категории отправлений.
Поддерживаются зависимые списки: значение одного поля обновляется при изменении другого.

Системные требования.
Системные требования в основном связаны с системными требованиями апстрима библиотеки - LapayGroup PHP SDK.
- Joomla 5+
- PHP 8.3+
- Расширения PHP:
-- ext-mbstring
-- ext-simplexml
-- ext-soap (опционально, для трекинга)
-- ext-zip

Ссылки:
- Страница расширения
- GitHub библиотеки и документация

@joomlafeed

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

andragor

  • Осваиваюсь на форуме
  • 35
  • 5 / 0
Здравствуйте,

Кто-нибудь знает как можно сделать некликабельными ссылки на всех страницах, ссылающихся самих на себя? Плагин или хак какой-нибудь?
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Системный плагин. Событие onAfterRender
Код
        global $app;
        if($app->isSite()){
            $body = $app->getBody();
            /* Здесь регулярным выражением ищите в $body ссылки на текущуую страницу и вырезаете их */
            $app->setBody($body);
        }
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
Ещё один совет сеошника? Глупасть
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Кто-нибудь знает как можно сделать некликабельными ссылки на всех страницах, ссылающихся самих на себя? Плагин или хак какой-нибудь?
Так удаление ссылок или отключение ? ВОт JavaScript , перед закрывающим  тегом body в шаблон. Скрипт с локалки, на хостинге нужно определиться с добавкой к  атрибуту
Код
	<script>
jQuery(function() {
jQuery('a').each( function(e) {
jQuery('a').on('click', function() {
let testim_href = 'http://localhost' + jQuery(this).attr('href');
// console.log(testim_href);
if(testim_href == "<?php echo JURI::current(); ?>") return false;;
});
});
});
</script>
« Последнее редактирование: 15.03.2019, 10:51:48 от draff »
*

andragor

  • Осваиваюсь на форуме
  • 35
  • 5 / 0

Системный плагин. Событие onAfterRender
Спасибо, а куда его вставлять, чтобы заработал?
Ещё один совет сеошника? Глупасть
Да, SEO-шник сказал, что ссылок со страницы на саму себя быть не должно. А почему глупость? Ссылку по этому вопросу не скинешь?
Так удаление ссылок или отключение ? ВОт JavaScript , перед тегом body в шаблон. Скрипт с локалки, на хостинге нужно определиться с добавкой к  атрибуту
Отключение скорее, чтобы вместо Ссылка было Ссылка.
Запихал скрипт в head и поправил localhost на https://www.moydomen.ru - не заработал. Что-то не так делаю?
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Да, SEO-шник сказал, что ссылок со страницы на саму себя быть не должно.
В этом случае решения на JS/jQuery вам не подойдут - в коде страницы все ссылки будут на месте и роботы их увидят.

Как сделать плагин - там в плагинах даже заготовка есть. Но можете воспользоваться вот этим ресурсом: inet-reklama .com (сервисы => создание плагина). Там можно создавать пустые (почти) заготовки. Пользуюсь им, когда лень с нуля делать. Создайте там плагин, системное имя делайте на английском одним словом маленькими буквами, в событиях ставьте группу system и чекбокс на onAfterRender, можете заполнить остальные поля. Потом жмете "Сформировать плагин", сохраняете и устанавливаете (перед установкой полезно заглянуть внутрь архива, чтоб не думалось...).

После этого останется только регулярку правильно написать. С этим помогу.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Запихал скрипт в head
Забыл уточнить
перед закрывающим  тегом body в шаблон.
На рабочем хостинге прописать https:/ . Joomla выводить ссылки относительно корня сайта /moydomen.ru . А лучше посмотреть в консоли, там же я оставил вывод закоментированным или в коде страницы
поправил localhost на https://www.moydomen.ru - не заработал. Что-то не так делаю?
*

andragor

  • Осваиваюсь на форуме
  • 35
  • 5 / 0
После этого останется только регулярку правильно написать. С этим помогу.

Плагин сделал, спасибо!
Код
class plgSystemNoselflinking extends JPlugin
{
/**
* Class Constructor
* @param object $subject
* @param array $config
*/
public function __construct( & $subject, $config )
{
parent::__construct( $subject, $config );
$this->loadLanguage();
}

function onAfterRender(){
global $app;
        if($app->isSite()){
            $body = $app->getBody();
            /* Здесь регулярным выражением ищите в $body ссылки на текущую страницу и вырезаете их */
            $app->setBody($body);
        }}
}
А как регулярку сделать? Например, для адреса: https://www.site.ru/cat/alias

draff, спасибо за уточнение, а твой плагин меняет код или только отображения на странице?
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
А как регулярку сделать?
Добавьте в плагин функцию с содержимым:
Код
    public function onAfterRender(){
        global $app;
        if($app->isSite()){
            $body = $app->getBody();
            $uri = $_SERVER['REQUEST_URI'];
            if(strpos($body, $uri) !== false && preg_match_all('|<a[^>]*href="[^"]*'.$uri.'"[^>]*>(.*)</a>|isU', $body, $pregs, PREG_SET_ORDER)){
                foreach($pregs as $preg){
                    $body = str_replace($preg[0], $preg[1], $body);
                }
                $app->setBody($body);
            }
        }
    }
Если сразу не заработает - пишите. В этом случае надо будет делать отладку RE на вашем сайте, потому как мог ошибиться (тестить не на чем).
« Последнее редактирование: 18.03.2019, 13:35:49 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Пользы от таких ссылок нет: https://devaka.ru/articles/selfie-experiment
Вред если и есть, то незначительный: https://searchengines.guru/showpost.php?p=8975876&postcount=39 (в целом согласен с этим мнением, т.к. на мой взгляд логично, но как вес считают поисковики - знают только поисковики, а это просто догадки)

Если всё другое на сайте уже сделали, то может и эти 0,001% дадут какой-то эффект. Однако чуть уменьшится ответ сервера при работе плагина и это так-же даст какой-то обратный эффект на -0,001%. Кто победит - неизвестно ;D, но сеошники зарплату получат :D

P.S. вон у Яндекса ссылка на саму себя в логотипе на главной https://yandex.ru, ничё, живёт как-то ;)
« Последнее редактирование: 18.03.2019, 14:35:29 от ChaosHead »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
draff, спасибо за уточнение, а твой плагин меняет код или только отображения на странице?
Делает не кликабельным ссылку. Это не плагин, а JavaScript.
*

andragor

  • Осваиваюсь на форуме
  • 35
  • 5 / 0
Добавьте в плагин функцию с содержимым:
sivers, огромное спасибо за помощь!  *DRINK* Всё заработало с первого раза!  :D +1

ChaosHead, спасибо за полезные ссылки! Насчёт вреда/пользы верно подметил.  ^-^

draff, понятно. Тогда спасибо, но не совсем то. Нужно, чтобы a href из исходного кода тоже вырезался. Плагин как раз это и делает.  8)

Если sivers не против, могу выложить плагин для всеобщего пользования. Хотя его и самому сделать пара минут.
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
С чего мне быть против? Код и так выложен выше.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
решение с плагином - вредный совет, любая дополнительная обработка уже готового рендера контента - это нагрузка, при нагрузке или на дешёвом хостинге это больно ударит в плане производительности

в Joomla подобный вопрос решается соответствующим переопределением шаблонов используемых расширений и добавлением условия вывода ссылок

ссылки внутри кастомного контента (материалы, html-модули) вырезаются вручную, их изначально не следовало делать - это глупость

Да, SEO-шник сказал, что ссылок со страницы на саму себя быть не должно.
SEO-шник ваш - извините - идиот, ибо на SEO ссылки на странице на саму себя давно уже никак не влияют
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Пара замечаний для тех, кто будет использовать этот плагин:
1. Регулярка заточена под теги <a></a>, в которых значение атрибута href взято в двойные кавычки.
2. Лучше использовать более оптимальный вариант кода (без цикла):
Код
    public function onAfterRender(){
        global $app;
        if($app->isSite()){
            $body = $app->getBody();
            $uri = $_SERVER['REQUEST_URI'];
            if(strpos($body, $uri)!== false && preg_match_all('|<a[^>]*href="[^"]*'.$uri.'"[^>]*>(.*)</a>|isU', $body, $pregs)){
                $body = str_replace($pregs[0], $pregs[1], $body);
                $app->setBody($body);
            }
        }
    }

И еще. Не забывайте, что это все-таки жирный костыль и что стоит прислушаться к советам ChaosHead и AlekVolsk - я разделяю их мнение и на своих сайтах подобными костылями стараюсь не пользоваться.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

andragor

  • Осваиваюсь на форуме
  • 35
  • 5 / 0
AlekVolsk Спасибо за информацию!

Плагин всё-таки выложу. Вдруг кому-то пригодится такой вариант решения вопроса.

PS С обновлённым кодом от sivers.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пагинация страниц

Автор Anna_N

Ответов: 3
Просмотров: 1552
Последний ответ 06.01.2025, 02:45:52
от pavelrer
Множество несуществующих ссылок при обходе сайта роботом Яндекс

Автор goga_pgasovav

Ответов: 7
Просмотров: 3737
Последний ответ 10.12.2024, 18:44:25
от goga_pgasovav
Пропадают иконки на части страниц, пока не удалишь кеш браузера

Автор minibelka

Ответов: 4
Просмотров: 2686
Последний ответ 25.02.2024, 22:56:50
от cherianov
Каталог ссылок

Автор vlmedia

Ответов: 2
Просмотров: 1216
Последний ответ 15.09.2023, 15:30:16
от vlmedia
Как правильно создать дубликаты страниц Joomla? Что бы не ругались поисковики

Автор Dannik

Ответов: 0
Просмотров: 1142
Последний ответ 22.02.2023, 08:00:13
от Dannik