public function main()
    {
        ?>
		<div id="main">
			<div id="reports-new">
				<div class="ui error form segment square-corners no-shadow">
					<div class="three fields">
						<div class="field">
							<label>Год набора</label>
							<input id="year" name="year" placeholder="<?php 
        echo date::year();
        ?>
" type="text" value="<?php 
        echo $this->report->year;
        ?>
">
						</div>

						<div class="field">
							<label>Срок обучения (лет)</label>
							<input id="duration" name="duration" placeholder="4" type="text" value="<?php 
        echo $this->report->duration;
        ?>
" onchange="calendar.update();">
						</div>

						<div class="field">
							<label>ФИО ректора</label>
							<input id="rector" name="rector" placeholder="М.П. Батура" type="text" value="<?php 
        echo $this->report->rector;
        ?>
">
						</div>
					</div>

					<div class="field">
						<label>Регистрационный номер учебного плана</label>
						<input id="registration_number" name="registration_number" placeholder="2014.09.20/000" type="text" value="<?php 
        echo $this->report->registration_number;
        ?>
">
					</div>

					<div class="field">
						<div class="ui fluid selection dropdown">
							<div class="default text">Форма обучения</div>
							<i class="dropdown icon"></i>
							<input type="hidden" id="training_form_id" name="training_form_id" value="<?php 
        echo $this->report->training_form_id;
        ?>
">
							<div class="menu">
								<?php 
        $training_forms = training_forms::get();
        if ($training_forms) {
            foreach ($training_forms as $training_form) {
                ?>
											<div class="item" data-value="<?php 
                echo $training_form->id;
                ?>
"><?php 
                echo html::escape($training_form->name);
                ?>
</div>
											<?php 
            }
        }
        ?>
							</div>
						</div>
					</div>

					<div class="field">
						<div class="ui fluid selection dropdown">
							<div class="default text">Квалификация специалиста</div>
							<i class="dropdown icon"></i>
							<input type="hidden" id="qualification_id" name="qualification_id" value="<?php 
        echo $this->report->qualification_id;
        ?>
">
							<div class="menu">
								<?php 
        $qualifications = qualifications::get();
        if ($qualifications) {
            foreach ($qualifications as $qualification) {
                ?>
											<div class="item" data-value="<?php 
                echo $qualification->id;
                ?>
"><?php 
                echo html::escape($qualification->name);
                ?>
</div>
											<?php 
            }
        }
        ?>
							</div>
						</div>
					</div>

					<div class="field">
						<div class="ui fluid selection dropdown">
							<div class="default text">Специальность</div>
							<i class="dropdown icon"></i>
							<input type="hidden" id="specialty_id" name="specialty_id" value="<?php 
        echo $this->report->specialty_id;
        ?>
">
							<div class="menu">
								<?php 
        $specialties = specialties::get();
        if ($specialties) {
            foreach ($specialties as $specialty) {
                ?>
											<div class="item" data-value="<?php 
                echo $specialty->id;
                ?>
"><?php 
                echo html::escape($specialty->name);
                ?>
</div>
											<?php 
            }
        }
        ?>
							</div>
						</div>
					</div>

					<div class="field">
						<div class="ui fluid selection dropdown">
							<div class="default text">Специализация</div>
							<i class="dropdown icon"></i>
							<input type="hidden" id="specialization_id" name="specialization_id" value="<?php 
        echo $this->report->specialization_id;
        ?>
">
							<div class="menu">
								<?php 
        $specializations = specializations::get();
        if ($specializations) {
            foreach ($specializations as $specialization) {
                ?>
											<div class="item" data-value="<?php 
                echo $specialization->id;
                ?>
"><?php 
                echo html::escape($specialization->name);
                ?>
</div>
											<?php 
            }
        }
        ?>
							</div>
						</div>
					</div>

					<div class="field width50">
						<label>Учебная практика</label>
						<textarea id="study_practice" name="study_practice"><?php 
        echo $this->report->study_practice;
        ?>
</textarea>
					</div>

					<div class="field width50">
						<label>Производственная практика</label>
						<textarea id="manufact_practice" name="manufact_practice"><?php 
        echo $this->report->manufact_practice;
        ?>
</textarea>
					</div>

					<div class="field width50">
						<label>Дипломные проекты или дипломные работы</label>
						<input id="grad_work" name="grad_work" type="text" value="<?php 
        echo $this->report->grad_work;
        ?>
">
					</div>

					<div class="field width50">
						<label>Государственный экзамен</label>
						<input id="gos_exam" name="gos_exam" type="text" value="<?php 
        echo $this->report->gos_exam;
        ?>
">
					</div>

					<div id="education-list">
						<div class="ui form">

						</div>

						<ul id="education-ul">
							<?php 
        $educations = education::get_by_report(get('report_id'));
        ?>
							<?php 
        foreach ($educations as $education) {
            ?>
								<li class="disciplines" data-id="<?php 
            echo $education->id;
            ?>
">
									<div class="actions">
										<div class="ui button red tiny" onclick=" remove_education(this,<?php 
            echo $education->id;
            ?>
);buttons.update();">Удалить</div>
										<div class="ui button blue tiny" onclick="education.filler.popup(education.filler.get(this),education.filler.getdata(this),education.filler.getid(this),<?php 
            echo get('report_id');
            ?>
,<?php 
            echo $education->id;
            ?>
);">Заполнить</div>
									</div>
									<div class="base" onclick="$(this).parent('li').find('.tip').toggle('slow'); $(this).find('i.icon.triangle').toggleClass('down').toggleClass('right')">
										<i class="icon triangle down"></i>
										<span class="description"><?php 
            echo $education->name;
            ?>
