Новости Joomla

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

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

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

Sergeyy

  • Захожу иногда
  • 154
  • 3 / 0
А какая Fabrik? Если 3, то есть вариант  такой:
Можно добавить в таблицу элемент типа 'calc' и в нем соединить другие элементы.

По-моему нужно смотреть в сторону шаблона div при этом не писать элементы в default_row  php echo $this->_row->data->элемент;
(есть подводные камни), а разместить их как угодно при помощи CSS
*

spak

  • Новичок
  • 8
  • 0 / 0
А если стоит fabrik 2, то решить эту проблему нельзя?
*

spak

  • Новичок
  • 8
  • 0 / 0
Привет, Sergeyy! А можно поподробней, как при помощи CSS разместить несколько элементов в 1 колонке таблицы. Заранее благодарю.
*

Sergeyy

  • Захожу иногда
  • 154
  • 3 / 0
Без знаний CSS трудновато будет!
Используйте:
    clear: both
    float: left
    margin-left: 300px
    float: right
и
    position: absolute;
где необходимо!

у вас таблица выглядит так:
Код
<li class="table_name___element_name1
<li class="table_name___element_name2
<li class="table_name___element_name3
<li class="table_name___element_name4

CSS будет:
Код
.table_name___element_name1 {
    box-shadow: 0 0 3px #999999;
    float: left;
    margin-left: 20px;
    padding: 3px 10px;
    width: 100px;
}

.table_name___element_name2 {
    box-shadow: 0 0 3px #999999;
    float: left;
    margin-left: 20px;
    padding: 3px 10px;
    width: 150px;
}

.table_name___element_name3 {
    box-shadow: 0 0 3px #999999;
    clear: both;
    float: left;
    margin-left: 160px;
    padding: 3px 10px;
    width: 150px;
}

.table_name___element_name4 {
    border: 1px dotted #000000;
    margin-left: 350px;
    position: absolute;
    width: 300px;
}

Вот на моём тестовом сайте пример pro-joom.ru
Поставьте полагин Фаербуг и смотрите код!
*

spak

  • Новичок
  • 8
  • 0 / 0
Уважаемый Sergeyy, спасибо за ответ Не могли бы Вы связаться со мной по скайпу - gerasim778. Заранее благодарю.
*

Sergeyy

  • Захожу иногда
  • 154
  • 3 / 0
Напишите мне на маил-агент:
sergo.agent@mail.ru
*

pirks

  • Захожу иногда
  • 136
  • 8 / 0
По-моему нужно смотреть в сторону шаблона div при этом не писать элементы в default_row  php echo $this->_row->data->элемент;
(есть подводные камни), а разместить их как угодно при помощи CSS
Полностью согласен. Но если человек мог бы править  default_row.php или *.css, то вопрос как соединить два поля не задавался бы ...  )
« Последнее редактирование: 11.01.2013, 23:38:26 от pirks »
*

Sergeyy

  • Захожу иногда
  • 154
  • 3 / 0
Полностью согласен. Но если человек мог бы править  default_row.php или *.css, то вопрос как соединить два поля не задавался бы ...  )
Да это понятно!
Но ведь мой вариант самый простой, да и реализация его описана в моём коде выше.
Если spakу это реально нужно...
*

spak

  • Новичок
  • 8
  • 0 / 0
Мне это реально очень важно. Только я не могу понять где править CSS. Я использую шаблон таблицы default. Как я понял за вывод данных в цикле из базы отвечает <?php
         foreach ($group as $this->_row) {
            echo $this->loadTemplate( 'row' );
          }
          ?>

default_rov выглядит так:

<tr id="<?php echo $this->_row->id;?>" class="<?php echo $this->_row->class;?>">
   <?php foreach ($this->headings as $heading=>$label) {   ?>
      <td><?php echo @$this->_row->data->$heading;?></td>
   <?php }?>
</tr>


Таблица CSS выглядит так:

.fabrikForm {
   margin-top: 15px;
}

table.fabrikTable tr.fabrik_calculations td {
   border: 0 !important;
}

.firstPage,.previousPage,.aPage,.nextPage,.lastPage {
   display: inline;
   padding: 3px;
}

table.filtertable {
   width: 50%;
}

.fabrikHover {
   background-color: #ffffff;
}

/** highlight the last row that was clicked */
.fabrikRowClick {
   background-color: #ffffff;
}

/** highlight the loaded row - package only */
.activeRow {
   background-color: #FFFFCC;
}

.emptyDataMessage {
   background-color: #EFE7B8;
   border-color: #EFD859;
   border-width: 2px 0;
   border-style: solid;
   padding: 5px;
   margin: 10px 0;
   font-size: 1em;
   color: #CC0000;
   font-weight: bold;
}

.tablespacer {
   height: 20px;
}

.fabrikButtons {
   text-align: right;
   padding-top: 10px;
}

ul.fabrikRepeatData {
   padding: 0;
   margin: 0;
   list-style: none;
}

