Доброй ночи.
При создании ноды "Справка" (description) отображается под полем ввода (или текстовым полем или выбором из списка, не принципиально). Необходимо расположить её под названием поля, но над полем ввода.
Как такое можно реализовать?
Доброй ночи.
При создании ноды "Справка" (description) отображается под полем ввода (или текстовым полем или выбором из списка, не принципиально). Необходимо расположить её под названием поля, но над полем ввода.
Как такое можно реализовать?
Комментарии
переопределите функцию theme_form_element
Подключаем новый js-файл или дописываем к существующему:
$('.form-item').each(function(){
$(this).find('label').after($(this).find('.description'));
});
});
Спа-си-бо! Вариант со скриптом сработал.
На всякий случай напишу, как сделал, возможно, кому-то пригодится:
1) в директории /themes/%theme-name% создаём файл description.js;
2) помещаем туда код:
$('.form-item').each(function(){
$(this).find('label').after($(this).find('.description'));
});
});
3) в файл /themes/%theme-name%/%theme-name%.info добавляем строку:
scripts[] = description.js
4) заходим на admin/settings/performance и чистим кэш.
Эх, рано радовался. Скрипт работает не совсем корректно и помещает описание над полем ввода/выбора, даже если его (описания) там до этого не было. Сравните, до включения скрипта:
и после:
И так почти со всеми полями. В админке, например, на странице Производительность каждый description повторяется от 2-х до 4-х раз, видимо, в зависимости от количество полей, к нему относящихся.
Как бы подправить скрипт, может, кто поможет?
пардон. а вот так?
$('.form-item').each(function(){
if ($(this).find('.description').length > 0) {
$(this).find('label').after($(this).find('.description'));
}
});
})
Странно, опять везде описания появляются, как и в прошлый раз
У меня все нормально, с любыми формами. Кэш очистили?
Да, кэш почистил, скрипт обновил, естественно.
Возможно, это из-за темы (на сайте используется tarski).
Вот так выглядит исходный код:
<div class="form-item" id="edit-pass-pass1-wrapper">
<label for="edit-pass-pass1">Пароль: <span class="form-required" title="Обязательно для заполнения.">*</span></label>
<input type="password" name="pass[pass1]" id="edit-pass-pass1" maxlength="128" size="25" class="form-text required password-field" />
</div>
<div class="form-item" id="edit-pass-pass2-wrapper">
<label for="edit-pass-pass2">Повторите пароль: <span class="form-required" title="Обязательно для заполнения.">*</span></label>
<input type="password" name="pass[pass2]" id="edit-pass-pass2" maxlength="128" size="25" class="form-text required password-confirm" />
</div>
<div class="description">Введите пароль в оба поля.</div>
</div>
А в браузере вот так:
Ничего не понимаю.
Включил юзеру тему Garland, подключил к ней скрипт, очистил кэш. Зашёл под юзером и вижу то же самое: по 2-3 повтора каждого description.
На всякий случай проверил в разных браузерах: Firefox 3.6, Opera 11.50, Chromium 14, -- везде такая лажа.
А Вы на какой теме проверяли?
Вот, что бывает если удалять гланды через жопу.
Смотрите первый комментарий и делайте правильно.