Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
Всем привет.
Помогите вывести заголовок материала в коде шаблона.
У меня например yootheme pro
Надо чтоб заголовок выводился в шапке с меню и тд с проверкой отображения заголовка на странице.

В материале так:
<h1 class="uk-article-title uk-margin-remove-top"><?= $title ?></h1>

Вроде пишут что надо:
<h1 class="uk-article-title uk-margin-remove-top"><?= $this->article->title ?></h1>

Joomla 3.8
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Вывод title в любом месте шаблона
« Ответ #1 : 08.10.2017, 19:18:36 »
Надо чтоб заголовок выводился в шапке с меню и тд с проверкой отображения заголовка на странице.

Только на странице самого материала или на любой странице?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
Re: Вывод title в любом месте шаблона
« Ответ #2 : 08.10.2017, 20:06:59 »
Только на странице самого материала или на любой странице?
На странице материала. Ну и если можно отдельно код чтоб категории выводило, если открыта категория
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Вывод title в любом месте шаблона
« Ответ #3 : 09.10.2017, 07:31:39 »
На странице материала. Ну и если можно отдельно код чтоб категории выводило, если открыта категория

Пробовал на версии 3.7.5, не уверен что будет работать на 3.8.1 - но все равно попробуй...
Что бы начать пользоваться, в нужном месте надо написать
Код: php
<?php $article = PlgContentPrepareFactory::getContext(); ?>

Что бы вывести заголовок, напиши
Код: php
<?php echo $article->title; ?>

Что бы проверить вывод заголовка, напиши
Код: php
<?php echo $article->params->get('show_title'); ?>
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
Re: Вывод title в любом месте шаблона
« Ответ #4 : 09.10.2017, 15:04:35 »
пустую страницу стал выдавать.
Когда строку
Код
<?php $article = PlgContentPrepareFactory::getContext(); ?>
убираю все ок.
а без неё ничего не выводит.
*

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
Re: Вывод title в любом месте шаблона
« Ответ #5 : 09.10.2017, 15:09:11 »
Плагин ставил
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Вывод title в любом месте шаблона
« Ответ #6 : 09.10.2017, 15:27:01 »
пустую страницу стал выдавать.
Когда строку
Код
<?php $article = PlgContentPrepareFactory::getContext(); ?>
убираю все ок.
а без неё ничего не выводит.

А покажите полностью код файла
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
Re: Вывод title в любом месте шаблона
« Ответ #7 : 09.10.2017, 15:45:23 »
Код
<?php

// Options
$layout = $theme->get('header.layout');
$fullwidth = $theme->get('header.fullwidth');
$logo_padding_remove = $theme->get('header.logo_padding_remove');
$logo = $theme->get('logo.image') || $theme->get('logo.text');
$class = array_merge(['tm-header', 'uk--visible@' . $theme->get('mobile.breakpoint')], isset($class)? (array) $class : []);
$attrs = array_merge(['uk-header' => true], isset($attrs)? (array) $attrs : []);
$attrs_sticky = [];

// Container
$container = ['class' => ['uk-navbar-container']];

// Navbar
$navbar = $theme->get('navbar', []);

// Dropdown options
if (!(strpos($layout, 'offcanvas') === 0 || strpos($layout, 'modal') === 0)) {

    $attrs_navbar = [
        'class' => 'uk-navbar',
        'uk-navbar' => json_encode(array_filter([
            'align' => $navbar['dropdown_align'],
            'click' => $navbar['dropdown_click'],
            'boundary-align' => $navbar['dropdown_boundary'],
            'dropbar' => $navbar['dropbar'] ? true : null,
            'dropbar-anchor' => $navbar['dropbar'] ? '!.uk-navbar-container' : null,
            'dropbar-mode' => $navbar['dropbar']
        ]))
    ];

} else {

    $attrs_navbar = [
        'class' => 'uk-navbar',
        'uk-navbar' => true
    ];

}

// Sticky
if ($sticky = $navbar['sticky']) {
    $attrs_sticky = array_filter([
        'uk-sticky' => true,
        'media' => 0,
        'show-on-up' => $sticky == 2,
        'animation' => $sticky == 2 ? 'uk-animation-slide-top' : '',
        'cls-active' => 'uk-navbar-sticky',
        'sel-target' => '.uk-navbar-container',
    ]);
}

?>

<div<?= $this->attrs(['class' => $class], $attrs)?>>

