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

neocraft

  • Захожу иногда
  • 159
  • 3 / 0
  • www.neocraft.org
Народ, помогите прикрепить footer к низу страницы. Сразу говорю различные растягивания не подойдут, т.к. у всех разные мониторы и браузеры.

Имеются следующие файлы:

Код
@import url(../warp/css/layout.css);


/* Spacing
----------------------------------------------------------------------------------------------------*/

.module,
#content,

#footer { margin: 5px; }

#header {
margin: 0 5px 5px 5px;
padding: 10px;
}

#logo { margin-right: 20px; }

#toolbar,
#headerbar { margin-bottom: 45px; }

#toolbar + #headerbar { margin-top: -35px;}

#headerbar .module {
margin-top: 0;
margin-bottom: 0;
}

.breadcrumbs { margin-bottom: 20px; }

#footer  { margin: 15px; }
#footer .module { margin: 0;}



/* Layout
----------------------------------------------------------------------------------------------------*/

#header,
#footer { clear: both;
position:relative;
height:70px; width:960px;
margin: 0px auto;
    color: #CCC;
}

#header { background: #1A1A1C; }

#menubar {
position: absolute;
right: 7px;
bottom: 7px;
}

#menu { float: right; }

#top-a + #main:before,
#top-b + #main:before,
#main + #bottom-a:before,
#main + #bottom-b:before {
display: block;
content: "";
height: 20px;
margin: 0 5px;
background: url(../images/layout_separator.png) repeat-x;
}

#content {
padding: 20px;
}


#totop-scroller {
display: block;
position: absolute;
top: 10px;
right: 10px;
z-index: 1;
width: 35px;
height: 35px;
background-position: 0 0;
background-repeat: no-repeat;
text-decoration: none;
}

#totop-scroller:hover { background-position: 0 -50px; }

ссылка с предыдущего файла на этот:

Код
/* Grid and Clearing Tools
----------------------------------------------------------------------------------------------------*/

.clearfix:before,
.clearfix:after,
.grid-block:before,
.grid-block:after,
.deepest:before,
.deepest:after {
content: "";
    display: table;
}
.clearfix:after,
.grid-block:after,
.deepest:after { clear: both; }

.grid-box { float: left; }

/* Grid Units */
.width16 { width: 16.666%; }
.width20 { width: 20%; }
.width25 { width: 25%; }
.width33 { width: 33.333%; }
.width40 { width: 40%; }
.width50 { width: 50%; }
.width60 { width: 60%; }
.width66 { width: 66.666%; }
.width75 { width: 75%; }
.width80 { width: 80%; }
.width100 { width: 100%; }

/* Create new Block Formatting Contexts */
.bfc-o { overflow: hidden; }
.bfc-f {
width: 100%;
float: left;
}

/* Align Boxes */
.float-left { float: left; }
.float-right { float: right; }

/* Grid Gutter */
.grid-gutter.grid-block { margin: 15px -15px 0 -15px; }
.grid-gutter.grid-block:first-child { margin-top: 0; }
.grid-gutter > .grid-box > * { margin: 0 15px; }


/* Layout Defaults
----------------------------------------------------------------------------------------------------*/

/* Center Page */
.wrapper { margin: auto; }

/* Header */
#header { position: relative; }

#toolbar .float-left .module,
#toolbar .float-left > time {
margin: 0 15px 0 0;
float: left;
}

#toolbar .float-right .module {
margin: 0 0 0 15px;
float: right;
}

#headerbar .module {
max-width: 300px;
margin-right: 0;
float: right;
}

#logo, #logo > img,
#menu { float: left; }
#search { float: right; }

#banner {
position: absolute;
top: 0;
right: -200px;
}

/* Footer */
#footer {
position: relative;
text-align: center;
}


И в стандартном модуле footer прописано в файле default.php

Код
<div class="footer1<?php echo $moduleclass_sfx ?>"><?php echo $lineone; ?></div>

« Последнее редактирование: 30.11.2011, 02:28:47 от neocraft »
*

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
Я не стал переделывать какой либо шаблон, а пошёл на http://csstemplater.com/ и там получил такой код:
Код: css
#footer {
width: 1000px;
margin: -100px auto 0;/* прижимает*/
height: 100px;
background: #BFF08E;
position: relative;
}

должно помочь
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Я не стал переделывать какой либо шаблон, а пошёл на http://csstemplater.com/ и там получил такой код:
Код: css
#footer {
width: 1000px;
margin: -100px auto 0;/* прижимает*/
height: 100px;
background: #BFF08E;
position: relative;
}

