13 июня 2012 г.

Звёздочка рядом с обязательными полями в AdsManager 2.6.5

   К одной из существенных недоработок AdsManager версии 2.6.5 я отнёс отсутствие звёздочек рядом с названиями обязательных полей в форме размещения нового объявления. Как и в старых версиях, в этой версии AdsManager обязательные поля просто подсвечиваются другим цветом, в связи с чем имеется один недостаток: если, например, выбран тип поля "radiobutton", выделяться другим цветом оно не будет и посетитель сайта узнает о необходимости заполнения поля лишь после нажатия кнопочки "Отправить".

   На форумах предлагают такое решение проблемы: в языковых файлах рядом с названием поля поставить звёздочку. Этот вариант мне пришёлся не по душе лишь потому, что звёздочка будет выводиться рядом с полем всегда, независимо от того, находится ли посетитель на странице размещения нового объявления, в форме поиска или на странице с детальной информацией. Искать другие решения я не стал и решил, что быстрее будет разобраться с ситуацией самому.

   Спустя несколько минут я пришёл к простому, но исключительно верному решению: нужно было всего лишь добавить условие, при соблюдении которого к обязательному полю добавлялась бы звёздочка. Проще не бывает! Идём в папку с компонентом, заходим в директорию helpers и открываем для редактирования файлик field.php. Находим функцию showFieldForm и следующие строчки в ней:
        $strtitle = JText::_($field->title);
        if (isset($strtitle)) {
            $return .= "<tr id='tr_".$field->name."'><td>".$strtitle."</td>\n";
            $strtitle = htmlspecialchars($strtitle);
        }
Заменяем этот участок кода на приведённый ниже:
        $strtitle = JText::_($field->title);
        if (isset($strtitle)) {
            {
            if ($field->required == 1)
                $return .= "<tr id='tr_".$field->name."'><td>".$strtitle." *</td>\n";
            else
                $return .= "<tr id='tr_".$field->name."'><td>".$strtitle."</td>\n";
            }
            $strtitle = htmlspecialchars($strtitle);
        }
   Проверяем. Рядом с обязательными для заполнения полями в форме размещения объявления должны появиться звёздочки. Также звёздочки должны появиться и на странице редактирования объявления (сам я это не проверял).

1 комментарий:

  1. Действительно, отличная идея. Всё работает.

    На локалке пробую настроить версию 2.9.9, к сожалению там файл другой field.php

    ОтветитьУдалить