<?php

/*
 * Horizontal layouts
 */

if (in_array($layout, ['horizontal-left', 'horizontal-center', 'horizontal-right'])) : ?>

    <?php if ($sticky) : ?>
    <div<?= $this->attrs($attrs_sticky)?>>
    <?php endif ?>

        <div<?= $this->attrs($container)?>>

            <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?><?= $logo && $logo_padding_remove ? ' uk-padding-remove-left' : '' ?>">
                <nav<?= $this->attrs($attrs_navbar)?>>

                    <?php if ($logo || $layout == 'horizontal-left' && $this->countModules('navbar')) : ?>
                    <div class="uk-navbar-left">

                        <?= $logo ? $this->render('header-logo', ['class' => 'uk-navbar-item', 'img' => 'uk-responsive-height']) : '' ?>

                        <?php if ($layout == 'horizontal-left') : ?>
                            <jdoc:include type="modules" name="navbar" />
                        <?php endif ?>

                    </div>
                    <?php endif ?>

                    <?php if ($layout == 'horizontal-center' && $this->countModules('navbar')) : ?>
                    <div class="uk-navbar-center">
                        <jdoc:include type="modules" name="navbar" />
                    </div>
                    <?php endif ?>

                    <?php if ($this->countModules('header') || $layout == 'horizontal-right' && $this->countModules('navbar')) : ?>
                    <div class="uk-navbar-right">

                        <?php if ($layout == 'horizontal-right' && $this->countModules('navbar')) : ?>
                            <jdoc:include type="modules" name="navbar" />
                        <?php endif ?>

                        <jdoc:include type="modules" name="header" />

                    </div>
                    <?php endif ?>

                </nav>
            </div>

        </div>

    <?php if ($sticky) : ?>
    </div>
    <?php endif ?>

<?php endif ?>

<?php

/*
 * Stacked Center layouts
 */

if (in_array($layout, ['stacked-center-a', 'stacked-center-b', 'stacked-center-split'])) : ?>

    <?php if ($logo && $layout != 'stacked-center-split' || $layout == 'stacked-center-a' && $this->countModules('header')) : ?>
    <div class="tm-headerbar-top">
        <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?>">

            <?php if ($logo) : ?>
            <div class="uk-text-center">
                <?= $this->render('header-logo')?>
            </div>
            <?php endif ?>

            <?php if ($layout == 'stacked-center-a' && $this->countModules('header')) : ?>
            <div class="tm-headerbar-stacked uk-grid-medium uk-child-width-auto uk-flex-center uk-flex-middle" uk-grid>
                <jdoc:include type="modules" name="header" style="cell" />
            </div>
            <?php endif ?>

        </div>
    </div>
    <?php endif ?>

    <?php if ($this->countModules('navbar')) : ?>

        <?php if ($sticky) : ?>
        <div<?= $this->attrs($attrs_sticky)?>>
        <?php endif ?>

            <div<?= $this->attrs($container)?>>

                <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?>">
                    <nav<?= $this->attrs($attrs_navbar)?>>

                        <div class="uk-navbar-center">

                            <?php if ($layout == 'stacked-center-split') : ?>

                                <div class="uk-navbar-center-left"><div>
                                    <jdoc:include type="modules" name="navbar-split" />
                                </div></div>

                                <?= $this->render('header-logo', ['class' => 'uk-navbar-item', 'img' => 'uk-responsive-height']); ?>

                                <div class="uk-navbar-center-right"><div>
                                    <jdoc:include type="modules" name="navbar" />
                                </div></div>

                            <?php else: ?>
                                <jdoc:include type="modules" name="navbar" />
                            <?php endif ?>

                        </div>

                    </nav>
                </div>

            </div>

        <?php if ($sticky) : ?>
        </div>
        <?php endif ?>

    <?php endif ?>

    <?php if (in_array($layout, ['stacked-center-b', 'stacked-center-split']) && $this->countModules('header')) : ?>
    <div class="tm-headerbar-bottom">
        <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?>">
            <div class="uk-grid-medium uk-child-width-auto uk-flex-center uk-flex-middle" uk-grid>
                <jdoc:include type="modules" name="header" style="cell" />
            </div>
        </div>
    </div>
    <?php endif ?>

<?php endif ?>

<?php

/*
 * Stacked Left layouts
 */

