function GetRecords() { global $recordSet, $fieldSet, $table, $onsubmit, $arr_field; for( $i = 0; $i < $recordSet->FieldCount(); $i++ ) { $field = $recordSet->FetchField($i); $name = $field->name; $value = $recordSet->fields[$name]; if ( $field->primary_key ) { $id = $value; $formName = "f$table$id"; if ( isAdmin() ) echo WrapDIV( $name, WrapForm( $formName, "add_record_in_table.php", $onsubmit, GetHiddenInput('table', $table).GetHiddenInput('key_name', 'id').GetHiddenInput( $name, $value )."<input type='image' src='http://solution.artel.ws/images/valid.png' value='Сохранить' form='$formName' hidden title='Сохранить изменения'/> ", "max-width:100%;" ) ); else echo WrapDIV( $name, "<a target='_blank' href='show_record.php?table=$table&id=$value&key_id=$name' onmousemove='this.click();' > <img src='http://solution.artel.ws/images/eye.png' /> </a>", 'max-width:100%;', 'left' ); continue; } $field_name = GetFieldProp($name); if ( ($name == 'id') || !(isAdmin() || ( !$fieldSet->EOF ? $fieldSet->fields['is_view'] : '1' ) ) ) continue; $type = ( $fieldSet->fields['type_input'] ? $fieldSet->fields['type_input'] : StyleInput( $field->type ) ); $formula = $fieldSet->fields['formula']; $length = ( $fieldSet->fields['field_len'] ? $fieldSet->fields['field_len'] : $field->max_length );; $col_width = ( $length > 5 ? $length *10 : GetLengthFromType($type) )."px"; $style = "min-width:$col_width;float:left;"; if ( isAdmin() ) echo WrapDIV( $name, GetInputFromType( $type, $name, $value, "width:100%;max-width:150px;", $formName, $in_table, $field_name), $style ); else { if (substr($name, 0, 2 ) == 'id' && (substr($name, 2) != substr($table, 2)) ) echo WrapDIV( $field_name, GetValueFromID( $value, $name ), $style ); elseif ($name == 'photo') echo WrapDIV( $field_name, "<a href='/photos/$value' class='fancybox-button' rel='collection'> <img src='/photos/$value' style='$style'/> </a>", $style, 'center' ); else { if ( !($value) && $formula ) $value = GetValueFormula( $formula ); echo WrapDIV( $field_name, ( (($type=='checkbox') || ($type=='radio')) ? GetTextInput($name, '', $value, $style, $type, '', '' ) : ( $value ? $value : '-') ), $style ); } } } //for }
function GetFieldFromMacros( $type_date, $macros, $button, $onchange ) { global $fieldSet, $in_group, $macrosU; $text = $in_group = ''; // макросы могут повторяться, потому удаляем дубликаты $macrosU = array_map("unserialize",array_unique(array_map("serialize",$macros))); $type_date = ( (sizeof($macros) > 1) && ($type_date == 'week') ? 'date' : $type_date ); // создаем элементы ввода для макросов for( $i=0; $i <= sizeof($macrosU); $i++ ) { if ( !($param = $macrosU[$i][1]) ) continue; $required = ( $macrosU[$i][2] =='%%' ? 'required' : '' ); if ( strstr( $param, 'date' ) ) // выставляем поля для дат двух типов (день либо месяц) $text .= GetDateInput( $param, "ГГГГ-ММ-ДД", GetParamOrDefault( $param, ($type_date == 'date' ? strftime('%Y-%m-%d') : strftime('%Y-%m') ) ), "max-width:90%", $type_date, '', $onchange, "required title='$param'" ); else if( substr($param, 0, 3 ) == 'id_' ) { global $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; $recordSet = runSQL("select * from rs_".substr($param, 3) ); $options = "<option value='-1' noselect >".($title=GetFieldProp( $param ))."</option>"; foreach( $recordSet as $key => $row ) $options .= "<option value='{$row[0]}'> {$row[1]}</option>"; $text .= GetGrouptitle()."<select class='form-control' name='$param' onchange='$onchange' style='max-width:90%' title='$title' $required value='-1' > $options </select>"; } else if ( strstr( $param, 'check' ) ) // выставляем галочки { $fieldName = substr($param, 6); $title = GetFieldProp( $fieldName ); $text .= GetGrouptitle()."<label class='checkbox-inline'> <input type='checkbox' name='$fieldName' value='".GetParamOrDefault( $param, '' )."' onchange='$onchange' title='$title' $required />$title</label>"; } else if ( substr($param, 0, 3 ) == 'or_' ) // необязательные текстовые поля { $fieldName = substr($param, 3); $title = GetFieldProp( $fieldName ); $text .= GetTextInput( $fieldName, $title, GetParamOrDefault( $param, '' ), "max-width:90%", 'search', '', '', "$required title='$title' data-param='or'" ); } else { $title = GetFieldProp( $param ); $text .= GetTextInput( $param, $title, GetParamOrDefault( $param, '' ), "max-width:90%", 'search', '', '', "$required title='$title'" ); } }// for if ( $in_group ) // закрываем последнюю группу $text .= '</fieldset>'; if ( (sizeof($macrosU) > 1) || ($button != '⏎') ) return $text."<button type='submit' name='Add' value='$button' > <span class='glyphicon glyphicon-import'></span> </button>"; else return "<div class='input-group'>$text<span class='input-group-btn'> <button class='btn btn-success' type='button'><span class='glyphicon glyphicon-download'></span></button> </span> </div>"; }
function GetCategoryByParent( $key_parent, $parent_name='', $title_parent='', $null_category=FALSE ) { global $adminTrue, $show_tovar, $show_category; $addForm = $text = $clickTovarEdit = $for_user = ''; $symbol_form = "<span class='glyphicon glyphicon-collapse-down'></span>"; $symbol_form1 = "<span class='glyphicon glyphicon-collapse-up'></span>"; $symbol_add_li = "<span class='glyphicon glyphicon-collapse-down collapsible' style='float:rigth;' ></span>"; if ( $adminTrue ) { $parent_name = ($key_parent > 0 ? " в $parent_name": 'подуровень' ); $clickTovarEdit = ' onclick="'; $nameForm = "fCategory$key_parent"; // создание нового элемента, содержащего данные ( и новой таблицы в БД при необходимости ) $addForm = //"<li onclick='$(this).children(1).toggle(); return ExpandParents(this);'>Добавить $parent_name $symbol_form "<span class='glyphicon glyphicon-plus pop_menu' target='content' onclick='return ShowOknoAndExpandParents(this);' data-href='show_form.php?key_parent=$key_parent&parent_name=$parent_name' title='Добавить элемент'></span>"; // по клику будет вызываться форма для создания новой подкатегории $addForm .= "<span class='glyphicon glyphicon-collapse-down pop_menu' onclick='$(this).next().toggle(); return false;' title='Добавить подуровень'> ". WrapForm( $nameForm, "add_record_in_table.php", 'return SaveObject( this, "key_category" );', GetHiddenInput('key_parent', $key_parent).GetHiddenInput("table" , "category").GetHiddenInput("key_name" , "key_category").GetTextInput("name", 'Название', '', "width:90%", 'search', $nameForm, null, 'required')/* GetTextArea("sql_text", "Код sql для отбора данных (после from)", '', "width:90%", $nameForm, null, 'required') */."<input hidden type=submit name=Add value='Добавить $parent_name'/>", 'width:230px;display:none;float:left' ).'</span>'; //</li>'; } else if ( isset($_REQUEST['user']) && ($key_parent == 0) ) $for_user = "******"; global $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $strwhere = "select * from category where key_parent = $key_parent and is_view = 1 $for_user order by leaf, name" ; // echo $strwhere; $recordSet = runSQL( $strwhere ); $count = 1; while (!$recordSet->EOF) { $count++; /* if ( ($key_parent == 0) && ($text) ) $text .= "<img src='images/vensel.png' />"; */ /* else if ($count++ == 8) $text .= "<li style='float:left'>Показать больше</li> $symbol_add_li <ul>"; */ $name_category = trim( $recordSet->fields['name'] ); $key_category = $recordSet->fields['key_category']; $table = $recordSet->fields['sql_text']; $title = ( $title_parent ? $title_parent.' > '.$name_category : $name_category); $memo = htmlspecialchars( $recordSet->fields['memo'] ); $href_tovary = "show_tovar.php?key_parent=$key_category$adminTrue"; $href_category = "show_tovar.php?key_parent=$key_category&category&catalog$adminTrue&title=$title"; $submenu = GetCategoryByParent( $key_category, $name_category, $title, ($table == '') ); $onsubmit= "return ShowFromMacros( this );"; $onchange= "return ShowFromMacros( this.form );"; // Показываем ссылку на таблицу(набор данных) if ( ($submenu == '') && ($table) ) { if ( preg_match_all( '/#\$(\w+)(%%)*\$#/', $table, $macros, PREG_SET_ORDER ) ) // форма для параметров запроса $text .= "<li onclick='$(this).next().toggle(); return ExpandParents(this);' title='$title' >$name_category $symbol_form</li>".WrapForm( $nameForm= "f$key_category", $href_tovary, $onsubmit, GetFieldFromMacros( ( strstr($name_category, 'день') ? 'date' : (strstr($name_category, 'месяц') ? 'month' : 'week') ), $macros, '⏎', $onchange ), 'width:230px', null, $title ).''; else $text .= GetLiOnclick( $key_category, $name_category, '', $title ); } // показываем ссылку на категории - для уже ветвей дерева либо пустых кодов SQL else $text .= "<li class='collapsed collapsible'> <a href='$href_category' target='content' title='$title' onclick=' ExpandUL( $(this) ); ".( $adminTrue ? $show_tovar : '' )."'><span>$name_category</span></a>".( $adminTrue ? AddFormNewElement( $key_category, $name_category ) : '' ).($submenu == '' ? GetDelFormtext( $key_category, $name_category ) : "<div class='panel wrapper' ><ul>$submenu</ul></div>" )."</li>"; $recordSet->MoveNext(); } return ($text ? $text/* .($count > 7 ? '</ul>': '' ) */ : ''); }
function GetInputFromType($type, $name, $value, $style, $formName, $in_table, $field_name, $oninput='return FormIsModified(event, this.form);', $required ) { global $arr_field, $conn, $admin_true; global $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ( ( $in_table && ($type == 'select') ) || ($name == 'type_input') ) { if ($name == 'type_input') // Для устроения таблиц { $type_fields = array( 'search' => 'По умолчанию', 'file' => 'Картинку', 'checkbox' => 'checkbox', 'number' => 'number', 'select' => 'Выборка', 'radio' => 'radio', 'textarea' => 'textarea', 'date' => 'Дата', ); $options = "<option selected disabled>Выберите тип поля</option>"; foreach( $type_fields as $value_type => $text) $options .= "<option ".($value_type== $value ? 'selected' : '')." value='$value_type'>$text</option>"; } else { $parentSet = $conn->CacheExecute( 300, "select * from $in_table order by 2"); $options = "<option value='' >".( $admin_true ? 'Нет' : 'Все')."</option>"; foreach( $parentSet as $key => $row ) { $selected = ( $value == ($row[0]) ? 'selected' : ''); $options .= "<option $selected value='{$row[0]}'> {$row[1]}</option>"; } // while } return "<select class='form-control' style='$style' name='$name' form='$formName' onchange='$oninput' > $options </select>"; } else if ( ($type == 'textarea') && ($formName != 'fFilter') ) return GetTextArea($name, '', $value, $style, $formName, $oninput, $required); else if ( ($type == 'checkbox') && ($formName == 'fFilter') ) { // стили убираем, чтобы не порить ширину return "<select class='form-control' name='$name' form='$formName' onchange='$oninput' ><option value='' >Все</option> <option value='✔︎' >✔︎</option><option value='✖︎' >✖︎</option></select>"; } else return GetTextInput($name, '', $value, $style, $type, $formName, $oninput, $required ); }