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