Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

sherza

  • Захожу иногда
  • 226
  • 90 / 1
Несколько лет назад я написала плагин hkm_profile, позволяющий генерировать поля расширенного профиля cms Joomla. Сейчас хочу поделиться с вами его развитием - zygo_profile. Точнее, уже тремя расширениями.



ОПИСАНИЕ И СКРИНШОТЫ:
Более подробное описание со ссылками на скачивание расширений находится здесь:
http://www.psytronica.ru/2015/10/joomla-3x-zygoprofile-hkmprofile.html

В двух словах: пользователь получает возможность заполнить в своем профиле при регистрации/правке профиля дополнительные поля расширенного профиля (например: загрузить аватар, добавить личную подпись, выбрать день рождения, свой пол из выпадающего списка.... Состав полей не является определенным, пользователь создает его сам, как конструктор). Данные поля настраиваются в админ-панели плагина Zygo Profile - определяется их состав, тип, названия, required и прочие свойства. Поля могут быть разных типов: текстовые, списки, радиокнопки, аватар, дата.  Затем при помощи плагина  Zygo Profile Content можно вывести информацию из этих полей в материалы Joomla (отобразить аватар блоггера, вывести его подпись).

Ссылки на GitHub:  

Zygo Profile - Плагин расширенного профиля пользователя:
GitHub: https://github.com/psytronica/zygoprofile

Ветка "Development" : https://github.com/psytronica/zygoprofile/tree/development

Zygo Profile Content - Плагин вывода полей расширенного профиля в материалы Joomla
GitHub: https://github.com/psytronica/plg_content_zygo_profile

Zygo Online - Модуль "кто на сайте" с выводом аватаров пользователей из расширенного профиля
GitHub: https://github.com/psytronica/mod_zygo_online

Zygo Jcomments - Плагин для отображения аватара из Zygo Profile в jComments (автор docenttmp):
GitHub: https://github.com/docenttmp/plg_jcomments_zygo_avatar
docenttmp также сделал возможность отображения online/offline в комментариях. Инструкции в настройках плагина

Zygo Kunena Avatars - Плагин для отображения аватара из Zygo Profile в форуме Kunena
GitHub: https://github.com/psytronica/Zygo-Kunena-Avatars

ДЕМО-ПЕСОЧНИЦА:

http://psytronica.getenjoyment.net/
Весь дополнительный функционал - аватары, любимые цвета, выводится посредством плагина Zygo Profile Content
Место вывода полей, количество, и т.д. настраивается в админ-панели плагина

Плагин Zygo Profile  содержит API, позволяющий выводит информацию расширенных полей пользователей (напр. аватары, дни рождения и т.д.) в произвольном месте и использоваться для интеграций с другими расширениями

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

Буду рада вашим вопросам, советам по улучшению приложения и конструктивной критике
*

T34

  • Новичок
  • 9
  • 1 / 0
Чудесная Зья, я опять к Вам с вопросом.

Оказалось, рано я возрадовался, так как вытащить из "user_profiles" нужно несколько значений и вставить их в соответствующие поля, а переменная $fid в замечательном вашем решении только одна. Причем тащить нужно и вставленные расширенным профилем значения, и встроенным в Joomla! тоже. И всё это одновременно, поскольку потом в скрытых полях <input> всё в соответствующем оформлении должно разом по submit улететь в цель. С вылетом проблем нет, а вот собрать пассажиров — это прям вот ад для меня оказался.

Как их всех лучше собрать, не надоумите ли?  ^-^

 
« Последнее редактирование: 21.07.2016, 14:53:26 от T34 »
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
А в чем сложность?

Для нескольких полей zygo_profile вот пример:

Код: php
<?php

$fid1 = 1;
$field1 = ZygoHelper::getFieldData($fid1, $user->id);

$fid2 = 3;
$field2 = ZygoHelper::getFieldData($fid2, $user->id);

echo $fid1;
echo $fid2;
?>

Для нескольких стандартных полей такой пример:

Код: php
<?php

$uinfo = ZygoHelper::getUserInfo($user->id);
 
$fieldname1 = "city";
 
$field_value1 = json_decode($uinfo["profile.".$fieldname1]);

$fieldname2 = "postal";
 
$field_value2 = json_decode($uinfo["profile.".$fieldname2]);
 
echo $field_value1;

echo $field_value2;

?>
*

T34

  • Новичок
  • 9
  • 1 / 0
Конечно, если такая мастерица — то не сложно.
Спасибо огромное Вам! Выручили!

