Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

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

ArturC

  • Захожу иногда
  • 242
  • 16 / 1
Русификация Gantry 5.0 Framework
« : 04.07.2015, 22:00:02 »
Наверное многие уже знают о конструкторе от Gantry 5.0 Framework Не могу найти как русифицировать. Есть ли вообще на него русик?
НА ВКУС И ЦВЕТ БИЛЕТОВ НЕТ.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Русификация Gantry 5.0 Framework
« Ответ #1 : 05.07.2015, 00:04:27 »
Нет, ни на один импортный шаблонный фреймворк локализаций нет вообще никаких, не только русской. Многое вшито прямо в код, потому локализации либо не поддается либо она слетает при обновлении фреймворка.
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Re: Русификация Gantry 5.0 Framework
« Ответ #2 : 05.07.2015, 09:00:27 »
Нет, ни на один импортный шаблонный фреймворк локализаций нет вообще никаких, не только русской.

Неправду говорите:-)
*

oberon2005

  • Новичок
  • 7
  • 0 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #3 : 08.12.2015, 11:00:30 »
Неправду говорите:-)
Докажи!Я бы от русика не отказался
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Re: Русификация Gantry 5.0 Framework
« Ответ #4 : 08.12.2015, 11:40:07 »
Докажи!Я бы от русика не отказался

Доказать что?
*

vanguger

  • Осваиваюсь на форуме
  • 11
  • 6 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #5 : 08.06.2016, 13:12:49 »
Перевод в Gantry 5 осуществляется в файлах. Например, чтобы перевести в шаблоне Styles->Core Styles->Base Style нужно перевести этот файл:
../templates/g5_hydrogen/blueprints/styles/base.yaml
но при обновлении, он перезапишется, поэтому лучше его скопировать в папку для пользовательской кастомизации:
../templates/g5_hydrogen/custom/
путь для файла будет такой:
../templates/g5_hydrogen/custom/blueprints/styles/base.yaml - (если папки в пути отсутствуют, создать их)
в скопированном файле поменять текст и необходимые параметры, например в данном файле выглядеть будет так:

Код
name: Базовые стили
description: Основные стили для шаблона Hydrogen
type: core

form:
  fields:

    background:
      type: input.colorpicker
      label: Базовый Фон
      default: "#ffffff"
    text-color:
      type: input.colorpicker
      label: Базовый Цвет Текста
      default: "#666666"
    body-font:
      type: input.fonts
      label: Основной шрифт Body
      default: 'Roboto Condensed, sans-serif'
    heading-font:
      type: input.fonts
      label: Шрифта Заголовка
      default: 'Roboto Condensed, sans-serif'

в режиме разработчика, можно очистить кэш, обновить страницу шаблона. И так далее с остальными файлами.
осторожнее со структурой файлов, лишний пробел вначале или смещение создаёт ошибку, например если в рассматриваемом нами файле сделать так
Код
   background:
type: input.colorpicker
вместо
Код
   background:
      type: input.colorpicker
то это выдаст ошибку
« Последнее редактирование: 08.06.2016, 13:20:02 от vanguger »
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
Re: Русификация Gantry 5.0 Framework
« Ответ #6 : 17.06.2016, 19:18:39 »
А как в таком случае перевести дату из стандартного модуля Gantry5 Particles Date ну например тут (чуть ниже поиска по сайту). Искал во всех файлах локализации и в (как только что узнал) файлах .yaml - ничего похожего! Что называется - HELP!  !  ;D 
*

vanguger

  • Осваиваюсь на форуме
  • 11
  • 6 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #7 : 14.08.2016, 16:05:51 »
А как в таком случае перевести дату из стандартного модуля Gantry5 Particles Date ну например тут (чуть ниже поиска по сайту). Искал во всех файлах локализации и в (как только что узнал) файлах .yaml - ничего похожего! Что называется - HELP!  !  ;D 

Конечно через пень колоду, но работает:

скопировать файлы:
media\gantry5\engines\nucleus\particles\date.html.twig
media\gantry5\engines\nucleus\particles\date.yaml

в директорию: templates\шаблонG5\custom\particles\
пути новых файлов будут такие:
templates\шаблонG5\custom\particles\date.html.twig
templates\шаблонG5\custom\particles\date.yaml

Новое содержимое скопированного файла date.yaml:

Код
name: Дата
description: Показывает текущую дату.
type: particle
icon: fa-calendar

