LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
18.05.2013, 23:32:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Валидация форм средствами Joomla  (Прочитано 17766 раз)
0 Пользователей и 1 Гость смотрят эту тему.
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

Пол: Мужской
Сообщений: 1026


Kiss my shiny metal ass!


« : 26.05.2009, 15:40:18 »

Кто ни будь разбирался как сделать в компоненте валидацию добавляемых данных, а точнее повесить обработчик события на кнопки "сохранить" и "применить"? Я смотрел код, который использует Joomla при добавлении контента, но там какой-то аццкий метод и не работает при использовании своего компонента. Пробовал на jquery вешать событие типа $("#adminForm").submit, но не срабатывает, т.к. Joomla сабмитит форму тоже через javascript и событие не возникает.

В общем кто как это разруливал?
Записан
beliyadm
Профи
********

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7867


Севастополь==Россия


« Ответ #1 : 26.05.2009, 15:43:09 »

Код
JHTML::_('behavior.formvalidation');
и добавить в элемент формы класс required
Подключается стандартная фишка mootools
Записан
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

Пол: Мужской
Сообщений: 1026


Kiss my shiny metal ass!


« Ответ #2 : 26.05.2009, 15:58:48 »

 Cheesy drink Но не работает. Всё равно сабмитится без проверки. Ведутся раскопки.
« Последнее редактирование: 26.05.2009, 16:03:44 от VETERINAR » Записан
vmir
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 33


« Ответ #3 : 31.05.2009, 17:39:16 »

Обработчик вещается тривиально просто. Вот пример:

Код:
<script language="javascript" type="text/javascript">
function submitbutton(pressbutton) {
if (pressbutton == 'copy') {
if (document.adminForm.boxchecked.value == 0) {
alert("Вы забыли указать объект. Выберите объект из списка для копирования.");
}
else {
submitform('copy');
}
} else {
submitform(pressbutton);
}
}
</script>

В данном примере отлавливается событие нажатия кнопки copy. Если посетитель не выбрал ни одного элемента (document.adminForm.boxchecked.value == 0), то ему от ворот поворот. Ну а фактически можно проверять все что угодно в рамках javascript.
Записан
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

Пол: Мужской
Сообщений: 1026


Kiss my shiny metal ass!


« Ответ #4 : 17.06.2009, 14:10:33 »

Цитировать
Обработчик вещается тривиально просто. Вот пример

Это конечно здорово и работает в линейке 1.0, но топик лежит в разделе 1.5 и этот метод в 1.5 не работает, к сожалению.
Записан
beliyadm
Профи
********

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7867


Севастополь==Россия


« Ответ #5 : 17.06.2009, 14:32:34 »

Давай по порядку
Подключили стандартный файлик validate.js
Код
JHTML::_('behavior.formvalidation');
В форме пишем (именно класс form-validate скажет скрипту что надо отработать данную форму)
Код
<form action="" name="MyFormName" class="form-validate" method="post" >
Ну и собственно поля формы
Код
<input name="pbform[fio]"  class="inputbox required" value="" />
Класс required говорит, что это поле просто обязательное, если добавить еще numeric - будет проверка на значение и так далее. Смотри media\system\js\validate.js на предмет наличия стандартных возможностей валидации и по желанию дописывай туда свои правила

И совсем забыл, для кнопки класс тоже надо указать
Код:
class="button validate"
« Последнее редактирование: 16.07.2009, 14:56:47 от beliyadm » Записан
x00xer
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 51


« Ответ #6 : 19.06.2009, 00:10:00 »

А есть ли у Джумлы готовые класс(ы) для валидации на стороне сервера ??
Записан
beliyadm
Профи
********

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7867


Севастополь==Россия


« Ответ #7 : 19.06.2009, 00:16:13 »

Если посмотреть тот же компонент контактов, то в контроллере можно найти
Код
		// Input validation
if  (!$this->_validateInputs( $contact, $email, $subject, $body ) ) {
JError::raiseWarning( 0, $this->getError() );
return false;
}
Оттуда и плясать, сам как то не задумывался, обычно свои обработчики использовал
Записан
vmir
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 33


« Ответ #8 : 22.06.2009, 16:33:10 »

Это конечно здорово и работает в линейке 1.0, но топик лежит в разделе 1.5 и этот метод в 1.5 не работает, к сожалению.

