Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример отчета по преддипломной практике.doc
Скачиваний:
5
Добавлен:
15.11.2019
Размер:
1.24 Mб
Скачать

Приложение б тексты основных программных модулей

П.Б.1 Контроллер

<?

class Topology extends Controller

{

/**

* главная страница */

function index()

{

$this->load->view('topology/header');

$this->load->view('topology/main');

$this->load->view('topology/footer'); // $this->load->view('plan_ats');

}

/** показать топологию для здания

* $buildId - идентификатор здания из базы

*/

function show_topology($buildId,$f)

{

$this->load->database();

if (isset($buildId) && $buildId > 0) {

$arr = array();

// print ($f);

$arr['floor'] = $f; // $this->input->post('floor'); // номер этажа

if ($arr['floor'] < 1)

$arr['floor'] = $f;

$arr['floor_count'] = 4;

$arr['buildId'] = $buildId;

$arr['plan_cnt'] = $this->show_floor($buildId, $arr['floor'], true);

$res = $this->load_audition($buildId);

$data = array();

$data['arr'] = $arr;

$data['res'] = $res;

$this->load->view('topology/header');

$this->load->view('topology/plan', $data);

$this->load->view('topology/footer');

} else {

echo "Error";

}

}

/**

* Загрузить этаж здания

* @param <type> $buildId

* @param <type> $floorNum

* @return <type>

*/

function show_floor($buildId, $floorNum, $hide = false)

{

$arr = array();

if ($hide)

return $this->load->view('topology/plan_' . $buildId . '_' . $floorNum, $arr, $hide);

else

$this->load->view('topology/plan_' . $buildId . '_' . $floorNum, $arr, $hide);

return 0;

}

/* *Загружаем из базы аудитории */

function load_audition($korpus)

{

$this->load->database();

$this->load->model('topology_model');

$res = $this->topology_model->audition($korpus);

return $res;

}

}

П.Б.2 Модель

<?php

if (!defined('BASEPATH') || !defined('APPPATH'))

exit('No direct script access allowed');

/**

* Модель для работы со структурой ДГТУ

*/

class Topology_Model extends Model

{

public function audition($korpus)

{

$this->load->database();

$id_res = array();

$id_korp = array();

$res = array();

/*

*выбираем id этажей гл. корпуса

*/

if(count($korpus)==1){

$str='гл.корп.';

}

$id = "SELECT distinct id FROM structure.building WHERE shortname=?";

$id_korp = $this->db->query($id,array('гл.корп.'));

$id_res=$id_korp->result_array();

$idd1=$id_res[0]['id'];

$idd2=$id_res[1]['id'];

$idd3=$id_res[2]['id'];

$idd4=$id_res[3]['id'];

\\по найденным id находим все number аудитории

$aud = "SELECT id, number FROM structure.room WHERE building_fk=? or building_fk=? or building_fk=? or building_fk=?";

$audition = $this->db->query($aud, array($idd1,$idd2,$idd3,$idd4));

$res = $audition->result_array();

$tel = "SELECT id FROM structure.room WHERE building_fk=? or building_fk=? or building_fk=? or building_fk=?";

$id_tel = $this->db->query($tel, array($idd1,$idd2,$idd3,$idd4));

$id_tel_res=$id_tel->result_array();

$a=$id_tel_res[10]['id'];

$tell="SELECT room_fk, number FROM structure.telephone WHERE room_fk=?";

$number_telephone=$this->db->query($tell,array($a));

$numbers_tel=$number_telephone->result_array();

return $res;

}

}

П.Б.3 Скрипт

/*выбираем нужный этаж*/

$(document).ready(function(){

$('.menu-elem h3').bind('click',function(){

var id = $(this).parent().attr('id').substr(6,1);

$('.building-block').slideDown(5000);

$('#block-cnt').html('Подождите идет загрузка данных...');

$.post(sitepath+'topology/show_floor/'+buildId+'/'+id,{},function(data){

$('#block-cnt').html(data);

});

});

/*присваиваем каждому атрибуту title номер этажа и номер аудитории */

for($i=0; $i<=numbers.length; $i++){

$('#id_'+buildId+'_'+floor+'_'+numbers[$i]+'').attr({

title: 'Аудитория а.'+numbers[$i]+' этаж '+floor+''

});

}

/*Меню*/

$('#floor_un td').hover(

function(){

$(this).css('background','#E2E2E2',

'color','green');

},

function(){

$(this).css('background','blue',

'color','black');

}

);

});

П.Б.4 Модуль выбора этажа

<?php

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

?>

<script type="text/javascript">

sitepath = '<?=SITEPATH?>';

buildId = '<?=$arr["buildId"];?>';

floor='<?=$arr["floor"];?>';

numbers = [];

var $j=0;

<?php foreach ($res as $item):?>

numbers[$j]='<?=$item["number"];?>';

$j=$j+1;

<? endforeach; ?>

</script>

<div id="topology-main">

<div class="header">

<h2>Схема телефонных номеров ДГТУ</h2>

</div>

<!-- МЕНЮ выбора этажа-->

<div class="menu">

<table class="td_border" width="120" cellpadding="0" cellspacing="0">

<tr id="floor_un" class="menu-elem"> <td><h3><a href="<?=SITEPATH?>topology/show_topology/1/1">ДГТУ 1-этаж</a></h3></td></tr>

<tr id="floor_un" class="menu-elem"> <td><h3><a href="<?=SITEPATH?>topology/show_topology/1/2">ДГТУ 2-этаж</a></h3></td></tr>

<tr id="floor_un" class="menu-elem"> <td><h3><a href="<?=SITEPATH?>topology/show_topology/1/3">ДГТУ 3-этаж</a></h3></td></tr>

<tr id="floor_un" class="menu-elem"> <td><h3><a href="<?=SITEPATH?>topology/show_topology/1/4">ДГТУ 4-этаж</a></h3></td></tr>

</table>

</div>

<!-- Блок этажей -->

<div id="block-cnt" class="block">

<?$plan_cnt=$arr['plan_cnt']; if (isset($plan_cnt)) echo $plan_cnt; ?>

</div>

</div>

45