form:
  fields:
    enabled:
      type: input.checkbox
      label: Включено
      description: Включение даты в particles.
      default: true

    CSS.class:
      type: input.selectize
      label: CSS классы
      description: Укажите необходимые CSS классы.
      default: date

    date.formats:
      type: select.selectize
      label: Формат
      description: Выберите формат даты.
      default: D1
      placeholder: 'Выбрать...'
      selectize:
          allowEmptyOption: true
      options:
          'D0': Январь 2016
          'D1': 1 января 2016
          'D2': Пятница, 1 января 2016
          'D3': Пятница

Новое содержимое скопированного файла date.html.twig:

Код
{% extends '@nucleus/partials/particle.html.twig' %}

{% block particle %}

{% set ned = ['Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота'] %}
{% set ms0 = ['','Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'] %}
{% set mes = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] %}

{% set dn = "now"|date("j") %}
{% set nn = "now"|date("w") %}
{% set ms = "now"|date("n") %}
{% set gd = "now"|date("Y") %}
{% set frm = particle.date.formats %}

{% if frm == 'D0' %}{% set ddt = ms0[ms]~" "~gd %}{% endif %}
{% if frm == 'D1' %}{% set ddt = dn~" "~mes[ms]~" "~gd %}{% endif %}
{% if frm == 'D2' %}{% set ddt = ned[nn]~", "~dn~" "~mes[ms]~" "~gd %}{% endif %}
{% if frm == 'D3' %}{% set ddt = ned[nn] %}{% endif %}

    <div class="g-date">
        <span>{{ ddt }}</span>
    </div>

{% endblock %}
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
Re: Русификация Gantry 5.0 Framework
« Ответ #8 : 16.08.2016, 12:48:06 »
Конечно через пень колоду, но работает:

скопировать файлы:
media\gantry5\engines\nucleus\particles\date.html.twig
media\gantry5\engines\nucleus\particles\date.yaml

в директорию: templates\шаблонG5\custom\particles\
пути новых файлов будут такие:
templates\шаблонG5\custom\particles\date.html.twig
templates\шаблонG5\custom\particles\date.yaml

Новое содержимое скопированного файла date.yaml:

Код
name: Дата
description: Показывает текущую дату.
type: particle
icon: fa-calendar

form:
  fields:
    enabled:
      type: input.checkbox
      label: Включено
      description: Включение даты в particles.
      default: true

    CSS.class:
      type: input.selectize
      label: CSS классы
      description: Укажите необходимые CSS классы.
      default: date

    date.formats:
      type: select.selectize
      label: Формат
      description: Выберите формат даты.
      default: D1
      placeholder: 'Выбрать...'
      selectize:
          allowEmptyOption: true
      options:
          'D0': Январь 2016
          'D1': 1 января 2016
          'D2': Пятница, 1 января 2016
          'D3': Пятница

Новое содержимое скопированного файла date.html.twig:

Код
{% extends '@nucleus/partials/particle.html.twig' %}

{% block particle %}

{% set ned = ['Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота'] %}
{% set ms0 = ['','Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'] %}
{% set mes = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] %}

{% set dn = "now"|date("j") %}
{% set nn = "now"|date("w") %}
{% set ms = "now"|date("n") %}
{% set gd = "now"|date("Y") %}
{% set frm = particle.date.formats %}

{% if frm == 'D0' %}{% set ddt = ms0[ms]~" "~gd %}{% endif %}
{% if frm == 'D1' %}{% set ddt = dn~" "~mes[ms]~" "~gd %}{% endif %}
{% if frm == 'D2' %}{% set ddt = ned[nn]~", "~dn~" "~mes[ms]~" "~gd %}{% endif %}
{% if frm == 'D3' %}{% set ddt = ned[nn] %}{% endif %}

    <div class="g-date">
        <span>{{ ddt }}</span>
    </div>

{% endblock %}
Ну отчего же через пень-колоду вполне рабочий вариант, только опять же нужно перекомпилировать стили в шаблоне и ещё раз настроить этот самый particle с датой.
*

vanguger

  • Осваиваюсь на форуме
  • 11
  • 6 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #9 : 20.08.2016, 09:21:01 »
Ну отчего же через пень-колоду вполне рабочий вариант, только опять же нужно перекомпилировать стили в шаблоне и ещё раз настроить этот самый particle с датой.