Со стороны backend'а все работает, мануалы это подтверждают (http://docs.joomla.org/How_to_create_a_custom_button), уже не раз использовал этот прием в своем компоненте. Ну а по поводу frontend'а, можно сделать как пишут в мануалах http://docs.joomla.org/How_to_use_the_JToolBar_class_in_the_frontend. Про валидацию еще нашел вот это http://docs.joomla.org/Form_validation
Записан
LOBsTerr
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 25

Вопрос?


« Ответ #9 : 09.10.2009, 13:32:54 »

 свалидировать select пытался написать свой обработчик, но почему то он не хочет работать. Также пытался на онлоад как доках написано. Но селект игнорируется. посмотрел файл vakidate.js там проверяется тип input, submit, button. Попытался там добавить селект, опять же не работает.  разобраться. Хочу чтобы значение выпадающих списков проверялось на больше нуля.
Код:
this.setHandler('validate-select',
function (value) {
return (value > 0);
}
);

this.setHandler('password',
function (value) {
regex=/^\S[\S ]{2,98}\S$/;
return regex.test(value);
}
);

Заранее всем спасибо кто откликнется
Записан
LOBsTerr
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 25

Вопрос?


« Ответ #10 : 19.10.2009, 08:21:35 »

Что неужели никто не сталкивался с подобными задачами, валидации выпадающих списков (селект). Или все делали дополнительную валидацию ?
Записан
beliyadm
Профи
********

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7867


Севастополь==Россия


« Ответ #11 : 19.10.2009, 16:56:11 »

http://www.chronoengine.com/forums/viewtopic.php?f=2&t=15812 - так как валидация в движке на motools то все должно работать
Записан
LOBsTerr
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 25

Вопрос?


« Ответ #12 : 20.10.2009, 00:01:18 »

Да находил, эту тему по ссылке. Только не смог разобраться, попробую еще раз разобраться, и задам уже более конкретные вопросы, либо напишу инструкцию.
Записан
Kler
Гость
« Ответ #13 : 26.10.2009, 19:56:07 »

Быть может данная статья поможет?

http://studiokler.ru/index.php/articles/1143-article - Валидация форм Joomla

Записан
LOBsTerr
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 25

Вопрос?


« Ответ #14 : 27.10.2009, 15:24:00 »

Спасибо всем кто откликнулся.

2 Kler - Это просто перевод статьи из официальной документации. Но все равно спасибо.

И так вот решение. Есть два способа добавить свою функцию валидации.
1) пишем пользовательскую функцию для единичного случая. Я возьму свой пример и так у меня есть выпадающий спсисок:
Код:
<select class="validate-select">
            <option value="0">Выберите из списка</option>
            <option value="1">1</option>
            <option value="2">2</option>
</select>
Прописываем у него наш класс validate-select.
Подключаем библиотеку валидации :
Код:
<?php JHTML::_('behavior.formvalidation'); ?>
Я хотел чтобы функция проверяла, что не стоит значение по умолчанию, проверяем значение на больше 0. Пишем следующую функцию:
Код:
<script type="text/javascript">
Window.onDomReady(
function() {
    document.formvalidator.setHandler('select', function(value) {
        return value > 0;
})
}
);
</script>

Вот и все как оказалось все просто.

2) Но каждый раз писать эту функцию согласитесь не удобно, добавим нашу функцию в библиотеку validate.js
Открываем этот файл и после
Код:
this.setHandler('email',
function (value) {
regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
return regex.test(value);
}
);

Добавляем наш метод:

Код:
this.setHandler('select',
function (value) {
return value > 0;
}
);

Теперь прописав у любого селекта класс validate-select можно проверять на значение по умолчанию.

PS поменяйте тело функции и название префикса на нужное вам. Прошу не ругаться за столь разжеванное объяснение сделано специально для новичков, или для тех кто совсем не в курсе. Как всегда все оказалось просто, только нужна внимательность и аккуратность.
« Последнее редактирование: 29.10.2009, 21:02:33 от LOBsTerr » Записан
shprota
Разработчик расширений для Joomla 1.5
*

Репутация: +52/-1
Offline Offline

Пол: Мужской
Сообщений: 807


Тружусь, не покладая рук


« Ответ #15 : 29.10.2009, 09:53:46 »

Это конечно здорово и работает в линейке 1.0, но топик лежит в разделе 1.5 и этот метод в 1.5 не работает, к сожалению.

