Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

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

62411

  • Захожу иногда
  • 59
  • 0 / 3


Нужно сделать так, чтобы текст с перьями были как на скриншоте.
Я пытался сделать сам через правки в CSS файле но все равно получается криво.
Посмотрите пожалуйста.
Вот ссылка на страницу http://m.kaztranslate.kz/index.php/franshiza

Сайт на joomla 2.5 но создал тему в этом разделе, так как тут вроде больше людей.

*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #1 : 24.02.2022, 18:47:34 »
Я пытался сделать сам через правки в CSS файле но все равно получается криво.
Структура оставляет желать лучшего!
Но Вам поможет сетка grid что бы сделать три столбца и каждый элемент flex для того что бы выровнять по вертикали...
Код: html
<div id="obshee" style="display: grid;grid-template-columns: repeat(3, 1fr);">
    <div id="sozd">
        <img src="/images/list1.jpg" border="0" width="40" height="114"> 
        <p>Самый выгодный паушальный взнос среди конкурентов!</p> 
    </div>
    <div id="podd">
        <img src="/images/list2.jpg" border="0" width="40" height="114">
        <p><b>Роялти:</b> 5% от оборота при не выполнении плана продаж в 400 000 тенге (~900$ или 70 000 руб) в месяц. <span style="color: #3366ff;"><em>(Скидка! Первые 4 месяца без роялти)</em></span></p>
    </div>
    <div id="perevodozvuchka">
        <img src="/images/list3.jpg" border="0" width="40" height="114">
        <p>
            <b>Стартовые инвестиции: от 970 000 тенге (~2 200$ или 160 000 руб) </b><em style="color: #3366ff;">*Стартовые инвестиции могут быть намного меньше в случае, если данная фарншиза будет в виде дополнительного бизнеса.</em>
        </p>
    </div>
</div>
Код: css
#obshee > div {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: large;
    font-weight: 600;
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

62411

  • Захожу иногда
  • 59
  • 0 / 3
Re: Сделать картинки по горизонтали
« Ответ #2 : 25.02.2022, 07:10:14 »
Структура оставляет желать лучшего!
Но Вам поможет сетка grid что бы сделать три столбца и каждый элемент flex для того что бы выровнять по вертикали...
Код: html
<div id="obshee" style="display: grid;grid-template-columns: repeat(3, 1fr);">
    <div id="sozd">
        <img src="/images/list1.jpg" border="0" width="40" height="114"> 
        <p>Самый выгодный паушальный взнос среди конкурентов!</p> 
    </div>
    <div id="podd">
        <img src="/images/list2.jpg" border="0" width="40" height="114">
        <p><b>Роялти:</b> 5% от оборота при не выполнении плана продаж в 400 000 тенге (~900$ или 70 000 руб) в месяц. <span style="color: #3366ff;"><em>(Скидка! Первые 4 месяца без роялти)</em></span></p>
    </div>
    <div id="perevodozvuchka">
        <img src="/images/list3.jpg" border="0" width="40" height="114">
        <p>
            <b>Стартовые инвестиции: от 970 000 тенге (~2 200$ или 160 000 руб) </b><em style="color: #3366ff;">*Стартовые инвестиции могут быть намного меньше в случае, если данная фарншиза будет в виде дополнительного бизнеса.</em>
        </p>
    </div>
</div>
Код: css
#obshee > div {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: large;
    font-weight: 600;
}

Здравствуйте. Спасибо.
Да все работает. Я убрал черные рамки, которые занимали место. Это был s5_component_wrap я сделал padding 0px и убрал его чтобы можно было расширить растояние между блоками с текстом.

так как я его убрал и стало больше места, можете увеличить растояние между блоками с листьями? Как на этом скриншоте?


*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Сделать картинки по горизонтали
« Ответ #3 : 25.02.2022, 08:54:06 »
так если убрали padding то верните его для #obshee > div

индивидуальная помощь: @SetAlexx
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #4 : 25.02.2022, 09:05:05 »
так как я его убрал и стало больше места, можете увеличить растояние между блоками с листьями? Как на этом скриншоте?
В этом Вам поможет свойство grid-gap
Код: html
<div id="obshee" style="display: grid;grid-template-columns: repeat(3, 1fr);grid-gap:16px;">
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

62411

  • Захожу иногда
  • 59
  • 0 / 3
Re: Сделать картинки по горизонтали
« Ответ #5 : 25.02.2022, 19:32:16 »
В этом Вам поможет свойство grid-gap
Код: html
<div id="obshee" style="display: grid;grid-template-columns: repeat(3, 1fr);grid-gap:16px;">

Да, все получилось. Но у меня таких блоков с листьями штук 6. Я думал что остальные 3 штуки сам сделаю на основании вашего примера. А можно ли в этой сетке создать 6 штук? или можно просто скопировать ваш код но уже с другим текстом и картинками?
Если можно сделать 6 штук то как это сделать?
Должно быть как на этом скрине

*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #6 : 25.02.2022, 21:11:53 »
А можно ли в этой сетке создать 6 штук?
Код: css
grid;grid-template-columns: repeat(6, 1fr);
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

62411

  • Захожу иногда
  • 59
  • 0 / 3
Re: Сделать картинки по горизонтали
« Ответ #7 : 26.02.2022, 14:21:11 »
grid;grid-template-columns: repeat(6, 1fr)

Сделал 6 штук, но теперь новые 3 штуки все стали только по горизонтали (скриншот прикрепил).
А можно ли сделать так, чтобы остальные 3 штуки стояли снизу? Или может ваш код еще раз повторить но уже поменять название дивов с новыми картинками и текстом?


*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #8 : 26.02.2022, 14:32:25 »
Сделал 6 штук, но теперь новые 3 штуки все стали только по горизонтали (скриншот прикрепил).
А можно ли сделать так, чтобы остальные 3 штуки стояли снизу? Или может ваш код еще раз повторить но уже поменять название дивов с новыми картинками и текстом?
Если вам нужно три колонки то измените с 6 на 3 и в коде добавьте новые 3 элемента, и они будут выводиться с низу как 2-й ряд
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

62411

  • Захожу иногда
  • 59
  • 0 / 3
Re: Сделать картинки по горизонтали
« Ответ #9 : 26.02.2022, 15:26:40 »
Если вам нужно три колонки то измените с 6 на 3 и в коде добавьте новые 3 элемента, и они будут выводиться с низу как 2-й ряд

Хорошо, попробую.
Я заметил, что в мобильной версии блоки не адаптируются, а сжимаются и все равно остаются в горизонтальном положении. (Скриншот прикрепил).
Как сделать так чтобы блоки с листьями были в вертикальном положении как на втром скриншоте? (скриншот тоже прикрепил).

*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #10 : 26.02.2022, 17:55:58 »
Как сделать так чтобы блоки с листьями были в вертикальном положении как на втром скриншоте?
Используя медиа запросы на определенном расширении укажите один столбец
Код: css
@media (max-width: 767.98px){
grid-template-columns: repeat(1, 1fr);
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

arma

  • Завсегдатай
  • 1753
  • 81 / 3
Re: Сделать картинки по горизонтали
« Ответ #11 : 26.02.2022, 18:21:01 »
Ну и при чём здесь "joomla - общие вопросы"? Человек просто не стремится  и не желает знать CSS - а вы ему просто код напишите
*

62411

  • Захожу иногда
  • 59
  • 0 / 3
Re: Сделать картинки по горизонтали
« Ответ #12 : 26.02.2022, 19:32:00 »
@media (max-width: 767.98px){
grid-template-columns: repeat(1, 1fr);
}

Вставил в template.css но не работает.
Это в CSS файл надо вставлять или в сам материал?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #13 : 26.02.2022, 19:41:01 »
Вставил в template.css но не работает.
Я больше чем уверен что как дал код так и вставили, и даже не хотите включать голову! Конечно же это только часть кода....
Код: css
@media (max-width: 767.98px){
    #obshee {
        grid-template-columns: repeat(1, 1fr)!important;
    }
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Сделать картинки по горизонтали
« Ответ #14 : 27.02.2022, 15:06:43 »
А можно ли сделать так, чтобы остальные 3 штуки стояли снизу? Или может ваш код еще раз повторить но уже поменять название дивов с новыми картинками и текстом?
Вот как вам надо было сделать (не создавать новый div, а добавить в существующий)
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать картинку ссылкой на материал без Вводного изображения?

Автор OZlaim

Ответов: 0
Просмотров: 782
Последний ответ 30.05.2024, 01:28:37
от OZlaim
Как сделать отображение времени создания материала?

Автор Pzhigalov

Ответов: 0
Просмотров: 833
Последний ответ 27.09.2023, 22:45:29
от Pzhigalov
Как сделать боковое выпадающее меню гамбургер

Автор Mnojitell

Ответов: 0
Просмотров: 663
Последний ответ 15.12.2022, 14:24:20
от Mnojitell
Как сделать переход на 2-3-4 и т.д страницы? Страница длинная?

Автор Марина-6

Ответов: 3
Просмотров: 855
Последний ответ 21.08.2022, 17:43:25
от sivers
Как сделать переопределение?

Автор Ykitero

Ответов: 0
Просмотров: 458
Последний ответ 11.07.2022, 14:11:08
от Ykitero