if ($layout == 'stacked-left-a' || $layout == 'stacked-left-b') : ?>

    <?php if ($logo || $this->countModules('header')) : ?>
    <div class="tm-headerbar-top">
        <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?><?= $logo && $logo_padding_remove ? ' uk-padding-remove-left' : '' ?> uk-flex uk-flex-middle">

            <?= $logo ? $this->render('header-logo') : '' ?>

            <?php if ($this->countModules('header')) : ?>
            <div class="uk-margin-auto-left">
                <div class="uk-grid-medium uk-child-width-auto uk-flex-middle" uk-grid>
                    <jdoc:include type="modules" name="header" style="cell" />
                </div>
            </div>
            <?php endif ?>

        </div>
    </div>
    <?php endif ?>

    <?php if ($this->countModules('navbar')) : ?>

        <?php if ($sticky) : ?>
        <div<?= $this->attrs($attrs_sticky)?>>
        <?php endif ?>

            <div<?= $this->attrs($container)?>>

                <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?>">
                    <nav<?= $this->attrs($attrs_navbar)?>>

                        <?php if ($layout == 'stacked-left-a') : ?>
                        <div class="uk-navbar-left">
                            <jdoc:include type="modules" name="navbar" />
                        </div>
                        <?php endif ?>

                        <?php if ($layout == 'stacked-left-b') : ?>
                        <div class="uk-navbar-left uk-flex-auto">
                            <jdoc:include type="modules" name="navbar" />
                        </div>
                        <?php endif ?>

                    </nav>
                </div>

            </div>

        <?php if ($sticky) : ?>
        </div>
        <?php endif ?>

    <?php endif ?>

<?php endif ?>

<?php

/*
 * Toggle layouts
 */

if (strpos($layout, 'offcanvas') === 0 || strpos($layout, 'modal') === 0) :

    $attrs_toggle = [];

    $attrs_toggle['class'][] = strpos($layout, 'modal') === 0 ? 'uk-modal-body uk-padding-large uk-margin-auto' : 'uk-offcanvas-bar';
    $attrs_toggle['class'][] = $navbar['toggle_menu_center'] ? 'uk-text-center' : '';
    $attrs_toggle['class'][] = 'uk-flex uk-flex-column';

    ?>

    <?php if ($sticky) : ?>
    <div<?= $this->attrs($attrs_sticky)?>>
    <?php endif ?>

        <div<?= $this->attrs($container)?>>
            <div class="uk-container<?= $fullwidth ? ' uk-container-expand' : '' ?><?= $logo && $logo_padding_remove ? ' uk-padding-remove-left' : '' ?>">
                <nav<?= $this->attrs($attrs_navbar)?>>

                    <?php if ($logo) : ?>
                    <div class="uk-navbar-left">
                        <?= $this->render('header-logo', ['class' => 'uk-navbar-item', 'img' => 'uk-responsive-height'])?>
                    </div>
                    <?php endif ?>

                    <?php if ($this->countModules('header') || $this->countModules('navbar')) : ?>
                    <div class="uk-navbar-right">

                        <jdoc:include type="modules" name="header" />

                        <?php if ($this->countModules('navbar')) : ?>
                        <a class="open-menu" href="#" uk-toggle="!.tm-header > [uk-offcanvas], [uk-modal]">
<div class="menu-button"> <img src="/images/topot-menu.png"  alt="Топот" style="width: 54px; height: 80px;"></div>   

                        </a>
                        <?php endif ?>

                    </div>
                    <?php endif ?>











                </nav>
            </div>
        </div>

    <?php if ($sticky) : ?>
    </div>
    <?php endif ?>

    <?php if (strpos($layout, 'offcanvas') === 0 && $this->countModules('navbar')) : ?>
    <div uk-offcanvas="flip: true"<?= $this->attrs($navbar['offcanvas'] ?: [])?>>
        <div<?= $this->attrs($attrs_toggle)?>>

            <button class="uk-offcanvas-close uk-close-large uk-margin-remove-adjacent" type="button" uk-close></button>

            <jdoc:include type="modules" name="navbar" />

        </div>
    </div>
    <?php endif ?>

    <?php if (strpos($layout, 'modal') === 0 && $this->countModules('navbar')) : ?>
    <div class="uk-modal-full" uk-modal>
        <div class="uk-modal-dialog uk-flex">

            <button class="uk-modal-close-full uk-close-large uk-margin-remove-adjacent" type="button"  style="border: 0;">
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 20 20" ratio="1">
<line fill="none" stroke="#000" stroke-width="4" x1="1" y1="1" x2="19" y2="19"></line>
<line fill="none" stroke="#000" stroke-width="4" x1="19" y1="1" x2="1" y2="19"></line></svg>
</button>

            <div <?= $this->attrs($attrs_toggle)?> uk-height-viewport>
                <jdoc:include type="modules" name="navbar" />
            </div>

        </div>
    </div>
    <?php endif ?>