В 1.5 этот метод прекрасно работает, если что.
Записан
LOBsTerr
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 25

Вопрос?


« Ответ #16 : 29.11.2009, 00:56:18 »

Вот еще одна полезная модификация.
Я столкнулся с такой проблемой, что форма была у меня очень длинная (опрос в три экрана).
Так вот валидация формы проходила нормально, но у меня помечались поля, которые были в самом начале, т.е. пользователь их не мог видеть. И для пользователя складывалось такое ощущение, что кнопка сабмита просто не работает. Тогда я решил как то оповещать пользователя, что он сделал что-то не так. Откываем файл media/system/js/validate.js

Находим такой вот код строка 138 (может отличаться):
Код:
// Run custom form validators if present
$A(this.custom).each(function(validator){
if (validator.exec()!= true) {
valid = false;
}
});

после него добавляем

Код:
if (!valid) {
                    alert('Вы не заполнили все необходимые поля!');
                }

PS поменяйте сообщение на свое. и теперь можно проверять
Записан
viroff
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 43


потому что не все йогурты одинаково полезны...


« Ответ #17 : 07.03.2010, 23:14:12 »

Давай по порядку
Подключили стандартный файлик validate.js
Код
JHTML::_('behavior.formvalidation');
В форме пишем (именно класс form-validate скажет скрипту что надо отработать данную форму)
Код
<form action="" name="MyFormName" class="form-validate" method="post" >
Ну и собственно поля формы
Код
<input name="pbform[fio]"  class="inputbox required" value="" />
Класс required говорит, что это поле просто обязательное, если добавить еще numeric - будет проверка на значение и так далее. Смотри media\system\js\validate.js на предмет наличия стандартных возможностей валидации и по желанию дописывай туда свои правила

И совсем забыл, для кнопки класс тоже надо указать
Код:
class="button validate"


beliyadm - спасибо большое! Я вот как полчаса ищу про валидаторы форм, а тут ваше объяснение - здорово - кратко, доходчиво и понятно! Спасибо.
Записан
viroff
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 43


потому что не все йогурты одинаково полезны...


« Ответ #18 : 07.03.2010, 23:37:47 »

Спасибо всем кто откликнулся.

2 Kler - Это просто перевод статьи из официальной документации. Но все равно спасибо.

И так вот решение. Есть два способа добавить свою функцию валидации.
1) пишем пользовательскую функцию для единичного случая. Я возьму свой пример и так у меня есть выпадающий спсисок:
Код:
<select class="validate-select">
            <option value="0">Выберите из списка</option>
            <option value="1">1</option>
            <option value="2">2</option>
</select>
Прописываем у него наш класс validate-select.
Подключаем библиотеку валидации :
Код:
<?php JHTML::_('behavior.formvalidation'); ?>
Я хотел чтобы функция проверяла, что не стоит значение по умолчанию, проверяем значение на больше 0. Пишем следующую функцию:
Код:
<script type="text/javascript">
Window.onDomReady(
function() {
    document.formvalidator.setHandler('select', function(value) {
        return value > 0;
})
}
);
</script>

Вот и все как оказалось все просто.

2) Но каждый раз писать эту функцию согласитесь не удобно, добавим нашу функцию в библиотеку validate.js
Открываем этот файл и после
Код:
this.setHandler('email',
function (value) {
regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
return regex.test(value);
}
);

Добавляем наш метод:

Код:
this.setHandler('select',
function (value) {
return value > 0;
}
);

Теперь прописав у любого селекта класс validate-select можно проверять на значение по умолчанию.

PS поменяйте тело функции и название префикса на нужное вам. Прошу не ругаться за столь разжеванное объяснение сделано специально для новичков, или для тех кто совсем не в курсе. Как всегда все оказалось просто, только нужна внимательность и аккуратность.


спасибо тебе! я вообще и не думал, что все ответы в одном месте лежат Azn
Записан
viroff
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 43


потому что не все йогурты одинаково полезны...


« Ответ #19 : 28.03.2010, 03:13:57 »

В 1.5 этот метод прекрасно работает, если что.

А работает только под зарегистрированным пользователем, или же при любом?? Просто сейчас проблема - если пользователь никакой (не админ, не автор...) то submitform не срабатывает... Подскажите путь к решению.