</span>
									</div>
									<div class="tip">
										<ul>
											<?php 
            $educations_items = education_items::get_by_order($education->id);
            ?>
											<?php 
            foreach ($educations_items as $item) {
                $values = education_items_values::get_by_education_item_id($item->id);
                ?>
													<li data-order="<?php 
                echo $item->order_num;
                ?>
" data-type="undefined" data-name="<?php 
                echo $item->name;
                ?>
" data-id="<?php 
                echo $item->id;
                ?>
"
														data-values="<?php 
                for ($i = 1; $i < 40; $i++) {
                    foreach ($values as $value) {
                        if ($value->col_num == $i) {
                            echo $value->value;
                        }
                    }
                    echo ',';
                }
                ?>
"
														draggable="true"><?php 
                mb_strlen($item->name) > 96 ? $tmp = mb_substr($item->name, 0, 96, 'utf-8') . '...' : ($tmp = $item->name);
                echo $tmp;
                ?>
														<i class="icon remove circle" style="float: right" onclick="delete_item_discipline(this,<?php 
                echo $item->id;
                ?>
)" title="Удалить"></i>
														<i class="icon angle up" onclick="education.tip.move.up(this);"></i>
														<i class="icon angle down" onclick="education.tip.move.down(this);"></i>
														<div class="ui checkbox" style="float: right" data-content="Дисциплина по выбору">
															<input type="checkbox" class="popup" <?php 
                if ($item->is_optional == '1') {
                    echo "checked='checked'";
                }
                ?>
>
															<label></label>
														</div>
														</li>
												<?php 
            }
            ?>
										</ul>
										<div class="ui search selection dropdown" onclick="">
											<input type="hidden" name="selected">
											<div class="default text" onclick="$(this).html('')" onkeyup="education.hint.init(this)" contenteditable="true">Выберите наименование</div>
											<i class="dropdown icon"></i>
											<div class="menu">
												<?php 
            $disciplines = disciplines::get();
            foreach ($disciplines as $discipline) {
                ?>
													<div class="item" data-type="discipline" data-name="<?php 
                echo $discipline->name;
                ?>
"
														 data-id="<?php 
                echo $discipline->id;
                ?>
"><?php 
                echo $discipline->name;
                ?>
													</div>
												<?php 
            }
            ?>

												<?php 
            $directions = directions::get();
            foreach ($directions as $direction) {
                ?>
													<div class="item" data-type="direction" data-name="<?php 
                echo $direction->name;
                ?>
"
														 data-id="<?php 
                echo $direction->id;
                ?>
"><?php 
                echo $direction->name;
                ?>
													</div>
												<?php 
            }
            ?>

											</div>
										</div>

										<div class="item ui button green" onclick="add_education_item(<?php 
            echo $education->id;
            ?>
