Разместить description НАД полем ввода в CCK

Главные вкладки

Аватар пользователя vkapas vkapas 11 июля 2011 в 0:33

Доброй ночи.

При создании ноды "Справка" (description) отображается под полем ввода (или текстовым полем или выбором из списка, не принципиально). Необходимо расположить её под названием поля, но над полем ввода.

Как такое можно реализовать?

Комментарии

Аватар пользователя boneg boneg 11 июля 2011 в 1:37

Подключаем новый js-файл или дописываем к существующему:

$(document).ready(function(){

$('.form-item').each(function(){
$(this).find('label').after($(this).find('.description'));
});

});

Аватар пользователя vkapas vkapas 11 июля 2011 в 2:54

Спа-си-бо! Вариант со скриптом сработал.

На всякий случай напишу, как сделал, возможно, кому-то пригодится:

1) в директории /themes/%theme-name% создаём файл description.js;
2) помещаем туда код:

$(document).ready(function(){
 
$('.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 и чистим кэш.

Аватар пользователя vkapas vkapas 11 июля 2011 в 3:39

Эх, рано радовался. Скрипт работает не совсем корректно и помещает описание над полем ввода/выбора, даже если его (описания) там до этого не было. Сравните, до включения скрипта:

и после:

И так почти со всеми полями. В админке, например, на странице Производительность каждый description повторяется от 2-х до 4-х раз, видимо, в зависимости от количество полей, к нему относящихся.

Как бы подправить скрипт, может, кто поможет? Smile

Аватар пользователя boneg boneg 11 июля 2011 в 9:20

пардон. а вот так?

$(document).ready(function(){
 
$('.form-item').each(function(){
if ($(this).find('.description').length > 0) {
$(this).find('label').after($(this).find('.description'));
}
});
 
})
Аватар пользователя vkapas vkapas 11 июля 2011 в 13:21

Да, кэш почистил, скрипт обновил, естественно.

Возможно, это из-за темы (на сайте используется tarski).

Вот так выглядит исходный код:

<div class="form-item" id="edit-pass-wrapper">

 <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>

А в браузере вот так:

Аватар пользователя vkapas vkapas 11 июля 2011 в 13:45

Ничего не понимаю.

Включил юзеру тему Garland, подключил к ней скрипт, очистил кэш. Зашёл под юзером и вижу то же самое: по 2-3 повтора каждого description.
На всякий случай проверил в разных браузерах: Firefox 3.6, Opera 11.50, Chromium 14, -- везде такая лажа.

А Вы на какой теме проверяли?