Методика обучения технологии web 2.0 на примере создания школьного сайта спортивной тематики
{
$this->_engine->clear_assign($key);
}
public function assign($spec, $value = null)
{
if (is_array($spec)) {
$this->_engine->assign($spec);
return;
}
$this->_engine->assign($spec, $value);
}
public function clearVars()
{
$this->_engine->clear_all_assign();
}
public function render($name)
{
return $this-
>_engine->fetch(strtolower($name));
}
public function _run()
{ }
}
?>
Листинг 1.7 Новый контроллер, выводящий файл index.tpl
(файл IndexController.php)
<?
class IndexController extends CustomControllerAction
{
public function indexAction()
{
}
}
?>
Листинг 1.8 Шаблон для операции index контроллера index
(файл index.tpl)
{include file='header.tpl'}
Будущий спортивный сайт школы
{include file='footer.tpl'}
Листинг 1.9 Файл заголовка HTML-страницы
(файл header.tpl)
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251 " />
</head>
<body>
<div>
Листинг 1.10 Файл конца страницы, в котором закрываются тэги, открытые в заголовке(файл footer.tpl)
</div>
</body>
</html>
Листинг 2.1 Загрузочный файл приложения с использованием компонента Zend_Auth (файл index.php)
// настройка утентификации пользователей
$auth = Zend_Auth::getInstance();
$auth->setStorage(new Zend_Auth_Storage_Session());
$controller->registerPlugin(new CustomControllerAclManager($auth));
Листинг 2.2 Подключаемый модуль CustomControllerAclManager, проверяющий допуски перед отправкой запроса на обработку
(файл CustomControllerAclManager.php)
<?php
class CustomControllerAclManager extends Zend_Controller_Plugin_Abstract
{
// роль по умолчанию, если не вошел (или роль не определена)
private $_defaultRole = 'guest';
// выполнить операцию, если у пользователя не хватает привилегий
private $_authController = array('controller' => 'account',
'action' => 'login');
public function construct(Zend_Auth $auth)
{
$this->auth = $auth;
$this->acl = new Zend_Acl();
// добаляем новые роли
$this->acl->addRole(new Zend_Acl_Role($this->_defaultRole));
$this->acl->addRole(new Zend_Acl_Role('member'));
$this->acl->addRole(new Zend_Acl_Role('administrator'), 'member');
// добавляем контролируемые ресурсы
$this->acl->add(new Zend_Acl_Resource('account'));
$this->acl->add(new Zend_Acl_Resource('admin'));
// по умолчанию даем всемпользователям доступ ко всему
// кроме управления учетными записями и администрированием
$this->acl->allow();
$this->acl->deny(null, 'account');
$this->acl->deny(null, 'admin');
// добавляем исключение. чтобы гости могли войти или
// зарегистрироваться, если нет привилегий
$this->acl->allow('guest', 'account', array('login',
'fetchpassword',
'register',
'registercomplete'));
// позволяем зарегистрированным пользователям доступ к управлению учетными записями
$this->acl->allow('member', 'account');
// даем администраторам доступ в область администрирования
$this->acl->allow('administrator', 'admin');
}
/**
* preDispatch
*
* Прежде, чем отправлять запрос на обработку, проверяет есть ли у пользователя
* нужные привелегии. Если нет, инициирует операцию по умолчанию
*
*
* @param Zend_Controller_Request_Abstract $request
*/
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// проверка, вошел ли пользователь и имеет ли нужную роль
// если нет, то назначается роль по умолчанию (гость)
if ($this->auth->hasIdentity())
$role = $this->auth->getIdentity()->user_type;
else
$role = $this->_defaultRole;
if (!$this->acl->hasRole($role))
$role = $this->_defaultRole;
// контролируемый ресурс - имя запрашиваемого контроллера
$resource = $request->controller;
// привилегия - имя запрашиваемой операции
$privilege = $request->action;
// если ресурс не определен явно. проверить
// глобальные допуски по умолчанию
if (!$this->acl->has($resource))
$resource = null;
// в допуске отказано. Выполняется операция по умолчанию
if (!$this->acl->isAllowed($role, $resource, $privilege)) {
$request->setControllerName($this->_authController['controller']);
$request->setActionName($this->_authController['action']);
}
}
}
?>
Листинг 2.3 Первоначальная версия класса DatabaseObject_User
(файл user.php)
<?
class DatabaseObject_User extends DatabaseObject
{
static $userTypes = array('member' => 'Member',
'administrator' => 'Administrator');
public $profile = null;
public $_newPassword = null;
public function construct($db)
{
parent:: construct($db, 'users', 'user_id');
$this->add('username');
$this->add('password');
$this->add('user_type', 'member');
$this->add('ts_created', time(), self::TYPE_TIMESTAMP);
$this->add('ts_last_login', null, self::TYPE_TIMESTAMP);
}
}
?>
Листинг 2.4 Полный текст класса FormProcessor_UserRegistration
(файл UserRegistration.php)
<?php
class FormProcessor_UserRegistration extends FormProcessor
{
protected $db = null;
public $user = null;
public function construct($db)
{
parent:: construct();
$this->db = $db;
$this->user = new DatabaseObject_User($db);
$this->user->type = 'member';
}
public function process(Zend_Controller_Request_Abstract $request)
{
// проверка правильности имени
$this->username = trim($request->getPost('username'));
if (strlen($this->username) == 0)
$this->addError('username', 'Please enter a username');
else if (!DatabaseObject_User::IsValidUsername($this->username))
$this->addError('username', 'Please enter a valid username');
else if ($this->user->usernameExists($this->username))
$this->addError('username', 'The selected username already exists');
else
$this->user->username = $this->username;
// проверка имени и фамилии
$this->first_name = $this->sanitize($request->getPost('first_name'));
if (strlen($this->first_name) == 0)
$this->addError('first_name', 'Please enter your first name');
else
$this->user->profile->first_name = $this->first_name;
Другие рефераты на тему «Педагогика»:
- Артикуляционная гимнастика
- Адаптация первоклассников к школе
- Логико-математические дидактические игры в работе со старшими дошкольниками
- Формирование знаний и умений учащихся пятого класса
- Особенности формирования экологических понятий у детей старшего дошкольного возраста на занятиях по ознакомлению с окружающей средой
Поиск рефератов
Последние рефераты раздела
- Тенденции развития системы высшего образования в Украине и за рубежом: основные направления
- Влияние здоровьесберегающего подхода в организации воспитательной работы на формирование валеологической грамотности младших школьников
- Характеристика компетенций бакалавров – психологов образования
- Коррекционная программа по снижению тревожности у детей младшего школьного возраста методом глинотерапии
- Формирование лексики у дошкольников с общим недоразвитием речи
- Роль наглядности в преподавании изобразительного искусства
- Активные методы теоретического обучения