*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
Небольшое обновление - теперь можно назначать дополнительные поля одной или нескольким группам пользователей. Так, например, поле, которые Вы назначили пользователям группы manager, будет отображаться в профиле у пользователей, приналежащих этой группе. Так же у них появится возможность редактировать содержимое данного поля.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

fandjuml

  • Захожу иногда
  • 59
  • 6 / 3
Небольшое обновление - теперь можно назначать дополнительные поля одной или нескольким группам пользователей. Так, например, поле, которые Вы назначили пользователям группы manager, будет отображаться в профиле у пользователей, приналежащих этой группе. Так же у них появится возможность редактировать содержимое данного поля.
Рад что Вы вернулись с новым функционалом! Мне такое как раз нужно - именно поля по группам пользователей.
Меня полностью устраивает zygo_profile, но всё таки задам вопрос:
Есть ли возможность переделать плагин так, чтобы в профиле сначала стоял zigo, а после Joomla. Хотя бы на страничке редактирования профиля. Всё таки приятней когда редактирование начинается с аватара и расширенных полей, а Joomla поля опустить в подвал.
Да если честно - и в самом профиле аватарку поднять бы на самый верх. Меня это не напрягает, но если есть возможность я был бы не против.

*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
fandjuml, я подумала над Вашим предложением, еще раз проанализировала код и поняла, что все-таки в плагине я это пока реализовывать не буду, чтобы избежать несовместимостей с более поздними версиями Joomla, поскольку там получится много завязок на конкретные детали. Но для вас я сделала такую возможность. Файл https://dl.dropboxusercontent.com/u/13153899/psytronica/adds/zygo_profile.php необходимо необходимо положить в plugins/user/zygo_profile/. К тому же, это не решает абсолютно вашу задачу, поскольку в случае просмотра и редактирования профиля в шаблоне (components/com_users/views/profile/tmpl/default.php) прописано четко, что вначале загружаются параметры core, затем params, а уж только потом - custom

вот эти строки:
Код: php
<?php echo $this->loadTemplate('core');?>

<?php echo $this->loadTemplate('params');?>

<?php echo $this->loadTemplate('custom');?>


Гораздо проще это решить иным путем - через файлы шаблона. В директории вашего шаблона сайта создаете папку HTML (если еще не создана), в ней - com_users (если еще нет) и туда кладете файлы шаблона (копируете в поддиректории соответствующие tmpl из компонента com_users). В частности, после копирования components/com_users/views/profile/tmpl/default.php в templates/ваш_шаблон/com_users/profile/default.php, меняете в нем порядок вывода:

Код: php
<?php echo $this->loadTemplate('custom');?>

<?php echo $this->loadTemplate('core');?>

<?php echo $this->loadTemplate('params');?>

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

fandjuml

  • Захожу иногда
  • 59
  • 6 / 3
Спасибо! Буду изучать и пробовать, но наверное уже завтра, чтоб вдруг что можно было откатить (просто у меня хостер в три ночи копии делает, а акебу я на этот сайт не ставил).

По вашему сайту (троника) есть замечание. Может помните, когда то коммент делал, а он на следующий день слетел, но Вы здесь в теме дали разъяснение на тот вопрос. Вот вчера на страничке с интеграцией с JComments оставил коммент, а сегодня он слетел. Писал как аноним. Похоже так много комментов у вас улетает.
И ещё. Разместите пожалуйста на странице компонента или где в менюшке ссылку на интеграцию с JComments, а то эту запись можно найти только через поиск и это только потому что я знал, что запись есть.

В остальном всё отлично:
Joomla! - 3.6.4
Версия PHP - 7.0.11
Интеграция со SLogin и JComments.
Как часики!
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
fandjuml, насчёт сайта, спасибо Вам за замечание :) видимо таки-придётся на платный хостинг переходить. Сейчас я на blogspot. Кстати, на почту я Ваш комментарий получила, странно, что у них опять этот глюканат вышел. Поставила disqus, надеюсь, теперь ничего пропадать не будет

Ссылку размещу, тоже хорошо, что напомнили. Я думала сделать на этот счёт вообще отдельный плагин и выложить его среди других

*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
По просьбам пользователей я добавила в плагин 3 новых поля:
 checkbox - одинарный чекбокс
 checkboxes - несколько чекбоксов, по сути поле соответствует полю списка множественного выбора
 html - произвольный html-код

Поля checkbox и checkboxes генерируются на основе стандартных полей Joomla


*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Здравствуйте!
sherza, огромное спасибо за плагин!