,this)">добавить</div>
									</div>
								</li>
							<?php 
        }
        ?>
						</ul>
					</div>

					<script>
						$('.ui.checkbox').popup({ on: 'hover' });


						function add_education_item(education_id,selector){

							if ($(selector).parent('div').find('.text').hasClass('default'))
							{
								alert('Выберите название предмета из выпадающего списка.');

								return;
							}


							var order = $(".tip li").length+1;
							var name = $(selector).closest('.tip').find('.item.active').attr('data-name');
							var report_id = <?php 
        echo get('report_id');
        ?>
;
							$.post('/?page=reports-edit&task=add_education_item&report_id='+report_id+'&name='+name+'&education_id='+education_id+'&order='+order+'&ajax=true')
								.done(function(id) { education.tip.add(selector,id)});
						}
						function delete_item_discipline(selector,id){
							var report_id = <?php 
        echo get('report_id');
        ?>
;
							$.post('/?page=reports-edit&task=delete_item_discipline&report_id='+report_id+'&id='+id+'&ajax=true')
								.done(function() { $(selector).parent().remove();});
						}
						function remove_education(selector,id){
							var report_id = <?php 
        echo get('report_id');
        ?>
;
							$.post('/?page=reports-edit&task=remove_education&report_id='+report_id+'&id='+id+'&ajax=true')
								.done(function() { $(selector).closest('li').fadeToggle('slow', function() { $(selector).closest('li').remove();  } )});
						}
						<?php 
        $disciplines = disciplines::get();
        $directions = directions::get();
        $database = null;
        if ($disciplines) {
            foreach ($disciplines as $discipline) {
                $database .= '["discipline", "' . html::escape($discipline->name) . '", ' . $discipline->id . '],';
            }
            $database = char::remove_last($database);
        }
        if ($directions) {
            if ($database) {
                $database .= ',';
            }
            foreach ($directions as $direction) {
                $database .= '["direction", "' . $direction->name . '", ' . $direction->id . '],';
            }
            $database = char::remove_last($database);
        }
        ?>

						var database = [<?php 
        echo $database;
        ?>
];

						$(function() {
							education.disciplines.set(database);
						});
					</script>


					<?php 
        //						$calendar = new ajax_calendar();
        //						$calendar->html();
        ?>

					<div class="ui green submit button small" onclick="update();">Сохранить</div>
					<a href="#" target="_blank" id="button-preview" class="ui blue submit button small" onclick="save(1); return false;">Предпросмотр</a>
					<a href="#" target="_blank" id="button-popup" class="ui blue submit button small" onclick="calendar.popup(); return false;">Календарь</a>
					<a href="#" target="_blank" id="button-education" class="ui blue submit button small" onclick="$('#education').modal('show'); return false;">Добавить цикл</a>

					<div id="education" class="ui modal large">
						<div class="ui form segment">
							<div class="field">
								<label>Наименование цикла</label>
								<input class="education-new" type="text" placeholder="Цикл социально-гуманитарных дисциплин">
							</div>

							<a href="#" class="ui blue submit button small" onclick="
							var name = $('.education-new').val();
							$('.education-new').val('');
							var report_id = <?php 
        echo get('report_id');
        ?>
;
							$.post('/?page=reports-edit&task=add_education&report_id='+report_id+'&name='+name+'&ajax=true')
								.done(function(data) { $('#education').modal('hide');
								education.add(name,data,report_id);
								/*rude.redirect('/?page=reports-edit&report_id='+report_id);*/ }); return false;
							">Добавить</a>
						</div>
					</div>

					<?php 
        static::filler();
        ?>

					<?php 
        static::calendar();
        ?>

				</div>
			</div>
		</div>
		<?php 
    }
Example #2
0
 /**
  * @en Return partical SQL query: SELECT section
  * @ru Возвращает частичную секцию SQL запроса: SELECT
  *
  * $q = new query('users');
  * $q->field('hash');
  * $q->field('salt');
  * $q->where('username', 'root');
  * $q->limit(5);
  *
  * $sql = $q->sql_select(); # SELECT hash, salt
  *
  * @return string
  */
 public function sql_select()
 {
     if (!empty($this->field_list)) {
         return 'SELECT' . PHP_EOL . '  ' . implode(',' . PHP_EOL, $this->field_list) . PHP_EOL;
     }
     if (!empty($this->left_join_tables)) {
         $table_columns = $this->columns($this->from_table);
         $select = 'SELECT' . PHP_EOL . '  ' . $this->from_table . '.*, ';
         foreach ($this->left_join_tables as $join_table) {
             $join_columns = $this->columns($join_table);
             $required_columns = array_diff($join_columns, $table_columns);
             foreach ($required_columns as $required_column) {
                 $select .= PHP_EOL . $join_table . '.' . $required_column . ',';
             }
             $select = char::remove_last($select);
             $select .= PHP_EOL;
         }
         return $select;
     }
     return 'SELECT' . PHP_EOL . '  *' . PHP_EOL;
 }
 public function sql_set()
 {
     $result = 'SET';
     foreach ($this->update_fields as $fields) {
         list($key, $value) = $fields;
         $result .= PHP_EOL . "`" . $key . "` = ";
         if (is_string($value)) {
             $result .= "'" . $value . "',";
         } else {
             if (is_int($value) || is_float($value) || is_double($value)) {
                 $result .= $value . ',';
             }
         }
     }
     $result = char::remove_last($result);
     $result .= PHP_EOL;
     return $result;
 }