Я twig почти не знаю, написал как получилось, просто думаю, что можно сделать изящнее, но это нужно разбираться. В целом да, вариант рабочий, пользоваться можно ^-^
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Русификация Gantry 5.0 Framework
« Ответ #10 : 20.08.2016, 14:27:30 »
vanguger, от имени J-сообщества данного форума спасибо вам за проделанную работу :)
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
Re: Русификация Gantry 5.0 Framework
« Ответ #11 : 23.08.2016, 14:35:17 »
vanguger, от имени J-сообщества данного форума спасибо вам за проделанную работу :)
Это наверно самый эффективный член форума: 4 сообщения, 4 + в карме! )))
*

johnyx

  • Новичок
  • 2
  • 0 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #12 : 15.09.2016, 11:31:33 »
Не судите строго перевел все что в папке "templates/g5_helium/blueprints/styles/" ну и перенес в "templates/g5_helium/custom/blueprints/styles/"

https://yadi.sk/d/gvnKpzi_vBhcE
*

vanguger

  • Осваиваюсь на форуме
  • 11
  • 6 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #13 : 16.09.2016, 06:14:45 »
Собственно, намёки в направлении полного перевода у рокетов имеются:
https://github.com/gantry/gantry5/wiki/Gantry-5-Agenda,-Exploration-and-Time-Travel
Возможно даже менеджер появится:

Значит, запасёмся терпением.

Ну, а пока, в продолжении темы перевода даты, предлагаю ешё один пример, который использует установленный по умолчанию язык из language/ru-RU/ru-RU.ini(ну или на любом другом языке из language/xx-XX/xx-XX.ini)

Файл 1(перевод в админке): /templates/G5_TEMPLATE/custom/admin/templates/forms/fields/select/date.html.twig

Код
{% extends 'forms/fields/select/selectize.html.twig' %}