Столкнулся вот с такой "проблемой".
Исходные данные:
- J 2.5 (к сожалению)
- ID администратора 1
- ID пользователя 5

Захожу под пользователем, на странице ред.профиля открываю ссылку "изменить аватар" в новом окне, меняю ID в конце ссылки с 5 на 1 и обновляю страницу. Загружаю и сохраняю аватар, в ответ "Error error|ACCESS DENIED success http://сайт/media/plg_zygo_profile/1/tmp_large1110919224.jpg,400,250". В указанной папке действительно появляется файл tmp_large1110919224.jpg. Настораживает меня этот момент, есть основания для беспокойства?
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
rixter, спасибо, что обратили внимание. Я поправила этот момент.
Напортить чужому пользователю ваш пользователь при таком раскладе не мог, но вот намусорить в папке - это верно.
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Заменил zygo_profile.php и avatar_showform.php новыми (вроде бы только они исправлены если верить гитхабу).
Удалил аватар у пользователя, сохранил профиль, захожу в изменить аватар, вместо кнопки загрузить - ACCESS DENIED. Под админом все норм.
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
sherza, спасибо! Работает как надо.
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Подскажите пожалуйста как хранятся данные полей?
Не могу найти в БД нужную таблицу.
Мой сайт про корабли
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Не помешала бы наверное еще возможность объединять поля в группы (филдсеты) и именовать эти группы(задавать legend).

Например:
Домашний адрес (список полей)
Рабочий адрес (список полей)
Социальные сети (список полей)

Хотя может быть это возможно реализовать вручную. Я не знаю как.
Подскажите, если знаете.
Мой сайт про корабли
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
Mick_20, я вам подскажу, как сделать вручную, но для этого мне нужно знать, существует ли у вас файлы
templates/_ваш_шаблон_сайта_/html/com_users/registration/default.php и 
templates/_ваш_шаблон_сайта_/html/com_users/profile/default_custom.php?
Если хотя бы один из данных файлов лежит по указанному пути, приведите его содержимое
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Mick_20, я вам подскажу, как сделать вручную, но для этого мне нужно знать, существует ли у вас файлы
templates/_ваш_шаблон_сайта_/html/com_users/registration/default.php и 
templates/_ваш_шаблон_сайта_/html/com_users/profile/default_custom.php?
Если хотя бы один из данных файлов лежит по указанному пути, приведите его содержимое

Мне бы на странице редактирования в профиле )
Но файл страницы регистрации в шаблоне переопределен (.../com_users/registration/default.php)
Спойлер
[свернуть]
Мой сайт про корабли
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
Mick_20, в вашем случае проще всего сделать так (Необходимо заполнить массив $zygo_data по-своему):

Код: php
<?php
// uniqueID2, uniqueID6 - поля расширенного профиля, ПЕРЕД которыми
// должен начинаться новый fieldset
// Значения id (2, 6) можно увидеть в админ-панели плагина при редактировании
// дополнительных полей

// Заголовок 1, Заголовок 2 - текст legend в fieldset

$zygo_data = array(
"uniqueID2" => "Заголовок 1",
"uniqueID6" => "Заголовок 2"
);
$zygo_count = 0;

?>
<div class="registration<?php echo $this->pageclass_sfx?>">
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h1><?php echo $this->escape($this->params->get('page_heading')); ?></h1>
</div>
<?php endif; ?>
 
<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users&task=registration.register'); ?>" method="post" class="form-validate form-horizontal well" enctype="multipart/form-data">
<?php // Iterate through the form fieldsets and display each one. ?>
<?php foreach ($this->form->getFieldsets() as $fieldset): ?>
<?php $fields = $this->form->getFieldset($fieldset->name);?>
<?php if (count($fields)):?>

<?php if ($fieldset->name != "zygo_profile"): ?>

<fieldset>
<?php // If the fieldset has a label set, display it as the legend. ?>
<?php if (isset($fieldset->label)): ?>
<legend><?php echo JText::_($fieldset->label);?></legend>
<?php endif;?>

<?php endif; ?>


<?php // Iterate through the fields in the set and display them. ?>
<?php foreach ($fields as $field) : ?>

<?php if ($fieldset->name == "zygo_profile" &&
isset($zygo_data[$field->getAttribute("name")])):

if ($zygo_count > 0) echo "</fieldset>";

$zygo_count++; ?>

<fieldset>
<legend>
<?php echo $zygo_data[$field->getAttribute("name")]; ?>
</legend>

<?php endif; ?>

