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

Оксана6767

  • Новичок
  • 9
  • 0 / 0
Как для изображения в статье сделать эффект при наведении на него ? Выбираем ховер эффект http://gudh.github.io/ihover/dist/
там есть код, его как я понимаю прописываем в файл template.css. А когда пишем статью, то прописываем класс в исходном коде редактора прямо в статье. Правильно ли я рассуждаю ? Ничего нигде подключать не надо ? Я чайник говорю сразу, поэтому все по полочкам разложите пожалуйста( перелопатил все, нашел 2 темы hover в редакторе Joomla 3 и CSS Hover для картинки, но там мне не все понятно. Заранее спасибо за потраченное время и возможно нервы  ^-^
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Ховер эффект для изображения
« Ответ #1 : 05.03.2018, 14:05:52 »
Там не просто класс прописывать, там же целый кусок кода нужен
Код
    <!-- normal -->
    <div class="ih-item circle effect1"><a href="#">
        <div class="spinner"></div>
        <div class="img"><img src="images/assets/2.jpg" alt="img"></div>
        <div class="info">
          <div class="info-back">
            <h3>Heading here</h3>
            <p>Description goes here</p>
          </div>
        </div></a></div>
    <!-- end normal -->

Стили можете просто подключить отдельным файликом, не дополняя в вашем template.css

Цитировать
iHover is pretty easy to use. All you need to do is to write some HTML markup. You just need to include the CSS file and you are ready to go.

<link href="styles/ihover.css" rel="stylesheet">


Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Оксана6767

  • Новичок
  • 9
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #2 : 06.03.2018, 19:06:32 »
beliyadm, так..теперь по порядку.

Это мне надо взять код нужного ховер эффекта, затем создать например файл ihover.css, в котором будет код эффекта.

Загружаю его в папку CSS с моим шаблоном.

Подключаю эффект <link rel-"stylesheet"href-"/template/название шаблона/css/ihover.css"> в index.php внутри тега head

При написании статьи в исходном коде прописываю полностью код эффекта.

Так? Поправьте пожалуйста
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Ховер эффект для изображения
« Ответ #3 : 06.03.2018, 19:08:59 »
beliyadm, так..теперь по порядку.
Это мне надо взять код нужного ховер эффекта, затем создать например файл ihover.css, в котором будет код эффекта.
Загружаю его в папку CSS с моим шаблоном.
Подключаю эффект <link rel-"stylesheet"href-"/template/название шаблона/css/ihover.css"> в index.php внутри тега head
При написании статьи в исходном коде прописываю полностью код эффекта.
Так? Поправьте пожалуйста
По сути правильно
для начала вам нужно взять весь файл ihover.css и подключить его в своем шаблоне
Дальше в материале полностью прописать указанный код (хтмл блока) с всеми классами и вложенностями блоков.

Если получится - из стилей вырезать не нужные эффекты и кастомизировать HTML.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Оксана6767

  • Новичок
  • 9
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #4 : 06.03.2018, 20:09:02 »
beliyadm, спасибо за помощь) очень доступно для новичка объяснили.буду пробовать, если возникнут проблемы при выполнении, напишу сюда снова
*

Оксана6767

  • Новичок
  • 9
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #5 : 06.03.2018, 20:34:01 »
Вот и первый глупый вопрос:
Выбираем эффект Demo-Scuare hover effect 6. Там код имеет вид:
Код
<!-- From top and bottom-->
<div class="row">
  <div class="col-sm-6">
 
    <!-- normal -->
    <div class="ih-item square effect6 from_top_and_bottom"><a href="#">
        <div class="img"><img src="images/assets/rect/1.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end normal -->
 
  </div>
  <div class="col-sm-6">
 
    <!-- colored -->
    <div class="ih-item square colored effect6 from_top_and_bottom"><a href="#">
        <div class="img"><img src="images/assets/rect/3.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end colored -->
 
  </div>
</div>
<!-- end From top and bottom-->
 
 
<!-- From left and right-->
<div class="row">
  <div class="col-sm-6">
 
    <!-- normal -->
    <div class="ih-item square effect6 from_left_and_right"><a href="#">
        <div class="img"><img src="images/assets/rect/2.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end normal -->
 
  </div>
  <div class="col-sm-6">
 
    <!-- colored -->
    <div class="ih-item square colored effect6 from_left_and_right"><a href="#">
        <div class="img"><img src="images/assets/rect/4.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end colored -->
 
  </div>
</div>
<!-- end From left and right-->
 
 
<!-- Top to bottom-->
<div class="row">
  <div class="col-sm-6">
 
    <!-- normal -->
    <div class="ih-item square effect6 top_to_bottom"><a href="#">
        <div class="img"><img src="images/assets/rect/5.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end normal -->
 
  </div>
  <div class="col-sm-6">
 
    <!-- colored -->
    <div class="ih-item square colored effect6 top_to_bottom"><a href="#">
        <div class="img"><img src="images/assets/rect/7.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end colored -->
 
  </div>
</div>
<!-- end Top to bottom-->
 
 
<!-- Bottom to top-->
<div class="row">
  <div class="col-sm-6">
 
    <!-- normal -->
    <div class="ih-item square effect6 bottom_to_top"><a href="#">
        <div class="img"><img src="images/assets/rect/6.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end normal -->
 
  </div>
  <div class="col-sm-6">
 
    <!-- colored -->
    <div class="ih-item square colored effect6 bottom_to_top"><a href="#">
        <div class="img"><img src="images/assets/rect/8.jpg" alt="img"></div>
        <div class="info">
          <h3>Heading here</h3>
          <p>Description goes here</p>
        </div></a></div>
    <!-- end colored -->
 
  </div>
</div>
<!-- end Bottom to top-->
Картинка 1.jpg это картинка из демо ? Мне свою вставлять получается надо, и так что каждый раз когда буду менять изображения на главной страницы сайта ?
Можно ли как то сделать, чтобы независимо от названия изображения к нему применять эффект не исправляя каждый раз код в CSS файле ?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Ховер эффект для изображения
« Ответ #6 : 06.03.2018, 20:55:17 »
Картинка 1.jpg это картинка из демо ? Мне свою вставлять получается надо, и так что каждый раз когда буду менять изображения на главной страницы сайта ?
Конечно

Можно ли как то сделать, чтобы независимо от названия изображения к нему применять эффект не исправляя каждый раз код в CSS файле ?
Не понял вопроса, если вам нужен один эффект для разных изображений - главное копировать HTML структуру оформления (стили подцепятся) и изменять сам файл картинки (прописывать новый путь)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Оксана6767

  • Новичок
  • 9
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #7 : 06.03.2018, 21:52:25 »
Не понял вопроса, если вам нужен один эффект для разных изображений - главное копировать HTML структуру оформления (стили подцепятся) и изменять сам файл картинки (прописывать новый путь)
На главной сайта хочу использовать METRO GRID Joomla MODULE https://www.gavick.com/metro-grid-joomla-module Там будут отображаться различные изображения из статей и будут меняться с появлением новых статей. И получается что придется прописывать новый путь каждый раз для нового изображения.. Хотя если даже есть способ чтобы эффект применялся ко всем изображениям на сайте, то мне сейчас сложно в этом разбираться. Поэтому буду пока вручную прописывать путь на каждую картинку для главной)
*

Оксана6767

  • Новичок
  • 9
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #8 : 07.03.2018, 12:39:18 »
А что делать если в моем шаблоне, в файле index.php нет тегов head ?  :'( нигде найти не могу, и соответственно не могу подключить стиль к шаблону.
Можно ли как то вынести <head> в отдельный файл, и там уже подключить нужный стиль ?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Ховер эффект для изображения
« Ответ #9 : 07.03.2018, 13:36:31 »
А что делать если в моем шаблоне, в файле index.php нет тегов head ?  :'( нигде найти не могу, и соответственно не могу подключить стиль к шаблону.
Где то же в шаблоне должны подключаться скрипты, может какой layout есть (клубные и прочие шаблоны любят мастерить нестандартные решения).
В крайнем случае добавьте код стилей, которые сказали, как в самом начале делали в файл стилей шаблона в конце

Цитировать
И получается что придется прописывать новый путь каждый раз для нового изображения.. Хотя если даже есть способ чтобы эффект применялся ко всем изображениям на сайте, то мне сейчас сложно в этом разбираться
Автоматом не получится, у данного эффекта сложная структура HTML кода, в который обернуто изображение. Просто добавить класс не выйдет.

Есть разные ховер эффекты, которые не требуют такой сложной разметки, к примеру вот https://speckyboy.com/custom-hover-click-effects-css-javascript/ (но это больше тексту подходит).
Так что увы - только ручками править разметку для каждого изображения (если вставляются в материале а не генерируются автоматом)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