{% block options %}
    {% for key, text in field.options %}
        <option
                {# required attribute structures #}
                {% if key == value %}selected="selected"{% endif %}
                value="{{ key }}"
                {# non-gloval attribute structures #}
                {% if field.options.disabled in ['on', 'true', 1] %}disabled="disabled"{% endif %}
                {% if field.options.label is defined %}label="{{ field.options.label }}"{% endif %}
                >{% if key is empty %}
                    {{ text }}
                 {% else %}
                    {% set f = key %}{% set d = '' %}
                    {% for i in 0..f|length %}
                        {% set d = d~'now'|date(f|slice(i, 1)|replace({'M': 'F###'}))|replace({'###': '_SHORT'})|upper|trans %}
                    {% endfor %}                
                    {{ d }}
                 {% endif %}
                </option>
    {% endfor %}
{% endblock %}

        
        
файл 2(частица даты): templates/G5_TEMPLATE/custom/particles/date.html.twig изменяем следующим образом:

Код
{% extends '@nucleus/partials/particle.html.twig' %}

{% block particle %}
{% set f = particle.date.formats|default('l, F d, Y') %}{% set d = '' %}
{% for i in 0..f|length %}
{% set d = d~'now'|date(f|slice(i, 1)|replace({'M': 'F'~'###'}))|replace({'###': '_SHORT'})|upper|trans %}
{% endfor %}
<div class="g-date">
<span>{{ d }}</span>
</div>
{% endblock %}

Файл 3(для перевода даты в частице материалов): /templates/G5_TEMPLATE/custom/particles/contentarray.html.twig

Код
{% extends '@nucleus/partials/particle.html.twig' %}

{% set attr_extra = '' %}
{% if particle.extra %}
    {% for attributes in particle.extra %}
        {% for key, value in attributes %}
            {% set attr_extra = attr_extra ~ ' ' ~ key|e ~ '="' ~ value|e('html_attr') ~ '"' %}
        {% endfor %}
    {% endfor %}
{% endif %}

{% block particle %}
    {% set article_settings = particle.article %}
    {% set filter = article_settings.filter %}
    {% set sort = article_settings.sort %}
    {% set limit = article_settings.limit %}
    {% set display = article_settings.display %}

    {# Category Finder #}
    {% set category_options = filter.categories ? {id: [filter.categories|split(','), 0]} : {} %}
    {% set categories = Joomla.finder('category', category_options).published(1).language().limit(0).find() %}

    {# Content Finder #}
    {% set article_finder = Joomla.finder('content').category(categories).published(1).language() %}

    {% set featured = filter.featured|default('include') %}
    {% if featured == 'exclude' %}
        {% do article_finder.featured(false) %}
    {% elseif featured == 'only' %}
        {% do article_finder.featured(true) %}
    {% endif %}

    {% set articles = article_finder.order(sort.orderby, sort.ordering).limit(limit.total).start(limit.start).find() %}

    {# All Articles #}
    <div class="g-content-array g-joomla-articles{% if particle.css.class %} {{ particle.css.class }}{% endif %}" {% if particle.extra %}{{ attr_extra|raw }}{% endif %}>

        {% for column in articles|batch(limit.columns) %}
            <div class="g-grid">
                {% for article in column %}

                    <div class="g-block">
                        <div class="g-content">
                            <div class="g-array-item">
                                {% if display.image.enabled and article.images.image_intro or article.images.image_fulltext %}
                                    {% if article.images.image_intro and display.image.enabled == 'intro' or display.image.enabled == 'show' %}
                                        <div class="g-array-item-image">
                                            <a href="{{ article.route }}">
                                                <img src="{{ url(article.images.image_intro) }}" {{ article.images.image_intro|imagesize|raw }} />
                                            </a>
                                        </div>
                                    {% elseif article.images.image_fulltext and display.image.enabled == 'full' %}
                                        <div class="g-array-item-image">
                                            <a href="{{ article.route }}">
                                                <img src="{{ url(article.images.image_fulltext) }}" {{ article.images.image_fulltext|imagesize|raw }} />
                                            </a>
                                        </div>
                                    {% endif %}
                                {% endif %}

                                {% if display.title.enabled %}
                                    <div class="g-array-item-title">
                                        <h3 class="g-item-title">
                                            <a href="{{ article.route }}">
                                                {{ display.title.limit ? article.title|truncate_text(display.title.limit) : article.title }}
                                            </a>
                                        </h3>
                                    </div>
                                {% endif %}

                                {% if display.date.enabled or display.author.enabled or display.category.enabled or display.hits.enabled %}
                                    <div class="g-array-item-details">
                                        {% if display.date.enabled %}
                                            {% set f = display.date.format %}{% set d = '' %}
                                            <span class="g-array-item-date">
                                                {% if display.date.enabled == 'published' %}
                                                    {% set sd = article.publish_up %}
                                                {% elseif display.date.enabled == 'modified' %}
                                                    {% set sd = article.modified %}
                                                {% else %}
                                                    {% set sd = article.created %}
                                                {% endif %}
                                                {% for i in 0..f|length %}
                                                    {% set d = d~sd|date(f|slice(i, 1)|replace({'M': 'F###'}))|replace({'###': '_SHORT'})|upper|trans %}
                                                {% endfor %}
                                                {{ d }}
                                            </span>
                                        {% endif %}

                                        {% if display.author.enabled %}
                                            <span class="g-array-item-author">
                                                <i class="fa fa-user"></i>{{ article.author.name }}
                                            </span>
                                        {% endif %}

                                        {% if display.category.enabled %}
                                            {% set category_link = display.category.enabled == 'link' %}
                                            <span class="g-array-item-category">
                                                {% for category in article.categories %}
                                                    {% if category_link %}
                                                        <a href="{{ category.route }}">
                                                            <i class="fa fa-folder-open"></i>{{ category.title }}
                                                        </a>
                                                    {% else %}
                                                        <i class="fa fa-folder-open"></i>{{ category.title }}
                                                    {% endif %}
                                                {% endfor %}
                                            </span>
                                        {% endif %}

                                        {% if display.hits.enabled %}
                                            <span class="g-array-item-hits">
                                                <i class="fa fa-eye"></i>{{ article.hits }}
                                            </span>
                                        {% endif %}
                                    </div>
                                {% endif %}

                                {% if display.text.type %}
                                    {% set article_text = display.text.type == 'intro' ? article.introtext : article.text %}
                                    <div class="g-array-item-text">
                                        {% if display.text.formatting == 'text' %}
                                            {{ article_text|truncate_text(display.text.limit)|raw }}
                                        {% else %}
                                            {{ article_text|truncate_html(display.text.limit)|raw }}
                                        {% endif %}
                                    </div>
                                {% endif %}

                                {% if display.read_more.enabled %}
                                    <div class="g-array-item-read-more">
                                        <a href="{{ article.route }}">
                                            <button class="button{% if display.read_more.css %} {{ display.read_more.css }}{% endif %}">{{ display.read_more.label|default('Read More...') }}</button>

                                        </a>
                                    </div>
                                {% endif %}
                            </div>
                        </div>
                    </div>

                {% endfor %}
            </div>
        {% endfor %}
    </div>

{% endblock %}
« Последнее редактирование: 16.10.2016, 21:55:11 от vanguger »
*

johnyx

  • Новичок
  • 2
  • 0 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #14 : 14.10.2016, 07:33:11 »
в новой версии 5.3.6 они сделали перевод для некоторых полей надо понимать Add initial support for translating form field label and description (#84)
только не понятно как это работает, пролейте свет на сей момент кто разобрался.
*

vanguger

  • Осваиваюсь на форуме
  • 11
  • 6 / 0
Re: Русификация Gantry 5.0 Framework
« Ответ #15 : 16.10.2016, 21:37:02 »
Это кстати с моей подачи они двинулись. Всё началось с того, что я подумал, пока их дождёшься, легче написать плагин самому, который позволит переводить из стандартных языковых файлов, при этом не трогая файлы yaml. Но, меня ждал сюрприз, добавление нового twig фильтра в админке, не удавалось, что я только не пробовал. Обсуждали эту тему с Матиасом. В итоге выявили баг, который закрывал эту проблему в версии 5.3.6+ Кстати Матиас мне очень понравился как человек, очень хороший отзывчивый, добрый, легко пошёл на диалог.
Кому интересно подключение своих функций и фильтров twig, здесь в конце описано:
https://github.com/gantry/gantry5/issues/1584

По теме перевода, в пеписке удалось узнать, что мы вынашиваем похожую идею, а именно формирование констант на лету, не прописывая их в файлах yaml, получился на мой взгляд элегантный способ, но он всё ещё остаётся экспериментальным.

В 5.3.6 чтобы увидеть константы в админке шаблона, нужно зайти в основные настройки Joomla и включить отладку языка. перейти в шаблон, в частицах и основных настройках, вместо слов будут константы. Эти константы можно переводить стандартным способом, в файле локализации administrator/language/ru-RU/ru-RU.com_gantry5.ini


Был введён новый фильтр для формирования констант. Сейчас их формирование примерно следующее:
{{ block.name|trans_key(block.name, 'TITLE') }}
Что создаёт константу: GANTRY5_BASE_STYLES_TITLE

В данной версии 5.3.6 этот фильтр задействован только в одном файле twig, хотя для полного перевода я насчитал их около 15. Из переписки стало ясно, что акцент на полноценном переводе будет делаться в версиях 5.4-5.5 Хотя на мой взгляд работы там на один вечер.
« Последнее редактирование: 16.10.2016, 22:05:59 от vanguger »
*

Fassendek

  • Осваиваюсь на форуме
  • 25
  • 0 / 1
Re: Русификация Gantry 5.0 Framework
« Ответ #16 : 01.10.2017, 08:38:12 »
С русификаторами всегда была проблема. Особенно если он осуществляется через платформу transifex.com  (10 человек с разных концов света осуществляют вразнобой перевод какого-то компонента, а курирует их товарищ из Тувалу или Зимбабве, например, напрочь не понимающий русского языка. Притом 8 и 10 переводчиков "переводят" компонент, чтобы получить халявную подписку на него. Переводы отвратительные, неграмотные и не соответствуют иногда сути оригинала!). Народ привык получать деньги на халяву, при этом, ничего не сделав и не вложив!
Русификатор GANTRY 5, т.е. самого движка можете посмотреть по предложенной ссылке. Но это лишь минимум. Так как языковые ключи выносятся в отдельные языковые файлы разработчиками фреймворка постепенно. И перевода требует установленный (устанавливаемый) шаблон на Gantry 5, иначе перевод выглядит убого. Энтузиастов мало, хотя проект GANTRY очень интересный. Если кто интересуется этим фреймворком и есть идеи - пишите в личку, обсудим  ^-^
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
Re: Русификация Gantry 5.0 Framework
« Ответ #17 : 04.10.2017, 15:33:19 »
Ну что ж, попробовал - предложенная версия то же не плоха и устанавливается стандартно через менеджер установки расширений!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Framework с поддержкой PHP 8x

Автор KingSnake

Ответов: 3
Просмотров: 816
Последний ответ 07.12.2022, 13:18:37
от marksetter
Помощь по framework Astroid

Автор KingSnake

Ответов: 25
Просмотров: 3379
Последний ответ 18.02.2022, 14:17:14
от KingSnake
Куда писать unset CSS в Gantry 5 - шаблон Helium?

Автор romagromov

Ответов: 1
Просмотров: 708
Последний ответ 27.04.2021, 16:51:32
от romagromov
gantry 5 kraken

Автор vova630

Ответов: 0
Просмотров: 660
Последний ответ 10.04.2020, 21:11:42
от vova630
Gantry 5 и template override

Автор romagromov

Ответов: 0
Просмотров: 772
Последний ответ 05.04.2020, 18:41:25
от romagromov