---- решено УЖАСНО, но работает. Ф-ции submitform и submitbutton прописал в коде вида (submitform просто скопировал!)
« Последнее редактирование: 31.03.2010, 19:59:18 от viroff » Записан
C_CLuber
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 7


« Ответ #20 : 18.05.2010, 00:08:40 »

Как по мне то лучше написать собственный валидатор используя приемы из жумлы....
Правда у меня есть особенность.
муттулз и капшен пришлось отключить... конфликтовало с jQuery(не нашел как исправить).
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +134/-1
Offline Offline

Пол: Мужской
Сообщений: 948


« Ответ #21 : 13.08.2010, 15:15:19 »

Кто-то пробовал работать с валидатором в обновленной версии Joomla 1.5.19(20) с включенным плагином "System - Mootools Upgrade"? После загрузки страницы выдает ошибку скрипта: "el.getTag is not a function" (validate.js). Замечены и другие ошибки. Может, кто сталкивался и нашел решение?

Все, нормально. Оказалось, это просто конфликт с jQuery -- забыл добавить noConflict().  laugh
« Последнее редактирование: 13.08.2010, 15:18:49 от yunoshev » Записан
bajun
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #22 : 19.07.2011, 13:56:53 »

Все сделал,как посоветовали уважаемые знатоки,все работает,но одна незадача.
Не подсвечивает красным цветом незаполненное поле.
в чем может быть проблема?
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +134/-1
Offline Offline

Пол: Мужской
Сообщений: 948


« Ответ #23 : 19.07.2011, 15:48:06 »

@bajun
Проинспектировать стили, задать красный цвет рамок, если не указано в шаблоне сайта.
Записан
bajun
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #24 : 16.08.2011, 11:39:26 »

Да,все классно,но есть еще одна трабла.Возникла необходимость сделать так,чтобы одно из полей не проверялось на валидацию в зависимости от выбранного значения селекта.
Я сделал так:
в файле ps_userfield.php
Код:
else {
                        if ((formelement.value == '')&& (document.getElementById('country_field').value != 'UKR'))
{
                            document.getElementById(required_fields[i]+'$div_id_postfix').className += ' missing';
                            isvalid = false;

                        }
                        else if (document.getElementById(required_fields[i]+'$div_id_postfix').className == 'formLabel missing') {
                            document.getElementById(required_fields[i]+'$div_id_postfix').className = 'formLabel';
                    }
if ((formelement.name == 'vm_inn')&&(formelement.value == ''))
{
if ((document.getElementById('country_field').value == 'BLR')||(document.getElementById('country_field').value == 'RUS'))
{

document.getElementById(required_fields[i]+'$div_id_postfix').className += ' missing';
isvalid = false;


}
else if (document.getElementById(required_fields[i]+'$div_id_postfix').className == 'formLabel missing')
{

                            document.getElementById(required_fields[i]+'$div_id_postfix').className = 'formLabel';
}
if ((document.getElementById('country_field').value == 'UKR'))
{

document.getElementById(required_fields[i]+'$div_id_postfix').className = 'formLabel';
}
else if (document.getElementById(required_fields[i]+'$div_id_postfix').className == 'formLabel missing')
{

                            document.getElementById(required_fields[i]+'$div_id_postfix').className = 'formLabel';
}
}
            }
ну собственно vm_inn это поле а country_field - это селект со странами.
вроде бы все правильно,расставленные по тексту алерты говорят что в ненужные блоки вход не происходит.
но

Код:

if( !isvalid) {
alert("'.addslashes( $VM_LANG->_('CONTACT_FORM_NC',false) ).'" );

}
alert("METKA!");
return isvalid;
alert ("!7");


алерт с МЕТКА! срабатывает  а с !7 не срабатывает и почему то выбрасывает alert("'.addslashes( $VM_LANG->_('CONTACT_FORM_NC',false) ).'" );

помогите пожалуйста,второй день не могу вкурить в чем проблема.
Записан
titansword
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 29


« Ответ #25 : 24.08.2011, 20:31:07 »