<?php endif ?>

</div>
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Вывод title в любом месте шаблона
« Ответ #8 : 09.10.2017, 15:51:45 »
В общих настройках включите отображение php ошибок для разработчиков. Вставьте код куда надо и перейдите на страницу. Какие ошибки выдает?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
Re: Вывод title в любом месте шаблона
« Ответ #9 : 09.10.2017, 16:09:04 »
Когда плагин включен
https://yadi.sk/i/-3wzYdTb3NbfGH

Когда выключен
https://yadi.sk/i/rQuql0FZ3Nbfic

Код:
Код
<body class=""><jdoc:include type="head">
<link href="/templates/topot/css/my.css" rel="stylesheet" type="text/css">
   
   

       
       
         
           
           
<div class="tm-header uk--visible@s" uk-header="">





        <div uk-sticky="" show-on-up="" animation="uk-animation-slide-top" cls-active="uk-navbar-sticky" sel-target=".uk-navbar-container">
   
        <div class="uk-navbar-container">
            <div class="uk-container uk-container-expand">
                <nav class="uk-navbar" uk-navbar="">

                                        <div class="uk-navbar-left">
                        <a href="https://thetopot.com" class="uk-navbar-item uk-logo">
    <img src="/templates/topot/cache/topot-logo-fab42b16.png" srcset="/templates/topot/cache/topot-logo-b9f09adb.png 57w, /templates/topot/cache/topot-logo-fab42b16.png 71w" sizes="(min-width: 71px) 71px, 100vw" class="uk-responsive-height" alt="Топот"><img src="/templates/topot/cache/topot-logo-fab42b16.png" srcset="/templates/topot/cache/topot-logo-b9f09adb.png 57w, /templates/topot/cache/topot-logo-fab42b16.png 71w" sizes="(min-width: 71px) 71px, 100vw" class="uk-responsive-height uk-logo-inverse" alt="Топот"></a>
                    </div>
                   
                                        <div class="uk-navbar-right">

                        <jdoc:include type="modules" name="header">

                                                <a class="open-menu" href="#" uk-toggle="!.tm-header > [uk-offcanvas], [uk-modal]">
<div class="menu-button"> <img src="/images/topot-menu.png" alt="Топот" style="width: 54px; height: 80px;"></div>   

                        </a>
                       
                    </jdoc:include></div>
                   



</nav></div></div></div></div></jdoc:include><script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-NWFT6PW"></script><script>var dataLayer=dataLayer || [];
(function(w,d,s,l,i,h){if(h=='2tagmanager.google.com'){return}w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-NWFT6PW',window.location.hostname);
</script></body>
« Последнее редактирование: 09.10.2017, 16:12:18 от lalalag »
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Вывод title в любом месте шаблона
« Ответ #10 : 09.10.2017, 16:27:44 »
Замените плагины!

Перед использованием, в шаблоне добавьте код
Код: php
echo (int)class_exists('PlgSystemContentPrepareFactory');

Если выдает цифру 1, то все норм...
Все тоже самое только класс другой PlgSystemContentPrepareFactory
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как получить параметры стиля шаблона?

Автор Spam

Ответов: 16
Просмотров: 5661
Последний ответ 20.07.2025, 20:25:55
от fbr
Почему обновление шаблона ломает шаблон?

Автор gorbi_U

Ответов: 8
Просмотров: 3269
Последний ответ 03.05.2023, 22:54:19
от SmiP
Xelix Ultimate редактирование шаблона

Автор Darov

Ответов: 42
Просмотров: 7722
Последний ответ 20.03.2023, 12:16:59
от marksetter
Установка шаблона или быстрого старта qnap

Автор weser

Ответов: 12
Просмотров: 3037
Последний ответ 09.02.2023, 17:16:58
от weser
Не подлючает модуль из шаблона

Автор misteri27

Ответов: 0
Просмотров: 1865
Последний ответ 31.01.2023, 12:58:05
от misteri27