/** * Функция рисует поле по $field_name * @param string имя поля * @param string дополнительные атрибуты * @param int идентификатор компонента, его стоит указывать при вызове функции т.к. в функции s_list_class() его глобальное значение будет иное * @param bool выводить описание поля или нет * @return string поле */ function nc_put_field($field_name, $style = "", $classID = "", $caption = false) { global $db, $systemTableID; if (!$classID) { global $classID; } if (!$classID) { return false; } $field_name = $db->escape($field_name); # данные о поле if ($systemTableID == 3) { // Поле из таблицы "Пользователи" $field_attr = $db->get_var("SELECT `TypeOfData_ID` FROM `Field` WHERE Class_ID = '0' AND `System_Table_ID` = '3' AND Field_Name = '" . $field_name . "'"); } else { // Поле из компонента $field_attr = $db->get_var("SELECT `TypeOfData_ID` FROM `Field` WHERE Class_ID = '" . intval($classID) . "' AND Field_Name = '" . $field_name . "'"); } if (!$field_attr) { trigger_error("<b>nc_put_field()</b>: Incorrect field name (" . $field_name . ")", E_USER_WARNING); return false; } switch ($field_attr) { # Тип поля "Строка" case 1: $result = nc_string_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Целое число" # Тип поля "Целое число" case 2: $result = nc_int_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Текстовый блок" # Тип поля "Текстовый блок" case 3: $result = nc_text_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Список" # Тип поля "Список" case 4: #$result = nc_list_select($field_attr['Format'], $field_name); $result = nc_list_field($field_name, $style, $classID, $caption ? 1 : 0, "", ""); break; # Тип поля "Логическая переменная" # Тип поля "Логическая переменная" case 5: $result = nc_bool_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Файл" # Тип поля "Файл" case 6: $result = nc_file_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Число с плавающей запятой" # Тип поля "Число с плавающей запятой" case 7: $result = nc_float_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Дата и время" # Тип поля "Дата и время" case 8: $result = nc_date_field($field_name, $style, $classID, $caption ? 1 : 0); break; # Тип поля "Связь с другим объектом" # Тип поля "Связь с другим объектом" case 9: $result = nc_related_field($field_name); # Тип поля "MultiSelect" # Тип поля "MultiSelect" case 10: $result = nc_multilist_field($field_name, $style, "", $classID, $caption ? 1 : 0, "", ""); break; } return $result; }
<div class='nc-field'><?= nc_related_field('Sub_ID', "") ?></div> <div class='nc-field'><?= nc_string_field('Name', "maxlength='255' size='50'", ($class_id ? $class_id : $classID), 1) ?></div> <div class='nc-field'><?= nc_string_field('Button_Text', "maxlength='255' size='50'", ($class_id ? $class_id : $classID), 1) ?></div> <div class='nc-field'> <span class="nc-field-caption">Цвета камня для вывода:</span> <? $selected_colors = explode(",", $f_OnlyColor); if($colors = $db->get_results("SELECT a.Message_ID, a.Name, s.Subdivision_Name FROM Message2008 a LEFT JOIN Subdivision s ON s.Subdivision_ID=a.Subdivision_ID GROUP BY a.Message_ID ORDER BY s.Priority, s.Subdivision_ID, a.Priority, a.Message_ID ", ARRAY_A)){ $prev_sub = null; foreach($colors as $c){ if($prev_sub!=$c['Subdivision_Name']){ $prev_sub = $c['Subdivision_Name']; echo '<br><strong>'.$prev_sub.'</strong><br>'; } echo '<label><input type="checkbox" name="colors[]" value="'.$c['Message_ID'].'"'.(in_array($c['Message_ID'], $selected_colors) ? ' checked' : '').' /> '.$c['Name'].' </label><br>'; } } else dump($db->last_error); ?> </div>