Разработка системы учета успеваемости студентов на основе рейтинговой системы - подсистема "Кафедра"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
e] = Невозможно удалить. Сначала удалите
args[0])) return;
$DB = $registry[DB];
$DB->query(DELETE FROM `facults` WHERE id=? LIMIT 1, $id);::redirect(site_url.facults);
}edit ()
{
$registry = $this->registry;(!$registry[access]->get_privilege(edit_facults_priv)) $registry[access]->restrict();(!isset($this->args[0])) return;
$DB = $registry[DB];
$id = (int)$this->args[0];($id<=0) return;
$table = $DB->select(SELECT * FROM facults WHERE id=? LIMIT 1, $id);
$name = $table[0][name];(empty($_POST[name]))
{
$smarty = $registry[smarty];
//$smarty->assign(name, $name);
$edit_form = Название: ;
//$smarty->assign(fields, array(Название=>name));
//$smarty->assign(values, array(name=>$name));
$smarty->assign(edit_form, $edit_form);
display(popup_edit.tpl);();">$smarty->display(popup_edit.tpl);();
}
{
$name = $_POST[name];
$DB->query(UPDATE `facults` SET name=? WHERE id=? AND NOT name=?,$name, $id, $name);lib::reload_caller_js();();
}
//$registry[message] = Редактируем .$id;
}add ()
{(!isset($_POST[name])) return;
$name = $_POST[name];
$registry = $this->registry;(!$registry[access]->get_privilege(edit_facults_priv)) $registry[access]->restrict();
$DB = $registry[DB];
$res = $DB->query(INSERT INTO `facults` (name) VALUES (?), $name);(!$res)
{
$registry[message] = Ошибка добавления;;
}::redirect(site_url.facults);
}
}
?>
Класс Router:
<?phpRouter {$registry;$path;$args = array();__construct() {
$this->registry = Registry::getInstance();
}setPath($path) {
$path = trim($path, /\\);
$path .= DIRSEP;
if (is_dir($path) == false) {
throw new Exception (Invalid controller path: ` . $path . `);
}
$this->path = $path;
}
/**
* Получает данные о контроллере
*
* @param string $file Имя файла контроллера
* @param string $controller Имя контроллера, по умолчанию index
* @param string $action Имя действия, по умолчанию index
* @param array $args Массив аргументов, переданных через URL
* @return void
*/function getController(&$file, &$controller, &$action, &$args) {
$route = (empty($_GET[route])) ? : $_GET[route];
if (empty($route)) { $route = index; }
// Хак! Если пользователь не вошел кидаем на вход
if (!@$_SESSION[auth]) $route = user/login;
// Получаем раздельные части
$route = trim($route, /\\);
$parts = explode(/, $route);
// Находим правильный контроллер
$cmd_path = $this->path;
foreach ($parts as $part) {
$fullpath = $cmd_path . $part;
// Есть ли папка с таким путём?
if (is_dir($fullpath)) {
$cmd_path .= $part . DIRSEP;
array_shift($parts);
continue;
}
// Находим файл
if (is_file($fullpath . .php)) {
$controller = $part;
array_shift($parts);
break;
}
}
if (empty($controller)) { $controller = index; };
// Получаем действие
$action = array_shift($parts);
if (empty($action)) { $action = index; }
$file = $cmd_path . $controller . .php;
$args = $parts;
}delegate() {
// Анализируем путь
/**
* @var string $file
*/
$file = $controller = $action = $args = ;
$this->getController($file, $controller, $action, $args);
// Файл доступен?
if (is_readable($file) == false) {
die (404 Not Found);
}
// Подключаем файл
include ($file);
// Создаём экземпляр контроллера
$class = Controller_ . $controller;
$controller = new $class($this->registry);
// Действие доступно?
if (is_callable(array($controller, $action)) == false) {
die (404 Not Found);
}
// Выполняем действие
$controller->args = $args;
$controller->$action();
}
}
?>
Класс Registry:
<?phpRegistry implements ArrayAccess, Iterator
{$vars = array();
/**
* @var Registry
*/static $_instance;function __construct(){
}
/**
* Возвращает экземпляр класса
*
* @return Registry
*/
public static function getInstance()
{
if (!self::$_instance) {
self::$_instance = new self;
}
return self::$_instance;
}set($key, $var) {
/*if (isset($this->vars[$key]) == true) {new Exception(Unable to set var ` . $key . `. Already set.);
}*/
$this->vars[$key] = $var;true;
}get($key) {(isset($this->vars[$key]) == false) {null;
}$this->vars[$key];
}remove($key) {($this->vars[$key]);
}offsetExists($offset) {isset($this->vars[$offset]);
}offsetGet($offset) {$this->get($offset);
}offsetSet($offset, $value) {
$this->set($offset, $value);
}offsetUnset($offset) {($this->vars[$offset]);
}function rewind() {($this->vars);
}function current() {
$var = current($this->vars);$var;
}function key() {
$var = key($this->vars);$var;
}function next() {
$var = next($this->vars);$var;
}function valid() {
$var = $this->current() !== false;$var;
}
}
?>
Шаблон Index.tpl:
">
{literal}toggle()
{= document.getElementById("help_content");= document.getElementById("sign");(sp.style.display=="none")
{.style.display="block";.innerHTML = "-";
}
{.style.display="none";.innerHTML = "+";
}
}
{/literal}
{if $username}
Пользователь: {$username}
{/if}
{$menu}
{if $help}
{/if}
{if $message}{/if}
{if $tpl}{include file=$tpl}{/if}
Шаблон list.tpl:
popup(url)
{literal}
{=window.open("", "popup","toolbar=0,width=300,height=250,left=160,top=300,resizable=false,fullscreen=0,toolbar=0,status=0,locatio