ul.fabrikRepeatData li {
   background-image: none;
   padding: 0;
   margin: 0;
}

Так где мне править стиль?




В  FireBug моя таблица выглядит так


<form id="tableform_1" class="fabrikForm" name="fabrikTable" method="post" action="/table/index.php?option=com_fabrik&view=table&tableid=1&calculations=0&resetfilters=0&Itemid=6">
<br style="clear:right">
<div class="tablespacer"></div>
<div class="emptyDataMessage" style="display:none"></div>
<div class="fabrikDataContainer" style="">
<table id="table_1" class="fabrikTable">
<thead>
<tr class="fabrik___heading">
<tr class="fabrik___heading x">
<th class="base_db___fabrik_internal_id_heading ">name_element</th>
<th class="base_db___name_element_heading ">
<a class="fabrikorder" href="#">name_element/a>
</th>
<th class="base_db___name_element_heading ">
<a class="fabrikorder-asc" href="#">name_element/a>
</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading ">
<a class="fabrikorder" href="#">name_element</a>
</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading ">
<a class="fabrikorder" href="#">name_element</a>
</th>
<th class="base_db_db___name_element_heading ">
<a class="fabrikorder" href="#">name_element/a>
</th>
<th class="base_db_db___name_element_heading ">
<a class="base_db" href="#">name_element</a>
</th>
<th class="base_db_db___name_element_heading ">
<a class="fabrikorder" href="#">name_element</a>
</th>
<th class="base_db_db___name_element_heading "> name_element</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading "> name_element</th>
<th class="base_db_db___name_element_heading "> name_element</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading ">name_elevtnt</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___name_element_heading ">name_element</th>
<th class="base_db_db___text_heading ">name_element</th>
</tr>
</thead>
<tbody>
<tr id="table_1_row_1" class="fabrik_row oddRow0 fabrikRowClick">
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1">1</a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1">name_element</a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td></td>
<td></td>
<td>
<ul class="fabrikRepeatData">
<li></li>
</ul>
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>
<ul class="fabrikRepeatData">
<li></li>
</ul>
</td>
<td>
<a class="fabrik___rowlink" href="/table/index.php?option=com_fabrik&c=form&view=details&Itemid=6&fabrik=1&rowid=1&fabrik_cursor=0&fabrik_total=4&tableid=1"></a>
</td>
<td></td>
</tr>
</tbody>
</table>


Подскажите, пожалуйста и извините, что туплю.
« Последнее редактирование: 16.01.2013, 23:27:52 от spak »
*

Sergeyy

  • Захожу иногда
  • 154
  • 3 / 0
Используйте шаблон DIV !

Пропишите для каждого элемента класс(это в Fabrik: Элементы - Настройки отображения в таблице - CSS - Cell class),
хотя он и сам приписывается каждому элементу...

Пропишите эти классы в template_css.php шаблона DIV (пример в моём посте выше)

Не забудьте шаблон переименовать, а то при обновлении все труды пропадут!
*

spak

  • Новичок
  • 8
  • 0 / 0
Спасибо, Sergeyy. Попробую так как Вы советуете. Если получиться, напишу.
*

kalinka76

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
  • I`m free
Сваял под свои нужды плагин, который делает ссылки используя данные текущей строки. применил для вызова корректировки товаров VirtueMart. Наверное можно и на два столбца сделать, используя collspan для ячейки. Напишите педробнее что конкретно надо.

Кстати для работы с sql есть плагин авторов fabriksql. Задаеш sql запрос и он выполняется для каждой строки таблицы

В свойствах элемента в настоящее время появился атрибут "Произвольная ссылка". Если ее задать и в ней прописать {элемент} в нужном месте, то получится ссылка в соответствующем столбце (тоже что делает мой плагин, но штатными средствами)
Здравствуйте, несколько лет назад использовала fabrik 2.0, и помню, что, действительно, был такой плагин fabriksql. Сейчас поставила fabrik 3.3.2, плагина такого теперь нет. Подскажите, пожалуйста, каким образом теперь можно вывести значение поля из другой таблицы?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

С чего начать знакомство с Fabrik? (Несколько уроков посвященных компоненту)

Автор xpank

Ответов: 7
Просмотров: 6095
Последний ответ 22.06.2022, 16:07:31
от RomanA
Fabrik кол-во строк в таблице

Автор Vdmit

Ответов: 2
Просмотров: 3555
Последний ответ 24.05.2021, 10:55:53
от Vdmit
Fabrik list plugin - Table Edit

Автор yunoshev

Ответов: 0
Просмотров: 3661
Последний ответ 09.01.2021, 11:22:10
от yunoshev
Может быть Fabrik уже не конструктор форм, а CCK ?

Автор pirks

Ответов: 0
Просмотров: 4586
Последний ответ 19.02.2017, 09:43:48
от pirks
Fabrik для чайников как сделать Hello, world?

Автор AngelikaKS

Ответов: 1
Просмотров: 6342
Последний ответ 15.06.2016, 16:40:43
от Gorilla