<?php // If the field is hidden, just display the input. ?>
<?php if ($field->hidden): ?>
<?php echo $field->input;?>
<?php else:?>
<div class="control-group">
<div class="control-label">
<?php echo $field->label; ?>
<?php if (!$field->required && $field->type != 'Spacer') : ?>
<span class="optional"><?php echo JText::_('COM_USERS_OPTIONAL');?></span>
<?php endif; ?>
</div>
<div class="controls">
<?php echo $field->input;?>
</div>
</div>
<?php endif;?>
<?php endforeach;?>
</fieldset>
<?php endif;?>
<?php endforeach;?>
<div class="control-group">
<div class="controls">
<!--button type="submit" class="btn btn-primary validate"><?php //echo JText::_('JREGISTER');?></button-->
<span class="btn btn-primary">Регистрация</span>
<a class="btn" href="<?php echo JRoute::_('');?>" title="<?php echo JText::_('JCANCEL');?>"><?php echo JText::_('JCANCEL');?></a>
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="registration.register" />
</div>
</div>
<?php echo JHtml::_('form.token');?>
</form>
</div>
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Mick_20, в вашем случае проще всего сделать так (Необходимо заполнить массив $zygo_data по-своему):

Спасибо вам большое, Зья, если не ошибся ))

А можно еще вопрос. Реально ли сделать такую валидацию:

Чтобы пользователь надо было обязательно заполнить либо все поля в домашнем адресе, либо все поля в адресе работы?

Т.е. мне не надо чтобы все эти поля были обязательны, но если уж начал заполнять, то все поля в адресе укажи.
Мой сайт про корабли
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
Mick_20, я бы вам подсказала, какой javascript добавить, но для этого нужно знать, как минимум, какой у вас механизм валидации.
Что у вас обрабатывает событие click по элементу
Код: html4strict
<span class="btn btn-primary">Регистрация</span>
?
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Mick_20, я бы вам подсказала, какой javascript добавить, но для этого нужно знать, как минимум, какой у вас механизм валидации.
Что у вас обрабатывает событие click по элементу
Код: html4strict
<span class="btn btn-primary">Регистрация</span>
?

Я ничего не добавлял еще.
Шаблон стандартный protostar.
« Последнее редактирование: 12.12.2016, 18:49:46 от Mick_20 »
Мой сайт про корабли
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
Mick_20, фрагмент кода темплейта .../com_users/registration/default.php, который вы выше предоставили,
Код: php
<!--button type="submit" class="btn btn-primary validate"><?php //echo JText::_('JREGISTER');?></button-->
<span class="btn btn-primary">Регистрация</span>
указывает на то, что с шаблоном после установки поработали :)
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Mick_20, фрагмент кода темплейта .../com_users/registration/default.php, который вы выше предоставили,
Код: php
<!--button type="submit" class="btn btn-primary validate"><?php //echo JText::_('JREGISTER');?></button-->
<span class="btn btn-primary">Регистрация</span>
указывает на то, что с шаблоном после установки поработали :)
А, да это я просто кнопку так отключил, чтобы не могли регистрироваться на время разработки.
Но валидацию конечно на стандартную кнопку надо  ^-^
Мой сайт про корабли
*

sherza

  • Захожу иногда
  • 226
  • 90 / 1
В вашем случае (стандартный шаблон, заполнение группы  текстовых полей) можно было бы сделать следующее:
(я временно вернула стандартный submit)

Код: php
<?php

// uniqueID2, uniqueID6 - поля расширенного профиля, ПЕРЕД которыми
// должен начинаться новый fieldset
// Значения id (2, 6) можно увидеть в админ-панели плагина при редактировании
// дополнительных полей

// Заголовок 1, Заголовок 2 - текст legend в fieldset

$zygo_data = array(
"uniqueID2" => "Заголовок 1",
"uniqueID6" => "Заголовок 2"
);
$zygo_count = 0;


$document = JFactory::getDocument();
$document->addScriptDeclaration(
' jQuery(document).ready(function($) {

$(".zygo_fieldset .controls>input").click(function(){
   zygo_validate(this);
}).keypress(function(){
   zygo_validate(this);
}).keyup(function(){
   zygo_validate(this);
});

function zygo_validate(self){

var zygo_fset = $(self).closest(".zygo_fieldset");
var zygo_inputs = zygo_fset.find(".controls>input[type=\'text\']");
var zygo_labels = zygo_fset.find(".control-label label");


if(self.value){
zygo_inputs.addClass("required").attr(
{"aria-required": true, "required" : "" });

zygo_labels.addClass("required");

if(!zygo_labels.find(".star")[0]){
zygo_labels.append("<span class=\'star\'> *</span>");
}

zygo_fset.find(".control-label .optional").hide();

}else{
var other_inputs_clean = true;

zygo_inputs.each(function(index, el){
if(el.value){
other_inputs_clean = false;
return;
}
});

if(other_inputs_clean){

zygo_inputs.removeClass("required").removeClass("invalid").removeAttr( "aria-required" )
.removeAttr( "required" );

zygo_labels.removeClass("required").removeClass("invalid");
zygo_labels.find(".star").remove();

zygo_fset.find(".control-label .optional").show();


}
}
}

});