Господа, как а Joomla 1.6 во фронт-энд сделать кнопку сабмита не активной если некоторые поля не прошли валидацию?
В официальных доках есть только решение для бэк-энд:
Код:
Joomla.submitbutton = function(task)
{
if (task == '')
{
return false;
}
else
{
var isValid=true;
var action = task.split('.');
if (action[1] != 'cancel' && action[1] != 'close')
{
var forms = $$('form.form-validate');
for (var i=0;i<forms.length;i++)
{
if (!document.formvalidator.isValid(forms[i]))
{
isValid = false;
break;
}
}
}
 
if (isValid)
{
Joomla.submitform(task);
return true;
}
else
{
alert(Joomla.JText._('COM_HELLOWORLD_HELLOWORLD_ERROR_UNACCEPTABLE',
                     'Some values are unacceptable'));
return false;
}
}
}
Записан
MICH55
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #26 : 01.11.2011, 14:09:06 »

Помогите пожалуйста разобраться... не работает валидация стандартной формы регистрации Joomla 1.5.12 файлик default.php с формой лежит в папке с шаблоном /templates/rhuk_milkyway/html/com_user/register

Содержит код:
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
JHTML::_('behavior.formvalidation'); ?>
 
<script type="text/javascript">
<!--
    Window.onDomReady(function(){
       document.formvalidator.setHandler('passverify', function (value) { return ($('password').value == value); }    );
 
   });
// -->
</script>
 
  <?php
   if(isset($this->message)){
       $this->display('message');
   }
?>
 
<form action="<?php echo JRoute::_( 'index.php?option=com_user&view=register' ); ?>" method="post" id="josForm" name="josForm" class="form-validate" ;>
 
<?php if ( $this->params->def( 'show_page_title', 1 ) ) : ?>
<div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>"><?php echo $this->escape($this->params->get('page_title')); ?></div>
<?php endif; ?>
 
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">
<tr>
   <td width="30%" height="40">
       <label id="namemsg" for="name">
           <?php echo JText::_( 'Name' ); ?>:
       </label>
   </td>
     <td>
         <input type="text" name="name" id="name" size="40" value="<?php echo $this->escape($this->user->get( 'name' ));?>" class="required" maxlength="50" /> *
     </td>
</tr>
<tr>
   <td height="40">
       <label id="usernamemsg" for="username">
           <?php echo JText::_( 'User name' ); ?>:
       </label>
   </td>
   <td>
       <input type="text" id="username" name="username" size="40" value="<?php echo $this->escape($this->user->get( 'username' ));?>" class="required validate-username" maxlength="25" /> *
   </td>
</tr>
<tr>
   <td height="40">
       <label id="emailmsg" for="email">
           <?php echo JText::_( 'Email' ); ?>:
       </label>
   </td>
   <td>
       <input type="text" id="email" name="email" size="40" value="<?php echo $this->escape($this->user->get( 'email' ));?>" class="required validate-email" maxlength="100" /> *
   </td>
</tr>
<tr>
   <td height="40">
       <label id="pwmsg" for="password">
           <?php echo JText::_( 'Password' ); ?>:
       </label>
   </td>
     <td>
         <input class="required validate-password" type="password" id="password" name="password" size="40" value="" /> *
     </td>
</tr>
<tr>
   <td height="40">
       <label id="pw2msg" for="password2">
           <?php echo JText::_( 'Verify Password' ); ?>:
       </label>
   </td>
   <td>
       <input class="required validate-passverify" type="password" id="password2" name="password2" size="40" value="" /> *
   </td>
</tr>
<tr>
   <td colspan="2" height="40">
       <?php echo JText::_( 'REGISTER_REQUIRED' ); ?>
   </td>
</tr>
</table>
   <button class="button validate" type="submit"><?php echo JText::_('Register'); ?></button>
   <input type="hidden" name="task" value="register_save" />
   <input type="hidden" name="id" value="0" />
   <input type="hidden" name="gid" value="0" />
   <?php echo JHTML::_( 'form.token' ); ?>
</form>
 
Записан
v-idea
Осваиваюсь на форуме
***

Репутация: +30/-0
Offline Offline

Пол: Мужской
Сообщений: 172



« Ответ #27 : 02.02.2012, 23:05:51 »

Добавляем наш метод:

Код
this.setHandler('select',
function (value) {
return value > 0;
}
);
 

Народ, SOS!

А как то же самое сделать для поля 'checkbox' ? ? ?
« Последнее редактирование: 02.02.2012, 23:26:19 от v-idea » Записан
Captain
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #28 : 06.08.2012, 02:20:02 »

Народ, подниму тему. Мне нужно в админке форму проверять на событие OnSubmit. Проверять-то проверяет, но форма коммитится вне зависмости от того, прошла она валидацию или нет (вернула функция true или false). Подскажите как быть.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet