Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в 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 для атрибута addfieldprefixnamespace 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 #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

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

Lexo0o

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Сегодня весь день мучаюсь-необходимо на сайте создать форму на двух языках-заказ тура(тоесть там клиент может указать свои пожелания-куда,когда и т.д.)-фома отсылается на email и работники подбирают им тур....так вот,сначала пытался использовать компонент Chronoforms, но что-то он не хочет выводить форма в фронтэнд...
его версия была самая последняя 3.1 РЦ2 а юмла 1.5.9
так вот,сделал я значит в дримвивере форму примерно,но не знаю как в конце к кнопке прикрутить функцию отправки себе на эмайл, а также в какой модуль вставить этот код можно?
вот форма:
Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="" method="post" name="form1" id="form1">
  <strong>  Форма создания тура:  </strong>
</form>
<form id="form2" name="form2" method="post" action="">
  Куда?
</form>

<label>
<input type="text" name="where" id="where" />
(страна,город)
</label>
<form id="form3" name="form3" method="post" action="">
  Когда?
</form>
<p>
  <input type="text" name="when" id="when" />
  (желаемая дата вылета)
</p>
<form id="form4" name="form4" method="post" action="">
  <label></label>
  <p>На сколько?  </p>
</form>
<p>
  <label></label>
  <input type="text" name="time" id="time" />
  (дней)
</p>
<form id="form5" name="form5" method="post" action="">
  <label></label>
  Кол-во взрослых?
</form>
<p>
  <input type="text" name="adult" id="adult" />
</p>
<form id="form6" name="form6" method="post" action="">
  <label></label>
  <p>Кол-во детей
   
  ?</p>
</form>
<p><input type="text" name="kids" id="kids" />
</p>
<form id="form7" name="form7" method="post" action="">
  Дополнительно:
</form>
<form id="form8" name="form8" method="post" action="">
  <p>
    <input type="checkbox" name="1" id="1" />
  Дайвинг  </p>
</form>
<form id="form9" name="form9" method="post" action="">
  <input type="checkbox" name="2" id="2" />
  2
</form>
<form id="form10" name="form10" method="post" action="">
  <input type="checkbox" name="3" id="3" />
  3
</form>
<form id="form11" name="form11" method="post" action="">
  Ваши пожелания:
</form>
<form id="form12" name="form12" method="post" action="">
  <textarea name="4" id="4" cols="45" rows="5"></textarea>
</form>
<form id="form13" name="form13" method="post" action="">
  Контактная информация:
</form>
<form id="form14" name="form14" method="post" action="">
  Имя, Фамилия
  <input type="text" name="name" id="name" />
</form>
<form id="form15" name="form15" method="post" action="">
  Тел.номер     
   
    <input type="text" name="tel" id="tel" />
</form>
<form id="form16" name="form16" method="post" action="">
  Эл.почта
  <input type="text" name="email" id="email" />
</form>
<form id="form17" name="form17" method="post" action="">
  <input type="submit" name="button" id="button" value="Готово" />
</form>
<p>&nbsp;</p>
</body>
</html>
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
1. разберитесь с кол-вом форм! 17 <form> на странице!?!?! бедный клиент будет выбирать какую нажать кнопку отправить из 17 ?
<form action="modules/mod_email/send.php" method="post" name="form1">
Имя: <input type="text" name="in_name" value="..." /><br />
Отчество: <input type="text" name="in_shname" value="..." /><br />
Фамилия: <input type="text" name="in_sname" value="..." /><br />...
...
<input type="submit" value="Заслать" />
</form>

примерно так.

далее уже в самом send.php проверяете переменные из массива $_POST на правильность и собстно функция mail в php вам в руки...
/* Have a nice day! */
*

Lexo0o

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Почему 17 кнопок?
а нельзя ли подправить мою форму?
я просто не очень разбираюсь, что там надо где вписать эту майл функцию
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Код
<body>
<form action="send.php" method="post" name="form1" id="form1">
  <strong>  Форма создания тура:  </strong>

  Куда?

<label>
<input type="text" name="where" id="where" />
(страна,город)
</label>

  Когда?

<p>
  <input type="text" name="when" id="when" />
  (желаемая дата вылета)
</p>

  <label></label>
  <p>На сколько?  </p>

<p>
  <label></label>
  <input type="text" name="time" id="time" />
  (дней)
</p>

  <label></label>
  Кол-во взрослых?

<p>
  <input type="text" name="adult" id="adult" />
</p>

  <label></label>
  <p>Кол-во детей
   
  ?</p>

<p><input type="text" name="kids" id="kids" />
</p>

  Дополнительно:

  <p>
    <input type="checkbox" name="1" id="1" />
  Дайвинг  </p>

  <input type="checkbox" name="2" id="2" />
  2


  <input type="checkbox" name="3" id="3" />
  3

  Ваши пожелания:

  <textarea name="4" id="4" cols="45" rows="5"></textarea>

  Контактная информация:

  Имя, Фамилия
  <input type="text" name="name" id="name" />

  Тел.номер     
   
    <input type="text" name="tel" id="tel" />

  Эл.почта
  <input type="text" name="email" id="email" />

  <input type="submit" name="button" id="button" value="Готово" />
</form>
<p>&nbsp;</p>
</body>

и в send.php

Код
$to = $_POST['email'];
$subject = 'User vaccations';

