Случайные записи в Твиттере

Автозаполнение поля, созданного в CCK из профиля пользователя

в Drupal, CCK, блоки

Допустить к определенной ноде в CCK мы сделали дополнительное поле и назвали его используемое оборудование.

Поле имеет при вводе нефильтрованный, а обычный тест

Но этот текст довольно объемный, несколько строк (5-15). Понятно, что этот текст пользователь вводить будет не всегда (поле не обязательное), но когда ему приспичит -  заполнять одно и тоже даже 2 раза не будет никакого желания.

По этому в профиле пользователя создаем текстовое поле profile_oborudovanie  , которое он заполняет при регистрации или изменении профиля. Так как люди чаще всего используют в своей работе одно и тоже оборудование, то это поле можно использовать для хранения оборудования, которое использует данный юзер и при необходимости заполнять им поле CCK/

поле CCK называется my-oborudovanie а при добавлении материалов в форме имеет id edit-field-my-oborudovanie-0-value (смотри html код документа)

Теперь надо научить друпал распознавать, когда это поле заполнять, а когда вовсе даже не надо

 

1. Создаем блок

2. Страницы для показа node/add/blog (или др тип, в котором надо заполнять значение поля)

3. Формат ввода для текста в блоке - php код

содержимое блока такое

<?php
global $user;
$user_data = user_load(array ('uid'=>$user->uid))
?>
<h3>В Вашем профиле указано, что Вы используете следующее оборудование:</h3>

<?php  
 $oborudovanie = $user_data->profile_oborudovanie;
 $oborudovanie_js = str_replace('"', '\"', $oborudovanie);
 print($oborudovanie. "<br /><br />"); 
?>

<input type="button" value="Заполнить поле Ипользованное оборудование" onclick='javascript:$("#edit-field-my-oborudovanie-0-value").val("<?php print $oborudovanie_js; ?>");' />

 

4. Расположение - в самом вверху над формой ввода ноды, чтобы было удобнее

Теперь при добавлении ноды вверху появляется блок, который подсказывает, что в профиле Вы заполнили поле с оборудованием Так и так. И кнопочка, при нажатии на которую эта самая инфа из профиля записывается в CCK поле с оборудованием. Получилось просто и ненавзчиво. Если в данном посте необходимо указать использованное оборудование, то человек не набирает его, а жмет кнопку. А потом при необходимости можно немного подправить.

Комментарии

Аватар пользователя Виталий

Следует учесть, что пользователь в профиле может указать кавычки, другую хрень (вплоть до ява скрипта попытаться)

по этому надо довавить проверку
check_markup
замену \n и \r и ' и "

А тка реально проверено и работает

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.