'
);

?>
<div class="registration<?php echo $this->pageclass_sfx?>">
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h1><?php echo $this->escape($this->params->get('page_heading')); ?></h1>
</div>
<?php endif; ?>
 
<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users&task=registration.register'); ?>" method="post" class="form-validate form-horizontal well" enctype="multipart/form-data">
<?php // Iterate through the form fieldsets and display each one. ?>
<?php foreach ($this->form->getFieldsets() as $fieldset): ?>
<?php $fields = $this->form->getFieldset($fieldset->name);?>
<?php if (count($fields)):?>

<?php if ($fieldset->name != "zygo_profile"): ?>

<fieldset>
<?php // If the fieldset has a label set, display it as the legend. ?>
<?php if (isset($fieldset->label)): ?>
<legend><?php echo JText::_($fieldset->label);?></legend>
<?php endif;?>

<?php endif; ?>


<?php // Iterate through the fields in the set and display them. ?>
<?php foreach ($fields as $field) : ?>

<?php if ($fieldset->name == "zygo_profile" &&
isset($zygo_data[$field->getAttribute("name")])):

if ($zygo_count > 0) echo "</fieldset>";

$zygo_count++; ?>

<fieldset class="zygo_fieldset">
<legend>
<?php echo $zygo_data[$field->getAttribute("name")]; ?>
</legend>

<?php endif; ?>

<?php // If the field is hidden, just display the input. ?>
<?php if ($field->hidden): ?>
<?php echo $field->input;?>
<?php else:?>
<div class="control-group">
<div class="control-label">
<?php echo $field->label; ?>
<?php if (!$field->required && $field->type != 'Spacer') : ?>
<span class="optional"><?php echo JText::_('COM_USERS_OPTIONAL');?></span>
<?php endif; ?>
</div>
<div class="controls">
<?php echo $field->input;?>
</div>
</div>
<?php endif;?>
<?php endforeach;?>
</fieldset>
<?php endif;?>
<?php endforeach;?>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary validate"><?php echo JText::_('JREGISTER');?></button>
<!--span class="btn btn-primary">Регистрация</span-->
<a class="btn" href="<?php echo JRoute::_('');?>" title="<?php echo JText::_('JCANCEL');?>"><?php echo JText::_('JCANCEL');?></a>
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="registration.register" />
</div>
</div>
<?php echo JHtml::_('form.token');?>
</form>
</div>
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
В вашем случае (стандартный шаблон, заполнение группы  текстовых полей) можно было бы сделать следующее:
(я временно вернула стандартный submit)

Спойлер
[свернуть]

Добавил данный код и не сработало.
Код: php
$document = JFactory::getDocument();
$document->addScriptDeclaration(
...
);

А поля изначально должны быть обязательны для заполнения? Или без разницы?
Мой сайт про корабли
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JL Like - Социальные кнопки для Joomla (новый взгляд)

Автор zikkuratvk

Ответов: 638
Просмотров: 109889
Последний ответ 24.12.2025, 15:58:50
от wishlight
А-ля корзина для материалов Joomla

Автор Efanych

Ответов: 152
Просмотров: 21744
Последний ответ 23.12.2025, 18:15:39
от zikkuratvk
WT Amo CRM library - простая PHP библиотека для Joomla 4+ (для разработчиков)

Автор sergeytolkachyov

Ответов: 3
Просмотров: 3926
Последний ответ 29.11.2025, 10:56:40
от sergeytolkachyov
SW JProjects - Менеджер цифровых проектов для Joomla! CMS™

Автор Septdir

Ответов: 61
Просмотров: 18666
Последний ответ 19.11.2025, 09:49:12
от sergeytolkachyov
SM FAQ - компонент Вопрос-Ответ для Joomla 2.5+

Автор SmokerMan

Ответов: 682
Просмотров: 157304
Последний ответ 11.10.2025, 12:43:44
от wishlight