Новости 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 Гость просматривают эту тему.
  • 2 Ответов
  • 3596 Просмотров
*

andrewsis

  • Новичок
  • 2
  • 0 / 0
Добрый день. На моем сайте установлен модуль новостей junewsultra, немного изменен. Выводит на главной странице 12 новостей.
Хочется чтобы был постраничный вывод новостей ( а не переход по разделам и каталогам). Как говорится все в одном :)


Красным помечено как хочется чтобы было.

Вот что нашел:
Цитировать
PHP: простая постраничная разбивка (315 байт)

Сразу приведу пример реализации:

1 2 3 4 5 6 7 8 9 10 11 12 13 ...30

и исходный код функции на PHP в минимизированном виде, 315 байт:

    <?php function PageToArray($pc=1,$pa=10,$pp=15){$r=array();if($pa<=$pp){for($i=1;$i<=$pa;$i++)$r[$i]=$i;}else{$b=$pc-floor($pp/2);if($pp%2==0)$b++;if($b<1)$b=1;if($b+$pp>$pa)$b=$pa-$pp+1;for($i=1;$i<=$pp;$i++)$r[$i]=$b++;if($r[1]!=1){$r[1]=1;$r[2]='...';}if($r[$pp]!=$pa){$r[$pp]=$pa;$r[$pp-1]='...';}}return $r;}?>

А теперь, по порядку
Использование функции


    //$iPage - текущая страница
    //$iAllPage - всего страница
    //30 - выводить за раз 20 страниц, если не указано, то выводиться по 15 страниц.
    $aPage = PageToArray($iPage,$iAllPage,20);

Исходный код функции на PHP


    function PageToArray($pc=1,$pa=10,$pp=15)
        {
        $r = array();
        if ($pa<=$pp)
            {
            for ($i=1;$i<=$pa;$i++)
            $r[$i] = $i;

            } else {

            $b = $pc-floor($pp/2);
            if ( $pp%2==0)
                $b++;
            if ( $b<1 )
                $b = 1;

            if ( $b+$pp > $pa)
                $b = $pa-$pp+1;

            for ($i=1;$i<=$pp;$i++)
                $r[$i] = $b++;

            if ( $r[1]!=1 )
                {
                $r[1] = 1;
                $r[2] = '...';
                }

            if ( $r[$pp]!=$pa )
                {
                $r[$pp] = $pa;
                $r[$pp-1] = '...';
                }
            }

        return $r;
        }

PHP + HTML код

    echo '<p class="page" align="center">';
    foreach ($aPage as $one)
        if ( $one == '...' )
            {
            echo '<span>...</span>';
            } else {
            echo '<a href="?page='.$one.'"'.
                ($one==$iPage?'class="active"':'').'>'.$one.'</a>';
            }
    echo '</p>';

CSS код

    .page a
        {
        padding: 2px 5px;
        font-size: 9pt;
        background: #f7f7f7;
        border: 1px solid #c7c7c7;
        color: #000000;
        text-decoration: none;
        margin: 0px 1px;
        font-weight: bold;
        }

    .page a:hover
        {
        background: #cccccc;
        border: 1px solid #666666;
        text-decoration: none;
        }

    .page a.active
        {
        background: #666666;
        border: 1px solid #666666;
        color: #ffffff;
        font-weight: bold;
        }

    .page a.active:hover
        {
        background: #666666;
        }

    .page span
        {
        font-weight:bold;
        padding:0 5px;
        }

Готовый пример

Сохраняем например в файл pager.php и пробуем.

    <?php

    ###########################
    # Author: www.DimaRF.ru #
    ###########################

    $iAllPage = 30;

    $iPage = (int)$_GET['page'];
    if ( $iPage < 1 or $iPage > $iAllPage )
        $iPage = 1;

    $aPage = PageToArray($iPage,$iAllPage,20);

    function PageToArray($pc=1,$pa=10,$pp=15)
        {
        $r = array();
        if ($pa<=$pp)
            {
            for ($i=1;$i<=$pa;$i++)
            $r[$i] = $i;

            } else {

            $b = $pc-floor($pp/2);
            if ( $pp%2==0)
                $b++;
            if ( $b<1 )
                $b = 1;

            if ( $b+$pp > $pa)
                $b = $pa-$pp+1;

            for ($i=1;$i<=$pp;$i++)
                $r[$i] = $b++;

            if ( $r[1]!=1 )
                {
                $r[1] = 1;
                $r[2] = '...';
                }

            if ( $r[$pp]!=$pa )
                {
                $r[$pp] = $pa;
                $r[$pp-1] = '...';
                }
            }

        return $r;
        }

    ?>
    <html>
    <head>
        <title>Pager</title>
        <style type="text/css">
    <!--
    body
        {
        margin: 20px;
        padding: 20px;
        }

    .page a
        {
        padding: 2px 5px;
        font-size: 9pt;
        background: #f7f7f7;
        border: 1px solid #c7c7c7;
        color: #000000;
        text-decoration: none;
        margin: 0px 1px;
        font-weight: bold;
        }

    .page a:hover
        {
        background: #cccccc;
        border: 1px solid #666666;
        text-decoration: none;
        }

    .page a.active
        {
        background: #666666;
        border: 1px solid #666666;
        color: #ffffff;
        font-weight: bold;
        }

    .page a.active:hover
        {
        background: #666666;
        }

    .page span
        {
        font-weight:bold;
        padding:0 5px;
        }
    -->
        </style>
    </head>
    <body>
    <p class="page" align="center">
    <?php
    foreach ($aPage as $one)
        if ( $one == '...' )
            {
            echo '<span>...</span>';
            } else {
            echo '<a href="?page='.$one.'"'.
                ($one==$iPage?'class="active"':'').'>'.$one.'</a>';
            }
    ?>
    </p>
    </body>
    </html>