$message = "bla bla bla";

$headers  = "From: My site<noreply@my_site.com>\r\n";
$headers .= "Reply-To: info@my_site.com\r\n";
$headers .= "Return-Path: info@my_site.com\r\n";
$headers .= "X-Mailer: PHP\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($to, $subject, $message, $headers);

это все крайне примерно чтобы вы поняли в какую сторону копать и читать доки
в message вы помимо значений полученных из $_POST должны набросать структуру чтобы юзверь не получил просто сплошной текст.
к тому же вам нужно ещё проверять с помощью empty. к примеру if (empty($_POST['bla bla']))

PS! Подробнее про отправку http://ua.php.net/manual/ru/function.mail.php
/* Have a nice day! */
*

Lexo0o

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
ещё пару вытекающих вопросов:
1.КУда надо поместить файл send.php? в корневую папку сайта?
2.Я хочу форму вывести на главную страницу как контэнт(чтоб пользователь нажав кнопку в меню смог её заполнить на главной,в контэнт вставлю её с помощью плагина jumi....но как сделать чтобы нужная форма(тоесть на нужном языке показывалась?) - у меня сайт на двух языках:русский и латышский...
*

Lexo0o

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
первый вопрос отпал,всё понял,форма работает....отправляет....но теперь хочу разобраться с языками...что вставить сначала в код формы,чтобы затем нужная форма на нужном языке появлялась
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
первый вопрос отпал,всё понял,форма работает....отправляет....но теперь хочу разобраться с языками...что вставить сначала в код формы,чтобы затем нужная форма на нужном языке появлялась

эммм... можно select сделать и в зависимости от выбранного подгружать разные языковые файлы для этого модуля... подключить то легко но вот дальше ещё не было времени ковырять.
/* Have a nice day! */
*

Lexo0o

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
я тут на форуме коечто нарыл - http://joomlaforum.ru/index.php/topic,50051.0.html
но както не очень корректно работает
*

Fujouw

  • Новичок
  • 6
  • 1 / 0
...
2.Я хочу форму вывести на главную страницу как контэнт(чтоб пользователь нажав кнопку в меню смог её заполнить на главной,в контэнт вставлю её с помощью плагина jumi....

Я вот тоже хочу.. А без дополнительных модулей вывести ворму в контенте можно? Может как для модулей используется {loadposition ...} можно и html файл вывести?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Я вот тоже хочу.. А без дополнительных модулей вывести ворму в контенте можно? Может как для модулей используется {loadposition ...} можно и html файл вывести?
написать плагин группы content, который парсит тело страницы на предмет вхождения определенного тега и вставляет форму
Для примера приведу свой плагин, что закрывает текст от гостей по вхождению тегов {gcontent}текст{/gcontent}. Пишите свою регулярку и вставляете форму в любой странице сайта
[spoiler title=code]
Код: php
defined( '_JEXEC' ) or die( 'Прямой доступ запрещен' );
//register events
$mainframe->registerEvent('onPrepareContent', 'guest_content');
// load plugin inner article
function guest_content(&$row, &$params)
{
$regex = "#{gcontent}(.*?){/gcontent}#s";
$plugin =&JPluginHelper::getPlugin('content', 'guest_content');
$row->text = preg_replace_callback( $regex, 'guest_content_replacer', $row->text );
return true;
}
//return html
function guest_content_replacer ( &$matches )
{
$html = '';
$plightbox = $matches[1];
$user =& JFactory::getUser();
if ($user->id) {
$html .= $plightbox;
} else {
// load plugin params info
$plugin =& JPluginHelper::getPlugin('content', 'guest_content');
$pluginParams = new JParameter( $plugin->params );
        $guest_only = $pluginParams->def('guest_text', '');
$html .= '<div class="guest_only">'.$guest_only.'</div>';
}
return $html;
}
[/spoiler]
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Fujouw

  • Новичок
  • 6
  • 1 / 0
написать плагин группы content, который парсит тело страницы на предмет вхождения определенного тега и вставляет форму

Круто, конечно, спасибо.. Но я не силен в php.. А проще способа нет вывести форму, написанную в отдельном html-файле в области контента? Я вроде где-то встречал что-то наподобии {loadposition ...} только для вывода файлов. Вот не помню как это писалось. Может кто знает?
*

Fujouw

  • Новичок
  • 6
  • 1 / 0
Плагин писать не пришлось.. Все решилось проще через wraper. Создал модуль wraper задал ему придуманую позицию.
Потом создал материал в котором написал всего лишь
Код
{loadposition myposition}
где myposition - произвольная позиция заданная в модуле wraper.
А в меню ссылка на этот материал..
и наслаждаюсь теперь  yes! :D ;) ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Меняем стандартную форму регистрации

Автор asked

Ответов: 0
Просмотров: 1970
Последний ответ 17.11.2011, 23:19:06
от asked
Как заставить компонет через Views - tmpl обрабатывать конструкцию jdoc:include type="modules"

Автор Арчик

Ответов: 4
Просмотров: 2183
Последний ответ 06.11.2009, 20:59:29
от Арчик
Хочу добавить пару полей в форму регистрации Joomla 1.5

Автор enshtein

Ответов: 2
Просмотров: 4349
Последний ответ 11.09.2009, 22:05:51
от enshtein