Как сделать все поля обязательными для заполнения (или, соответственно, убрать эту обязательность) в стандартной форме контактов. Какие файлы редактировать, и где что за что отвечает?
Берете файл components/com_contact/views/contact/tmpl/default_form.php и копируюте в templates/YOU_TEMPALTE/html/com_contact/contact/. Далее открываете этот файл и делаете нужные изменения. Правда эти права на обязательность будут работать только при включенном javascript. Если нужно более, то тут нужны знания php.
Оказалось все довольно таки просто... В результате глубоких научных исследований Joomla и археологических раскопок интернета вот что мне удалось нарыть: Вначале давайте разберемся где, что и за что отвечает в данном компоненте: Форма отправки сообщений - компонент контакты 1. Папка: components/com_contact/views/contact/tmpl/ - default.php - разметка вывода конкретного контакта и подключение формы обратной связи на этот контакт - default_address.php - разметка вывода адресных данных контакта - default_form.php - разметка вывода формы обратной связи 2. Папка: components/com_contact/views/contact/ - view.html.php - генерирует ввывод страницы контакты и подключает validate.js (JHTML::_('behavior.formvalidation')) 3. Папка: components/com_contact/ - controller.php - генерирует вывод формы (function display()) - делает проверку вводимых данных по заблокированным e-mail, тексту и т.д. указанных в админке (function _validateInputs()) - осуществляет отправку данных (function submit()) - формирует переменную для вывода системного сообщения (function submit()... $msg = JText::_( 'Thank you for your e-mail')) - формирует переменную для перенаправления на страницу после отправки сообщения (function submit()... $link = JRoute::_('index.php?option=com_contact&view=contact&id='.$contact->slug.'&catid='.$contact->catslug, false)) 4. Файлы: - language/ru-RU/ru-RU.com_contact.ini - надписи и сообщения на русском - media/system/js/validate.js - валидатор форм - libraries/joomla/html/html/behavior.php - подключает системные скрипты с помощью класса behavior, в данном случае validate.js (JHTML::_('behavior.formvalidation')) - templates/шаблон/css/template.css - таблица стилей Как добавить поле в форму обратной связи подробно описано сдесь http://joomlaforum.ru/index.php/topic,121453.msg664564.html#msg664564 Но нам надо сделать это поле обязательным для заполнения. Сделать это довольно просто - присвоить полю класс 'required' Код (CODE): <input type="text" name="tel" id="contact_tel" size="30" class="inputbox [color=red][u][b]required[/b][/u][/color]" /> Как это работает: При выводе страницы контакты подключается файл validate.js, который отвечает за правильность заполнения полей формы. При внимательном рассмотрении этого файла можно увидеть, что в одной из функций он находит поля с классом 'required' и проверяет их, при пустом значении этого поля или неправильном заполнении (для поля e-mail) и т.д. предотвращает отправку данных с формы, перекрашивает текстовую метку в красный цвет и выводит сообщение. Т.е. все поля формы с классом 'required' проходят проверку в файле validate.js. Соответственно, что бы убрать обязательность поля нужно просто удалить этот класс в файле default_form.php Вот и все, приятного программирования.