bayersoff

  • Захожу иногда
  • 88
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #10 : 16.04.2019, 12:01:50 »
А как сделать ховер эффект для изображение вступительного текста материала, также для изображения полного текста?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Ховер эффект для изображения
« Ответ #11 : 16.04.2019, 12:05:51 »
А как сделать ховер эффект для изображение вступительного текста материала, также для изображения полного текста?
Править шаблон материала (и\или блога материалов) и добавлять стили, ссылки для примера я выше привел
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

bayersoff

  • Захожу иногда
  • 88
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #12 : 16.04.2019, 12:24:46 »
Править шаблон материала (и\или блога материалов) и добавлять стили, ссылки для примера я выше привел

Я не особо сильно разбираюсь в кодах. Можно мне объяснить, пожалуйста. CSS я знаю куда вставлять, а вот HTML код эффекта куда нужно вставлять?
*

bayersoff

  • Захожу иногда
  • 88
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #13 : 16.04.2019, 16:46:45 »
Добавил в template.css класс .image-hover
Код
.image-hover {
 overflow:hidden;
 width: 380px;
 height:250px;
 }
 .image-hover img {
 transition: all 1s ease-out;
 }
 
.image-hover img:hover{
 transform: scale(1.2);
 }


теперь мне нужно подключить это в файле blog_item.php, но как это сделать не понимаю. Где-то внутри нижеприведенного кода, но как это сделать я не знаю. Может кто уже проделал такое?
Код
<div class="entry-header<?php echo $tpl_params->get('show_post_format')? ' has-post-format': ''; ?>">

<?php echo JLayoutHelper::render('joomla.content.post_formats.icons',  $post_format); ?>

<?php if ($useDefList && ($info == 0 || $info == 2)) : ?>
<?php echo JLayoutHelper::render('joomla.content.info_block.block', array('item' => $this->item, 'params' => $params, 'position' => 'above')); ?>
<?php endif; ?>
<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?>
<?php echo JLayoutHelper::render('joomla.content.blog_style_default_item_title', $this->item); ?>

</div>
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Ховер эффект для изображения
« Ответ #14 : 16.04.2019, 21:15:43 »
Попробуйте обернуть блок вывода картинки дивом с классом из css, чтоб было:
Спойлер
[свернуть]
« Последнее редактирование: 16.04.2019, 21:21:50 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

bayersoff

  • Захожу иногда
  • 88
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #15 : 17.04.2019, 07:33:38 »
Попробуйте обернуть блок вывода картинки дивом с классом из CSS, чтоб было:
Спойлер
[свернуть]

Благодарю ) все отлично сработало
*

bayersoff

  • Захожу иногда
  • 88
  • 0 / 0
Re: Ховер эффект для изображения
« Ответ #16 : 17.04.2019, 09:30:15 »
Сделал как вы тут мне советовали и все получилось, за что я весьма благодарен Вам.Но возник другой вопрос, как сделать, чтобы при наведении на изображение появлялся надпись ALT изображения.
Код
.image-hover {
 overflow:hidden;
 width: auto;
 height:auto;
 }
 .image-hover img {
 transition: all 0.2s ease-out;
 }
 
.image-hover img:hover{
 transform: scale(0.9);
 border: 1px solid #c5c5c5;
 transform: scale(1.2) rotate(5deg);
 opacity:0.5;
  }
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Позиция фонового изображения

Автор Forgiving

Ответов: 2
Просмотров: 1076
Последний ответ 30.03.2020, 10:58:49
от beliyadm
Рамка вокруг изображения (настройка)

Автор KingSnake

Ответов: 10
Просмотров: 2112
Последний ответ 12.08.2019, 14:48:41
от KingSnake
Сделать эффект CSS у кнопок как у ссылки

Автор wishlight

Ответов: 1
Просмотров: 1297
Последний ответ 15.07.2018, 23:36:56
от AdWeb
Вопрос обтекания центрированого текста относительно изображения полного текста материала

Автор Barakyda

Ответов: 7
Просмотров: 1592
Последний ответ 26.09.2016, 15:48:51
от Barakyda
css: убрать border для изображения

Автор slepoy

Ответов: 1
Просмотров: 1565
Последний ответ 07.11.2015, 22:07:53
от vipiusss