должно помочь

К этому коду важное дополнение - сработает, если футер вынесен за общий контейнер, и у этого контейнера высота должна быть 100%
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

neocraft

  • Захожу иногда
  • 159
  • 3 / 0
  • www.neocraft.org
К этому коду важное дополнение - сработает, если футер вынесен за общий контейнер, и у этого контейнера высота должна быть 100%


а как это сделать?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Код: html4strict
<div id="vsyahuynya">
    Tro-lo-lo
    <div id="zaglushka"></div>
</div>
<div id="footer">Футер</div>
Код: css
#vsyahuynya {margin-bottom:-200px; min-height:100%;}
#footer, #zaglushka {height:200px;}
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Точно. Жень, спасибо, забыла про заглушку)
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Пожалуйста, Лен. Можно без заглушки (лишнего элемента) путём смещения контентной области вверх и назначения внутреннего отступа. Но опытным путём обнаружено, что та же Опера иногда подглючивает. То удвоит отступ, то просто тупо лишний отступ пририсует. А так - железобетонная конструкция.
И не забываем для старых ослов добавить #vsyahuynya {height:100%;}
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Названия дивов радуют)))
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

SkyAn

  • Захожу иногда
  • 56
  • 0 / 0
А вот у меня почеме-то не получается растянуть основной контент, или точней привязать футер к низу. Использовал пару разных вариантов, не получается. шаблон jp_model_agency
*

yuranltd

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
а подскажите куда этот код вписать?
Код
#footer {
width: 1000px;
margin: -100px auto 0;/* прижимает*/
height: 100px;
background: #BFF08E;
position: relative;
*

yuranltd

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
у меня в layout.css вот что в футере прописано подскажите что мне изменить чтобы его загнать на низ ?
Код
/* #################### footer ############################ */
#footer-sub
{

    padding:0px
}
#footer
{
        padding:15px 10px 15px 20px;
        text-align:right;
        margin: 0 auto;
        display:block;
        max-width:1020px;
        overflow:hidden
   
}

#footer div
{
        float:left;
        font-size:0.8em;
        line-height:1.7em;
}

#footer-outer
{
        padding:0;
}

.box
{
        text-align:left
}

.box ul
{
        list-style-type:none
}

#bottom .newsfeed-item
{
        padding:0;
        margin-bottom:10px
}

.box .moduletable_menu,
.box .moduletable
{
        margin:10px
}

.box3
{
        padding-left:10px
}

.box h3
{
        font-size:1.3em
}

#bottom ul.latestnews
{
        padding-left:0
}

#footer p
{
        font-size:0.8em;
        margin:0
}

p.syndicate
{
        float:left;
        display:block;
        text-align:left;
}
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Стилей мало, разметка должна соответствующая быть.
*

yuranltd

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
пожалуйста помогите ламеру  !
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Тут два варианта:
а) …вы перечитываете внимательно тему, там было подробное решение. И делаете сами.
б) …выкладываете ссылку на вашу поделку, и я сам всё сделаю. ^-^
*

yuranltd

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Тут два варианта:
а) …вы перечитываете внимательно тему, там было подробное решение. И делаете сами.
б) …выкладываете ссылку на вашу поделку, и я сам всё сделаю. ^-^
  вариант б
вот ссылка letonayuge.ru
*

yuranltd

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
конечно хотелось бы самому тоже вкурить и понять где что, но прошу помощи
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На локал сервере страницы сайта без шаблона, CSS и картинок

Автор Fati

Ответов: 0
Просмотров: 62
Последний ответ 15.06.2025, 11:57:45
от Fati
Как загрузить шаблон, и сделать его только для одной страницы?

Автор Ирина Поехали

Ответов: 5
Просмотров: 2024
Последний ответ 05.06.2017, 21:15:42
от effrit
Вывести описание о магазина вниз страницы

Автор dimak

Ответов: 1
Просмотров: 1319
Последний ответ 26.04.2017, 00:22:43
от darkghost
Не загружается контент из шаблона

Автор evsam

Ответов: 2
Просмотров: 1265
Последний ответ 10.11.2016, 11:18:43
от effrit
При добавлении к адресу главной страницы UTM метки отображается другая страница

Автор Xenoks

Ответов: 4
Просмотров: 1877
Последний ответ 28.10.2016, 16:37:22
от Xenoks