взято с http://www.dimarf.ru/useful/pager.html

вот мои файлы:
mod_junewsultra.php
Цитировать
<?php
/**
* @package Joomla! 1.5.x
* @author 2008 (c)  Denys Nosov (aka Dutch)
* @author web-site: www.joomla-ua.org
* @copyright This module is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.
**/

// no direct access
defined('_JEXEC') or die('Restricted access');

// Include the syndicate functions only once
require_once (dirname(__FILE__).DS.'helper.php');

$list = modJUNewsUltraHelper::getList($params);

if (!count($list)) {
   return;
}

$template = $params->def('template', 'default.php');
$template = str_replace('.php', '', $template);

//READ FULL
$all_in = $params->def('all_in', '0') ;
$link_all_in = trim( $params->get( 'link_all_in', '' ) );
$text_all_in = trim( $params->get( 'text_all_in', 'All in section/category...' ) );
$class_all_in = trim( $params->get( 'class_all_in', 'small' ) );

$layoutpath = JModuleHelper::getLayoutPath('mod_junewsultra', $template );
if( file_exists($layoutpath) ) {
    require($layoutpath);
} else {
    echo JText::_("<strong>Template <span style=\"color: green;\">$template</span> do is not found!</strong><br />Please, upload new template to <em>modules/mod_breakingnews/tmpl</em> folder or select other template from back-end!");
}
if ($all_in==1) {
    echo '<a class="'.$class_all_in.'" href="'.$link_all_in.'">'.$text_all_in.'</a>';
}

?>


image_and_title_in_2column.php
Цитировать
<?php
/**
* @package Joomla! 1.5.x
* @author 2008 (c)  Denys Nosov (aka Dutch)
* @author web-site: www.joomla-ua.org
* @copyright This module is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.
**/

// no direct access
defined('_JEXEC') or die('Restricted access');

?>
    <img src="images/line_news.jpg" width="594px" height="4px"/>
<div class="junewsultra<?php echo $params->get('moduleclass_sfx'); ?>">
<?php foreach ($list as $item) :  ?>
   <div class="junews<?php echo $params->get('moduleclass_sfx'); ?>">
        <table width="100%">
            <tr valign="top">
                <td width="450px"><div class="jutitle"><?php echo '<i>'. $item->created . '</i><br />'; ?><span><a href="<?php echo $item->link; ?>"><?php echo $item->text; ?></a></span><br /><div class="jutitle_2"><?php echo $item->introtext; ?></div></div></td>
                <td  align="right"><div class="juimage"><?php echo $item->image; ?></div></td>
            </tr>
        </table>
   </div>
    <img src="images/line_news.jpg" width="594px" height="4px"/>
<?php endforeach; ?>
</div>

Подскажите как соединить код верхнего примера с моими файлами?
« Последнее редактирование: 24.10.2010, 18:34:48 от andrewsis »
*

andrewsis

  • Новичок
  • 2
  • 0 / 0
Буду благодарен любому ответу!  ::)
« Последнее редактирование: 24.10.2010, 18:35:27 от andrewsis »
*

Daniil Solosyatov

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
ответить не смогу, но имею другой вопрос: как новости на главной странице выводить?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод модуля средствами php с привязкой к пунтам меню

Автор Divn

Ответов: 4
Просмотров: 4162
Последний ответ 29.08.2021, 17:02:04
от Divn
Вывод нумерации слайдера Flexslider

Автор timofe

Ответов: 3
Просмотров: 1657
Последний ответ 25.04.2021, 12:07:13
от timofe
Цикличный вывод материалов

Автор loop69

Ответов: 7
Просмотров: 1905
Последний ответ 07.12.2019, 19:00:57
от loop69
Модальное окно вывод в product, косяк

Автор Zlusya

Ответов: 6
Просмотров: 1687
Последний ответ 21.11.2019, 09:24:02
от Zlusya
Как в компоненте JEvents настроить вывод многодневных событий?

Автор sergspb

Ответов: 0
Просмотров: 1313
Последний ответ 18.11.2019, 13:26:37
от sergspb