/** * Функция рисует поле по $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_string_field('Param7', 'maxlength="255" size="50"', ($class_id ? $class_id : $classID), 1) ?></div> <br> <h3>Аналоги камня</h3> <ul> <? if(isset($_POST['posting'])){ dump(123); $analog_values = isset($_POST['analogs']) ? $_POST['analogs'] : array(); } else if(!($analog_values = $db->get_col("SELECT Stone2_ID FROM Stone_Analogs WHERE Stone1_ID={$message}"))) $analog_values = array(); if($stones = $db->get_results("SELECT Message_ID,Name,EnglishName FROM Message{$classID} WHERE Subdivision_ID={$sub} AND Message_ID!='{$message}' ORDER BY Priority", ARRAY_A)){ foreach($stones as $stone){ echo '<li><label><input type="checkbox" name="analogs[]" value="'.$stone['Message_ID'].'"'.(in_array($stone['Message_ID'], $analog_values) ? ' checked' : '').' /> '; echo $stone['Name']; if($stone['EnglishName']) echo ' ('.$stone['EnglishName'].')'; echo '</label></li>'; } } ?> </ul> <div class="nc-field"><?= nc_date_field('News_Date', '', ($class_id ? $class_id : $classID), 1) ?></div> <div class="nc-field"><?= nc_file_field('News_Picture', '', ($class_id ? $class_id : $classID), 1) ?></div> <div class="nc-field"><?= nc_date_field('Action_Date', '', ($class_id ? $class_id : $classID), 1) ?></div> <div class="nc-field"><?= nc_file_field('Action_Picture', '', ($class_id ? $class_id : $classID), 1) ?></div>