Программное обеспечение автоматизированной системы управления документами предприятия
Выбор и обоснование архитектуры приложения, требования к его функциональности, описание возможностей и сфера практического применения. Технологические средства разработки и отладки. Проектирование и разработка программы, ее тестирование и листинг.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 13.07.2015 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
} catch (PDOException $e) {
print «Error!:». $e->getMessage(). «<br/>»;
die();
}
$pdo->setAttribute (PDO:ATTR_ERRMODE, PDO:ERRMODE_EXCEPTION);
$GLOBALS['pdo'] = $pdo;
ob_start();
// Загрузка класса Settings
require_once ('Settings_class.php');
$settings = new Settings($pdo);
$settings->load();
// Общие функции
require_once ('functions.php');
// Загрузка списка разрешенных типов файлов
require_once ('FileTypes_class.php');
$filetypes = new FileTypes_class($pdo);
$filetypes->load();
// Установка директории прверки. (relative to $dataDir)
$CONFIG['revisionDir'] = $GLOBALS['CONFIG'] ['dataDir']. 'revisionDir/';
// Установка директории прверки. (relative to $dataDir)
$CONFIG['archiveDir'] = $GLOBALS['CONFIG'] ['dataDir']. 'archiveDir/';
$_GET = sanitizeme($_GET);
$_REQUEST = sanitizeme($_REQUEST);
$_POST = sanitizeme($_POST);
$_SERVER = sanitizeme($_SERVER);
$_FILES = sanitizeme($_FILES);
Приложение 2. Создание базы данных
# MySQL dump of DocManager
# Table structure for table 'odm_access_log'
CREATE TABLE `odm_access_log` (
`file_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`action` enum ('A', 'B', 'C', 'V', 'D', 'M', 'X', 'I', 'O', 'Y', 'R') NOT NULL
) ENGINE = MYISAM;
# Table structure for table 'odm_admin'
CREATE TABLE odm_admin (
id int(11) unsigned default NULL,
admin tinyint(4) default NULL
) ENGINE = MYISAM;
# Dumping data for table 'odm_admin'
INSERT INTO odm_admin VALUES (1,1);
# Table structure for table 'odm_category'
CREATE TABLE odm_category (
id int(11) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL default «,
PRIMARY KEY (id)
) ENGINE = MYISAM;
# Dumping data for table 'odm_category'
INSERT INTO odm_category VALUES (NULL, 'SOP');
INSERT INTO odm_category VALUES (NULL, 'Training Manual');
INSERT INTO odm_category VALUES (NULL, 'Letter');
INSERT INTO odm_category VALUES (NULL, 'Presentation');
# Table structure for table 'odm_data'
CREATE TABLE odm_data (
id int(11) unsigned NOT NULL auto_increment,
category int(11) unsigned NOT NULL default '0',
owner int(11) unsigned default NULL,
realname varchar(255) NOT NULL default «,
created datetime NOT NULL default '0000-00-00 00:00:00',
description varchar(255) default NULL,
comment varchar(255) default «,
status smallint(6) default NULL,
department smallint(6) unsigned default NULL,
default_rights tinyint(4) default NULL,
publishable tinyint(4) default NULL,
reviewer int(11) unsigned default NULL,
reviewer_comments varchar(255) default NULL,
PRIMARY KEY (id),
KEY data_idx (id, owner),
KEY id (id),
KEY id_2 (id),
KEY publishable (publishable),
KEY description (description)
) ENGINE = MYISAM;
# Dumping data for table 'odm_data'
# Table structure for table 'odm_department'
CREATE TABLE odm_department (
id int(11) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL default «,
PRIMARY KEY (id)
) ENGINE = MYISAM;
# Dumping data for table 'odm_department'
INSERT INTO odm_department VALUES (NULL, 'Information Systems');
# Table structure for table 'odm_dept_perms'
CREATE TABLE odm_dept_perms (
fid int(11) unsigned default NULL,
dept_id int(11) unsigned default NULL,
rights tinyint(4) NOT NULL default '0',
KEY rights (rights),
KEY dept_id (dept_id),
KEY fid (fid)
) ENGINE = MYISAM;
# Dumping data for table 'odm_dept_perms'
# Table structure for table 'odm_dept_reviewer'
CREATE TABLE odm_dept_reviewer (
dept_id int(11) unsigned default NULL,
user_id int(11) unsigned default NULL
) ENGINE = MYISAM;
# Dumping data for table 'odm_dept_reviewer'
INSERT INTO odm_dept_reviewer VALUES (1,1);
# Table structure for table 'odm_log'
CREATE TABLE odm_log (
id int(11) unsigned NOT NULL default '0',
modified_on datetime NOT NULL default '0000-00-00 00:00:00',
modified_by varchar(25) default NULL,
note text,
revision varchar(255) default NULL,
KEY id (id),
KEY modified_on (modified_on)
) ENGINE = MYISAM;
# Dumping data for table 'odm_log'
# Table structure for table 'odm_rights'
CREATE TABLE odm_rights (
RightId tinyint(4) default NULL,
Description varchar(255) default NULL
) ENGINE = MYISAM;
# Dumping data for table 'odm_rights'
INSERT INTO odm_rights VALUES (0,'none');
INSERT INTO odm_rights VALUES (1,'view');
INSERT INTO odm_rights VALUES (-1,'forbidden');
INSERT INTO odm_rights VALUES (2,'read');
INSERT INTO odm_rights VALUES (3,'write');
INSERT INTO odm_rights VALUES (4,'admin');
# Table structure for table 'odm_user'
CREATE TABLE odm_user (
id int(11) unsigned NOT NULL auto_increment,
username varchar(25) NOT NULL default «,
password varchar(50) NOT NULL default «,
department int(11) unsigned default NULL,
phone varchar(20) default NULL,
Email varchar(50) default NULL,
last_name varchar(255) default NULL,
first_name varchar(255) default NULL,
pw_reset_code char(32) default NULL,
can_add tinyint(1) NULL DEFAULT 1,
can_checkin tinyint(1) NULL DEFAULT 1,
PRIMARY KEY (id)
) ENGINE = MYISAM;
# Dumping data for table 'odm_user'
INSERT INTO odm_user VALUES (NULL, 'admin', md5 ('admin'), 1,'5555551212', 'admin@mailinator.com', 'User', 'Admin', '', 1, 1);
# Table structure for table 'odm_user_perms'
CREATE TABLE odm_user_perms (
fid int(11) unsigned default NULL,
uid int(11) unsigned NOT NULL default '0',
rights tinyint(4) NOT NULL default '0',
KEY user_perms_idx (fid, uid, rights),
KEY fid (fid),
KEY uid (uid),
KEY rights (rights)
) ENGINE = MYISAM;
# Dumping data for table 'odm_user_perms'
# New User Defined Fields Table
#
# field_type describes what type of UDF this is. At the momment
# the valid values are:
#
# 1 = Drop down style list
# 2 = Radio Buttons
#
# table_name names the database table where the allow values are listed
#
# display_name is the label shown to the user
CREATE TABLE odm_udf
(
id int(11) auto_increment unique,
table_name varchar(50),
display_name varchar(16),
field_type int
) ENGINE = MYISAM;
CREATE TABLE IF NOT EXISTS odm_odmsys
(
id int(11) auto_increment unique,
sys_name varchar(16),
sys_value varchar(255)
) ENGINE = MYISAM;
INSERT INTO odm_odmsys VALUES (NULL, 'version', '1.3.0');
CREATE TABLE IF NOT EXISTS `odm_settings` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`value` VARCHAR(255) NOT NULL,
`description` VARCHAR(255) NOT NULL,
`validation` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE (`name`)
) ENGINE = MYISAM;
INSERT INTO `odm_settings` VALUES (NULL, 'title', 'Хранилище документов', 'Это заголовок вкладки в окне браузера', 'maxsize=255');
INSERT INTO `odm_settings` VALUES (NULL, 'authen', 'mysql', 'Проверка подлинности MySQL', «);
INSERT INTO `odm_settings` VALUES (NULL, 'site_mail', 'root@localhost', 'Адрес электронной почты администратора этого сайта', 'email|maxsize=255|req');
INSERT INTO `odm_settings` VALUES (NULL, 'root_id', '1', 'Эта переменная устанавливает пользователю неограниченные права доступа. Он будет иметь доступ ко всем файлам и иметь права на все операции', 'num|req');
INSERT INTO `odm_settings` VALUES (NULL, 'dataDir', '/var/www/document_repository/', 'Расположение хранилища файлов. В идеале оно должно быть вне корневой папки веб-сервера. Убедитесь, что сервер имеет доступ на чтение / запись файлов в этой папке! (Examples: Linux - /var/www/document_repository/: Windows - c:/document_repository/', 'maxsize=255');
INSERT INTO `odm_settings` VALUES (NULL, 'max_filesize', '5000000', 'Установите максимальный размер загружаемых файлов', 'num|maxsize=255');
INSERT INTO `odm_settings` VALUES (NULL, 'revision_expiration', '90', 'Эта переменная устанавливает период (количество дней), за который документ должен быть пересмотрен', 'num|maxsize=255');
INSERT INTO `odm_settings` VALUES (NULL, 'file_expired_action', '1', 'Условие истечения срока файла. (1) Удаление из списка файлов, пока не продлен срок; (2) Показать в списке файлов, но не проверять; (3) Оповестить проверяющего(email); (4) Ничего не делать', 'num');
INSERT INTO `odm_settings` VALUES (NULL, 'authorization', 'True', 'True/False. Если значение True, каждый документ должен быть рассмотрен администратором, прежде чем его увидят остальные пользователи. Если значение False, то все добавленные файлы заново проверяются и сразу будут в списке', 'bool');
INSERT INTO `odm_settings` VALUES (NULL, 'allow_signup', 'False', 'Разрешить регистрацию?', 'bool');
INSERT INTO `odm_settings` VALUES (NULL, 'allow_password_reset', 'False', 'Разрешить пользователям сброс их забытого пароля?', 'bool');
INSERT INTO `odm_settings` VALUES (NULL, 'theme', 'tweeter', 'Тема оформления', «);
INSERT INTO `odm_settings` VALUES (NULL, 'language', 'russian', 'Язык интерфейса', 'alpha|req');
INSERT INTO `odm_settings` VALUES (NULL, 'base_url', 'http://localhost/docmanager', 'URL сайта. Не обязательно использовать символы \ "/\" ', 'url');
INSERT INTO `odm_settings` VALUES (NULL, 'max_query', '500', 'Установить максимальное количество строк списка файлов', 'num');
CREATE TABLE IF NOT EXISTS `odm_filetypes` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`type` VARCHAR(255) NOT NULL,
`active` TINYINT(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = MYISAM;
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/gif', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'text/html', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'text/plain', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/pdf', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/pdf', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/x-pdf', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/msword', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/jpeg', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/pjpeg', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/png', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/msexcel', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/msaccess', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'text/richtxt', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/mspowerpoint', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/octet-stream', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/x-zip-compressed', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/x-zip', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/zip', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/tiff', 1);
INSERT INTO `odm_filetypes` VALUES (NUll, 'image/tif', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.ms-powerpoint', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.ms-excel', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.chart', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.chart-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.formula', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.formula-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.graphics', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.graphics-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.image', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.image-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.presentation', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.presentation-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.spreadsheet', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.spreadsheet-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.text', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.text-master', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.text-template', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'application/vnd.oasis.opendocument.text-web', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'text/csv', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'audio/mpeg', 0);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/x-dwg', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/x-dfx', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'drawing/x-dwf', 1);
INSERT INTO `odm_filetypes` VALUES (NULL, 'image/svg', 1);
Приложение 3. Информация о пользователях
<? php
//User_class.php - информация о пользователях
if (! defined('User_class'))
{
define ('User_class', 'true', false);
class User extends databaseData
{
var $root_id;
var $id;
var $username;
var $first_name;
var $last_name;
var $email;
var $phone;
var $department;
var $pw_reset_code;
var $can_add;
var $can_checkin;
* @param int $id
* @param PDO $connection
function User ($id, PDO $connection)
{
$this->root_id = $GLOBALS['CONFIG'] ['root_id'];
$this->field_name = 'username';
$this->field_id = 'id';
$this->tablename = $GLOBALS['CONFIG'] ['db_prefix']. $this->TABLE_USER;
$this->result_limit = 1; //there is only 1 user with a certain user_name or user_id
databaseData:setTableName ($this->TABLE_USER);
databaseData:databaseData ($id, $connection);
$query = »
SELECT
id,
username,
department,
phone,
email,
last_name,
first_name,
pw_reset_code,
can_add,
can_checkin
FROM
{$GLOBALS['CONFIG'] ['db_prefix']} user
WHERE
id =:id»;
$stmt = $connection->prepare($query);
$stmt->execute (array(':id' => $this->id));
$result = $stmt->fetch();
list (
$this->id,
$this->username,
$this->department,
$this->phone,
$this->email,
$this->last_name,
$this->first_name,
$this->pw_reset_code,
$this->can_add,
$this->can_checkin
) = $result;
}
/**
* Return department name for current user
* @return string
*/
function getDeptName()
{
$query = »
SELECT
d.name
FROM
{$GLOBALS['CONFIG'] ['db_prefix']} department d,
{$GLOBALS['CONFIG'] ['db_prefix']} user u
WHERE
u.id =:id
AND
u.department = d.id»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
$result = $stmt->fetchColumn();
return $result;
}
/*
* Return department ID for current user
* @return string
*/
function getDeptId()
{
return $this->department;
}
/*
* Return an array of publishable documents
* @return array
* @param object $publishable
*/
function getPublishedData($publishable)
{
$data_published = array();
$index = 0;
$query = »
SELECT
d.id
FROM
{$GLOBALS['CONFIG'] ['db_prefix']} data d,
{$GLOBALS['CONFIG'] ['db_prefix']} user u
WHERE
d.owner =:id
AND
u.id = d.owner
AND
d.publishable =:publishable»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':publishable' => $publishable,
':id' => $this->id
));
$result = $stmt->fetchAll();
foreach ($result as $row) {
$data_published[$index] = $row;
$index++;
}
return $data_published;
}
/**
* Check whether user from object has Admin rights
* @return Boolean
*/
function isAdmin()
{
if ($this->isRoot())
{
return true;
}
$query = »
SELECT
admin
FROM
{$GLOBALS['CONFIG'] ['db_prefix']} admin
WHERE
id =:id
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
$result = $stmt->fetchColumn();
if ($stmt->rowCount()!=1)
{
return false;
}
return $result;
}
/**
* Check whether user from object is root
* @return bool
*/
function isRoot()
{
return ($this->root_id == $this->getId());
}
/**
* @return boolean
*/
function canAdd()
{
if ($this->isAdmin()) {
return true;
}
if ($this->can_add) {
return true;
}
return false;
}
/**
* @return boolean
*/
function canCheckIn()
{
if ($this->isAdmin()) {
return true;
}
if ($this->can_checkin) {
return true;
}
return false;
}
/**
* @return string
*/
function getPassword()
{
$query = »
SELECT
password
FROM
$this->tablename
WHERE
id =:id
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(':id' => $this->id));
$result = $stmt->fetchColumn();
if ($stmt->rowCount()!=1)
{
header ('Location:'. $GLOBALS['CONFIG'] ['base_url']. 'error.php? ec=14');
exit;
}
return $result;
}
/**
* @param string $non_encrypted_password
* @return bool
*/
function changePassword ($non_encrypted_password)
{
$query = »
UPDATE
$this->tablename
SET
password = md5 (:non_encrypted_password)
WHERE
id =:id
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':non_encrypted_password'=> $non_encrypted_password,
':id' => $this->id
));
return true;
}
/**
* @param string $non_encrypted_password
* @return bool
*/
function validatePassword ($non_encrypted_password)
{
$query = »
SELECT
username
FROM
$this->tablename
WHERE
id =:id
AND
password = md5 (:non_encrypted_password)
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':non_encrypted_password' => $non_encrypted_password,
':id' => $this->id
));
if ($stmt->rowCount() == 1) {
return true;
} else {
// Check the old password() style user password
$query = »
SELECT
username
FROM
$this->tablename
WHERE
id =:id
AND
password = password (:non_encrypted_password)
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':non_encrypted_password'=> $non_encrypted_password,
':id' => $this->id
));
if ($stmt->rowCount() == 1) {
return true;
}
}
return false;
}
/**
* @param string $new_name
* @return bool
*/
function changeName ($new_name)
{
$query = »
UPDATE
$this->tablename
SET
username =:new_name
WHERE
id =:id
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':new_name' => $new_name,
':id' => $this->id
));
return true;
}
/**
* Determine if the current user is a reviewer or not
* @return boolean
*/
function isReviewer()
{
// If they are an admin, they can review
if ($this->isAdmin()) {
return true;
}
// Lets see if this non-admin user has a department they can review for, if so, they are a reviewer
$query = »
SELECT
dept_id
FROM
{$GLOBALS['CONFIG'] ['db_prefix']} dept_reviewer
WHERE
user_id =:id
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
if ($stmt->rowCount() > 0) {
return true;
} else {
return false;
}
}
/**
* Determine if the current user is a reviewer for a specific ID
* @param int $file_id
* @return boolean
*/
function isReviewerForFile ($file_id)
{
$query = «SELECT
d.id
FROM
{$GLOBALS['CONFIG'] ['db_prefix']} data as d,
{$GLOBALS['CONFIG'] ['db_prefix']} dept_reviewer as dr
WHERE
dr.dept_id = d.department AND
dr.user_id =:user_id AND
d.department = dr.dept_id AND
d.id =:file_id
«;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':user_id' => $this->id,
':file_id' => $file_id
));
$num_rows = $stmt->rowCount();
if ($num_rows < 1)
{
return false;
}
return true;
}
/**
* this functions assume that you are an admin thus allowing you to review all departments
* @return array
*/
function getAllRevieweeIds()
{
if ($this->isAdmin())
{
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']}$this->TABLE_DATA WHERE publishable = 0»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array());
$result = $stmt->fetchAll();
$file_data = array();
$index = 0;
foreach ($result as $row) {
$file_data[$index] = $row[0];
$index++;
}
return $file_data;
}
}
/**
* getRevieweeIds - Return an array of files that need reviewing under this person
* @return array
*/
function getRevieweeIds()
{
if ($this->isReviewer())
{
// Which departments can this user review?
$query = «SELECT dept_id FROM {$GLOBALS['CONFIG'] ['db_prefix']}$this->TABLE_DEPT_REVIEWER WHERE user_id =:id»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
$result = $stmt->fetchAll();
$num_depts = $stmt->rowCount();
$index = 0;
// Build the query
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']} data WHERE (»;
foreach ($result as $row) {
$dept = $row ['dept_id'];
if ($index!= $num_depts -1)
{
$query = $query. «department =:dept OR»;
}
else
(
$query = $query. «department =:dept)»;
}
$index++;
}
$query = $query. «AND publishable = 0»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(':dept' => $dept));
$result = $stmt->fetchAll();
$file_data = array();
$num_files = $stmt->rowCount();
for ($index = 0; $index< $num_files; $index++)
{
$fid = $result[$index] ['id'];
$file_data[$index] = $fid;
}
return $file_data;
}
}
/**
* @return array
*/
function getAllRejectedFileIds()
{
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']}$this->TABLE_DATA WHERE publishable = '-1'»;
$stmt = $this->connection->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
$file_data = array();
$num_files = $stmt->rowCount();
for ($index = 0; $index< $num_files; $index++)
{
list($fid) = $result[$index];
$file_data[$index] = $fid;
}
return $file_data;
}
/**
* @return array
*/
function getRejectedFileIds()
{
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']} data WHERE publishable = '-1' and owner =:id»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
$result = $stmt->fetchAll();
$file_data = array();
$num_files = $stmt->rowCount();
for ($index = 0; $index< $num_files; $index++)
{
list($fid) = $result[$index];
$file_data[$index] = $fid;
}
return $file_data;
}
/**
* @return array
*/
function getExpiredFileIds()
{
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']} data WHERE status = -1 AND owner =:id»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
$result = $stmt->fetchAll();
$len = $stmt->rowCount();
$file_data = array();
for ($index = 0; $index< $len; $index++)
{
list($fid) = $result[$index];
$file_data[$index] = $fid;
}
return $file_data;
}
/**
* @return int
*/
function getNumExpiredFiles()
{
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']} data WHERE status =- 1 AND owner =:id»;
$stmt = $this->connection->prepare($query);
$stmt->execute (array(
':id' => $this->id
));
return $stmt->rowCount();
}
/**
* @return mixed
*/
function getEmailAddress()
{
return $this->email;
}
/**
* @return mixed
*/
function getPhoneNumber()
{
return $this->phone;
}
/**
* /Return full name array where array[0]=firstname and array[1]=lastname
* @return mixed
*/
function getFullName()
{
$full_name[0] = $this->first_name;
$full_name[1] = $this->last_name;
return $full_name;
}
/**
* Return username of current user
* @return mixed
*/
function getUserName()
{
return $this->username;
}
/**
* Return list of checked out files to root
* @return array
*/
function getCheckedOutFiles()
{
if ($this->isRoot())
{
$query = «SELECT id FROM {$GLOBALS['CONFIG'] ['db_prefix']} data WHERE status > 0»;
$stmt = $this->connection->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
$len = $stmt->rowCount();
$file_data = array();
for ($index = 0; $index < $len; $index++)
{
list($fid) = $result[$index];
$file_data[$index] = $fid;
}
return $file_data;
}
}
/**
* getAllUsers - Returns an array of all the active users
* @param $pdo
* @return array
*/
public static function getAllUsers($pdo)
{
$query = «SELECT id, last_name, first_name FROM {$GLOBALS['CONFIG'] ['db_prefix']} user ORDER BY last_name»;
$stmt = $pdo->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
foreach ($result as $row) {
$userListArray[] = $row;
}
return $userListArray;
}
}
}
Размещено на Allbest.ru
Подобные документы
Выбор и обоснование выбора среды разработки. Разработка алгоритма работы программы, проектирование системы меню. Общее описание программы: назначение и область применения, интерфейс, требования к аппаратным и программным ресурсам, тестирование и листинг.
курсовая работа [543,2 K], добавлен 20.05.2013Общее описание разрабатываемого программного обеспечения, требования к его функциональности и сферы практического применения. Выбор инструментальных средств разработки. Проектирование структур баз данных и алгоритмов, пользовательского интерфейса.
дипломная работа [3,1 M], добавлен 19.01.2017Создание тестовой программы на определение доминирующего полушария мозга у человека с применением наиболее распространенного языка Visual Basic for Applications. Выбор технических и программных средств. Интерфейс программы, ее тестирование и листинг.
курсовая работа [222,5 K], добавлен 08.01.2015Разработка системы автоматизированного управления электронными документами. Сведения о приложении PHPMyAdmin, об обработчике шаблонов Smarty. Создание базы данных. Редактирование документа, просмотр изменений документов. Создание категорий документов.
дипломная работа [3,2 M], добавлен 25.07.2015Изучение области применения комплекса для проведения имитационных испытаний микропроцессорных систем железнодорожной автоматики на функциональную безопасность. Разработка программного обеспечения модуля управления и отладки. Тестирование системы команд.
курсовая работа [1,1 M], добавлен 22.11.2014Общая характеристика и анализ требований к разрабатываемому приложению, функциональные особенности и сферы практического применения. Проектирование базы данных и выбор системы управления ею. Тестирование приложения и выбор языка программирования.
дипломная работа [791,8 K], добавлен 10.07.2017Проектирование структуры программы, принцип ее работы, сферы практического использования и оценка возможностей. Выбор и обоснование среды программирования. Разработка пользовательского интерфейса и модулей приложения. Проведение тестирования программы.
курсовая работа [637,7 K], добавлен 14.01.2015Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования.
дипломная работа [1,0 M], добавлен 15.06.2014Обоснование необходимости разработки виртуального магазина. Описание форм программы. Требования к аппаратному и программному обеспечению. Тестирование и выявление ошибок. Область применения программы. Расчет экономического эффекта проекта. Охрана труда.
дипломная работа [1,7 M], добавлен 20.12.2012Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.
дипломная работа [1,4 M], добавлен 03.06.2014