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

ostrova

  • Захожу иногда
  • 74
  • 0 / 0
Доброй ночи!

Знатоки, прошу, подскажите, как убрать слайд-шоу из шапки сайта? шаблон themza 17_6

В index.php есть следующее, касающееся слайдов

Спойлер
[свернуть]
                             
и собственно файлы nivo-slider.css и jquery.nivo.slider.js

Из всего этого боюсь удалить лишнее...помогите, что делать, чтобы избавиться от слайд-шоу, а на его месте оставить либо пустоту, либо просто картинку.


*

kreker92

  • Захожу иногда
  • 393
  • 18 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #1 : 09.08.2013, 10:42:25 »
Ну скорее всего ваш слайдер, это модуль.
Нужно в админке в менеджере модулей поменять его статус на неопубликовано.
А на счет того какие файлы удалять лучше скачать этот слайдер откуда вы его качали и соответствующие файлы в index.php удалить.
Все вопросы и предложения на почту.
*

ostrova

  • Захожу иногда
  • 74
  • 0 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #2 : 09.08.2013, 16:14:04 »
Ну скорее всего ваш слайдер, это модуль.
Нужно в админке в менеджере модулей поменять его статус на неопубликовано.
А на счет того какие файлы удалять лучше скачать этот слайдер откуда вы его качали и соответствующие файлы в index.php удалить.

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


*

ostrova

  • Захожу иногда
  • 74
  • 0 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #3 : 09.08.2013, 16:38:35 »
Еще, вот такой ужас стоит до <head> в index.php
Спойлер
[свернуть]


вижу, что речь идет о слайдах, но как это понять....что из этого удалить?
*

Владимир999

  • Захожу иногда
  • 106
  • 1 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #4 : 09.08.2013, 20:28:38 »
что из этого удалить?
Прикепи полный файл архивом.
*

ostrova

  • Захожу иногда
  • 74
  • 0 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #5 : 13.08.2013, 17:14:12 »
Прикепи полный файл архивом.


вот он - индекс
*

ostrova

  • Захожу иногда
  • 74
  • 0 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #6 : 15.08.2013, 21:27:59 »
вот он - индекс

Люди, помогите, пожалуйста убрать слайды из шапки! Вопрос все еще актуален...
Спасибо!

*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Убрать слайд шоу из шапки сайта
« Ответ #7 : 15.08.2013, 21:37:06 »
Код
<div id="slider" class="nivoSlider">
               <? if(!is_array($slides)){ ?><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/slide1.jpg" title="" alt="slide 1" />
                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/slide2.jpg" title="" alt="slide 2" />
                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/slide3.jpg" title="" alt="slide 3" /><? }else{foreach($slides as $k=>$slide){ ?><img src="<?php echo $slide ?>" title="<?=$slideCaptions[$k]?>" alt="" /><? }} ?></div>
*

ostrova

  • Захожу иногда
  • 74
  • 0 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #8 : 15.08.2013, 22:16:57 »
Код
<div id="slider" class="nivoSlider">
               <? if(!is_array($slides)){ ?><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/slide1.jpg" title="" alt="slide 1" />
                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/slide2.jpg" title="" alt="slide 2" />
                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/slide3.jpg" title="" alt="slide 3" /><? }else{foreach($slides as $k=>$slide){ ?><img src="<?php echo $slide ?>" title="<?=$slideCaptions[$k]?>" alt="" /><? }} ?></div>


спасибо за ответ! :)
нужно вырезать это место - верно? а как быть с другими частями, где slide фигурирует? оставлять их?

*

kreker92

  • Захожу иногда
  • 393
  • 18 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #9 : 24.08.2013, 04:02:03 »
нужно вырезать это место - верно? а как быть с другими частями, где slide фигурирует? оставлять их?
Что за остальные части где какой-то slide фигурирует?

Помойму вот эту фигулинку можно удалить.
А так можно же удалить и проверить ок все или не ок.

Код
if($this->params->get('slide_1')) $slides[1] = $this->params->get('slide_1');if($this->params->get('slide_2')) $slides[2] = $this->params->get('slide_2');
if($this->params->get('slide_3')) $slides[3] = $this->params->get('slide_3');if($this->params->get('slide_4')) $slides[4] = $this->params->get('slide_4');if($this->params->get('slide_5')) $slides[5] = $this->params->get('slide_5');
if($this->params->get('slideCaption_1')) $slideCaptions[1] = $this->params->get('slideCaption_1');if($this->params->get('slideCaption_2')) $slideCaptions[2] = $this->params->get('slideCaption_2');
if($this->params->get('slideCaption_3')) $slideCaptions[3] = $this->params->get('slideCaption_3');if($this->params->get('slideCaption_4')) $slideCaptions[4] = $this->params->get('slideCaption_4');if($this->params->get('slideCaption_5')) $slideCaptions[5] = $this->params->get('slideCaption_5');
$sliderVars['effect']=($this->params->get('sliderVars_effect'))?$this->params->get('sliderVars_effect'):'random';
$sliderVars['animSpeed']=($this->params->get('sliderVars_animSpeed'))?$this->params->get('sliderVars_animSpeed'):'500';
$sliderVars['pauseTime']=($this->params->get('sliderVars_pauseTime'))?$this->params->get('sliderVars_pauseTime'):'3000';
$sliderVars['directionNav']=($this->params->get('sliderVars_directionNav')==='true' or $this->params->get('sliderVars_directionNav')==='false')?$this->params->get('sliderVars_directionNav'):'true';
$sliderVars['directionNavHide']=($this->params->get('sliderVars_directionNavHide')==='true' or $this->params->get('sliderVars_directionNavHide')==='false')?$this->params->get('sliderVars_directionNavHide'):'true';
$sliderVars['controlNav']=($this->params->get('sliderVars_controlNav')==='true' or $this->params->get('sliderVars_controlNav')==='false')?$this->params->get('sliderVars_controlNav'):'true';
$sliderVars['keyboardNav']=($this->params->get('sliderVars_keyboardNav')==='true' or $this->params->get('sliderVars_keyboardNav')==='false')?$this->params->get('sliderVars_keyboardNav'):'true';
$sliderVars['pauseOnHover']=($this->params->get('sliderVars_pauseOnHover')==='true' or $this->params->get('sliderVars_pauseOnHover')==='false')?$this->params->get('sliderVars_pauseOnHover'):'true';
Все вопросы и предложения на почту.
*

vlados

  • Новичок
  • 1
  • 0 / 0
Re: Убрать слайд шоу из шапки сайта
« Ответ #10 : 03.02.2015, 11:39:04 »
Тоже никак не могу удалить слайды в шапке. Всё что выше написано делал - ничего не помогает...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать из индекса Яндекса дубли?

Автор gonzyk263

Ответов: 3
Просмотров: 3811
Последний ответ 01.07.2024, 23:26:54
от Cleaning74
Оптимизация сайта

Автор joni

Ответов: 0
Просмотров: 2077
Последний ответ 22.07.2023, 17:10:11
от joni
Скрипт при закрытии сайта

Автор Mick_20

Ответов: 8
Просмотров: 2536
Последний ответ 14.06.2023, 18:40:20
от effrit
Кнопка “Добавить в корзину” VirtueMart не работает на главной странице сайта

Автор max_max

Ответов: 0
Просмотров: 7255
Последний ответ 20.04.2021, 12:40:37
от max_max
[FAQ] Как убрать <meta name="generator" content="Joomla! 2.5 - Open Source Content Management" />

Автор neket

Ответов: 56
Просмотров: 316111
Последний ответ 05.11.2020, 20:00:15
от Grigoriy82