mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 01:42:17 +00:00
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
/**
|
||||
* author: maximilian schremser <max@technikum-wien.at>
|
||||
* date:
|
||||
* title: Authorization.class.php
|
||||
* manual: $auth = new Authorization($uid, $course_id, $semester, $lesson);
|
||||
*
|
||||
* Tries to login a user as a student, if fails, it tries
|
||||
* to login as a teacher.
|
||||
* returns 0 for student
|
||||
* 1 for teacher
|
||||
* -1 on error
|
||||
* holt den firstname, lastname, uid und id des Benutzers
|
||||
*/
|
||||
class Authorization
|
||||
{
|
||||
var $firstname;
|
||||
var $lastname;
|
||||
var $id;
|
||||
var $uid;
|
||||
var $stg_id;
|
||||
var $semester;
|
||||
var $verband;
|
||||
var $gruppe;
|
||||
var $isLector;
|
||||
var $module;
|
||||
var $lehrfach;
|
||||
var $date;
|
||||
var $session;
|
||||
var $birthday;
|
||||
|
||||
function Authorization($uid ="", $course_id = 0, $semester = 0, $lesson = "",$conn="")
|
||||
{
|
||||
$this->isLector = -1;
|
||||
$this->module = 0;
|
||||
|
||||
if ($uid == "oesi" || $uid == "kates")
|
||||
{
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $course_id;
|
||||
$this->lehrfach = $lesson;
|
||||
$this->semester = $semester;
|
||||
$this->isLector = 1;
|
||||
return $this->isLector;
|
||||
}
|
||||
|
||||
// try to looon as a student
|
||||
$sql = "SELECT * ".
|
||||
"FROM tbl_student JOIN tbl_person USING (uid) WHERE
|
||||
uid = '$uid' AND studiengang_kz = $course_id
|
||||
AND semester >= $semester";
|
||||
|
||||
$rs = new pgRS($conn,$sql);
|
||||
|
||||
if ($rs->num > 0)
|
||||
{
|
||||
$this->firstname = $rs->arr[0]["vornamen"];
|
||||
$this->lastname = $rs->arr[0]["nachname"];
|
||||
//$this->id = $rs->arr[0]["id"];
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $rs->arr[0]["studiengang_kz"];
|
||||
$this->semester = $rs->arr[0]["semester"];
|
||||
$this->verband = $rs->arr[0]["verband"];
|
||||
$this->gruppe = $rs->arr[0]["gruppe"];
|
||||
$this->birthday = $rs->arr[0]["gebdatum"];
|
||||
$this->isLector = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* oesi 17-01-2005
|
||||
$sql = "SELECT * FROM lehre.tbl_lehrfachzuteilung JOIN tbl_person ON
|
||||
(lektor_uid = uid) WHERE lektor_uid = '$uid' AND
|
||||
lehrfachzuteilung_kurzbz = '$lesson' AND
|
||||
semester = $semester AND studiengang_kz = $course_id LIMIT 1";
|
||||
*/
|
||||
$sql = "SELECT * FROM tbl_lehrveranstaltung, tbl_lehrfach, tbl_person WHERE
|
||||
tbl_lehrveranstaltung.lehrfach_nr=tbl_lehrfach.lehrfach_nr AND
|
||||
tbl_person.uid=lektor AND lektor='$uid' AND
|
||||
tbl_lehrfach.studiengang_kz=$course_id AND
|
||||
tbl_lehrfach.semester=$semester AND lehrevz='$lesson' LIMIT 1";
|
||||
|
||||
$rs = new pgRS($conn,$sql);
|
||||
if ($rs->num > 0)
|
||||
{
|
||||
$this->firstname = $rs->arr[0]["vornamen"];
|
||||
$this->lastname = $rs->arr[0]["nachname"];
|
||||
$this->birthday = $rs->arr[0]["gebdatum"];
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $course_id;
|
||||
$this->lehrfach = $lesson;
|
||||
$this->semester = $semester;
|
||||
$this->isLector = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
//$sql = "SELECT DISTINCT tbl_person.uid FROM public.tbl_person, lehre.tbl_lehrfachzuteilung WHERE tbl_person.uid='$uid' AND tbl_lehrfachzuteilung.lektor_uid=tbl_person.uid AND studiengang_kz='$course_id' UNION SELECT DISTINCT tbl_person.uid FROM public.tbl_person, public.tbl_personfunktion WHERE tbl_person.uid='$uid' AND tbl_personfunktion.uid=tbl_person.uid AND studiengang_kz='$course_id' LIMIT 1";
|
||||
$sql = "SELECT vornamen, nachname, gebdatum FROM public.tbl_person, tbl_lehrveranstaltung
|
||||
WHERE tbl_person.uid='$uid' AND tbl_lehrveranstaltung.lektor=tbl_person.uid AND
|
||||
studiengang_kz='$course_id'
|
||||
UNION
|
||||
SELECT vornamen, nachname, gebdatum FROM public.tbl_person, public.tbl_personfunktion
|
||||
WHERE tbl_person.uid='$uid' AND tbl_personfunktion.uid=tbl_person.uid AND
|
||||
studiengang_kz='$course_id' LIMIT 1";
|
||||
|
||||
$rs = new pgRS($conn,$sql);
|
||||
|
||||
if ($rs->num > 0)
|
||||
{
|
||||
$this->firstname = $rs->arr[0]["vornamen"];
|
||||
$this->lastname = $rs->arr[0]["nachname"];
|
||||
$this->birthday = $rs->arr[0]["gebdatum"];
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $course_id;
|
||||
$this->lehrfach = $lesson;
|
||||
$this->semester = $semester;
|
||||
$this->isLector = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->isLector;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,237 @@
|
||||
<?php
|
||||
/*
|
||||
* Module written/ported by Xavier Noguer <xnoguer@php.net>
|
||||
*
|
||||
* The majority of this is _NOT_ my code. I simply ported it from the
|
||||
* PERL Spreadsheet::WriteExcel module.
|
||||
*
|
||||
* The author of the Spreadsheet::WriteExcel module is John McNamara
|
||||
* <jmcnamara@cpan.org>
|
||||
*
|
||||
* I _DO_ maintain this code, and John McNamara has nothing to do with the
|
||||
* porting of this code to PHP. Any questions directly related to this
|
||||
* class library should be directed to me.
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
* Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
|
||||
* Copyright (c) 2002-2003 Xavier Noguer xnoguer@php.net
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Class for writing Excel BIFF records.
|
||||
*
|
||||
* From "MICROSOFT EXCEL BINARY FILE FORMAT" by Mark O'Brien (Microsoft Corporation):
|
||||
*
|
||||
* BIFF (BInary File Format) is the file format in which Excel documents are
|
||||
* saved on disk. A BIFF file is a complete description of an Excel document.
|
||||
* BIFF files consist of sequences of variable-length records. There are many
|
||||
* different types of BIFF records. For example, one record type describes a
|
||||
* formula entered into a cell; one describes the size and location of a
|
||||
* window into a document; another describes a picture format.
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category FileFormats
|
||||
* @package Spreadsheet_Excel_Writer
|
||||
*/
|
||||
|
||||
class Spreadsheet_Excel_Writer_BIFFwriter extends PEAR
|
||||
{
|
||||
/**
|
||||
* The BIFF/Excel version (5).
|
||||
* @var integer
|
||||
*/
|
||||
var $_BIFF_version = 0x0500;
|
||||
|
||||
/**
|
||||
* The byte order of this architecture. 0 => little endian, 1 => big endian
|
||||
* @var integer
|
||||
*/
|
||||
var $_byte_order;
|
||||
|
||||
/**
|
||||
* The string containing the data of the BIFF stream
|
||||
* @var string
|
||||
*/
|
||||
var $_data;
|
||||
|
||||
/**
|
||||
* The size of the data in bytes. Should be the same as strlen($this->_data)
|
||||
* @var integer
|
||||
*/
|
||||
var $_datasize;
|
||||
|
||||
/**
|
||||
* The maximun length for a BIFF record. See _addContinue()
|
||||
* @var integer
|
||||
* @see _addContinue()
|
||||
*/
|
||||
var $_limit;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function Spreadsheet_Excel_Writer_BIFFwriter()
|
||||
{
|
||||
$this->_byte_order = '';
|
||||
$this->_data = '';
|
||||
$this->_datasize = 0;
|
||||
$this->_limit = 2080;
|
||||
// Set the byte order
|
||||
$this->_setByteOrder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the byte order and store it as class data to avoid
|
||||
* recalculating it for each call to new().
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _setByteOrder()
|
||||
{
|
||||
// Check if "pack" gives the required IEEE 64bit float
|
||||
$teststr = pack("d", 1.2345);
|
||||
$number = pack("C8", 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F);
|
||||
if ($number == $teststr) {
|
||||
$byte_order = 0; // Little Endian
|
||||
} elseif ($number == strrev($teststr)){
|
||||
$byte_order = 1; // Big Endian
|
||||
} else {
|
||||
// Give up. I'll fix this in a later version.
|
||||
return $this->raiseError("Required floating point format ".
|
||||
"not supported on this platform.");
|
||||
}
|
||||
$this->_byte_order = $byte_order;
|
||||
}
|
||||
|
||||
/**
|
||||
* General storage function
|
||||
*
|
||||
* @param string $data binary data to prepend
|
||||
* @access private
|
||||
*/
|
||||
function _prepend($data)
|
||||
{
|
||||
if (strlen($data) > $this->_limit) {
|
||||
$data = $this->_addContinue($data);
|
||||
}
|
||||
$this->_data = $data.$this->_data;
|
||||
$this->_datasize += strlen($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* General storage function
|
||||
*
|
||||
* @param string $data binary data to append
|
||||
* @access private
|
||||
*/
|
||||
function _append($data)
|
||||
{
|
||||
if (strlen($data) > $this->_limit) {
|
||||
$data = $this->_addContinue($data);
|
||||
}
|
||||
$this->_data = $this->_data.$data;
|
||||
$this->_datasize += strlen($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes Excel BOF record to indicate the beginning of a stream or
|
||||
* sub-stream in the BIFF file.
|
||||
*
|
||||
* @param integer $type Type of BIFF file to write: 0x0005 Workbook,
|
||||
* 0x0010 Worksheet.
|
||||
* @access private
|
||||
*/
|
||||
function _storeBof($type)
|
||||
{
|
||||
$record = 0x0809; // Record identifier
|
||||
|
||||
// According to the SDK $build and $year should be set to zero.
|
||||
// However, this throws a warning in Excel 5. So, use magic numbers.
|
||||
if ($this->_BIFF_version == 0x0500) {
|
||||
$length = 0x0008;
|
||||
$unknown = '';
|
||||
$build = 0x096C;
|
||||
$year = 0x07C9;
|
||||
} elseif ($this->_BIFF_version == 0x0600) {
|
||||
$length = 0x0010;
|
||||
$unknown = pack("VV", 0x00000041, 0x00000006); //unknown last 8 bytes for BIFF8
|
||||
$build = 0x0DBB;
|
||||
$year = 0x07CC;
|
||||
}
|
||||
$version = $this->_BIFF_version;
|
||||
|
||||
$header = pack("vv", $record, $length);
|
||||
$data = pack("vvvv", $version, $type, $build, $year);
|
||||
$this->_prepend($header . $data . $unknown);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes Excel EOF record to indicate the end of a BIFF stream.
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _storeEof()
|
||||
{
|
||||
$record = 0x000A; // Record identifier
|
||||
$length = 0x0000; // Number of bytes to follow
|
||||
$header = pack("vv", $record, $length);
|
||||
$this->_append($header);
|
||||
}
|
||||
|
||||
/**
|
||||
* Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In
|
||||
* Excel 97 the limit is 8228 bytes. Records that are longer than these limits
|
||||
* must be split up into CONTINUE blocks.
|
||||
*
|
||||
* This function takes a long BIFF record and inserts CONTINUE records as
|
||||
* necessary.
|
||||
*
|
||||
* @param string $data The original binary data to be written
|
||||
* @return string A very convenient string of continue blocks
|
||||
* @access private
|
||||
*/
|
||||
function _addContinue($data)
|
||||
{
|
||||
$limit = $this->_limit;
|
||||
$record = 0x003C; // Record identifier
|
||||
|
||||
// The first 2080/8224 bytes remain intact. However, we have to change
|
||||
// the length field of the record.
|
||||
$tmp = substr($data, 0, 2).pack("v", $limit-4).substr($data, 4, $limit - 4);
|
||||
|
||||
$header = pack("vv", $record, $limit); // Headers for continue records
|
||||
|
||||
// Retrieve chunks of 2080/8224 bytes +4 for the header.
|
||||
$data_length = strlen($data);
|
||||
for ($i = $limit; $i < ($data_length - $limit); $i += $limit) {
|
||||
$tmp .= $header;
|
||||
$tmp .= substr($data, $i, $limit);
|
||||
}
|
||||
|
||||
// Retrieve the last chunk of data
|
||||
$header = pack("vv", $record, strlen($data) - $i);
|
||||
$tmp .= $header;
|
||||
$tmp .= substr($data, $i, strlen($data) - $i);
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: File.php,v 1.8 2003/12/12 21:10:10 xnoguer Exp $
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for creating File PPS's for OLE containers
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE_PPS_File extends OLE_PPS
|
||||
{
|
||||
/**
|
||||
* The temporary dir for storing the OLE file
|
||||
* @var string
|
||||
*/
|
||||
var $_tmp_dir;
|
||||
|
||||
/**
|
||||
* The constructor
|
||||
*
|
||||
* @access public
|
||||
* @param string $name The name of the file (in Unicode)
|
||||
* @see OLE::Asc2Ucs()
|
||||
*/
|
||||
function OLE_PPS_File($name)
|
||||
{
|
||||
$this->_tmp_dir = '';
|
||||
$this->OLE_PPS(
|
||||
null,
|
||||
$name,
|
||||
OLE_PPS_TYPE_FILE,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
'',
|
||||
array());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the temp dir used for storing the OLE file
|
||||
*
|
||||
* @access public
|
||||
* @param string $dir The dir to be used as temp dir
|
||||
* @return true if given dir is valid, false otherwise
|
||||
*/
|
||||
function setTempDir($dir)
|
||||
{
|
||||
if (is_dir($dir)) {
|
||||
$this->_tmp_dir = $dir;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialization method. Has to be called right after OLE_PPS_File().
|
||||
*
|
||||
* @access public
|
||||
* @return mixed true on success. PEAR_Error on failure
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
$this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_File");
|
||||
$fh = @fopen($this->_tmp_filename, "w+b");
|
||||
if ($fh == false) {
|
||||
return $this->raiseError("Can't create temporary file");
|
||||
}
|
||||
$this->_PPS_FILE = $fh;
|
||||
if ($this->_PPS_FILE) {
|
||||
fseek($this->_PPS_FILE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Append data to PPS
|
||||
*
|
||||
* @access public
|
||||
* @param string $data The data to append
|
||||
*/
|
||||
function append($data)
|
||||
{
|
||||
if ($this->_PPS_FILE) {
|
||||
fwrite($this->_PPS_FILE, $data);
|
||||
}
|
||||
else {
|
||||
$this->_data .= $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,408 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: OLE.php,v 1.7 2003/08/21 15:15:40 xnoguer Exp $
|
||||
|
||||
|
||||
/**
|
||||
* Constants for OLE package
|
||||
*/
|
||||
define('OLE_PPS_TYPE_ROOT', 5);
|
||||
define('OLE_PPS_TYPE_DIR', 1);
|
||||
define('OLE_PPS_TYPE_FILE', 2);
|
||||
define('OLE_DATA_SIZE_SMALL', 0x1000);
|
||||
define('OLE_LONG_INT_SIZE', 4);
|
||||
define('OLE_PPS_SIZE', 0x80);
|
||||
|
||||
|
||||
/**
|
||||
* OLE package base class.
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE extends PEAR
|
||||
{
|
||||
/**
|
||||
* The file handle for reading an OLE container
|
||||
* @var resource
|
||||
*/
|
||||
var $_file_handle;
|
||||
|
||||
/**
|
||||
* Array of PPS's found on the OLE container
|
||||
* @var array
|
||||
*/
|
||||
var $_list;
|
||||
|
||||
/**
|
||||
* Creates a new OLE object
|
||||
* Remember to use ampersand when creating an OLE object ($my_ole =& new OLE();)
|
||||
* @access public
|
||||
*/
|
||||
function OLE()
|
||||
{
|
||||
$this->_list = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads an OLE container from the contents of the file given.
|
||||
*
|
||||
* @acces public
|
||||
* @param string $file
|
||||
* @return mixed true on success, PEAR_Error on failure
|
||||
*/
|
||||
function read($file)
|
||||
{
|
||||
/* consider storing offsets as constants */
|
||||
$big_block_size_offset = 30;
|
||||
$iBdbCnt_offset = 44;
|
||||
$bd_start_offset = 68;
|
||||
|
||||
$fh = @fopen($file, "r");
|
||||
if ($fh == false) {
|
||||
return $this->raiseError("Can't open file $file");
|
||||
}
|
||||
$this->_file_handle = $fh;
|
||||
|
||||
/* begin reading OLE attributes */
|
||||
fseek($fh, 0);
|
||||
$signature = fread($fh, 8);
|
||||
if ("\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" != $signature) {
|
||||
return $this->raiseError("File doesn't seem to be an OLE container.");
|
||||
}
|
||||
fseek($fh, $big_block_size_offset);
|
||||
$packed_array = unpack("v", fread($fh, 2));
|
||||
$big_block_size = pow(2, $packed_array['']);
|
||||
|
||||
$packed_array = unpack("v", fread($fh, 2));
|
||||
$small_block_size = pow(2, $packed_array['']);
|
||||
$i1stBdL = ($big_block_size - 0x4C) / OLE_LONG_INT_SIZE;
|
||||
|
||||
fseek($fh, $iBdbCnt_offset);
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$iBdbCnt = $packed_array[''];
|
||||
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$pps_wk_start = $packed_array[''];
|
||||
|
||||
fseek($fh, $bd_start_offset);
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$bd_start = $packed_array[''];
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$bd_count = $packed_array[''];
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$iAll = $packed_array['']; // this may be wrong
|
||||
/* create OLE_PPS objects from */
|
||||
$ret = $this->_readPpsWks($pps_wk_start, $big_block_size);
|
||||
if (PEAR::isError($ret)) {
|
||||
return $ret;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructor (using PEAR)
|
||||
* Just closes the file handle on the OLE file.
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _OLE()
|
||||
{
|
||||
fclose($this->_file_handle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets information about all PPS's on the OLE container from the PPS WK's
|
||||
* creates an OLE_PPS object for each one.
|
||||
*
|
||||
* @access private
|
||||
* @param integer $pps_wk_start Position inside the OLE file where PPS WK's start
|
||||
* @param integer $big_block_size Size of big blobks in the OLE file
|
||||
* @return mixed true on success, PEAR_Error on failure
|
||||
*/
|
||||
function _readPpsWks($pps_wk_start, $big_block_size)
|
||||
{
|
||||
$pointer = ($pps_wk_start + 1) * $big_block_size;
|
||||
while (1)
|
||||
{
|
||||
fseek($this->_file_handle, $pointer);
|
||||
$pps_wk = fread($this->_file_handle, OLE_PPS_SIZE);
|
||||
if (strlen($pps_wk) != OLE_PPS_SIZE) {
|
||||
break; // Excel likes to add a trailing byte sometimes
|
||||
//return $this->raiseError("PPS at $pointer seems too short: ".strlen($pps_wk));
|
||||
}
|
||||
$name_length = unpack("c", substr($pps_wk, 64, 2)); // FIXME (2 bytes??)
|
||||
$name_length = $name_length[''] - 2;
|
||||
$name = substr($pps_wk, 0, $name_length);
|
||||
$type = unpack("c", substr($pps_wk, 66, 1));
|
||||
if (($type[''] != OLE_PPS_TYPE_ROOT) and
|
||||
($type[''] != OLE_PPS_TYPE_DIR) and
|
||||
($type[''] != OLE_PPS_TYPE_FILE))
|
||||
{
|
||||
return $this->raiseError("PPS at $pointer has unknown type: {$type['']}");
|
||||
}
|
||||
$prev = unpack("V", substr($pps_wk, 68, 4));
|
||||
$next = unpack("V", substr($pps_wk, 72, 4));
|
||||
$dir = unpack("V", substr($pps_wk, 76, 4));
|
||||
// there is no magic number, it can take different values.
|
||||
//$magic = unpack("V", strrev(substr($pps_wk, 92, 4)));
|
||||
$time_1st = substr($pps_wk, 100, 8);
|
||||
$time_2nd = substr($pps_wk, 108, 8);
|
||||
$start_block = unpack("V", substr($pps_wk, 116, 4));
|
||||
$size = unpack("V", substr($pps_wk, 120, 4));
|
||||
// _data member will point to position in file!!
|
||||
// OLE_PPS object is created with an empty children array!!
|
||||
$this->_list[] = new OLE_PPS(null, '', $type[''], $prev[''], $next[''],
|
||||
$dir[''], OLE::OLE2LocalDate($time_1st),
|
||||
OLE::OLE2LocalDate($time_2nd),
|
||||
($start_block[''] + 1) * $big_block_size, array());
|
||||
// give it a size
|
||||
$this->_list[count($this->_list) - 1]->Size = $size[''];
|
||||
// check if the PPS tree (starting from root) is complete
|
||||
if ($this->_ppsTreeComplete(0)) {
|
||||
break;
|
||||
}
|
||||
$pointer += OLE_PPS_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* It checks whether the PPS tree is complete (all PPS's read)
|
||||
* starting with the given PPS (not necessarily root)
|
||||
*
|
||||
* @access private
|
||||
* @param integer $index The index of the PPS from which we are checking
|
||||
* @return boolean Whether the PPS tree for the given PPS is complete
|
||||
*/
|
||||
function _ppsTreeComplete($index)
|
||||
{
|
||||
if ($this->_list[$index]->NextPps != -1) {
|
||||
if (!isset($this->_list[$this->_list[$index]->NextPps])) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return $this->_ppsTreeComplete($this->_list[$index]->NextPps);
|
||||
}
|
||||
}
|
||||
if ($this->_list[$index]->DirPps != -1) {
|
||||
if (!isset($this->_list[$this->_list[$index]->DirPps])) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return $this->_ppsTreeComplete($this->_list[$index]->DirPps);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a PPS is a File PPS or not.
|
||||
* If there is no PPS for the index given, it will return false.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS
|
||||
* @return bool true if it's a File PPS, false otherwise
|
||||
*/
|
||||
function isFile($index)
|
||||
{
|
||||
if (isset($this->_list[$index])) {
|
||||
return ($this->_list[$index]->Type == OLE_PPS_TYPE_FILE);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a PPS is a Root PPS or not.
|
||||
* If there is no PPS for the index given, it will return false.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS.
|
||||
* @return bool true if it's a Root PPS, false otherwise
|
||||
*/
|
||||
function isRoot($index)
|
||||
{
|
||||
if (isset($this->_list[$index])) {
|
||||
return ($this->_list[$index]->Type == OLE_PPS_TYPE_ROOT);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the total number of PPS's found in the OLE container.
|
||||
*
|
||||
* @access public
|
||||
* @return integer The total number of PPS's found in the OLE container
|
||||
*/
|
||||
function ppsTotal()
|
||||
{
|
||||
return count($this->_list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets data from a PPS
|
||||
* If there is no PPS for the index given, it will return an empty string.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS
|
||||
* @param integer $position The position from which to start reading
|
||||
* (relative to the PPS)
|
||||
* @param integer $length The amount of bytes to read (at most)
|
||||
* @return string The binary string containing the data requested
|
||||
*/
|
||||
function getData($index, $position, $length)
|
||||
{
|
||||
// if position is not valid return empty string
|
||||
if (!isset($this->_list[$index]) or ($position >= $this->_list[$index]->Size) or ($position < 0)) {
|
||||
return '';
|
||||
}
|
||||
// Beware!!! _data member is actually a position
|
||||
fseek($this->_file_handle, $this->_list[$index]->_data + $position);
|
||||
return fread($this->_file_handle, $length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data length from a PPS
|
||||
* If there is no PPS for the index given, it will return 0.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS
|
||||
* @return integer The amount of bytes in data the PPS has
|
||||
*/
|
||||
function getDataLength($index)
|
||||
{
|
||||
if (isset($this->_list[$index])) {
|
||||
return $this->_list[$index]->Size;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function to transform ASCII text to Unicode
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param string $ascii The ASCII string to transform
|
||||
* @return string The string in Unicode
|
||||
*/
|
||||
function Asc2Ucs($ascii)
|
||||
{
|
||||
$rawname = '';
|
||||
for ($i = 0; $i < strlen($ascii); $i++) {
|
||||
$rawname .= $ascii{$i}."\x00";
|
||||
}
|
||||
return $rawname;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function
|
||||
* Returns a string for the OLE container with the date given
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param integer $date A timestamp
|
||||
* @return string The string for the OLE container
|
||||
*/
|
||||
function LocalDate2OLE($date = null)
|
||||
{
|
||||
if (!isset($date)) {
|
||||
return "\x00\x00\x00\x00\x00\x00\x00\x00";
|
||||
}
|
||||
|
||||
// factor used for separating numbers into 4 bytes parts
|
||||
$factor = pow(2,32);
|
||||
|
||||
// days from 1-1-1601 until the beggining of UNIX era
|
||||
$days = 134774;
|
||||
// calculate seconds
|
||||
$big_date = $days*24*3600 + gmmktime(date("H",$date),date("i",$date),date("s",$date),
|
||||
date("m",$date),date("d",$date),date("Y",$date));
|
||||
// multiply just to make MS happy
|
||||
$big_date *= 10000000;
|
||||
|
||||
$high_part = floor($big_date/$factor);
|
||||
// lower 4 bytes
|
||||
$low_part = floor((($big_date/$factor) - $high_part)*$factor);
|
||||
|
||||
// Make HEX string
|
||||
$res = '';
|
||||
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$hex = $low_part % 0x100;
|
||||
$res .= pack('c', $hex);
|
||||
$low_part /= 0x100;
|
||||
}
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$hex = $high_part % 0x100;
|
||||
$res .= pack('c', $hex);
|
||||
$high_part /= 0x100;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a timestamp from an OLE container's date
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param integer $string A binary string with the encoded date
|
||||
* @return string The timestamp corresponding to the string
|
||||
*/
|
||||
function OLE2LocalDate($string)
|
||||
{
|
||||
if (strlen($string) != 8) {
|
||||
return new PEAR_Error("Expecting 8 byte string");
|
||||
}
|
||||
|
||||
// factor used for separating numbers into 4 bytes parts
|
||||
$factor = pow(2,32);
|
||||
$high_part = 0;
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$al = unpack('C', $string{(7 - $i)});
|
||||
$high_part += $al[''];
|
||||
if ($i < 3) {
|
||||
$high_part *= 0x100;
|
||||
}
|
||||
}
|
||||
$low_part = 0;
|
||||
for ($i=4; $i<8; $i++)
|
||||
{
|
||||
$al = unpack('C', $string{(7 - $i)});
|
||||
$low_part += $al[''];
|
||||
if ($i < 7) {
|
||||
$low_part *= 0x100;
|
||||
}
|
||||
}
|
||||
$big_date = ($high_part*$factor) + $low_part;
|
||||
// translate to seconds
|
||||
$big_date /= 10000000;
|
||||
|
||||
// days from 1-1-1601 until the beggining of UNIX era
|
||||
$days = 134774;
|
||||
|
||||
// translate to seconds from beggining of UNIX era
|
||||
$big_date -= $days*24*3600;
|
||||
return floor($big_date);
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: PPS.php,v 1.5 2003/12/14 18:12:28 xnoguer Exp $
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for creating PPS's for OLE containers
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE_PPS extends PEAR
|
||||
{
|
||||
/**
|
||||
* The PPS index
|
||||
* @var integer
|
||||
*/
|
||||
var $No;
|
||||
|
||||
/**
|
||||
* The PPS name (in Unicode)
|
||||
* @var string
|
||||
*/
|
||||
var $Name;
|
||||
|
||||
/**
|
||||
* The PPS type. Dir, Root or File
|
||||
* @var integer
|
||||
*/
|
||||
var $Type;
|
||||
|
||||
/**
|
||||
* The index of the previous PPS
|
||||
* @var integer
|
||||
*/
|
||||
var $PrevPps;
|
||||
|
||||
/**
|
||||
* The index of the next PPS
|
||||
* @var integer
|
||||
*/
|
||||
var $NextPps;
|
||||
|
||||
/**
|
||||
* The index of it's first child if this is a Dir or Root PPS
|
||||
* @var integer
|
||||
*/
|
||||
var $DirPps;
|
||||
|
||||
/**
|
||||
* A timestamp
|
||||
* @var integer
|
||||
*/
|
||||
var $Time1st;
|
||||
|
||||
/**
|
||||
* A timestamp
|
||||
* @var integer
|
||||
*/
|
||||
var $Time2nd;
|
||||
|
||||
/**
|
||||
* Starting block (small or big) for this PPS's data inside the container
|
||||
* @var integer
|
||||
*/
|
||||
var $_StartBlock;
|
||||
|
||||
/**
|
||||
* The size of the PPS's data (in bytes)
|
||||
* @var integer
|
||||
*/
|
||||
var $Size;
|
||||
|
||||
/**
|
||||
* The PPS's data (only used if it's not using a temporary file)
|
||||
* @var string
|
||||
*/
|
||||
var $_data;
|
||||
|
||||
/**
|
||||
* Array of child PPS's (only used by Root and Dir PPS's)
|
||||
* @var array
|
||||
*/
|
||||
var $children = array();
|
||||
|
||||
/**
|
||||
* The constructor
|
||||
*
|
||||
* @access public
|
||||
* @param integer $No The PPS index
|
||||
* @param string $name The PPS name (in Unicode)
|
||||
* @param integer $type The PPS type. Dir, Root or File
|
||||
* @param integer $prev The index of the previous PPS
|
||||
* @param integer $next The index of the next PPS
|
||||
* @param integer $dir The index of it's first child if this is a Dir or Root PPS
|
||||
* @param integer $time_1st A timestamp
|
||||
* @param integer $time_2nd A timestamp
|
||||
* @param array $children Array containing children PPS for this PPS
|
||||
*/
|
||||
function OLE_PPS($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children)
|
||||
{
|
||||
$this->No = $No;
|
||||
$this->Name = $name;
|
||||
$this->Type = $type;
|
||||
$this->PrevPps = $prev;
|
||||
$this->NextPps = $next;
|
||||
$this->DirPps = $dir;
|
||||
$this->Time1st = $time_1st;
|
||||
$this->Time2nd = $time_2nd;
|
||||
$this->_data = $data;
|
||||
$this->children = $children;
|
||||
if ($data != '') {
|
||||
$this->Size = strlen($data);
|
||||
}
|
||||
else {
|
||||
$this->Size = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the amount of data saved for this PPS
|
||||
*
|
||||
* @access private
|
||||
* @return integer The amount of data (in bytes)
|
||||
*/
|
||||
function _DataLen()
|
||||
{
|
||||
if (!isset($this->_data)) {
|
||||
return 0;
|
||||
}
|
||||
if (isset($this->_PPS_FILE))
|
||||
{
|
||||
fseek($this->_PPS_FILE, 0);
|
||||
$stats = fstat($this->_PPS_FILE);
|
||||
return $stats[7];
|
||||
}
|
||||
else {
|
||||
return strlen($this->_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string with the PPS's WK (What is a WK?)
|
||||
*
|
||||
* @access private
|
||||
* @return string The binary string
|
||||
*/
|
||||
function _getPpsWk()
|
||||
{
|
||||
$ret = $this->Name;
|
||||
for ($i = 0; $i < (64 - strlen($this->Name)); $i++) {
|
||||
$ret .= "\x00";
|
||||
}
|
||||
$ret .= pack("v", strlen($this->Name) + 2) // 66
|
||||
. pack("c", $this->Type) // 67
|
||||
. pack("c", 0x00) //UK // 68
|
||||
. pack("V", $this->PrevPps) //Prev // 72
|
||||
. pack("V", $this->NextPps) //Next // 76
|
||||
. pack("V", $this->DirPps) //Dir // 80
|
||||
. "\x00\x09\x02\x00" // 84
|
||||
. "\x00\x00\x00\x00" // 88
|
||||
. "\xc0\x00\x00\x00" // 92
|
||||
. "\x00\x00\x00\x46" // 96 // Seems to be ok only for Root
|
||||
. "\x00\x00\x00\x00" // 100
|
||||
. OLE::LocalDate2OLE($this->Time1st) // 108
|
||||
. OLE::LocalDate2OLE($this->Time2nd) // 116
|
||||
. pack("V", isset($this->_StartBlock)?
|
||||
$this->_StartBlock:0) // 120
|
||||
. pack("V", $this->Size) // 124
|
||||
. pack("V", 0); // 128
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates index and pointers to previous, next and children PPS's for this
|
||||
* PPS. I don't think it'll work with Dir PPS's.
|
||||
*
|
||||
* @access private
|
||||
* @param array &$pps_array Reference to the array of PPS's for the whole OLE
|
||||
* container
|
||||
* @return integer The index for this PPS
|
||||
*/
|
||||
function _savePpsSetPnt(&$pps_array)
|
||||
{
|
||||
$pps_array[count($pps_array)] = &$this;
|
||||
$this->No = count($pps_array) - 1;
|
||||
$this->PrevPps = 0xFFFFFFFF;
|
||||
$this->NextPps = 0xFFFFFFFF;
|
||||
if (count($this->children) > 0) {
|
||||
$this->DirPps = $this->children[0]->_savePpsSetPnt($pps_array);
|
||||
}
|
||||
else {
|
||||
$this->DirPps = 0xFFFFFFFF;
|
||||
}
|
||||
return $this->No;
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,518 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: Root.php,v 1.7 2003/12/12 21:10:10 xnoguer Exp $
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for creating Root PPS's for OLE containers
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE_PPS_Root extends OLE_PPS
|
||||
{
|
||||
/**
|
||||
* The temporary dir for storing the OLE file
|
||||
* @var string
|
||||
*/
|
||||
var $_tmp_dir;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @access public
|
||||
* @param integer $time_1st A timestamp
|
||||
* @param integer $time_2nd A timestamp
|
||||
*/
|
||||
function OLE_PPS_Root($time_1st, $time_2nd, $raChild)
|
||||
{
|
||||
$this->_tmp_dir = '';
|
||||
$this->OLE_PPS(
|
||||
null,
|
||||
OLE::Asc2Ucs('Root Entry'),
|
||||
OLE_PPS_TYPE_ROOT,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$time_1st,
|
||||
$time_2nd,
|
||||
null,
|
||||
$raChild);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the temp dir used for storing the OLE file
|
||||
*
|
||||
* @access public
|
||||
* @param string $dir The dir to be used as temp dir
|
||||
* @return true if given dir is valid, false otherwise
|
||||
*/
|
||||
function setTempDir($dir)
|
||||
{
|
||||
if (is_dir($dir)) {
|
||||
$this->_tmp_dir = $dir;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method for saving the whole OLE container (including files).
|
||||
* In fact, if called with an empty argument (or '-'), it saves to a
|
||||
* temporary file and then outputs it's contents to stdout.
|
||||
*
|
||||
* @param string $filename The name of the file where to save the OLE container
|
||||
* @access public
|
||||
* @return mixed true on success, PEAR_Error on failure
|
||||
*/
|
||||
function save($filename)
|
||||
{
|
||||
// Initial Setting for saving
|
||||
$this->_BIG_BLOCK_SIZE = pow(2,
|
||||
((isset($this->_BIG_BLOCK_SIZE))? $this->_adjust2($this->_BIG_BLOCK_SIZE) : 9));
|
||||
$this->_SMALL_BLOCK_SIZE= pow(2,
|
||||
((isset($this->_SMALL_BLOCK_SIZE))? $this->_adjust2($this->_SMALL_BLOCK_SIZE): 6));
|
||||
|
||||
// Open temp file if we are sending output to stdout
|
||||
if (($filename == '-') or ($filename == ''))
|
||||
{
|
||||
$this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_Root");
|
||||
$this->_FILEH_ = @fopen($this->_tmp_filename,"w+b");
|
||||
if ($this->_FILEH_ == false) {
|
||||
return $this->raiseError("Can't create temporary file.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_FILEH_ = @fopen($filename, "wb");
|
||||
if ($this->_FILEH_ == false) {
|
||||
return $this->raiseError("Can't open $filename. It may be in use or protected.");
|
||||
}
|
||||
}
|
||||
// Make an array of PPS's (for Save)
|
||||
$aList = array();
|
||||
$this->_savePpsSetPnt($aList);
|
||||
// calculate values for header
|
||||
list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo);
|
||||
// Save Header
|
||||
$this->_saveHeader($iSBDcnt, $iBBcnt, $iPPScnt);
|
||||
|
||||
// Make Small Data string (write SBD)
|
||||
$this->_data = $this->_makeSmallData($aList);
|
||||
|
||||
// Write BB
|
||||
$this->_saveBigData($iSBDcnt, $aList);
|
||||
// Write PPS
|
||||
$this->_savePps($aList);
|
||||
// Write Big Block Depot and BDList and Adding Header informations
|
||||
$this->_saveBbd($iSBDcnt, $iBBcnt, $iPPScnt);
|
||||
// Close File, send it to stdout if necessary
|
||||
if(($filename == '-') or ($filename == ''))
|
||||
{
|
||||
fseek($this->_FILEH_, 0);
|
||||
fpassthru($this->_FILEH_);
|
||||
@fclose($this->_FILEH_);
|
||||
// Delete the temporary file.
|
||||
@unlink($this->_tmp_filename);
|
||||
}
|
||||
else {
|
||||
@fclose($this->_FILEH_);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate some numbers
|
||||
*
|
||||
* @access private
|
||||
* @param array $raList Reference to an array of PPS's
|
||||
* @return array The array of numbers
|
||||
*/
|
||||
function _calcSize(&$raList)
|
||||
{
|
||||
// Calculate Basic Setting
|
||||
list($iSBDcnt, $iBBcnt, $iPPScnt) = array(0,0,0);
|
||||
$iSmallLen = 0;
|
||||
$iSBcnt = 0;
|
||||
for ($i = 0; $i < count($raList); $i++) {
|
||||
if($raList[$i]->Type == OLE_PPS_TYPE_FILE) {
|
||||
$raList[$i]->Size = $raList[$i]->_DataLen();
|
||||
if($raList[$i]->Size < OLE_DATA_SIZE_SMALL) {
|
||||
$iSBcnt += floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE)
|
||||
+ (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0);
|
||||
}
|
||||
else {
|
||||
$iBBcnt += (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) +
|
||||
(($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
$iSmallLen = $iSBcnt * $this->_SMALL_BLOCK_SIZE;
|
||||
$iSlCnt = floor($this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE);
|
||||
$iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt)? 1:0);
|
||||
$iBBcnt += (floor($iSmallLen / $this->_BIG_BLOCK_SIZE) +
|
||||
(( $iSmallLen % $this->_BIG_BLOCK_SIZE)? 1: 0));
|
||||
$iCnt = count($raList);
|
||||
$iBdCnt = $this->_BIG_BLOCK_SIZE / OLE_PPS_SIZE;
|
||||
$iPPScnt = (floor($iCnt/$iBdCnt) + (($iCnt % $iBdCnt)? 1: 0));
|
||||
|
||||
return array($iSBDcnt, $iBBcnt, $iPPScnt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function for caculating a magic value for block sizes
|
||||
*
|
||||
* @access private
|
||||
* @param integer $i2 The argument
|
||||
* @see save()
|
||||
* @return integer
|
||||
*/
|
||||
function _adjust2($i2)
|
||||
{
|
||||
$iWk = log($i2)/log(2);
|
||||
return ($iWk > floor($iWk))? floor($iWk)+1:$iWk;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save OLE header
|
||||
*
|
||||
* @access private
|
||||
* @param integer $iSBDcnt
|
||||
* @param integer $iBBcnt
|
||||
* @param integer $iPPScnt
|
||||
*/
|
||||
function _saveHeader($iSBDcnt, $iBBcnt, $iPPScnt)
|
||||
{
|
||||
$FILE = $this->_FILEH_;
|
||||
|
||||
// Calculate Basic Setting
|
||||
$iBlCnt = $this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE;
|
||||
$i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / OLE_LONG_INT_SIZE;
|
||||
|
||||
$iBdExL = 0;
|
||||
$iAll = $iBBcnt + $iPPScnt + $iSBDcnt;
|
||||
$iAllW = $iAll;
|
||||
$iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0);
|
||||
|
||||
// Calculate BD count
|
||||
if ($iBdCnt >$i1stBdL)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
$iBdExL++;
|
||||
$iAllW++;
|
||||
$iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0);
|
||||
if ($iBdCnt <= ($iBdExL*$iBlCnt+ $i1stBdL)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Save Header
|
||||
fwrite($FILE,
|
||||
"\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1"
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. pack("v", 0x3b)
|
||||
. pack("v", 0x03)
|
||||
. pack("v", -2)
|
||||
. pack("v", 9)
|
||||
. pack("v", 6)
|
||||
. pack("v", 0)
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. pack("V", $iBdCnt)
|
||||
. pack("V", $iBBcnt+$iSBDcnt) //ROOT START
|
||||
. pack("V", 0)
|
||||
. pack("V", 0x1000)
|
||||
. pack("V", 0) //Small Block Depot
|
||||
. pack("V", 1)
|
||||
);
|
||||
// Extra BDList Start, Count
|
||||
if ($iBdCnt < $i1stBdL)
|
||||
{
|
||||
fwrite($FILE,
|
||||
pack("V", -2). // Extra BDList Start
|
||||
pack("V", 0) // Extra BDList Count
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
fwrite($FILE, pack("V", $iAll+$iBdCnt) . pack("V", $iBdExL));
|
||||
}
|
||||
|
||||
// BDList
|
||||
for ($i=0; $i<$i1stBdL and $i < $iBdCnt; $i++) {
|
||||
fwrite($FILE, pack("V", $iAll+$i));
|
||||
}
|
||||
if ($i < $i1stBdL)
|
||||
{
|
||||
for ($j = 0; $j < ($i1stBdL-$i); $j++) {
|
||||
fwrite($FILE, (pack("V", -1)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saving big data (PPS's with data bigger than OLE_DATA_SIZE_SMALL)
|
||||
*
|
||||
* @access private
|
||||
* @param integer $iStBlk
|
||||
* @param array &$raList Reference to array of PPS's
|
||||
*/
|
||||
function _saveBigData($iStBlk, &$raList)
|
||||
{
|
||||
$FILE = $this->_FILEH_;
|
||||
|
||||
// cycle through PPS's
|
||||
for ($i = 0; $i < count($raList); $i++)
|
||||
{
|
||||
if($raList[$i]->Type != OLE_PPS_TYPE_DIR)
|
||||
{
|
||||
$raList[$i]->Size = $raList[$i]->_DataLen();
|
||||
if(($raList[$i]->Size >= OLE_DATA_SIZE_SMALL) or
|
||||
(($raList[$i]->Type == OLE_PPS_TYPE_ROOT) and isset($raList[$i]->_data)))
|
||||
{
|
||||
// Write Data
|
||||
if(isset($raList[$i]->_PPS_FILE))
|
||||
{
|
||||
$iLen = 0;
|
||||
fseek($raList[$i]->_PPS_FILE, 0); // To The Top
|
||||
while($sBuff = fread($raList[$i]->_PPS_FILE, 4096))
|
||||
{
|
||||
$iLen += strlen($sBuff);
|
||||
fwrite($FILE, $sBuff);
|
||||
}
|
||||
}
|
||||
else {
|
||||
fwrite($FILE, $raList[$i]->_data);
|
||||
}
|
||||
|
||||
if ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)
|
||||
{
|
||||
for ($j = 0; $j < ($this->_BIG_BLOCK_SIZE - ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)); $j++) {
|
||||
fwrite($FILE, "\x00");
|
||||
}
|
||||
}
|
||||
// Set For PPS
|
||||
$raList[$i]->_StartBlock = $iStBlk;
|
||||
$iStBlk +=
|
||||
(floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) +
|
||||
(($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0));
|
||||
}
|
||||
// Close file for each PPS, and unlink it
|
||||
if (isset($raList[$i]->_PPS_FILE))
|
||||
{
|
||||
@fclose($raList[$i]->_PPS_FILE);
|
||||
$raList[$i]->_PPS_FILE = null;
|
||||
@unlink($raList[$i]->_tmp_filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get small data (PPS's with data smaller than OLE_DATA_SIZE_SMALL)
|
||||
*
|
||||
* @access private
|
||||
* @param array &$raList Reference to array of PPS's
|
||||
*/
|
||||
function _makeSmallData(&$raList)
|
||||
{
|
||||
$sRes = '';
|
||||
$FILE = $this->_FILEH_;
|
||||
$iSmBlk = 0;
|
||||
|
||||
for ($i = 0; $i < count($raList); $i++)
|
||||
{
|
||||
// Make SBD, small data string
|
||||
if ($raList[$i]->Type == OLE_PPS_TYPE_FILE)
|
||||
{
|
||||
if ($raList[$i]->Size <= 0) {
|
||||
continue;
|
||||
}
|
||||
if ($raList[$i]->Size < OLE_DATA_SIZE_SMALL)
|
||||
{
|
||||
$iSmbCnt = floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE)
|
||||
+ (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0);
|
||||
// Add to SBD
|
||||
for ($j = 0; $j < ($iSmbCnt-1); $j++) {
|
||||
fwrite($FILE, pack("V", $j+$iSmBlk+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
|
||||
// Add to Data String(this will be written for RootEntry)
|
||||
if ($raList[$i]->_PPS_FILE)
|
||||
{
|
||||
fseek($raList[$i]->_PPS_FILE, 0); // To The Top
|
||||
while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) {
|
||||
$sRes .= $sBuff;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$sRes .= $raList[$i]->_data;
|
||||
}
|
||||
if($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)
|
||||
{
|
||||
for ($j = 0; $j < ($this->_SMALL_BLOCK_SIZE - ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)); $j++) {
|
||||
$sRes .= "\x00";
|
||||
}
|
||||
}
|
||||
// Set for PPS
|
||||
$raList[$i]->_StartBlock = $iSmBlk;
|
||||
$iSmBlk += $iSmbCnt;
|
||||
}
|
||||
}
|
||||
}
|
||||
$iSbCnt = floor($this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE);
|
||||
if($iSmBlk % $iSbCnt)
|
||||
{
|
||||
for ($i = 0; $i < ($iSbCnt - ($iSmBlk % $iSbCnt)); $i++) {
|
||||
fwrite($FILE, pack("V", -1));
|
||||
}
|
||||
}
|
||||
return $sRes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves all the PPS's WKs
|
||||
*
|
||||
* @access private
|
||||
* @param array $raList Reference to an array with all PPS's
|
||||
*/
|
||||
function _savePps(&$raList)
|
||||
{
|
||||
// Save each PPS WK
|
||||
for ($i = 0; $i < count($raList); $i++) {
|
||||
fwrite($this->_FILEH_, $raList[$i]->_getPpsWk());
|
||||
}
|
||||
// Adjust for Block
|
||||
$iCnt = count($raList);
|
||||
$iBCnt = $this->_BIG_BLOCK_SIZE / OLE_PPS_SIZE;
|
||||
if ($iCnt % $iBCnt)
|
||||
{
|
||||
for ($i = 0; $i < (($iBCnt - ($iCnt % $iBCnt)) * OLE_PPS_SIZE); $i++) {
|
||||
fwrite($this->_FILEH_, "\x00");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saving Big Block Depot
|
||||
*
|
||||
* @access private
|
||||
* @param integer $iSbdSize
|
||||
* @param integer $iBsize
|
||||
* @param integer $iPpsCnt
|
||||
*/
|
||||
function _saveBbd($iSbdSize, $iBsize, $iPpsCnt)
|
||||
{
|
||||
$FILE = $this->_FILEH_;
|
||||
// Calculate Basic Setting
|
||||
$iBbCnt = $this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE;
|
||||
$i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / OLE_LONG_INT_SIZE;
|
||||
|
||||
$iBdExL = 0;
|
||||
$iAll = $iBsize + $iPpsCnt + $iSbdSize;
|
||||
$iAllW = $iAll;
|
||||
$iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0);
|
||||
// Calculate BD count
|
||||
if ($iBdCnt >$i1stBdL)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
$iBdExL++;
|
||||
$iAllW++;
|
||||
$iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0);
|
||||
if ($iBdCnt <= ($iBdExL*$iBbCnt+ $i1stBdL)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Making BD
|
||||
// Set for SBD
|
||||
if ($iSbdSize > 0)
|
||||
{
|
||||
for ($i = 0; $i<($iSbdSize-1); $i++) {
|
||||
fwrite($FILE, pack("V", $i+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
}
|
||||
// Set for B
|
||||
for ($i = 0; $i<($iBsize-1); $i++) {
|
||||
fwrite($FILE, pack("V", $i+$iSbdSize+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
|
||||
// Set for PPS
|
||||
for ($i = 0; $i<($iPpsCnt-1); $i++) {
|
||||
fwrite($FILE, pack("V", $i+$iSbdSize+$iBsize+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
// Set for BBD itself ( 0xFFFFFFFD : BBD)
|
||||
for ($i=0; $i<$iBdCnt;$i++) {
|
||||
fwrite($FILE, pack("V", 0xFFFFFFFD));
|
||||
}
|
||||
// Set for ExtraBDList
|
||||
for ($i=0; $i<$iBdExL;$i++) {
|
||||
fwrite($FILE, pack("V", 0xFFFFFFFC));
|
||||
}
|
||||
// Adjust for Block
|
||||
if (($iAllW + $iBdCnt) % $iBbCnt)
|
||||
{
|
||||
for ($i = 0; $i < ($iBbCnt - (($iAllW + $iBdCnt) % $iBbCnt)); $i++) {
|
||||
fwrite($FILE, pack("V", -1));
|
||||
}
|
||||
}
|
||||
// Extra BDList
|
||||
if ($iBdCnt > $i1stBdL)
|
||||
{
|
||||
$iN=0;
|
||||
$iNb=0;
|
||||
for ($i=$i1stBdL;$i<$iBdCnt; $i++, $iN++)
|
||||
{
|
||||
if ($iN>=($iBbCnt-1))
|
||||
{
|
||||
$iN = 0;
|
||||
$iNb++;
|
||||
fwrite($FILE, pack("V", $iAll+$iBdCnt+$iNb));
|
||||
}
|
||||
fwrite($FILE, pack("V", $iBsize+$iSbdSize+$iPpsCnt+$i));
|
||||
}
|
||||
if (($iBdCnt-$i1stBdL) % ($iBbCnt-1))
|
||||
{
|
||||
for ($i = 0; $i < (($iBbCnt-1) - (($iBdCnt-$i1stBdL) % ($iBbCnt-1))); $i++) {
|
||||
fwrite($FILE, pack("V", -1));
|
||||
}
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,229 @@
|
||||
<?php
|
||||
/*
|
||||
* Module written by Herman Kuiper <herman@ozuzo.net>
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
* Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
|
||||
* Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
// Possible operator types
|
||||
|
||||
/*
|
||||
FIXME: change prefixes
|
||||
*/
|
||||
define("OP_BETWEEN", 0x00);
|
||||
define("OP_NOTBETWEEN", 0x01);
|
||||
define("OP_EQUAL", 0x02);
|
||||
define("OP_NOTEQUAL", 0x03);
|
||||
define("OP_GT", 0x04);
|
||||
define("OP_LT", 0x05);
|
||||
define("OP_GTE", 0x06);
|
||||
define("OP_LTE", 0x07);
|
||||
|
||||
/**
|
||||
* Baseclass for generating Excel DV records (validations)
|
||||
*
|
||||
* @author Herman Kuiper
|
||||
* @category FileFormats
|
||||
* @package Spreadsheet_Excel_Writer
|
||||
*/
|
||||
class Spreadsheet_Excel_Writer_Validator
|
||||
{
|
||||
var $_type;
|
||||
var $_style;
|
||||
var $_fixedList;
|
||||
var $_blank;
|
||||
var $_incell;
|
||||
var $_showprompt;
|
||||
var $_showerror;
|
||||
var $_title_prompt;
|
||||
var $_descr_prompt;
|
||||
var $_title_error;
|
||||
var $_descr_error;
|
||||
var $_operator;
|
||||
var $_formula1;
|
||||
var $_formula2;
|
||||
/**
|
||||
* The parser from the workbook. Used to parse validation formulas also
|
||||
* @var Spreadsheet_Excel_Writer_Parser
|
||||
*/
|
||||
var $_parser;
|
||||
|
||||
function Spreadsheet_Excel_Writer_Validator(&$parser)
|
||||
{
|
||||
$this->_parser = $parser;
|
||||
$this->_type = 0x01; // FIXME: add method for setting datatype
|
||||
$this->_style = 0x00;
|
||||
$this->_fixedList = false;
|
||||
$this->_blank = false;
|
||||
$this->_incell = false;
|
||||
$this->_showprompt = false;
|
||||
$this->_showerror = true;
|
||||
$this->_title_prompt = "\x00";
|
||||
$this->_descr_prompt = "\x00";
|
||||
$this->_title_error = "\x00";
|
||||
$this->_descr_error = "\x00";
|
||||
$this->_operator = 0x00; // default is equal
|
||||
$this->_formula1 = '';
|
||||
$this->_formula2 = '';
|
||||
}
|
||||
|
||||
function setPrompt($promptTitle = "\x00", $promptDescription = "\x00", $showPrompt = true)
|
||||
{
|
||||
$this->_showprompt = $showPrompt;
|
||||
$this->_title_prompt = $promptTitle;
|
||||
$this->_descr_prompt = $promptDescription;
|
||||
}
|
||||
|
||||
function setError($errorTitle = "\x00", $errorDescription = "\x00", $showError = true)
|
||||
{
|
||||
$this->_showerror = $showError;
|
||||
$this->_title_error = $errorTitle;
|
||||
$this->_descr_error = $errorDescription;
|
||||
}
|
||||
|
||||
function allowBlank()
|
||||
{
|
||||
$this->_blank = true;
|
||||
}
|
||||
|
||||
function onInvalidStop()
|
||||
{
|
||||
$this->_style = 0x00;
|
||||
}
|
||||
|
||||
function onInvalidWarn()
|
||||
{
|
||||
$this->_style = 0x01;
|
||||
}
|
||||
|
||||
function onInvalidInfo()
|
||||
{
|
||||
$this->_style = 0x02;
|
||||
}
|
||||
|
||||
function setFormula1($formula)
|
||||
{
|
||||
// Parse the formula using the parser in Parser.php
|
||||
$error = $this->_parser->parse($formula);
|
||||
if (PEAR::isError($error)) {
|
||||
return $this->_formula1;
|
||||
}
|
||||
|
||||
$this->_formula1 = $this->_parser->toReversePolish();
|
||||
if (PEAR::isError($this->_formula1)) {
|
||||
return $this->_formula1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function setFormula2($formula)
|
||||
{
|
||||
// Parse the formula using the parser in Parser.php
|
||||
$error = $this->_parser->parse($formula);
|
||||
if (PEAR::isError($error)) {
|
||||
return $this->_formula2;
|
||||
}
|
||||
|
||||
$this->_formula2 = $this->_parser->toReversePolish();
|
||||
if (PEAR::isError($this->_formula2)) {
|
||||
return $this->_formula2;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function _getOptions()
|
||||
{
|
||||
$options = $this->_type;
|
||||
$options |= $this->_style << 3;
|
||||
if ($this->_fixedList) {
|
||||
$options |= 0x80;
|
||||
}
|
||||
if ($this->_blank) {
|
||||
$options |= 0x100;
|
||||
}
|
||||
if (!$this->_incell) {
|
||||
$options |= 0x200;
|
||||
}
|
||||
if ($this->_showprompt) {
|
||||
$options |= 0x40000;
|
||||
}
|
||||
if ($this->_showerror) {
|
||||
$options |= 0x80000;
|
||||
}
|
||||
$options |= $this->_operator << 20;
|
||||
|
||||
return $options;
|
||||
}
|
||||
|
||||
function _getData()
|
||||
{
|
||||
$title_prompt_len = strlen($this->_title_prompt);
|
||||
$descr_prompt_len = strlen($this->_descr_prompt);
|
||||
$title_error_len = strlen($this->_title_error);
|
||||
$descr_error_len = strlen($this->_descr_error);
|
||||
|
||||
$formula1_size = strlen($this->_formula1);
|
||||
$formula2_size = strlen($this->_formula2);
|
||||
|
||||
$data = pack("V", $this->_getOptions());
|
||||
$data .= pack("vC", $title_prompt_len, 0x00) . $this->_title_prompt;
|
||||
$data .= pack("vC", $title_error_len, 0x00) . $this->_title_error;
|
||||
$data .= pack("vC", $descr_prompt_len, 0x00) . $this->_descr_prompt;
|
||||
$data .= pack("vC", $descr_error_len, 0x00) . $this->_descr_error;
|
||||
|
||||
$data .= pack("vv", $formula1_size, 0x0000) . $this->_formula1;
|
||||
$data .= pack("vv", $formula2_size, 0x0000) . $this->_formula2;
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/*class Spreadsheet_Excel_Writer_Validation_List extends Spreadsheet_Excel_Writer_Validation
|
||||
{
|
||||
function Spreadsheet_Excel_Writer_Validation_list()
|
||||
{
|
||||
parent::Spreadsheet_Excel_Writer_Validation();
|
||||
$this->_type = 0x03;
|
||||
}
|
||||
|
||||
function setList($source, $incell = true)
|
||||
{
|
||||
$this->_incell = $incell;
|
||||
$this->_fixedList = true;
|
||||
|
||||
$source = implode("\x00", $source);
|
||||
$this->_formula1 = pack("CCC", 0x17, strlen($source), 0x0c) . $source;
|
||||
}
|
||||
|
||||
function setRow($row, $col1, $col2, $incell = true)
|
||||
{
|
||||
$this->_incell = $incell;
|
||||
//$this->_formula1 = ...;
|
||||
}
|
||||
|
||||
function setCol($col, $row1, $row2, $incell = true)
|
||||
{
|
||||
$this->_incell = $incell;
|
||||
//$this->_formula1 = ...;
|
||||
}
|
||||
}*/
|
||||
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/*
|
||||
* Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
|
||||
*
|
||||
* PERL Spreadsheet::WriteExcel module.
|
||||
*
|
||||
* The author of the Spreadsheet::WriteExcel module is John McNamara
|
||||
* <jmcnamara@cpan.org>
|
||||
*
|
||||
* I _DO_ maintain this code, and John McNamara has nothing to do with the
|
||||
* porting of this code to PHP. Any questions directly related to this
|
||||
* class library should be directed to me.
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
* Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
|
||||
* Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for writing Excel Spreadsheets. This class should change COMPLETELY.
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@rezebra.com>
|
||||
* @category FileFormats
|
||||
* @package Spreadsheet_Excel_Writer
|
||||
*/
|
||||
|
||||
class Spreadsheet_Excel_Writer extends Spreadsheet_Excel_Writer_Workbook
|
||||
{
|
||||
/**
|
||||
* The constructor. It just creates a Workbook
|
||||
*
|
||||
* @param string $filename The optional filename for the Workbook.
|
||||
* @return Spreadsheet_Excel_Writer_Workbook The Workbook created
|
||||
*/
|
||||
function Spreadsheet_Excel_Writer($filename = '')
|
||||
{
|
||||
$this->_filename = $filename;
|
||||
$this->Spreadsheet_Excel_Writer_Workbook($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send HTTP headers for the Excel file.
|
||||
*
|
||||
* @param string $filename The filename to use for HTTP headers
|
||||
* @access public
|
||||
*/
|
||||
function send($filename)
|
||||
{
|
||||
header("Content-type: application/vnd.ms-excel");
|
||||
header("Content-Disposition: attachment; filename=\"$filename\"");
|
||||
header("Expires: 0");
|
||||
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
|
||||
header("Pragma: public");
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function for writing formulas
|
||||
* Converts a cell's coordinates to the A1 format.
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param integer $row Row for the cell to convert (0-indexed).
|
||||
* @param integer $col Column for the cell to convert (0-indexed).
|
||||
* @return string The cell identifier in A1 format
|
||||
*/
|
||||
function rowcolToCell($row, $col)
|
||||
{
|
||||
if ($col > 255) { //maximum column value exceeded
|
||||
return new PEAR_Error("Maximum column value exceeded: $col");
|
||||
}
|
||||
|
||||
$int = (int)($col / 26);
|
||||
$frac = $col % 26;
|
||||
$chr1 = '';
|
||||
|
||||
if ($int > 0) {
|
||||
$chr1 = chr(ord('A') + $int - 1);
|
||||
}
|
||||
|
||||
$chr2 = chr(ord('A') + $frac);
|
||||
$row++;
|
||||
|
||||
return $chr1 . $chr2 . $row;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,321 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse fuer Berechtigungen der User
|
||||
* @author Christian Paminger
|
||||
* @version 1.0
|
||||
* @updated 11-Feb-2004
|
||||
*/
|
||||
class berechtigung
|
||||
{
|
||||
/**
|
||||
* interne userberechtigung_id (Zaehler aus DB)
|
||||
* @var integer
|
||||
*/
|
||||
var $userberechtigung_id;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $fachbereich_id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $berechtigung_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $uid;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $studiensemester_kurzbz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $start;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $ende;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $starttimestamp;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $endetimestamp;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $art;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
var $berechtigungen=array();
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
||||
var $conn;
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $new;
|
||||
|
||||
function berechtigung($conn)
|
||||
{
|
||||
$this->conn=$conn;
|
||||
$this->new=true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($id)
|
||||
{
|
||||
// Berechtigung holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
|
||||
//echo $sql_query;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1)
|
||||
{
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->userberechtigung_id=$row->userberechtigung_id;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->fachbereich_id=$row->fachbereich_id;
|
||||
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$this->uid=$row->uid;
|
||||
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$this->start=$row->start;
|
||||
$this->ende=$row->ende;
|
||||
$this->art=$row->art;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
// Connection holen
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Daten zur Person speichern
|
||||
|
||||
if (!person::save()) {
|
||||
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung)".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
"'".$this->unr."',".
|
||||
"'".$this->einheit_kurzbz."',".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"'".$this->verband."',".
|
||||
"'".$this->gruppe."',".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$qry="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr='".$this->unr."',".
|
||||
"einheit_kurzbz='".$this->einheit_kurzbz."',".
|
||||
"lektor='".$this->lehrfach_nr."',".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"verband='".$this->verband."',".
|
||||
"gruppe='".$this->gruppe."',".
|
||||
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
|
||||
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
}
|
||||
//echo "<br>".$qry;
|
||||
if(!@pg_query($conn, $qry))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
|
||||
* Fehlermeldung liegt in errormsg.
|
||||
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
|
||||
* @param string $uid UserID
|
||||
* @return variabel Array mit LVA; <b>false</b> bei Fehler
|
||||
*/
|
||||
function getBerechtigungen($uid)
|
||||
{
|
||||
// Berechtigungen holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
|
||||
//echo $sql_query;
|
||||
if(!$erg=@pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
//$num_rows=pg_numrows($erg);
|
||||
while($row=pg_fetch_object($erg))
|
||||
{
|
||||
$b=new berechtigung($this->conn);
|
||||
$b->userberechtigung_id=$row->userberechtigung_id;
|
||||
$b->studiengang_kz=$row->studiengang_kz;
|
||||
$b->fachbereich_id=$row->fachbereich_id;
|
||||
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$b->uid=$row->uid;
|
||||
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$b->start=$row->start;
|
||||
if ($row->start!=null)
|
||||
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
|
||||
else
|
||||
$b->starttimestamp=null;
|
||||
$b->ende=$row->ende;
|
||||
if ($row->ende!=null)
|
||||
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
|
||||
else
|
||||
$b->endetimestamp=null;
|
||||
$b->art=$row->art;
|
||||
$this->berechtigungen[]=$b;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null, $fachbereich_id=null)
|
||||
{
|
||||
$timestamp=time();
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
//Fachbereichsberechtigung
|
||||
if($fachbereich_id!=null)
|
||||
{
|
||||
//Wenn Fachbereichs oder Adminberechtigung
|
||||
if(($berechtigung == $b->berechtigung_kurzbz || $b->berechtigung_kurzbz == 'admin') && ($b->fachbereich_id==$fachbereich_id || $b->fachbereich_id=='0'))
|
||||
{
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//Wenn Berechtigung fuer Bestimmte Klasse vorhanden ist
|
||||
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null && $fachbereich_id==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
//Wenn Berechtigung fuer Bestimmten Studiengang vorhanden ist
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null && $b->fachbereich_id==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
//Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
|
||||
&& strstr($b->art,$art))
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
|
||||
* Optional wird auf Berechtigung eingeschraenkt.
|
||||
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
|
||||
*/
|
||||
function getStgKz($berechtigung=null)
|
||||
{
|
||||
$studiengang_kz=array();
|
||||
$timestamp=time();
|
||||
|
||||
foreach ($this->berechtigungen as $b)
|
||||
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
|
||||
if($b->fachbereich_id==null)
|
||||
$studiengang_kz[]=$b->studiengang_kz;
|
||||
$studiengang_kz=array_unique($studiengang_kz);
|
||||
sort($studiengang_kz);
|
||||
return $studiengang_kz;
|
||||
}
|
||||
|
||||
function getFbKz($berechtigung=null)
|
||||
{
|
||||
$fachbereichs_kz=array();
|
||||
$timestamp=time();
|
||||
|
||||
foreach($this->berechtigungen as $b)
|
||||
{
|
||||
if(($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
|
||||
&& (($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp) || ($b->starttimestamp==null && $b->endetimestamp==null)))
|
||||
{
|
||||
if($b->fachbereich_id!='' && !in_array($b->fachbereich_id,$fachbereichs_kz))
|
||||
$fachbereichs_kz[] = $b->fachbereich_id;
|
||||
}
|
||||
}
|
||||
sort($fachbereichs_kz);
|
||||
return $fachbereichs_kz;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,515 @@
|
||||
<?php
|
||||
/**
|
||||
* @author: maximilian schremser
|
||||
* @date: 2004-10-24
|
||||
* globale funktionen für verschiedene anwendungen auf der cis.technikum-wien.at
|
||||
*/
|
||||
|
||||
function get_active_status($auth) {
|
||||
$course_id = $auth->stg_id;
|
||||
$term_id = $auth->semester;
|
||||
|
||||
$sql = "SELECT distinct verband, gruppe FROM tbl_student WHERE (studiengang_kz = $course_id) AND (semester = $term_id) ORDER BY verband,gruppe";
|
||||
$rs = new pgRS($sql);
|
||||
$count_verband = $rs->num;
|
||||
$verbands = $rs->arr;
|
||||
for ($rt = $count_verband-1; $rt >= 0; $rt--) {
|
||||
$verband = $verbands[$rt]["verband"] . $verbands[$rt]["gruppe"];
|
||||
if ($verbands[$rt]["verband"] == $auth->verband &&
|
||||
$verbands[$rt]["gruppe"] == $auth->gruppe)
|
||||
return pow(2,$rt);
|
||||
}
|
||||
return 0;
|
||||
} // eof function get_active_status
|
||||
|
||||
//get_lf_bezeichnung holt die Studiengang Bezeichnung und die Lehrfach
|
||||
// bezeichnung für das aktuelle Lehrfach.
|
||||
function get_lf_bezeichnung($course_id, $term_id, $lesson)
|
||||
{
|
||||
$sql = "SELECT lf.bezeichnung, kurzbzlang FROM lehre.tbl_lehrfachzuteilung lf
|
||||
JOIN tbl_studiengang USING(studiengang_kz) WHERE lf.studiengang_kz = $course_id
|
||||
AND lf.lehrfachzuteilung_kurzbz = '$lesson' AND lf.semester = $term_id LIMIT 1";
|
||||
$rs = new pgRS($sql);
|
||||
$ret[0] = $rs->arr[0]["kurzbzlang"];
|
||||
$ret[1] = $rs->arr[0]["bezeichnung"];
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// Die Freigabe für die Verbände für den Studienbrief berechnen
|
||||
// Um die Freigeschaltenen Studienbriefe zu berechnen.
|
||||
function sum($points = array()) {
|
||||
$p = 0;
|
||||
for ($i = 0; $i < count($points); $i++)
|
||||
{
|
||||
$p+= $points[$i];
|
||||
}
|
||||
return $p;
|
||||
} /* eof sum() */
|
||||
|
||||
// erstellen des aktuellen studienjahres
|
||||
function get_studienjahr($i = -1) {
|
||||
if ($i != -1) {
|
||||
$stj = date("Y")+$i;
|
||||
$stj .= "/";
|
||||
$stj .= sprintf("%02d", date("y")+$i+1);
|
||||
} else if ( date("n") >= 7)
|
||||
$stj = date("Y") . "/" . date("y", mktime(0,0,0,1,1,date("Y")+1));
|
||||
else
|
||||
$stj = date("Y")-1 . "/" . date("y");
|
||||
return $stj;
|
||||
}
|
||||
|
||||
function get_needed_term_id($term_id = 0, $stj = "") {
|
||||
if ($stj == "")
|
||||
$stj = get_studienjahr();
|
||||
$needed_term_id = $term_id + ((date("Y") - substr($stj,0,4))*2);
|
||||
|
||||
if ((date("n") >= 8 || date("n") < 3))
|
||||
if ($term_id%2==0)
|
||||
$needed_term_id--;
|
||||
else
|
||||
$needed_term_id++;
|
||||
|
||||
if ((date("n") < 8 || date("n") >= 3))
|
||||
if ($term_id%2!= 0)
|
||||
$needed_term_id--;
|
||||
return $needed_term_id;
|
||||
}
|
||||
|
||||
|
||||
// berechnet die notwendige Semester_ID zum Anzeigen der
|
||||
// Studenten im Kreuzerltool
|
||||
function get_needed_term_id2($term_id = 0, $stj = "") {
|
||||
// im WS sollen noch Studenten vom letzten SS sichtbar sein
|
||||
if ((date("n") >= 8 || date("n") < 2)) {
|
||||
if ($term_id%2==0)
|
||||
$term_id++;
|
||||
}
|
||||
// im SS sollen noch die Studenten vom WS sichtbar sein
|
||||
else {
|
||||
if ($term_id%2==1) {
|
||||
$term_id++;
|
||||
}
|
||||
}
|
||||
return $term_id;
|
||||
}
|
||||
|
||||
|
||||
// zurückrechnen auf die studenten im jetzigen semester
|
||||
// studienpunkte sind nur für die eigene person sichtbar
|
||||
function get_old_studienjahr() {
|
||||
if (date("n") >= 7 && $term_id%2 == 1) {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
|
||||
}
|
||||
else if (date("n") >= 7 && $term_id%2 == 0) {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2)-1;
|
||||
}
|
||||
else if (date("n") < 7 && $term_id%2 == 1) {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
|
||||
}
|
||||
else {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
|
||||
}
|
||||
|
||||
$studienjahr .= "/" . date("y", mktime(0,0,0,1,1,$studienjahr+1));
|
||||
}
|
||||
// write out the menu for kreuzerltool (campus/lehre/effort
|
||||
function write_menu($menu, $course_id, $lesson, $term_id, $module = "", $stj = 0) {
|
||||
if ($stj == 0)
|
||||
$stj = get_studienjahr();
|
||||
print "
|
||||
<form method=\"post\" action=\"#page\">
|
||||
<table border=0 cellpadding=1 cellspacing=0 width=600>
|
||||
<tr>
|
||||
<td>
|
||||
<table border=0 width=100% cellpadding=0 cellspacing=0 width=600>
|
||||
<tr>
|
||||
<td width=50%>
|
||||
<li type=square><a href=\"result_effort.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Kreuzerlliste Statistik</a></li>
|
||||
</td>
|
||||
<td>
|
||||
<li type=square><a href=\"show_list.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Anwesenheits-
|
||||
und <br> Übersichtstabelle</a></li></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<li type=square><a href=\"create_stb.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Kreuzerllisten anlegen <br> und verwalten</a></li></td>
|
||||
<td>
|
||||
<li type=square><a href=\"edit_list.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Studentenpunkte <br> verwalten</a></li></td></tr>
|
||||
<tr>
|
||||
<td colspan=2> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=200 class=light valign=middle height=19>
|
||||
$menu</td>
|
||||
<td align=right class=light>Studienjahr: <select name=stj size=1 onChange=document.location.href='$PHP_SELF?course_id=$course_id&short=$lesson&term_id=$term_id&module=$module&stj='+document.forms[0].stj.options[document.forms[0].stj.options.selectedIndex].value;>";
|
||||
$k = 0;
|
||||
// einfügen eines neuen Studienjahres ab 1.Juli bis 31.Dezember
|
||||
if (date("n") >= 7) {
|
||||
$d = date("Y") . "/" . date("y", mktime(0,0,0,1,1,date("Y")+1));
|
||||
|
||||
echo "<option value='$d'";
|
||||
if ($d == $stj)
|
||||
echo "selected";
|
||||
echo ">$d</option>";
|
||||
}
|
||||
|
||||
// vergangene Studienjahre seit 2003/04
|
||||
for ($i = date("y")+0, $j = date("Y")-1; $i >= 3, $j >= 2002; $i--,$j--)
|
||||
{
|
||||
$nextYear = $i;
|
||||
$year = $j;
|
||||
// add a spacing 0
|
||||
if ($nextYear < 10)
|
||||
$nextYear = "0$nextYear";
|
||||
echo "<option value=\"$year/$nextYear\"";
|
||||
echo ($stj == ($year."/".$nextYear))?"selected":"";
|
||||
echo ">$year/$nextYear</option>";
|
||||
}
|
||||
print <<<EOF
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2> </td>
|
||||
</tr>
|
||||
</table></td></tr>
|
||||
</table></td>
|
||||
</tr></table>
|
||||
</form>
|
||||
|
||||
EOF;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @params inputString - the String to be formatted
|
||||
* @return the formatted String
|
||||
*/
|
||||
function format($inputString) {
|
||||
$inputString = stripslashes($inputString);
|
||||
return str_replace("\n", "<br>",$inputString);
|
||||
}
|
||||
|
||||
|
||||
function get_lectors($course_id, $term_id, $short) {
|
||||
if ($course_id && $term_id && $short) {
|
||||
$sql = "SELECT DISTINCT on (bezeichnung,nachname) bezeichnung, studiengang_kz, semester, vornamen, nachname, email, uid FROM lehre.tbl_lehrfachzuteilung JOIN tbl_person ON uid = lektor_uid WHERE studiengang_kz='$course_id' AND semester='$term_id' AND lehrfachzuteilung_kurzbz = '$short' AND tbl_person.aktiv=TRUE ORDER BY bezeichnung, nachname";
|
||||
//$sql_query = "SELECT DISTINCT ON(uid), vornamen, nachname,
|
||||
// titel FROM lehre.tbl_lehrfachzuteilung, tbl_person,
|
||||
//tbl_mitarbeiter WHERE tbl_person.uid =
|
||||
//lehre.tbl_lehrfachzuteilung.lektor_uid AND
|
||||
//lehre.tbl_lehrfachzuteilung.studiengang_kz='$course_id'
|
||||
//AND lehre.tbl_lehrfachzuteilung.semester='$term_id'
|
||||
//AND LOWER(lehre.tbl_lehrfachzuteilung.lehrfachzuteilung_kurzbz)='$short'
|
||||
//AND lehre.tbl_lehrfachzuteilung.aktiv = true
|
||||
//ORDER BY nachname";
|
||||
|
||||
$result_lectors = new pgRS($sql);
|
||||
}
|
||||
$num_rows_lectors = $result_lectors->num;
|
||||
$row_email = array();
|
||||
$row_vornamen = array();
|
||||
$row_nachname = array();
|
||||
$row_titel = array();
|
||||
for($i = 0; $i < $num_rows_lectors; $i++)
|
||||
{
|
||||
$row_email[] = $result_lectors->arr[$i]["emailtw"];
|
||||
$row_vornamen[] = $result_lectors->arr[$i]["vornamen"];
|
||||
$row_nachname[] = $result_lectors->arr[$i]["nachname"];
|
||||
$row_titel[] = $result_lectors->arr[$i]["titel"];
|
||||
|
||||
}
|
||||
$ret = "";
|
||||
for ($i = 0; $i < count($row_email); $i++)
|
||||
{
|
||||
$ret .= "$row_titel[$i] $row_vornamen[$i] $row_nachname[$i]";
|
||||
if ($i < count($row_email)-1)
|
||||
$ret .= ", ";
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function get_person($bezeichnung, $course_id) {
|
||||
$sql = "SELECT titel, vornamen, nachname, bezeichnung FROM tbl_funktion, public.tbl_person JOIN tbl_personfunktion ON (tbl_personfunktion.uid = tbl_person.uid) WHERE tbl_personfunktion.funktion_kurzbz = tbl_funktion.funktion_kurzbz AND bezeichnung='$bezeichnung' AND tbl_personfunktion.studiengang_kz='$course_id'";
|
||||
$rs = new pgRS($sql);
|
||||
$arr = $rs->arr[0];
|
||||
$ret = $arr["titel"]." " . $arr["vornamen"]." " . $arr["nachname"];
|
||||
return $ret;
|
||||
}
|
||||
function create_version($user, $info_data) {
|
||||
$id = 0;
|
||||
$info_id = 0;
|
||||
$version_id = 0;
|
||||
|
||||
$ects_points = $info_data["ects_credits"];
|
||||
$learning_language = $info_data["sprache"];
|
||||
$wochenstunden = $info_data["hours"];
|
||||
$course_id = $info_data["course_id"];
|
||||
$term_id = $info_data["term_id"];
|
||||
$short = $info_data["short"];
|
||||
$studienjahr = $info_data["studienjahr"];
|
||||
$fachbereich = $info_data["fachbereich"];
|
||||
$fachbereichsleiter = $info_data["fachbereichsleiter"];
|
||||
$fachbereichskoordinator = $info_data["fachbereichskoordinator"];
|
||||
$lehrender = $info_data["lehrender"];
|
||||
|
||||
$sql = "INSERT INTO lv_infos (ects_credits,
|
||||
sprache, hours, studienjahr, fachbereich,
|
||||
fachbereichsleiter, fachbereichskoordinator, lehrender) VALUES
|
||||
($ects_points, $learning_language,
|
||||
$wochenstunden, '$studienjahr',
|
||||
'$fachbereich', '$fachbereichsleiter',
|
||||
'$fachbereichskoordinator', '$lehrender')";
|
||||
$rs = new myRS($sql);
|
||||
$info_id = $rs->iid;
|
||||
if ($info_id) {
|
||||
$sql = "SELECT max(version) as version FROM lv_versions
|
||||
WHERE studiengang_kz = $course_id AND
|
||||
short = '$short' AND term_id = $term_id";
|
||||
$rs = new myRS($sql);
|
||||
$max_version = $rs->arr[0]["version"];
|
||||
$sql ="INSERT INTO lv_versions (studiengang_kz, term_id,
|
||||
short, lector_uid, version,
|
||||
status, info_id, date_created, date_modified)
|
||||
VALUES ($course_id, $term_id, '$short',
|
||||
'$user', " . ($max_version +1).", 0,$info_id," .time() .", " . time().")";
|
||||
$rs = new myRS($sql);
|
||||
$version_id = $rs->iid;
|
||||
}
|
||||
return array($version_id, $info_id);
|
||||
} // eof create_version
|
||||
|
||||
function get_version($version_id) {
|
||||
$sql = "SELECT * FROM lv_versions v, lv_infos i
|
||||
WHERE v.id = $version_id AND v.info_id = i.id";
|
||||
$rs = new myRS($sql);
|
||||
return array(
|
||||
$rs->arr[0]["ects_credits"]/10,
|
||||
$rs->arr[0]["sprache"],
|
||||
$rs->arr[0]["hours"]/10,
|
||||
$rs->arr[0]["info_id"],
|
||||
$rs->arr[0]["content_de_id"],
|
||||
$rs->arr[0]["content_en_id"],
|
||||
$rs->arr[0]["date_created"],
|
||||
$rs->arr[0]["date_modified"],
|
||||
$rs->arr[0]["studienjahr"],
|
||||
$rs->arr[0]["fachbereich"],
|
||||
$rs->arr[0]["fachbereichsleiter"],
|
||||
$rs->arr[0]["fachbereichskoordinator"],
|
||||
$rs->arr[0]["lehrender"],
|
||||
$rs->arr[0]["studiengang_kz"],
|
||||
$rs->arr[0]["term_id"],
|
||||
$rs->arr[0]["short"]
|
||||
);
|
||||
|
||||
} // eof get_version
|
||||
|
||||
|
||||
// updates the record with info_id in lv_infos
|
||||
function update_version($user, $info_data) {
|
||||
$id = 0;
|
||||
$version_id = 0;
|
||||
$ects_points = $info_data["ects_credits"];
|
||||
$learning_language = $info_data["sprache"];
|
||||
$wochenstunden = $info_data["hours"];
|
||||
$info_id = $info_data["info_id"];
|
||||
$studienjahr = $info_data["studienjahr"];
|
||||
$fachbereich = $info_data["fachbereich"];
|
||||
$fachbereichsleiter = $info_data["fachbereichsleiter"];
|
||||
$fachbereichskoordinator = $info_data["fachbereichskoordinator"];
|
||||
$lehrender = $info_data["lehrender"];
|
||||
$version_id = $info_data["version_id"];
|
||||
|
||||
$sql = "UPDATE lv_infos SET ects_credits = $ects_points,
|
||||
sprache = $learning_language,
|
||||
hours = $wochenstunden,
|
||||
studienjahr = '$studienjahr',
|
||||
fachbereich = '$fachbereich',
|
||||
fachbereichsleiter = '$fachbereichsleiter',
|
||||
fachbereichskoordinator = '$fachbereichskoordinator',
|
||||
lehrender = '$lehrender'
|
||||
WHERE id = $info_id";
|
||||
$rs = new myRS($sql);
|
||||
$sql = "UPDATE lv_versions SET date_modified = " .time() .
|
||||
" WHERE id = $version_id";
|
||||
$rs = new myRS($sql);
|
||||
} // eof update_version
|
||||
|
||||
|
||||
// saves a version to be displayed in LV infos freigeben
|
||||
function save_version($version_id) {
|
||||
$sql = "UPDATE lv_versions SET status = 1 WHERE id = $version_id";
|
||||
$rs = new myRS($sql);
|
||||
}
|
||||
|
||||
// inserts a record into lv_content_$lang and
|
||||
// update lv_versions.content_$lang_id
|
||||
function create_content($lang, $version_id, $info_data) {
|
||||
$arr_values = array_values($info_data);
|
||||
$keys = join(", ", array_keys($info_data));
|
||||
|
||||
for ($i = 0; $i < count($arr_values)-1;$i++) {
|
||||
$values .= "'" . $arr_values[$i] . "', ";
|
||||
}
|
||||
$values .= "'" . $arr_values[count($arr_values)-1] ."'";
|
||||
$sql = "INSERT INTO lv_content_$lang ($keys) VALUES ($values)";
|
||||
$rs = new myRS($sql);
|
||||
$content_id = $rs->iid;
|
||||
|
||||
$sql = "UPDATE lv_versions SET content_" . $lang . "_id =
|
||||
$content_id WHERE id = $version_id";
|
||||
$rs = new myRS($sql);
|
||||
|
||||
return $content_id;
|
||||
} // eof create_content
|
||||
|
||||
// update_content updates the table lv_content_$lang
|
||||
function update_content($lang, $id, $info_data) {
|
||||
$sql = "UPDATE lv_content_$lang SET ";
|
||||
|
||||
$keys = array_keys($info_data);
|
||||
$values = array_values($info_data);
|
||||
|
||||
for ($i = 0; $i < count($values); $i++) {
|
||||
$sql .= $keys[$i] ." = '" . $values[$i] . "'";
|
||||
if ($i < count($values)-1) $sql .= ", ";
|
||||
}
|
||||
$sql .= " WHERE id = $id";
|
||||
$rs = new myRS($sql);
|
||||
} // eof update_content
|
||||
function get_content($lang, $content_id, $fields) {
|
||||
$sql = "SELECT " . join (", ", $fields) . " FROM
|
||||
lv_content_$lang WHERE id = $content_id";
|
||||
$rs = new myRS($sql);
|
||||
return $rs->arr[0];
|
||||
} // eof get_content
|
||||
|
||||
function write_log($lektor_uid, $action) {
|
||||
$sql = "INSERT INTO lv_log (lektor_uid, action, datum)" .
|
||||
" VALUES ('$lektor_uid', '$action', " . time() .")";
|
||||
$rs = new myRS($sql);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* function write_ects_menu($menu = 0, $course_id, $term_id, $short, $lang) {
|
||||
*
|
||||
* if ($menu == 1) $menu_name = "LV-Infos anzeigen";
|
||||
*
|
||||
* print <<<EOF
|
||||
* <form method="get" action="view_$lang.php?menu=$menu" name="foo">
|
||||
<input type="hidden" name="course_id" value="$course_id" />
|
||||
<input type="hidden" name="term_id" value="$term_id" />
|
||||
<input type="hidden" name="menu" value="$menu" />
|
||||
<table border="0" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width=20> </td>
|
||||
<td width="357"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="view_$lang.php?menu=1&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - anzeigen</a>
|
||||
|
||||
</font></td>
|
||||
<td width="396"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="edit.php?menu=2&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - erstellen / bearbeiten</a>
|
||||
|
||||
</font></td>
|
||||
<td width="280"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="publish.php?course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - freigeben</a></td>
|
||||
<td width="280"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="index.php?menu=5&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - Feedback</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=20> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
if ($menu_name) {
|
||||
print <<<EOF
|
||||
<tr>
|
||||
<td width="100%" class="inner"><a name="page"></a>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0 width="100%">
|
||||
<tr>
|
||||
<td width=400><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">
|
||||
$menu_name
|
||||
</font></td>
|
||||
<td width="50%" align="center">
|
||||
Lehrfach: <select name="short" size="1" onChange="document.foo.submit();" >
|
||||
<option value="">Bitte Lehrfach auswählen</option>
|
||||
EOF;
|
||||
if ($course_id && $term_id) {
|
||||
$sql = "SELECT DISTINCT bezeichnung, lehrfachzuteilung_kurzbz FROM lehre.tbl_lehrfachzuteilung WHERE studiengang_kz=$course_id AND semester=$term_id ORDER BY bezeichnung";
|
||||
$rs = new pgRS($sql);
|
||||
for ($i = 0; $i < $rs->num; $i++) {
|
||||
echo "<option value='" . $rs->arr[$i]["lehrfachzuteilung_kurzbz"] .
|
||||
"' ";
|
||||
if ($short==$rs->arr[$i]["lehrfachzuteilung_kurzbz"])
|
||||
echo " selected";
|
||||
echo ">";
|
||||
echo $rs->arr[$i]["bezeichnung"];
|
||||
echo "</option>";
|
||||
}
|
||||
|
||||
}
|
||||
echo '</select></td>
|
||||
<td align="right" class="inner" valign="middle" width=300>';
|
||||
if ($menu != 2) {
|
||||
if ($lang == "" || $lang!="en") {
|
||||
* echo "[Deutsch]";
|
||||
* } else {
|
||||
* echo "<a class=Item2 href='view_de.php?course_id=$course_id&short=$short&term_id=$term_id&menu=$menu&lang=de'>[Deutsch]</a>";
|
||||
* }
|
||||
* if ($lang == "en") {
|
||||
* echo "[English]";
|
||||
* } else {
|
||||
* echo "<a class=Item2 href='view_en.php?course_id=$course_id&short=$short&term_id=$term_id&menu=$menu&lang=en'>[English]</a>";
|
||||
* }
|
||||
* } // eof menu=2
|
||||
* echo '</td>
|
||||
* </tr></table></td>
|
||||
* </tr>';
|
||||
* }
|
||||
* echo '<tr>
|
||||
* <td width="100%" align="center"> </td></tr></table></form>';
|
||||
* }
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
// write a menu for a quicker navigation in the ects - course contents program
|
||||
function write_ects_quick_menu($course_id, $term_id, $short, $p, $version_id = 0, $info_id = 0, $content_de_id = 0, $content_en_id = 0) {
|
||||
if ($p > 0) {
|
||||
print '<table style="border:1px solid black"><tr><th>Schnellnavigation</th></tr><tr><td valign=top>
|
||||
<!-- MENU FUER NAVIGATION //-->';
|
||||
static $headlines = array("", "Allgemeine Infos", "Inhalte DE", "Prüfung DE", "Inhalte EN", "Prüfung EN", "Beenden");
|
||||
for ($i = 1; $i < count($headlines); $i++) {
|
||||
echo "
|
||||
$i <a href=\"edit_$i.php?menu=2&course_id=$course_id&term_id=$term_id&short=$short&version_id=$version_id&info_id=$info_id&content_de_id=$content_de_id&content_en_id=$content_en_id&quick=1\">";
|
||||
if ($i==$p) echo "<b>";
|
||||
echo $headlines[$i];
|
||||
if ($i==$p) echo "</b>";
|
||||
echo "</a><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// this function returns the dictionary entry for the keyword in the
|
||||
// given language
|
||||
function dict($lang = "de", $key = "") {
|
||||
static $dictionary = array (
|
||||
"back" => array("de" => "Zurück", "en" => "Back"),
|
||||
"LVInfos" => array("de" => "LV - Informationen", "en" => "Course Description"),
|
||||
"allCourses" => array("de" => "Alle Studiengänge", "en" => "All Courses"),
|
||||
"availCourses" => array("de" => "Vorhandene Lehrfächer in ", "en" => "Available Courses in "),
|
||||
"term" => array("de" => "Semester", "en" => "term"),
|
||||
"noinfo" => array("de" => "Keine Informationenen verfügbar", "en" => "No course information available")
|
||||
|
||||
);
|
||||
|
||||
return $dictionary[$key][$lang];
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/*
|
||||
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
|
||||
$Log: Kodierrichtlinien.tex,v $
|
||||
Revision 1.2 2004/02/29 17:05:38 pam
|
||||
Fehler in Umlauten beseitigt.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class ects_sync
|
||||
*
|
||||
* @author Andreas Österreicher
|
||||
*
|
||||
* @date 30.9.2005
|
||||
*
|
||||
* @version $Revision: 1.2 $
|
||||
*
|
||||
* @brief Enthält Methoden für die ECTS Syncronisation
|
||||
*/
|
||||
|
||||
|
||||
class ects_sync
|
||||
{
|
||||
var $erg;
|
||||
var $connection;
|
||||
|
||||
/********************************************************************
|
||||
* @brief Konstruktor
|
||||
*
|
||||
* @param $conn Connection zur DB
|
||||
********************************************************************/
|
||||
function ects_sync($conn)
|
||||
{
|
||||
$this->connection=$conn;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Überprüft ob der Fachbereich existiert
|
||||
*
|
||||
* @param $fachb Fachbereichsbezeichnung
|
||||
********************************************************************/
|
||||
function check_fachbereich($fachb)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_fachbereich where bezeichnung='$fachb' OR kurzbz='$fachb'";
|
||||
|
||||
$result = pg_exec($this->connection, $sql_query);
|
||||
|
||||
if($row=pg_fetch_object($result))
|
||||
$this->erg = $row->fachbereich_id;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Überprüft ob der Studiengang existiert
|
||||
*
|
||||
* @param $stg Studiengangs Kurzzeichen
|
||||
********************************************************************/
|
||||
function check_studiengang($stg)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_studiengang where studiengang_kz = $stg";
|
||||
|
||||
$result = pg_exec($this->connection, $sql_query);
|
||||
|
||||
if(pg_numrows($result)>0)
|
||||
$this->erg = $stg;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
/********************************************************************
|
||||
* @brief Überprüft ob das Lehrfach existiert
|
||||
*
|
||||
* @param $lehrf LehrfachsKurzbz
|
||||
* $stg Studiengang
|
||||
* $sem Semester
|
||||
********************************************************************/
|
||||
function check_lehrfach($lehrf, $stg, $sem)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_lehrfach where kurzbz = upper('$lehrf') AND studiengang_kz=$stg AND semester=$sem";
|
||||
|
||||
$result = pg_exec($this->connection, $sql_query);
|
||||
|
||||
if($row=pg_fetch_object($result))
|
||||
$this->erg = $row->lehrfach_nr;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Überprüft das Semester
|
||||
*
|
||||
* @param $sem Semster
|
||||
********************************************************************/
|
||||
function check_semester($sem)
|
||||
{
|
||||
if(is_numeric($sem) AND $sem<10)
|
||||
$this->erg = $sem;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,315 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Eine Einheit fasst mehrere Studenten zusammen. Die Besonderheit ist,
|
||||
* dass die Studenten aus unterschiedlichen Studiengaengen stammen koennen.
|
||||
* Das wird z.B. für die Freifaecher benoetigt.
|
||||
* @author Christian Paminger, Werner Masik (werner@gefi.at)
|
||||
* @version 1.0
|
||||
* @created 22-Okt-2004 11:50:18
|
||||
* @updated 28.10.2004 (WM)
|
||||
*/
|
||||
class einheit
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $stg_kz;
|
||||
/**
|
||||
* @var string nur zur info beim Suchergebnis, wird nicht gespeichert
|
||||
*/
|
||||
var $stg_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $semester;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $typ;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $mailgrp_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
|
||||
/**
|
||||
* @var DB-Resource
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
function einheit($conn,$kurzbz='')
|
||||
{
|
||||
$this->conn = $conn;
|
||||
|
||||
if (strlen($kurzbz)>0)
|
||||
{
|
||||
$this->kurzbz=$kurzbz;
|
||||
$this->load();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert die Einheit in der Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'. INSERT oder DELETE wird
|
||||
* durch 'new' bestimmt.
|
||||
* @param string $kurzbz_new Kurzbezeichnung ist optional
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save($kurzbz_new='')
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strlen($this->kurzbz)==0)
|
||||
{
|
||||
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->new)
|
||||
{
|
||||
if (is_numeric($this->semester)) $semester=$this->semester;
|
||||
else $semester='NULL';
|
||||
if (is_numeric($this->typ)) $typ=$this->typ;
|
||||
else $typ='NULL';
|
||||
if(!strlen($this->mailgrp_kurzbz)>0)
|
||||
$this->mailgrp_kurzbz='NULL';
|
||||
$qry="insert into tbl_einheit(einheit_kurzbz,studiengang_kz,bezeichnung,semester,typ,mailgrp_kurzbz) ".
|
||||
"values('".$this->kurzbz."','".$this->stg_kz."','".$this->bezeichnung."',$semester,$typ,$this->mailgrp_kurzbz)";
|
||||
} else
|
||||
{
|
||||
if (is_numeric($this->semester)) $semester='semester='.$this->semester;
|
||||
else $semester='semester=NULL';
|
||||
if (is_numeric($this->typ)) $typ='typ='.$this->typ;
|
||||
else $typ='NULL';
|
||||
if(!strlen($this->mailgrp_kurzbz)>0)
|
||||
$this->mailgrp_kurzbz='mailgrp_kurzbz=NULL';
|
||||
else
|
||||
$this->mailgrp_kurzbz="mailgrp_kurzbz='$this->mailgrp_kurzbz'";
|
||||
|
||||
$qry="update tbl_einheit set studiengang_kz=".$this->stg_kz.",bezeichnung='".$this->bezeichnung."',".
|
||||
"$semester,$typ,".$this->mailgrp_kurzbz.",einheit_kurzbz='".(strlen($kurzbz_new)>0?$kurzbz_new:$this->kurzbz)."' ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."'";
|
||||
|
||||
}
|
||||
//echo $qry;
|
||||
if(!($erg=pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($kurzbz='')
|
||||
{
|
||||
// optional: kurzbz setzen
|
||||
if (strlen($uid)>0)
|
||||
$this->kurzbz=$kurzbz;
|
||||
// uid vorhanden?
|
||||
if (strlen($this->kurzbz)==0) {
|
||||
$this->errormsg='<i>einheit_kurzbz</i> nicht gesetzt';
|
||||
return false;
|
||||
}
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="select einheit_kurzbz,studiengang_kz,bezeichnung,semester,typ, mailgrp_kurzbz ".
|
||||
"from tbl_einheit ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."'";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1) {
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->stg_kz=$row->studiengang_kz;
|
||||
$this->bezeichnung=$row->bezeichnung;
|
||||
$this->semester=$row->semester;
|
||||
$this->typ=$row->typ;
|
||||
$this->mailgrp_kurzbz=$row->mailgrp_kurzbz;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Funktion aus der Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function delete()
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_einheit where einheit_kurzbz='".$this->kurzbz."'";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function addStudent($uid) {
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="insert into tbl_einheitstudent(einheit_kurzbz,uid,updateamum,updatevon) ".
|
||||
"values('".$this->kurzbz."','".$uid."',now(),'".$_SERVER['PHP_AUTH_USER']."')";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function deleteStudent($uid) {
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_einheitstudent ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."' and uid='$uid'";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alle Einheiten zurueckgeben
|
||||
* @return array Array der einheiten
|
||||
*/
|
||||
function getAll($studiengang_kz='')
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($studiengang_kz)>0)
|
||||
{
|
||||
$where=" where tbl_einheit.studiengang_kz='".$studiengang_kz."' ";
|
||||
} else
|
||||
{
|
||||
$where="";
|
||||
}
|
||||
$qry="select tbl_einheit.*,tbl_studiengang.kurzbz from tbl_einheit join tbl_studiengang using(studiengang_kz) ".
|
||||
"$where order by einheit_kurzbz;";
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new einheit($this->conn);
|
||||
$l->kurzbz=$row->einheit_kurzbz;
|
||||
$l->stg_kz=$row->studiengang_kz;
|
||||
$l->stg_kurzbz=$row->kurzbz;
|
||||
$l->bezeichnung=$row->bezeichnung;
|
||||
$l->semester=$row->semester;
|
||||
$l->typ=$row->typ;
|
||||
$l->mailgrp_kurzbz=$row->mailgrp_kurzbz;
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liste aller Studenten zurueckgeben
|
||||
* @param string $studiengang_kz optional
|
||||
* @return array Array mit allen Studenten, false bei fehler
|
||||
*/
|
||||
function getStudenten($studiengang_kz='')
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($studiengang_kz)>0)
|
||||
{
|
||||
$where=" and tbl_einheit.studiengang_kz='".$studiengang_kz."' ";
|
||||
} else
|
||||
{
|
||||
$where="";
|
||||
}
|
||||
$qry="select einheit_kurzbz,uid ".
|
||||
"from tbl_einheitstudent join tbl_student using(uid) join tbl_person using(uid) ".
|
||||
" join tbl_einheit using (einheit_kurzbz) ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."' $where ".
|
||||
"order by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new student($this->conn,$row->uid);
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Anzahl der Studenten in einer Einheit
|
||||
* @param string kurzbzlang
|
||||
* @return anzahl der Studenten
|
||||
*/
|
||||
function countStudenten($einheit_kurzbz)
|
||||
{
|
||||
$qry = "Select count(*) as anzahl from tbl_einheitstudent where einheit_kurzbz='$einheit_kurzbz'";
|
||||
if($result=pg_query($this->conn,$qry))
|
||||
{
|
||||
if($row=pg_fetch_object($result))
|
||||
return $row->anzahl;
|
||||
else
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
class fachbereich
|
||||
{
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var string;
|
||||
*/
|
||||
var $farbe;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var boolean default true
|
||||
*/
|
||||
var $boolean = true;
|
||||
/**
|
||||
*
|
||||
* @var studiengang_kurzbz
|
||||
*/
|
||||
var $studiengang_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
/**
|
||||
* @var resource
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
|
||||
function fachbereich($conn)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alle Fachbereiche zurückgeben
|
||||
* @return array mit Fachbereichen oder false=fehler
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$qry = "select fachbereich_id,tbl_fachbereich.kurzbz,tbl_fachbereich.bezeichnung,tbl_fachbereich.farbe,tbl_fachbereich.studiengang_kz,".
|
||||
"tbl_studiengang.kurzbz as studiengang_kurzbz ".
|
||||
"from tbl_fachbereich join tbl_studiengang using(studiengang_kz) ".
|
||||
"order by tbl_Fachbereich.kurzbz";
|
||||
//echo $qry;
|
||||
if (!($erg = pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$result = array();
|
||||
$num_rows = pg_numrows($erg);
|
||||
for ($i = 0; $i < $num_rows; $i ++)
|
||||
{
|
||||
// Record holen
|
||||
$row = pg_fetch_object($erg, $i);
|
||||
// Instanz erzeugen
|
||||
$fb = new fachbereich($this->conn);
|
||||
$fb->id = $row->fachbereich_id;
|
||||
$fb->kurzbz = $row->kurzbz;
|
||||
$fb->bezeichnung = $row->bezeichnung;
|
||||
$fb->farbe = $row->farbe;
|
||||
$fb->studiengang_kz = $row->studiengang_kz;
|
||||
$fb->studiengang_kurzbz = $row->studiengang_kurzbz;
|
||||
// in array speichern
|
||||
$result[] = $fb;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,355 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse Adresse (FAS-Online)
|
||||
* @create 13-03-2006
|
||||
*/
|
||||
|
||||
class adresse
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var adresse Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $adresse_id; // @var integer
|
||||
var $bismeldeadresse; // @var boolean
|
||||
var $gemeinde; // @var string
|
||||
var $name; // @var string
|
||||
var $nation; // @var string
|
||||
var $ort; // @var string
|
||||
var $person_id; // @var integer
|
||||
var $plz; // @var string
|
||||
var $strasse; // @var string
|
||||
var $typ; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
var $zustelladresse; // @var boolean
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection
|
||||
* $adress_id ID der Adresse die geladen werden soll (Default=null)
|
||||
*/
|
||||
function adresse($conn,$adress_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($adress_id != null)
|
||||
$this->load($adress_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Funktion mit der ID $adress_id
|
||||
* @param $adress_id ID der zu ladenden Funktion
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($adress_id)
|
||||
{
|
||||
|
||||
//Pruefen ob adress_id eine gueltige Zahl ist
|
||||
if(!is_numeric($adress_id) || $adress_id == '')
|
||||
{
|
||||
$this->errormsg = 'Adress_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Daten aus der Datenbank lesen
|
||||
$qry = "SELECT * FROM adresse WHERE adresse_pk=$adress_id";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->adresse_id = $row->adresse_pk;
|
||||
$this->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
|
||||
$this->gemeinde = $row->gemeinde;
|
||||
$this->name = $row->name;
|
||||
$this->nation = $row->nation;
|
||||
$this->ort = $row->ort;
|
||||
$this->person_id = $row->person_fk;
|
||||
$this->plz = $row->plz;
|
||||
$this->strasse = $row->strasse;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
$this->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle adressen zu der Person die uebergeben wird
|
||||
* @param $pers_id ID der Person zu der die Adressen geladen werden sollen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($pers_id)
|
||||
{
|
||||
//Pruefen ob pers_id eine gueltige Zahl ist
|
||||
if(!is_numeric($pers_id) || $pers_id == '')
|
||||
{
|
||||
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM adresse WHERE person_fk=$pers_id";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$adr_obj = new adresse($this->conn);
|
||||
|
||||
$adr_obj->adresse_id = $row->adresse_pk;
|
||||
$adr_obj->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
|
||||
$adr_obj->gemeinde = $row->gemeinde;
|
||||
$adr_obj->name = $row->name;
|
||||
$adr_obj->nation = $row->nation;
|
||||
$adr_obj->ort = $row->ort;
|
||||
$adr_obj->person_id = $row->person_fk;
|
||||
$adr_obj->plz = $row->plz;
|
||||
$adr_obj->strasse = $row->strasse;
|
||||
$adr_obj->typ = $row->typ;
|
||||
$adr_obj->updateamum = $row->creationdate;
|
||||
$adr_obj->updatevon = $row->creationuser;
|
||||
$adr_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Adressen aus der Datenbank
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM adresse";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$adr_obj = new adresse($this->conn);
|
||||
|
||||
$adr_obj->adresse_id = $row->adresse_pk;
|
||||
$adr_obj->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
|
||||
$adr_obj->gemeinde = $row->gemeinde;
|
||||
$adr_obj->name = $row->name;
|
||||
$adr_obj->nation = $row->nation;
|
||||
$adr_obj->ort = $row->ort;
|
||||
$adr_obj->person_id = $row->person_fk;
|
||||
$adr_obj->plz = $row->plz;
|
||||
$adr_obj->strasse = $row->strasse;
|
||||
$adr_obj->typ = $row->typ;
|
||||
$adr_obj->updateamum = $row->creationdate;
|
||||
$adr_obj->updatevon = $row->creationuser;
|
||||
$adr_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen auf gueltigkeit
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Zahlenfelder pruefen
|
||||
$this->errormsg='Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->person_id))
|
||||
{
|
||||
$this->errormsg='Person_id enthaelt ungueltige Zeichen:'.$this->person_id;
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->typ))
|
||||
{
|
||||
$this->errormsg='Typ enthaelt ungueltige Zeichen';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Gesamtlaenge pruefen
|
||||
$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
|
||||
if(strlen($this->name)>255)
|
||||
{
|
||||
$this->errormsg = 'Name darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->strasse)>255)
|
||||
{
|
||||
$this->errormsg = 'Strasse darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->plz)>10)
|
||||
{
|
||||
$this->errormsg = 'Plz darf nicht länger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->ort)>255)
|
||||
{
|
||||
$this->errormsg = 'Ort darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->nation)>3)
|
||||
{
|
||||
$this->errormsg = 'Nation darf nicht länger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gemeinde)>255)
|
||||
{
|
||||
$this->errormsg = 'Gemeinde darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die Datenbank
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $adresse_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Variablen pruefen
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
//naechste ID aus der Sequence holen
|
||||
$qry="SELECT nextval('adresse_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
$this->adresse_id = $row->id;
|
||||
|
||||
$qry="INSERT INTO adresse (adresse_pk, person_fk, name, strasse, plz, typ, ort, nation, creationdate, creationuser,".
|
||||
" gemeinde, bismeldeadresse, zustelladresse) VALUES(".
|
||||
" $this->adresse_id, $this->person_id, '$this->name', '$this->strasse', '$this->plz', $this->typ, '$this->ort',".
|
||||
" '$this->nation', now(), $this->updatevon, '$this->gemeinde', '".($this->bismeldeadresse?'J':'N')."',".
|
||||
" '".($this->zustelladresse?'J':'N')."');";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Updaten des bestehenden Datensatzes
|
||||
|
||||
//Pruefen ob adresse_id eine gueltige Zahl ist
|
||||
if(!is_numeric($this->adresse_id))
|
||||
{
|
||||
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="UPDATE adresse SET person_fk='$this->person_id', name='$this->name', strasse='$this->strasse', plz='$this->plz',".
|
||||
" typ='$this->typ', ort='$this->ort', nation='$this->nation', gemeinde='$this->gemeinde',".
|
||||
" bismeldeadresse='".($this->bismeldeadresse?'J':'N')."', zustelladresse='".($this->zustelladresse?'J':'N')."'".
|
||||
" WHERE adresse_pk='$this->adresse_id'";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datenensatz mit der ID die uebergeben wird
|
||||
* @param $adress_id ID die geloescht werden soll
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($adress_id)
|
||||
{
|
||||
//Pruefen ob adresse_id eine gueltige Zahl ist
|
||||
if(!is_numeric($adress_id) || $adress_id == '')
|
||||
{
|
||||
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//loeschen des Datensatzes
|
||||
$qry="DELETE FROM adresse WHERE adresse_pk=$adress_id;";
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse ausbildungssemester (FAS-Online)
|
||||
* @create 15-03-2006
|
||||
*/
|
||||
class ausbildungssemester
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var ausbildungssemester Objekt
|
||||
|
||||
var $ausbildungssemester_id; // @var integer
|
||||
var $studiengang_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $personenstatus; // @var integer
|
||||
var $semester; // @var integer
|
||||
var $updatevon=0; // @var timestamp
|
||||
var $updateamum; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $ausbildungssemester_id ID des zu ladenden Datensatzes
|
||||
*/
|
||||
function ausbildungssemester($conn, $ausbildungssemester_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($ausbildungssemester_id != null)
|
||||
$this->load($ausbildungssemester_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz aus der Datenbank
|
||||
* @param $ausbildungssemester_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($ausbildungssemester_id)
|
||||
{
|
||||
if(!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == '')
|
||||
{
|
||||
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM ausbildungssemester WHERE ausbildungssemester_pk = '$ausbildungssemester_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row=pg_fetch_object($res))
|
||||
{
|
||||
$this->ausbildungssemester_id = $row->ausbildungssemester_pk;
|
||||
$this->studiengang_id = $row->studiengang_fk;
|
||||
$this->semester = $row->semester;
|
||||
$this->name = $row->name;
|
||||
$this->personenstatus = $row->personenstatus;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle ausbildungssemester zu einem Studiengang
|
||||
* @param $studiengang_id Studiengang_id des Ausbildungssemesters
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_stg($studiengang_id)
|
||||
{
|
||||
if(!is_numeric($studiengang_id) || $studiengang_id == '')
|
||||
{
|
||||
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM ausbildungssemester WHERE studiengang_fk = '$studiengang_id' order by semester";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$ausb_obj = new ausbildungssemester($this->conn);
|
||||
|
||||
$ausb_obj->ausbildungssemester_id = $row->ausbildungssemester_pk;
|
||||
$ausb_obj->studiengang_id = $row->studiengang_fk;
|
||||
$ausb_obj->semester = $row->semester;
|
||||
$ausb_obj->name = $row->name;
|
||||
$ausb_obj->personenstatus = $row->personenstatus;
|
||||
$ausb_obj->updateamum = $row->creationdate;
|
||||
$ausb_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $ausb_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Ausbildungssemester
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM ausbildungssemester;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$ausb_obj = new ausbildungssemester($this->conn);
|
||||
|
||||
$ausb_obj->ausbildungssemester_id = $row->ausbildungssemester_pk;
|
||||
$ausb_obj->studiengang_id = $row->studiengang_fk;
|
||||
$ausb_obj->semester = $row->semester;
|
||||
$ausb_obj->name = $row->name;
|
||||
$ausb_obj->personenstatus = $row->personenstatus;
|
||||
$ausb_obj->updateamum = $row->creationdate;
|
||||
$ausb_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $ausb_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkt die Variablen vor dem Speichern
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
if(!checkvars())
|
||||
return false;
|
||||
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datensatz mit der ID die uebergeben wurde
|
||||
* @param $ausbildungssemester_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($ausbildungssemester_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,340 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse bankverbindung (FAS-Online)
|
||||
* @create 07-03-2006
|
||||
*/
|
||||
class bankverbindung
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var bankverbindung Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $bankverbindung_id; // @var integer
|
||||
var $person_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $anschrift; // @var string
|
||||
var $blz; // @var string
|
||||
var $bic; // @var string
|
||||
var $kontonr; // @var string
|
||||
var $iban; // @var string
|
||||
var $typ; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $bank_id Zu ladende ID (Default=null)
|
||||
*/
|
||||
function bankverbindung($conn, $bank_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($bank_id != null)
|
||||
$this->load($bank_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die gueltigkeit der Variablen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
$this->errormsg = 'Eine der Maximiallaengen wurde ueberschritten';
|
||||
if(strlen($this->name)>255)
|
||||
{
|
||||
$this->errormsg = 'Name darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->anschrift)>255)
|
||||
{
|
||||
$this->errormsg = 'Anschrift darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->blz)>15)
|
||||
{
|
||||
$this->errormsg = 'BLZ darf nicht länger als 15 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->bic)>15)
|
||||
{
|
||||
$this->errormsg = 'BIC darf nicht länger als 15 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->kontonr)>25)
|
||||
{
|
||||
$this->errormsg = 'KontoNr darf nicht länger als 25 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->iban)>25)
|
||||
{
|
||||
$this->errormsg = 'IBAN darf nicht länger als 25 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Zahlenwerte ueberpruefen
|
||||
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->person_id)) return false;
|
||||
if(!is_numeric($this->typ)) return false;
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $bankverbindung_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Gueltigkeit der Variablen pruefen
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
//Naechste ID aus der Sequence holen
|
||||
$qry = "SELECT nextval('bankverbindung_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
$this->bankverbindung_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO bankverbindung (bankverbindung_pk, person_fk, name, anschrift, blz, bic,".
|
||||
" kontonr, iban, typ, creationdate, creationuser) VALUES(".
|
||||
" '$this->bankverbindung_id', '$this->person_id', '$this->name', '$this->anschrift',".
|
||||
" '$this->blz', '$this->bic', '$this->kontonr', '$this->iban', '$this->typ', now(), $this->updatevon);";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Datensatz Updaten
|
||||
|
||||
//ID pruefen
|
||||
if(!is_numeric($this->bankverbindung_id))
|
||||
{
|
||||
$this->errormsg = 'bankverbindung_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="UPDATE bankverbindung SET person_fk='$this->person_id', name='$this->name',".
|
||||
" anschrift='$this->anschrift', blz='$this->blz', bic='$this->bic',".
|
||||
" kontonr='$this->kontonr', iban='$this->iban', typ='$this->typ'".
|
||||
" WHERE bankverbindung_pk=$this->bankverbindung_id";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datensatz mit der uebergebenen ID
|
||||
* @param $bank_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($bank_id)
|
||||
{
|
||||
if(!is_numeric($bank_id) || $bank_id == '')
|
||||
{
|
||||
$this->errormsg = 'bank_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="DELETE FROM bankverbindung WHERE bankverbindung_pk=$bank_id";
|
||||
|
||||
if(!pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen der Daten';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Bankverbindung mit der uebergebenen ID
|
||||
* @param $bank_id ID der bankverbindung
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($bank_id)
|
||||
{
|
||||
if(!is_numeric($bank_id) || $bank_id == '')
|
||||
{
|
||||
$this->errormsg = 'bank_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM bankverbindung WHERE bankverbindung_pk=$bank_id";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->bankverbindung_id = $row->bankverbindung_pk;
|
||||
$this->person_id = $row->person_fk;
|
||||
$this->name = $row->name;
|
||||
$this->anschrift = $row->anschrift;
|
||||
$this->blz = $row->blz;
|
||||
$this->bic = $row->bic;
|
||||
$this->kontonr = $row->kontonr;
|
||||
$this->iban = $row->iban;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Bankverbindungen der Person die uebergeben wird
|
||||
* @param $pers_id ID der Person
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($pers_id)
|
||||
{
|
||||
if(!is_numeric($pers_id) || $pers_id == '')
|
||||
{
|
||||
$this->errormsg = 'pers_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM bankverbindung WHERE person_fk=$pers_id";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$bank_obj = new bankverbindung($this->conn);
|
||||
|
||||
$bank_obj->bankverbindung_id = $row->bankverbindung_pk;
|
||||
$bank_obj->person_id = $row->person_fk;
|
||||
$bank_obj->name = $row->name;
|
||||
$bank_obj->anschrift = $row->anschrift;
|
||||
$bank_obj->blz = $row->blz;
|
||||
$bank_obj->bic = $row->bic;
|
||||
$bank_obj->kontonr = $row->kontonr;
|
||||
$bank_obj->iban = $row->iban;
|
||||
$bank_obj->typ = $row->typ;
|
||||
$bank_obj->updateamum = $row->creationdate;
|
||||
$bank_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $bank_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Bankverbindungen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM bankverbindung";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$bank_obj = new bankverbindung($this->conn);
|
||||
|
||||
$bank_obj->bankverbindung_id = $row->bankverbindung_pk;
|
||||
$bank_obj->person_id = $row->person_fk;
|
||||
$bank_obj->name = $row->name;
|
||||
$bank_obj->anschrift = $row->anschrift;
|
||||
$bank_obj->blz = $row->blz;
|
||||
$bank_obj->bic = $row->bic;
|
||||
$bank_obj->kontonr = $row->kontonr;
|
||||
$bank_obj->iban = $row->iban;
|
||||
$bank_obj->typ = $row->typ;
|
||||
$bank_obj->updateamum = $row->creationdate;
|
||||
$bank_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $bank_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getTypBezeichnung($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'Privatkonto';
|
||||
case 2: return 'Firmenkonto';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,386 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse fuer Berechtigungen der User
|
||||
* @author Christian Paminger
|
||||
* @version 1.0
|
||||
* @updated 11-Feb-2004
|
||||
*/
|
||||
class benutzer
|
||||
{
|
||||
/**
|
||||
* interne userberechtigung_id (Zaehler aus DB)
|
||||
* @var integer
|
||||
*/
|
||||
var $userberechtigung_id;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $fachbereich_id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $berechtigung_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $uid;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $studiensemester_kurzbz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $start;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $ende;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $starttimestamp;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $endetimestamp;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $art;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
var $berechtigungen=array();
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
||||
var $variable;
|
||||
|
||||
var $conn; //Vilesci Connection
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $new;
|
||||
var $errormsg;
|
||||
|
||||
function benutzer($conn)
|
||||
{
|
||||
$this->conn=$conn;
|
||||
$this->new=true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($id)
|
||||
{
|
||||
// Berechtigung holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
|
||||
//echo $sql_query;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1)
|
||||
{
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->userberechtigung_id=$row->userberechtigung_id;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->fachbereich_id=$row->fachbereich_id;
|
||||
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$this->uid=$row->uid;
|
||||
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$this->start=$row->start;
|
||||
$this->ende=$row->ende;
|
||||
$this->art=$row->art;
|
||||
$this->new=false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
/*
|
||||
// Connection holen
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Daten zur Person speichern
|
||||
|
||||
if (!person::save()) {
|
||||
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung)".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
"'".$this->unr."',".
|
||||
"'".$this->einheit_kurzbz."',".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"'".$this->verband."',".
|
||||
"'".$this->gruppe."',".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$qry="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr='".$this->unr."',".
|
||||
"einheit_kurzbz='".$this->einheit_kurzbz."',".
|
||||
"lektor='".$this->lehrfach_nr."',".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"verband='".$this->verband."',".
|
||||
"gruppe='".$this->gruppe."',".
|
||||
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
|
||||
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
}
|
||||
//echo "<br>".$qry;
|
||||
if(!@pg_query($conn, $qry))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
|
||||
* Fehlermeldung liegt in errormsg.
|
||||
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
|
||||
* @param string $uid UserID
|
||||
* @return variabel Array mit LVA; <b>false</b> bei Fehler
|
||||
*/
|
||||
function getBerechtigungen($uid)
|
||||
{
|
||||
// Berechtigungen holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
|
||||
//echo $sql_query;
|
||||
if(!$erg=@pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
//$num_rows=pg_numrows($erg);
|
||||
while($row=pg_fetch_object($erg))
|
||||
{
|
||||
$b=new berechtigung($this->conn);
|
||||
$b->userberechtigung_id=$row->userberechtigung_id;
|
||||
$b->studiengang_kz=$row->studiengang_kz;
|
||||
$b->fachbereich_id=$row->fachbereich_id;
|
||||
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$b->uid=$row->uid;
|
||||
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$b->start=$row->start;
|
||||
if ($row->start!=null)
|
||||
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
|
||||
else
|
||||
$b->starttimestamp=null;
|
||||
$b->ende=$row->ende;
|
||||
if ($row->ende!=null)
|
||||
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
|
||||
else
|
||||
$b->endetimestamp=null;
|
||||
$b->art=$row->art;
|
||||
$this->berechtigungen[]=$b;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null)
|
||||
{
|
||||
$timestamp=time();
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
|
||||
&& strstr($b->art,$art))
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
|
||||
* Optional wird auf Berechtigung eingeschraenkt.
|
||||
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
|
||||
*/
|
||||
function getStgKz($berechtigung=null)
|
||||
{
|
||||
$studiengang_kz=array();
|
||||
$timestamp=time();
|
||||
|
||||
foreach ($this->berechtigungen as $b)
|
||||
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
|
||||
$studiengang_kz[]=$b->studiengang_kz;
|
||||
$studiengang_kz=array_unique($studiengang_kz);
|
||||
sort($studiengang_kz);
|
||||
return $studiengang_kz;
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt die Studiensemester Variable
|
||||
*/
|
||||
function setVariableStudiensemester($user,$stsem)
|
||||
{
|
||||
//Vorhandende Variable aendern
|
||||
$qry = "Update tbl_variable SET wert='$stsem' WHERE uid='$user' AND name='semester_aktuell'";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
if(pg_affected_rows($result)==0)
|
||||
{
|
||||
//Falls Variable nicht vorhanden ist eine neue anlegen
|
||||
$qry = "INSERT INTO tbl_variable(uid, name, wert) values('$user', 'semester_aktuell', '$stsem')";
|
||||
if(pg_query($this->conn,$qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getpossibilities($variable)
|
||||
{
|
||||
$ret = array();
|
||||
|
||||
switch($variable)
|
||||
{
|
||||
case 'semester_aktuell':
|
||||
$qry = "Select * from tbl_studiensemester order by start";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
$ret[] = $row->studiensemester_kurzbz;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function loadVariables($user)
|
||||
{
|
||||
if(!($result=@pg_query($this->conn, "SELECT * FROM tbl_variable WHERE uid='$user'")))
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$num_rows=@pg_numrows($result);
|
||||
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$this->variable->{$row->name}=$row->wert;
|
||||
}
|
||||
|
||||
if (!isset($this->variable->semester_aktuell))
|
||||
{
|
||||
if(!($result=@pg_query($this->conn, 'SELECT * FROM tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1')))
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$num_rows=@pg_numrows($result);
|
||||
if ($num_rows>0)
|
||||
{
|
||||
$row=pg_fetch_object($result);
|
||||
$this->variable->semester_aktuell=$row->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($this->variable->db_stpl_table))
|
||||
$this->variable->db_stpl_table='stundenplan';
|
||||
|
||||
if (!isset($this->variable->fas_id))
|
||||
$this->variable->fas_id=0;
|
||||
|
||||
if (!isset($this->variable->sleep_time))
|
||||
$this->variable->sleep_time=300;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,310 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse email (FAS-Online)
|
||||
* @create 14-03-2006
|
||||
*/
|
||||
class email
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var email Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $email_id; // @var integer
|
||||
var $person_id; // @var integer
|
||||
var $email; // @var string
|
||||
var $name; // @var string
|
||||
var $typ; // @var integer
|
||||
var $zustelladresse; // @var boolean
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param conn Connection zur Datenbank
|
||||
* mail_id ID des zu ladenden Datensatzes
|
||||
*/
|
||||
function email($conn, $mail_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($mail_id != null)
|
||||
$this->load($mail_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param mail_id ID des zu ladenden Datensatzes
|
||||
*/
|
||||
function load($mail_id)
|
||||
{
|
||||
//mail_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($mail_id) || $mail_id == '')
|
||||
{
|
||||
$this->errormsg = 'mail_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT * FROM email WHERE email_pk='$mail_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row=pg_fetch_object($res))
|
||||
{
|
||||
$this->email_id = $row->email_pk;
|
||||
$this->person_id = $row->person_fk;
|
||||
$this->email = $row->email;
|
||||
$this->name = $row->name;
|
||||
$this->typ = $row->typ;
|
||||
$this->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Datensaetze
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
/* Frisst zu viel Speicher und wird beendet
|
||||
|
||||
$qry = "SELECT * FROM email;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$mail_obj = new email($this->conn);
|
||||
|
||||
$mail_obj->email_id = $row->email_pk;
|
||||
$mail_obj->person_id = $row->person_fk;
|
||||
$mail_obj->email = $row->email;
|
||||
$mail_obj->name = $row->name;
|
||||
$mail_obj->typ = $row->typ;
|
||||
$mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
$mail_obj->updateamum = $row->creationdate;
|
||||
$mail_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $mail_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Datensaetze zu einer person
|
||||
* @param pers_id ID der Person zu der die Mails geladen werden sollen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($pers_id)
|
||||
{
|
||||
//pers_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($pers_id) || $pers_id == '')
|
||||
{
|
||||
$this->errormsg = 'pers_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Datensaetze laden
|
||||
$qry = "SELECT * FROM email WHERE person_fk='$pers_id';";
|
||||
|
||||
if(!$result = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$mail_obj = new email($this->conn);
|
||||
|
||||
$mail_obj->email_id = $row->email_pk;
|
||||
$mail_obj->person_id = $row->person_fk;
|
||||
$mail_obj->email = $row->email;
|
||||
$mail_obj->name = $row->name;
|
||||
$mail_obj->typ = $row->typ;
|
||||
$mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
$mail_obj->updateamum = $row->creationdate;
|
||||
$mail_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $mail_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param mail_id ID des zu leoschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($mail_id)
|
||||
{
|
||||
//mail_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($mail_id) || $mail_id == '')
|
||||
{
|
||||
$this->errormsg = 'mail_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM email WHERE email_pk = '$mail_id';";
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die variablen auf gueltigkeit
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
if(strlen($this->name)>255)
|
||||
{
|
||||
$this->errormsg = 'Name darf nicht mehr als 255 Zeichen lang sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->email)>255)
|
||||
{
|
||||
$this->errormsg = 'EMail darf nicht mehr als 255 Zeichen lang sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Zahlenfelder pruefen
|
||||
if(!is_numeric($this->person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->typ))
|
||||
{
|
||||
$this->errormsg = 'Typ muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $email_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz anlegen
|
||||
|
||||
//Naechste ID aus Sequence holen
|
||||
$qry = "SELECT nextval('email_seq') as id;";
|
||||
if(!$row=pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der ID aus der Sequence';
|
||||
return false;
|
||||
}
|
||||
$this->email_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO email (email_pk, person_fk, name, email, typ, creationdate, creationuser, zustelladresse)".
|
||||
" VALUES ('$this->email_id', '$this->person_id', '$this->name', '$this->email', '$this->typ', now(),".
|
||||
" $this->updatevon, '".($this->zustelladresse?'J':'N')."');";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Bestehenden Datensatz aktualisieren
|
||||
|
||||
//email_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($this->email_id) || $this->email_id == '')
|
||||
{
|
||||
$this->errormsg = 'email_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "UPDATE email SET person_fk = '$this->person_id', name = '$this->name', email = '$this->email',".
|
||||
" typ = '$this->typ', zustelladresse = '".($this->zustelladresse?'J':'N')."' WHERE email_pk = '$this->email_id';";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim speichern des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse fachbereich (FAS-Online)
|
||||
* @create 14-03-2006
|
||||
*/
|
||||
|
||||
class fachbereich
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var fachbereich Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $fachbereich_id; // @var integer
|
||||
var $erhalter_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur DB
|
||||
* $fachb_id ID des zu ladenden Fachbereiches
|
||||
*/
|
||||
function fachbereich($conn, $fachb_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($fachb_id != null)
|
||||
$this->load($fachb_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle verfuegbaren Fachbereiche
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = 'SELECT * FROM fachbereich order by name;';
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Datensaetze';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$fachb_obj = new fachbereich($this->conn);
|
||||
|
||||
$fachb_obj->fachbereich_id = $row->fachbereich_pk;
|
||||
$fachb_obj->erhalter_id = $row->erhalter_fk;
|
||||
$fachb_obj->name = $row->name;
|
||||
$fachb_obj->updateamum = $row->creationdate;
|
||||
$fachb_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $fachb_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Fachbereich
|
||||
* @param $fachb_id ID des zu ladenden Fachbereiches
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($fachb_id)
|
||||
{
|
||||
if(!is_numeric($fachb_id) || $fachb_id == '')
|
||||
{
|
||||
$this->errormsg = 'fachb_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM fachbereich WHERE fachbereich_pk = '$fachb_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row=pg_fetch_object($res))
|
||||
{
|
||||
$this->fachbereich_id = $row->fachbereich_pk;
|
||||
$this->erhalter_id = $row->erhalter_fk;
|
||||
$this->name = $row->name;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param $fachb_id id des Datensatzes der geloescht werden soll
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($fachb_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Liefert die ID eines Studiensemesters aus der FAS Datenbank
|
||||
* @param conn_fas Connection zur FAS Datenbank
|
||||
* conn_vilesci Connection zur Vilesci Datenbank
|
||||
* stsem Studiensemester im Format: 'WS2006', 'SS2006'
|
||||
*/
|
||||
function getStudiensemesterIdFromName($conn_fas, $stsem)
|
||||
{
|
||||
$qry = 'SELECT studiensemester_pk from studiensemester where art=';
|
||||
if(substr($stsem,0,2)=='WS')
|
||||
$qry .='1';
|
||||
else
|
||||
$qry .='2';
|
||||
$qry .= ' AND jahr=';
|
||||
$qry .= substr($stsem,2,4);
|
||||
$stsem_id=0;
|
||||
|
||||
if($result=@pg_query($conn_fas,$qry))
|
||||
if($row=pg_fetch_object($result))
|
||||
$stsem_id=$row->studiensemester_pk;
|
||||
else
|
||||
echo pg_last_error($conn_fas);
|
||||
return $stsem_id;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,691 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse funktionen (FAS-Online)
|
||||
* Verwaltet die Funktionen der Mitarbeiter
|
||||
* @create 07-03-2006
|
||||
*/
|
||||
|
||||
class funktion
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $errormsg; // @var string
|
||||
var $new; // @var boolean
|
||||
var $result = array(); // @var funktion Objekt
|
||||
|
||||
//vars fuer Tabellenspalten
|
||||
var $funktion_id; // @var integer
|
||||
var $mitarbeiter_id; // @var integer
|
||||
var $studiensemester_id; // @var integer
|
||||
var $erhalter_id; // @var integer
|
||||
var $studiengang_id; // @var integer
|
||||
var $fachbereich_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $funktion; // @var integer ( 0 = Mitarbeiter, 1 = Lektor, 2 = Fachbereichskoordinatior, 3 = Assistenz,
|
||||
// 4 = Rektor, 5 = Studiengangsleiter, 6 = Fachbereichsleiter)
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
var $beschart1; // @var integer ( 1 = Dienstverhaeltnis zum Bund, 2 = Dienstverhaeltnis zu einer anderen Gebietskoerperschaft,
|
||||
// 3 = Echter Dienstvertrag, 4 = Freier Dienstvertrag, 5 = Lehre/Ausbildung, 6 = Sonstiges)
|
||||
var $beschart2; // @var integer ( 1 = befristet, 2 = unbefristet)
|
||||
var $verwendung; // @var integer
|
||||
var $hauptberuflich; // @var boolean
|
||||
var $hauptberuf; // @var integer
|
||||
var $entwicklungsteam; // @var boolean
|
||||
var $besonderequalifikation; // @var integer
|
||||
var $sws; // @var float wird nicht verwendet
|
||||
var $ausmass; // @var float ( 1 = Vollzeit, 2 = <=15 Wochenstd, 3 = 15-25 Wochenstd, 4 = 26-36 Wochenstd, 5 = Karenz)
|
||||
var $status; // @var integer Aktstatus der Person (wird bei loeschen einer funktion gesetzt)
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $fkt_id Id der zu ladenden Funktion (Default=null)
|
||||
*/
|
||||
function funktion($conn, $fkt_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($fkt_id != null)
|
||||
$this->load($fkt_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* loescht die Funktion mit der uebergebenen ID
|
||||
* @param $funktion_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($funktion_id)
|
||||
{
|
||||
//Pruefen ob funktion_id gueltig ist
|
||||
if(is_numeric($funktion_id) && $funktion_id != '')
|
||||
{
|
||||
//Person ermitteln
|
||||
$person_id=0;
|
||||
$mitarbeiter_id=0;
|
||||
$qry = "Select person_fk, mitarbeiter_pk from mitarbeiter join funktion on(mitarbeiter_pk=mitarbeiter_fk) where funktion_pk = $funktion_id";
|
||||
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$person_id = $row->person_fk;
|
||||
$mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim ermitteln der Person';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM funktion WHERE funktion_pk=$funktion_id;";
|
||||
$sql = $qry;
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Neuen aktstatus ermitteln
|
||||
$qry = "Select aktstatus from person where person_pk=$person_id";
|
||||
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$aktstatus = $row->aktstatus;
|
||||
if($aktstatus!=150) //wenn er nicht ausgeschieden ist
|
||||
{
|
||||
//Funktionen holen
|
||||
$qry = "Select funktion from funktion where ".
|
||||
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
|
||||
" AND mitarbeiter_fk = '$mitarbeiter_id'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
$fkt=array();
|
||||
$i=0;
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$fkt[$i]=$row->funktion;
|
||||
$i++;
|
||||
}
|
||||
|
||||
//Aktstatus ermitteln
|
||||
if(in_array(5,$fkt)) //STGL
|
||||
$aktstatus = 104;
|
||||
elseif(in_array(6,$fkt)) //FBL
|
||||
$aktstatus = 103;
|
||||
elseif(in_array(2,$fkt)) //FBK
|
||||
$aktstatus = 102;
|
||||
elseif(in_array(1,$fkt)) //LKT
|
||||
$aktstatus = 101;
|
||||
else
|
||||
$aktstatus = 100; //Mitarbeiter
|
||||
|
||||
$this->status = $aktstatus;
|
||||
//neuen akstatus setzen
|
||||
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
|
||||
if(pg_query($qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql .= $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim setzen des Aktstatus';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Beim loeschen ist ein Fehler aufgetreten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'funktion_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft die Variablen auf Gueltigkeit
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Hochkomma und HTML Tags ersetzen
|
||||
//$this->name = htmlentities($this->name, ENT_QUOTES);
|
||||
|
||||
//Maximallaenge pruefen
|
||||
$this->errormsg = 'Die Maximallaenge eines Feldes wurde ueberschritten';
|
||||
if(strlen($this->name)>255) return false;
|
||||
|
||||
//Zahlenwerte ueberpruefen
|
||||
/*
|
||||
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
|
||||
if(!is_numeric($this->funktion)) return false;
|
||||
if(!is_numeric($this->beschart1)) return false;
|
||||
if(!is_numeric($this->beschart2)) return false;
|
||||
if(!is_numeric($this->verwendung)) return false;
|
||||
if(!is_numeric($this->hauptberuf)) return false;
|
||||
if(!is_numeric($this->sws)) $this->sws=0;
|
||||
if(!is_numeric($this->ausmass)) return false;
|
||||
if(!is_numeric($this->mitarbeiter_id)) return false;
|
||||
if(!is_numeric($this->erhalter_id)) return false;
|
||||
if(!is_numeric($this->studiengang_id)) return false;
|
||||
if(!is_numeric($this->fachbereich_id)) return false;
|
||||
if(!is_numeric($this->studiensemester_id)) return false;
|
||||
if(!is_numeric($this->besonderequalifikation)) return false;
|
||||
*/
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die Daten in die Datenbank
|
||||
* @return true wenn OK, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
//neuen aktstatus ermitteln
|
||||
if($status=$this->getaktstatus())
|
||||
$statusqry = "Update person SET aktstatus=$status where person_pk = (Select person_fk from mitarbeiter where mitarbeiter_pk='$this->mitarbeiter_id');";
|
||||
else
|
||||
$statusqry = "";
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Naechste ID aus der Sequence holen
|
||||
$qry = "SELECT nextval('funktion_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
|
||||
return false;
|
||||
}
|
||||
$this->funktion_id = $row->id;
|
||||
|
||||
$qry= $statusqry."INSERT INTO funktion (funktion_pk, mitarbeiter_fk, studiensemester_fk, erhalter_fk, studiengang_fk,".
|
||||
" fachbereich_fk, name, funktion, creationdate, creationuser, beschart1, beschart2, verwendung,".
|
||||
" hauptberuflich, hauptberuf, entwicklungsteam, besonderequalifikation, sws, ausmass) VALUES(".
|
||||
" '$this->funktion_id','$this->mitarbeiter_id', '$this->studiensemester_id', '$this->erhalter_id',".
|
||||
($this->studiengang_id!=''?" '$this->studiengang_id'":'null').",".
|
||||
($this->fachbereich_id!=''?" '$this->fachbereich_id'":'null').",".
|
||||
($this->name!=''?" '$this->name'":'null').",".
|
||||
($this->funktion!=''?" '$this->funktion'":'null').", now(), $this->updatevon,".
|
||||
($this->beschart1!=''?" '$this->beschart1'":'null').",".
|
||||
($this->beschart2!=''?" '$this->beschart2'":'null').",".
|
||||
($this->verwendung!=''?" '$this->verwendung'":'null').", '".($this->hauptberuflich?'J':'N')."',".
|
||||
($this->hauptberuf!=''?" '$this->hauptberuf'":'null').", '".($this->entwicklungsteam?'J':'N')."',".
|
||||
($this->besonderequalifikation!=''?" '$this->besonderequalifikation'":'null').", null,".
|
||||
($this->ausmass!=''?" '$this->ausmass'":'null').")";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!is_numeric($this->mitarbeiter_id) && !is_numeric($this->funktion_id))
|
||||
{
|
||||
$this->errormsg = 'mitarbeiter_id und funktion_id muessen eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry= $statusqry. "UPDATE funktion SET ".
|
||||
" studiensemester_fk=".($this->studiensemester_id!=''?"'$this->studiensemester_id'":'null').",".
|
||||
" erhalter_fk=".($this->erhalter_id!=''?"'$this->erhalter_id'":'null').",".
|
||||
" studiengang_fk=".($this->studiengang_id!=''?"'$this->studiengang_id'":'null').",".
|
||||
" fachbereich_fk=".($this->fachbereich_id!=''?"'$this->fachbereich_id'":'null').",".
|
||||
" name=".($this->name!=''?"'$this->name'":'null').",".
|
||||
" funktion=".($this->funktion!=''?"'$this->funktion'":'null').",".
|
||||
" beschart1=".($this->beschart1!=''?"'$this->beschart1'":'null').",".
|
||||
" beschart2=".($this->beschart2!=''?"'$this->beschart2'":'null').",".
|
||||
" verwendung=".($this->verwendung!=''?"'$this->verwendung'":'null').",".
|
||||
" hauptberuflich='".($this->hauptberuflich?'J':'N')."',".
|
||||
" hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null').",".
|
||||
" entwicklungsteam='".($this->entwicklungsteam?'J':'N')."',".
|
||||
" besonderequalifikation=".($this->besonderequalifikation!=''?"'$this->besonderequalifikation'":'null').",".
|
||||
" sws=".($this->sws!=''?"'$this->sws'":'null').",".
|
||||
" ausmass=".($this->ausmass!=''?"'$this->ausmass'":'null').
|
||||
" WHERE funktion_pk=$this->funktion_id"; // AND mitarbeiter_fk=$this->mitarbeiter_id";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
$qry = "UPDATE funktion SET hauptberuflich='".($this->hauptberuflich?'J':'N')."', hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null')." WHERE mitarbeiter_fk ='$this->mitarbeiter_id' AND studiensemester_fk='$this->studiensemester_id'";
|
||||
if(!pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Updaten der Funktionen';
|
||||
return false;
|
||||
}
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten'.$qry;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ermittelt den neuen aktstatus einer Person
|
||||
*/
|
||||
function getaktstatus()
|
||||
{
|
||||
$aktstatus=100;
|
||||
//Aktuellen Status holen
|
||||
$qry = "Select aktstatus from person join mitarbeiter on(person_fk=person_pk) where mitarbeiter_pk='".$this->mitarbeiter_id."'";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
$aktstatus = $row->aktstatus;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
//Wenn die Funktion das aktuelle Studiensemester betrifft
|
||||
$qry = "Select studiensemester_pk from studiensemester where aktuell='J'";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
if($row=pg_fetch_object($result))
|
||||
{
|
||||
if($row->studiensemester_pk == $this->studiensemester_id)
|
||||
{
|
||||
*/
|
||||
//Neuen Status setzen
|
||||
if($this->funktion == 1 && $aktstatus < 101) //Lektor
|
||||
$aktstatus = 101;
|
||||
elseif($this->funktion == 2 && $aktstatus < 102) //Fachbereichskoordinator
|
||||
$aktstatus = 102;
|
||||
elseif($this->funktion == 6 && $aktstatus < 103) //Fachbereichsleiter
|
||||
$aktstatus = 103;
|
||||
elseif($this->funktion == 5 && $aktstatus < 104) //Studiengangsleiter
|
||||
$aktstatus = 104;
|
||||
/* }
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters';
|
||||
return false;
|
||||
}*/
|
||||
$this->status = $aktstatus;
|
||||
return $aktstatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt eine Funktion aus der DB
|
||||
* @param $fkt_id ID der zu ladenden Funktion
|
||||
* @return true wenn erfolgreich geladen, false im Fehlerfall
|
||||
*/
|
||||
function load($fkt_id)
|
||||
{
|
||||
//Pruefen ob fkt_id gueltig ist
|
||||
if(!is_numeric($fkt_id))
|
||||
{
|
||||
$this->errormsg = 'funktion_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM funktion WHERE funktion_pk=$fkt_id";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->funktion_id = $row->funktion_pk;
|
||||
$this->mitarbeiter_id = $row->mitarbeiter_fk;
|
||||
$this->studiensemester_id = $row->studiensemester_fk;
|
||||
$this->erhalter_id = $row->erhalter_fk;
|
||||
$this->studiengang_id = $row->studiengang_fk;
|
||||
$this->fachbereich_id = $row->fachbereich_fk;
|
||||
$this->name = $row->name;
|
||||
$this->funktion = $row->funktion;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
$this->beschart1 = $row->beschart1;
|
||||
$this->beschart2 = $row->beschart2;
|
||||
$this->verwendung = $row->verwendung;
|
||||
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$this->hauptberuf = $row->hauptberuf;
|
||||
$this->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
|
||||
$this->besonderequalifikation = $row->besonderequalifikation;
|
||||
$this->sws = $row->sws;
|
||||
$this->ausmass = $row->ausmass;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Funktion(en) eines Mitarbeiters
|
||||
* @param $ma_id ID des zu ladenden Mitarbeiters
|
||||
* @return true wenn erfolgreich geladen, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($ma_id, $stsem='')
|
||||
{
|
||||
//pruefen ob ma_id gueltig ist
|
||||
if(!is_numeric($ma_id))
|
||||
{
|
||||
$this->errormsg = 'mitarbeiter_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="SELECT * FROM funktion WHERE mitarbeiter_fk=$ma_id";
|
||||
if($stsem!='')
|
||||
$qry.= " AND studiensemester_fk='$stsem'";
|
||||
$qry.=" ORDER BY studiensemester_fk DESC, funktion_pk";
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$fkt_obj = new funktion($this->conn);
|
||||
|
||||
$fkt_obj->funktion_id = $row->funktion_pk;
|
||||
$fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk;
|
||||
$fkt_obj->studiensemester_id = $row->studiensemester_fk;
|
||||
$fkt_obj->erhalter_id = $row->erhalter_fk;
|
||||
$fkt_obj->studiengang_id = $row->studiengang_fk;
|
||||
$fkt_obj->fachbereich_id = $row->fachbereich_fk;
|
||||
$fkt_obj->name = $row->name;
|
||||
$fkt_obj->funktion = $row->funktion;
|
||||
$fkt_obj->updateamum = $row->creationdate;
|
||||
$fkt_obj->updatevon = $row->creationuser;
|
||||
$fkt_obj->beschart1 = $row->beschart1;
|
||||
$fkt_obj->beschart2 = $row->beschart2;
|
||||
$fkt_obj->verwendung = $row->verwendung;
|
||||
$fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$fkt_obj->hauptberuf = $row->hauptberuf;
|
||||
$fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
|
||||
$fkt_obj->besonderequalifikation = $row->besonderequalifikation;
|
||||
$fkt_obj->sws = $row->sws;
|
||||
$fkt_obj->ausmass = $row->ausmass;
|
||||
|
||||
$this->result[] = $fkt_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function getMitarbeiter($stg,$fb,$funktion,$stsem=null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
mitarbeiter_fk
|
||||
FROM
|
||||
funktion
|
||||
WHERE
|
||||
studiengang_fk='$stg' AND
|
||||
fachbereich_fk='$fb'
|
||||
GROUP BY mitarbeiter_fk";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$fkt = new funktion($this->conn);
|
||||
$fkt->mitarbeiter_id = $row->mitarbeiter_fk;
|
||||
$this->result[] = $fkt;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Mitarbeiter';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Funktionen
|
||||
* @return true wenn erfolgreich geladen, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
/*Eventuell Speicherprobleme
|
||||
|
||||
$qry = "SELECT * FROM funktion";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row=pg_fetch_object($res))
|
||||
{
|
||||
$fkt_obj = new funktion($this->conn);
|
||||
|
||||
$fkt_obj->funktion_id = $row->funktion_pk;
|
||||
$fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk;
|
||||
$fkt_obj->studiensemester_id = $row->studiensemester_fk;
|
||||
$fkt_obj->erhalter_id = $row->erhalter_fk;
|
||||
$fkt_obj->studiengang_id = $row->studiengang_fk;
|
||||
$fkt_obj->fachbereich_id = $row->fachbereich_fk;
|
||||
$fkt_obj->name = $row->name;
|
||||
$fkt_obj->funktion = $row->funktion;
|
||||
$fkt_obj->updateamum = $row->creationdate;
|
||||
$fkt_obj->updatevon = $row->creationuser;
|
||||
$fkt_obj->beschart1 = $row->beschart1;
|
||||
$fkt_obj->beschart2 = $row->beschart2;
|
||||
$fkt_obj->verwendung = $row->verwendung;
|
||||
$fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$fkt_obj->hauptberuf = $row->hauptberuf;
|
||||
$fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
|
||||
$fkt_obj->besonderequalifikation = $row->besonderequalifikation;
|
||||
$fkt_obj->sws = $row->sws;
|
||||
$fkt_obj->ausmass = $row->ausmass;
|
||||
|
||||
$this->result[] = $fkt_obj;
|
||||
}
|
||||
return true;
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
function FunktionExists($mitarbeiter_id, $studiengang_id, $fachbereich_id, $studiensemester_id, $funktion)
|
||||
{
|
||||
$qry = "SELECT
|
||||
count(*) as anzahl
|
||||
FROM
|
||||
funktion
|
||||
WHERE
|
||||
mitarbeiter_fk='$mitarbeiter_id' AND
|
||||
studiengang_fk='$studiengang_id' AND
|
||||
fachbereich_fk='$fachbereich_id' AND
|
||||
studiensemester_fk = '$studiensemester_id' AND
|
||||
funktion='$funktion'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->anzahl>0)
|
||||
return true;
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
$this->errormsg = 'Fehler beim auslesen der Funktionen';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
$this->errormsg = 'Fehler beim auslesen der Funktionen';
|
||||
}
|
||||
}
|
||||
|
||||
function getNameFunktion($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 0: return 'Mitarbeiter';
|
||||
case 1: return 'Lektor';
|
||||
case 2: return 'Fachbereichskoordinatior';
|
||||
case 3: return 'Assistenz';
|
||||
case 4: return 'Rektor';
|
||||
case 5: return 'Studiengangsleiter';
|
||||
case 6: return 'Fachbereichsleiter';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getNameBeschart1($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'Dienstverhältnis zum Bund';
|
||||
case 2: return 'Dienstverhältnis zu einer anderen Gebietskörperschaft';
|
||||
case 3: return 'Echter Dienstvertrag';
|
||||
case 4: return 'Freier Dienstvertrag';
|
||||
case 5: return 'Lehr- oder Ausbildungsverhältnis';
|
||||
case 6: return 'Sonstiges Beschäftigungsverhältnis';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getNameBeschart2($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'befristet';
|
||||
case 2: return 'unbefristet';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getNameVerwendung($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'Lehr- und Forschungspersonal';
|
||||
case 2: return 'Lehr- und Forschungshilfspersonal';
|
||||
case 3: return 'Akademische dienste für Studierende';
|
||||
case 4: return 'Soziale Dienste und Gesundheitsdienste';
|
||||
case 5: return 'Studiengangsleiter/in';
|
||||
case 6: return 'Leiter/in FH-Kollegium';
|
||||
case 7: return 'Management';
|
||||
case 8: return 'Verwaltung';
|
||||
case 9: return 'Hauspersonal, Gebäude-/Haustechnik';
|
||||
default: return '';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getNameHauptberuf($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case '': return '';
|
||||
case 0: return 'Universität';
|
||||
case 1: return 'Fachhochschule';
|
||||
case 2: return 'Andere postsekundäre Bildungseinrichtung';
|
||||
case 3: return 'Allgemeinbildende höhere Schule';
|
||||
case 4: return 'Berufsbildende höhere Schule';
|
||||
case 5: return 'Andere Schule';
|
||||
case 6: return 'Öffentlicher Sektor';
|
||||
case 7: return 'Unternehmenssektor';
|
||||
case 8: return 'Freiberuflich tätig';
|
||||
case 9: return 'Privater gemeinnütziger Sektor';
|
||||
case 10: return 'Ausserhochschulische Forschungseinrichtung';
|
||||
case 11: return 'Internationale Organisation';
|
||||
case 12: return 'Sonstiges';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getNameBesonderequalifikation($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 0: return 'keine';
|
||||
case 1: return 'Habilitation';
|
||||
case 2: return 'der Habilitation gleichwertige Qualifikation';
|
||||
case 3: return 'berufliche Tätigkeit';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getNameAusmass($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'Vollzeit';
|
||||
case 2: return '<= 15 Wochenstunden';
|
||||
case 3: return '16 - 25 Wochenstunden';
|
||||
case 4: return '26 - 35 Wochenstunden';
|
||||
case 5: return 'Karenz';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse gruppe (FAS-Online)
|
||||
* @create 15-03-2006
|
||||
*/
|
||||
class gruppe
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var gruppe Objekt
|
||||
|
||||
var $ausbildungssemester_id; // @var integer
|
||||
var $gruppe_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $nummerintern; // @var integer
|
||||
var $obergruppe_id; // @var integer
|
||||
var $ordnung; // @var integer
|
||||
var $studiengang_id; // @var integer
|
||||
var $typ; // @var integer ( Ebene ??)
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
var $fullname; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $gruppe_id ID der zu ladenden Gruppe
|
||||
*/
|
||||
function gruppe($conn, $gruppe_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($gruppe_id != null)
|
||||
$this->load($gruppe_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt eine Gruppe
|
||||
* @param gruppe_id ID der Gruppe
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($gruppe_id)
|
||||
{
|
||||
//gruppe_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($gruppe_id) || $gruppe_id =='')
|
||||
{
|
||||
$this->errormsg = 'gruppe_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM gruppe WHERE gruppe_pk='$gruppe_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
|
||||
$this->gruppe_id = $row->gruppe_pk;
|
||||
$this->name = $row->name;
|
||||
$this->nummerintern = $row->nummerintern;
|
||||
$this->obergruppe_id = $row->obergruppe_fk;
|
||||
$this->ordnung = $row->ordnung;
|
||||
$this->studiengang_id = $row->studiengang_fk;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
|
||||
$this->fullname = $this->getFullName($row->gruppe_pk);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert den vollen namen einer Gruppe
|
||||
* @param $gruppe_id
|
||||
* @return voller name, false im Fehlerfall
|
||||
*/
|
||||
function getFullName($gruppe_id)
|
||||
{
|
||||
//gruppe_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($gruppe_id) || $gruppe_id == '')
|
||||
{
|
||||
$this->errormsg = 'gruppe_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//gesamten gruppennamen ermitteln
|
||||
$qry = "SELECT fas_function_get_fullname_from_gruppe($gruppe_id) as fullname;";
|
||||
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Gruppenname konnte nicht ermittelt werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return $row->fullname;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Gruppen eines Studienganges/studiensemesters/ausbildungssemesters
|
||||
* @param studiengang_id ID des studienganges
|
||||
* studiensemester_id ID des Studiensemesters (optional)
|
||||
* ausbildungssemester_id ID des Ausbildungssemesters (optional)
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_gruppen($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null)
|
||||
{
|
||||
//Pruefen ob gueltige Werte uebergeben wurden
|
||||
if(!is_numeric($studiengang_id) || $studiengang_id == '')
|
||||
{
|
||||
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($studiensemester_id!=null && (!is_numeric($studiensemester_id) || $studiensemester_id == ''))
|
||||
{
|
||||
$this->errormsg = 'studiensemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($ausbildungssemester_id!=null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == ''))
|
||||
{
|
||||
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Befehl zusammenbauen
|
||||
$qry = "SELECT * FROM gruppe WHERE studiengang_fk='$studiengang_id' ";
|
||||
|
||||
if($ausbildungssemester_id!=null)
|
||||
$qry .= "AND ausbildungssemester_fk='$ausbildungssemester_id' ";
|
||||
|
||||
if($studiensemester_id != null)
|
||||
$qry .= "AND studiensemester_fk='$studiensemester_id' ";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
//Daten laden
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$grp_obj = new gruppe($this->conn);
|
||||
|
||||
$grp_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
|
||||
$grp_obj->gruppe_id = $row->gruppe_pk;
|
||||
$grp_obj->name = $row->name;
|
||||
$grp_obj->nummerintern = $row->nummerintern;
|
||||
$grp_obj->obergruppe_id = $row->obergruppe_fk;
|
||||
$grp_obj->ordnung = $row->ordnung;
|
||||
$grp_obj->studiengang_id = $row->studiengang_fk;
|
||||
$grp_obj->typ = $row->typ;
|
||||
$grp_obj->updateamum = $row->creationdate;
|
||||
$grp_obj->updatevon = $row->creationuser;
|
||||
|
||||
$grp_obj->fullname = $this->getFullName($row->gruppe_pk);
|
||||
|
||||
$this->result[] = $grp_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die DB
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param $gruppe_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($gruppe_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse lehrform (FAS-Online)
|
||||
* @create 15-03-2006
|
||||
*/
|
||||
class lehrform
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var lehrform Objekt
|
||||
|
||||
var $lehrform_id; // @var integer
|
||||
var $bezeichnung; // @var string
|
||||
var $kurzbezeichnung; // @var string
|
||||
var $standardfaktor; // @var float
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Conection zur Datenbank
|
||||
* $lehrform_id ID der zu Ladenden Lehrform
|
||||
*/
|
||||
function lehrform($conn, $lehrform_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($lehrform_id != null)
|
||||
$this->load($lehrform_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param $lform_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($lform_id)
|
||||
{
|
||||
//pruefen ob lform_id eine gueltige Zahl ist
|
||||
if(!is_numeric($lform_id) || $lform_id == '')
|
||||
{
|
||||
$this->errormsg = 'lehrform_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Datensatz laden
|
||||
$qry = "SELECT * FROM lehrform WHERE lehrform_pk = '$lform_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->lehrform_id = $row->lehrform_pk;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$this->standardfaktor = $row->standardfaktor;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle lehrformen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM lehrform;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$form_obj = new lehrform($this->conn);
|
||||
|
||||
$form_obj->lehrform_id = $row->lehrform_pk;
|
||||
$form_obj->bezeichnung = $row->bezeichnung;
|
||||
$form_obj->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$form_obj->standardfaktor = $row->standardfaktor;
|
||||
$form_obj->updateamum = $row->creationdate;
|
||||
$form_obj->updatevon = $row->creationdate;
|
||||
|
||||
$this->result[] = $form_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param lehrform_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($lehrform_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert einen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implemeniert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse lehrfunktion (FAS-Online)
|
||||
* @create 14-03-2006
|
||||
*/
|
||||
class lehrfunktion
|
||||
{
|
||||
var $conn; // @var resource DB-Connection
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var lehrfunktion Objekt
|
||||
|
||||
var $lehrfunktion_id; // @var integer
|
||||
var $bezeichnung; // @var string
|
||||
var $standardfaktor; // @var float
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param conn Connection zur DB
|
||||
* lehrfkt_id ID der zu ladenden lehrfunktion
|
||||
*/
|
||||
function lehrfunktion($conn, $lehrfkt_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($lehrfkt_id != null)
|
||||
$this->load($lehrfkt_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt eine Lehrfunktion
|
||||
* @param lehrfkt_id ID des Datensatzes der zu laden ist
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($lehrfkt_id)
|
||||
{
|
||||
if(!is_numeric($lehrfkt_id) || $lehrfkt_id == '')
|
||||
{
|
||||
$this->errormsg = 'lehrfunktion_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehrfunktion WHERE lehrfunktion_pk = '$lehrfkt_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->lehrfunktion_id = $row->lehrfunktion_pk;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->standardfaktor = $row->standardfaktor;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Lehrfunktionen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM lehrfunktion;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Datensaetze';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$lehrfkt_obj = new lehrfunktion($this->conn);
|
||||
|
||||
$lehrfkt_obj->lehrfunktion_id = $row->lehrfunktion_id;
|
||||
$lehrfkt_obj->bezeichnung = $row->bezeichnung;
|
||||
$lehrfkt_obj->standardfaktor = $row->standardfaktor;
|
||||
$lehrfkt_obj->updateamum = $row->creationdate;
|
||||
$lehrfkt_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $lehrfkt_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die Datenbank
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datensatz mit der ID die uebergeben wird
|
||||
* @param lehrfkt_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($lehrfkt_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,427 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse lehrveranstaltung (FAS-Online)
|
||||
* @create 16-03-2006
|
||||
*/
|
||||
class lehrveranstaltung
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $errormsg; // @var string
|
||||
var $new; // @var boolean
|
||||
var $result = array(); // @var lehrveranstaltung Objekt
|
||||
|
||||
var $lehrveranstaltung_id; // @var integer
|
||||
var $art; // @var integer
|
||||
var $ausbildungssemester_id; // @var integer
|
||||
var $beschreibung; // @var string
|
||||
var $ectspunkte; // @var float
|
||||
var $fachbereich_id; // @var integer
|
||||
var $kategorie; // @var integer
|
||||
var $kurzbezeichnung; // @var string
|
||||
var $name; // @var string
|
||||
var $notenlektor_id; // @var integer
|
||||
var $nummer; // @var string
|
||||
var $nummerintern; // @var integer
|
||||
var $sortierung; // @var integer
|
||||
var $studentenwochenstunden; // @var float
|
||||
var $studiengang_id; // @var integer
|
||||
var $studiensemester_id; // @var integer
|
||||
var $updateamum=0; // @var timestamp
|
||||
var $updatevon; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $lehrveranstaltung_id ID der zu ladenden Lehrveranstaltung
|
||||
*/
|
||||
function lehrveranstaltung($conn, $lehrveranstaltung_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($lehrveranstaltung_id != null)
|
||||
$this->load($lehrveranstaltung_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($lehrveranstaltung_id)
|
||||
{
|
||||
//gueltigkeit von lehrveranstaltung_id pruefen
|
||||
if(!is_numeric($lehrveranstaltung_id) || $lehrveranstaltung_id == '')
|
||||
{
|
||||
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
|
||||
$this->art = $row->art;
|
||||
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->ectspunkte = $row->ectspunkte;
|
||||
$this->fachbereich_id = $row->fachbereich_fk;
|
||||
$this->kategorie = $row->kategorie;
|
||||
$this->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$this->name = $row->name;
|
||||
$this->notenlektor_id = $row->notenlektor_fk;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->nummerintern = $row->nummerintern;
|
||||
$this->sortierung = $row->sortierung;
|
||||
$this->studentenwochenstunden = $row->studentenwochenstunden;
|
||||
$this->studiengang_id = $row->studiengang_fk;
|
||||
$this->studiensemester_id = $row->studiensemester_fk;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Lehrveranstaltungen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM lehrveranstaltung;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$lv_obj = new lehrveranstaltung($this->conn);
|
||||
|
||||
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
|
||||
$lv_obj->art = $row->art;
|
||||
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
|
||||
$lv_obj->beschreibung = $row->beschreibung;
|
||||
$lv_obj->ectspunkte = $row->ectspunkte;
|
||||
$lv_obj->fachbereich_id = $row->fachbereich_fk;
|
||||
$lv_obj->kategorie = $row->kategorie;
|
||||
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$lv_obj->name = $row->name;
|
||||
$lv_obj->notenlektor_id = $row->notenlektor_fk;
|
||||
$lv_obj->nummer = $row->nummer;
|
||||
$lv_obj->nummerintern = $row->nummerintern;
|
||||
$lv_obj->sortierung = $row->sortierung;
|
||||
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
|
||||
$lv_obj->studiengang_id = $row->studiengang_fk;
|
||||
$lv_obj->studiensemester_id = $row->studiensemester_fk;
|
||||
$lv_obj->updateamum = $row->creationdate;
|
||||
$lv_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $lv_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Lehrveranstaltungen zu einem Studiengang/Studiensemester/Ausbildungssemester
|
||||
* @param $studiengang_id ID des Studienganges
|
||||
* $studiensemester_id ID des Studiensemesters (optional)
|
||||
* $ausbildungssemester_id ID des ausbildungssemesters (optional)
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_lva($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null)
|
||||
{
|
||||
//Variablen pruefen
|
||||
if(!is_numeric($studiengang_id) || $studiengang_id =='')
|
||||
{
|
||||
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if($studiensemester_id != null && (!is_numeric($studiensemester_id) || $studiensemester_id == ''))
|
||||
{
|
||||
$this->errormsg = 'studiensemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if($ausbildungssemester_id != null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == ''))
|
||||
{
|
||||
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Select Befehl zusammenbauen
|
||||
$qry = "SELECT * FROM lehrveranstaltung WHERE studiengang_fk = '$studiengang_id'";
|
||||
|
||||
if($studiensemester_id != null)
|
||||
$qry .= " AND studiensemester_fk = '$studiensemester_id'";
|
||||
|
||||
if($ausbildungssemester_id != null)
|
||||
$qry .= " AND ausbildungssemester_fk = '$ausbildungssemester_id'";
|
||||
$qry .= " ORDER BY name";
|
||||
//Datensaetze laden
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$lv_obj = new lehrveranstaltung($this->conn);
|
||||
|
||||
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
|
||||
$lv_obj->art = $row->art;
|
||||
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
|
||||
$lv_obj->beschreibung = $row->beschreibung;
|
||||
$lv_obj->ectspunkte = $row->ectspunkte;
|
||||
$lv_obj->fachbereich_id = $row->fachbereich_fk;
|
||||
$lv_obj->kategorie = $row->kategorie;
|
||||
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$lv_obj->name = $row->name;
|
||||
$lv_obj->notenlektor_id = $row->notenlektor_fk;
|
||||
$lv_obj->nummer = $row->nummer;
|
||||
$lv_obj->nummerintern = $row->nummerintern;
|
||||
$lv_obj->sortierung = $row->sortierung;
|
||||
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
|
||||
$lv_obj->studiengang_id = $row->studiengang_fk;
|
||||
$lv_obj->studiensemester_id = $row->studiensemester_fk;
|
||||
$lv_obj->updateamum = $row->creationdate;
|
||||
$lv_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $lv_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Gueltigkeit der Variablen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
$this->name = str_replace("'",'´',$this->name);
|
||||
$this->nummer = str_replace("'",'´',$this->nummer);
|
||||
$this->kurzbezeichnung = str_replace("'",'´',$this->kurzbezeichnung);
|
||||
|
||||
//Laenge Pruefen
|
||||
$this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten';
|
||||
if(strlen($this->name)>255)
|
||||
{
|
||||
$this->errormsg = 'Name darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->nummer)>20)
|
||||
{
|
||||
$this->errormsg = 'Nummer darf nicht laenger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->kurzbezeichnung)>20)
|
||||
{
|
||||
$this->errormsg = 'kurzbezeichnung darf nicht laenger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->fachbereich_id))
|
||||
{
|
||||
$this->errormsg = 'Fachbereich_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->studiengang_id))
|
||||
{
|
||||
$this->errormsg = 'Studiengang_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->ausbildungssemester_id))
|
||||
{
|
||||
$this->errormsg = 'Ausbildungssemester_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->art!='' && !is_numeric($this->art))
|
||||
{
|
||||
$this->errormsg = 'Art ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->studentenwochenstunden!='' && !is_numeric($this->studentenwochenstunden))
|
||||
{
|
||||
$this->errormsg = 'Studentenwochenstunden ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->kategorie!='' && !is_numeric($this->kategorie))
|
||||
{
|
||||
$this->errormsg = "Kategorie ist ungueltig";
|
||||
return false;
|
||||
}
|
||||
if($this->ectspunkte!='' && !is_numeric($this->ectspunkte))
|
||||
{
|
||||
$this->errormsg = 'ECTSPunkte sind ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->notentlektor_id!='' && !is_numeric($this->notenlektor_id))
|
||||
{
|
||||
$this->errormsg = 'Notenlektor ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->sortierung!='' && !is_numeric($this->sortierung))
|
||||
{
|
||||
$this->errormsg = 'Sortierung ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->nummerintern!='' && !is_numeric($this->nummerintern))
|
||||
{
|
||||
$this->errormsg = 'NummerIntern ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->studiensemester_id))
|
||||
{
|
||||
$this->errormsg = 'Studiensemester_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Gueltigkeit der Variablen pruefen
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz anlegen
|
||||
|
||||
//naechste ID aus der Sequence holen
|
||||
$qry = "SELECT nextval('lehrveranstaltung_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
|
||||
return false;
|
||||
}
|
||||
$this->lehrveranstaltung_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO lehrveranstaltung(lehrveranstaltung_pk, fachbereich_fk, studiengang_fk, ausbildungssemester_fk,".
|
||||
" name, nummer, kurzbezeichnung, beschreibung, art, studentenwochenstunden, creationdate, creationuser,".
|
||||
" kategorie, ectspunkte, studiensemester_fk, notenlektor_fk, sortierung, nummerintern) VALUES(".
|
||||
" '$this->lehrveranstaltung_id', '$this->fachbereich_id', '$this->studiengang_id', '$this->ausbildungssemester_id',".
|
||||
" '$this->name', '$this->nummer', '$this->kurzbezeichnung', '$this->beschreibung', '$this->art',".
|
||||
" '$this->studentenwochenstunden', now(), $this->updatevon, '$this->kategorie', '$this->ectspunkte', '$this->studiensemester_id',".
|
||||
" '$this->notenlektor_id', '$this->sortierung', '$this->nummerintern');";
|
||||
}
|
||||
else
|
||||
{
|
||||
//bestehenden Datensatz akualisieren
|
||||
|
||||
//Pruefen ob lehrveranstaltung_id eine gueltige Zahl ist
|
||||
if(!is_numeric($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id == '')
|
||||
{
|
||||
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "UPDATE lehrveranstaltung SET fachbereich_fk = '$this->fachbereich_id', studiengang_fk = '$this->studiengang_id',".
|
||||
" ausbildungssemester_fk = '$this->ausbildungssemester_id', name = '$this->name', nummer = '$this->nummer',".
|
||||
" kurzbezeichnung = '$this->kurzbezeichnung', beschreibung = '$this->beschreibung', art = '$this->art',".
|
||||
" studentenwochenstunden = '$this->studentenwochenstunden', kategorie = '$this->kategorie', ".
|
||||
" ectspunkte = '$this->ectspunkte', studiensemester_fk = '$this->studiensemester_id',".
|
||||
" notenlektor_fk = '$this->notenlektor_id', sortierung = '$this->sortierung', nummerintern = '$this->nummerintern'".
|
||||
" WHERE lehrveranstaltung_pk = '$this->lehrveranstaltung_id';";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim speichern des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param $lehrveranstaltung_id ID des zu loeeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($lehrveranstaltung_id)
|
||||
{
|
||||
//lehrveranstaltung_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($lehrveranstaltung_id) || $lehrveranstaltung_id == '')
|
||||
{
|
||||
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Loeschen des Datensatzes
|
||||
$qry = "DELETE FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,742 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse Mitarbeiter abgeleitet von Person (FAS-Online)
|
||||
* @create 06-03-2006
|
||||
*/
|
||||
|
||||
class mitarbeiter extends person
|
||||
{
|
||||
|
||||
//Tabellenspalten
|
||||
var $mitarbeiter_id; // @var bigint
|
||||
var $beginndatum; // @var timestamp
|
||||
var $akadgrad; // @var boolean
|
||||
var $akadgrad_bezeichnung; // @var boolean
|
||||
var $habilitation; // @var boolean
|
||||
var $mitgliedentwicklungsteam; // @var boolean
|
||||
var $qualifikation; // @var integer
|
||||
var $hauptberuflich; // @var boolean
|
||||
var $hauptberuf; // @var integer
|
||||
var $semesterwochenstunden; // @var float
|
||||
var $persnr; // @var string
|
||||
var $beendigungsdatum; // @var timestamp
|
||||
var $ausgeschieden; // @var boolean
|
||||
var $ausgeschieden_bezeichnung; // @var string
|
||||
var $kurzbez; // @var string
|
||||
var $stundensatz; // @var float
|
||||
var $ausbildung; // @var integer
|
||||
var $ausbildung_bezeichnung; // @var string
|
||||
var $aktiv; // @var boolean
|
||||
var $aktiv_bezeichnung; // @var boolean
|
||||
var $zustelladresse_plz;
|
||||
var $zustelladresse_strasse;
|
||||
var $zustelladresse_ort;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
function mitarbeiter($conn, $person_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
//Mitarbeiter laden
|
||||
if($person_id!=null)
|
||||
$this->load($person_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* ueberprueft die Variablen auf Gueltigkeit
|
||||
* @return true wenn gueltig, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Hochkomma herausfiltern
|
||||
$this->persnr = str_replace("'","`", $this->persnr);
|
||||
$this->kurzbez = str_replace("'","`", $this->kurzbez);
|
||||
|
||||
//Maximallaenge pruefen
|
||||
$this->errormsg='Die Maximallaenge eines Feldes wurde ueberschritten';
|
||||
if(strlen($this->persnr)>20)
|
||||
{
|
||||
$this->errormsg='PersonalNr darf nicht länger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->kurzbez)>10)
|
||||
{
|
||||
$this->errormsg="Kurzbezeichnung darf nicht länger als 10 Zeichen sein:".strlen($this->kurzbez);
|
||||
return false;
|
||||
}
|
||||
|
||||
//Zahlenwerte ueberpruefen
|
||||
$this->errormsg='Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
//if(!is_numeric($this->qualifikation)) return false;
|
||||
//if(!is_numeric($this->hauptberuf)) return false;
|
||||
if(!is_numeric($this->stundensatz) && $this->stundensatz!='')
|
||||
{
|
||||
$this->errormsg='Stundensatz muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->ausbildung) && $this->ausbildung!='')
|
||||
{
|
||||
$this->errormsg='ausbildung muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
/*if(!is_numeric($this->semesterwochenstunden))
|
||||
{
|
||||
$this->errormsg='SWS muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}*/
|
||||
|
||||
if($this->kurzbz_exists($this->kurzbez, $this->mitarbeiter_id))
|
||||
{
|
||||
$this->errormsg = 'Diese Kurzbezeichnung wird bereits verwendet';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert die Mitarbeiterdaten in die Datenbank
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Variablen checken
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
pg_query($this->conn,"Begin;");
|
||||
//Basisdaten speichern
|
||||
if(!person::save())
|
||||
{
|
||||
pg_query($this->conn,"Rollback;");
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
//naechste ID aus Sequence auslesen
|
||||
$qry = "SELECT nextval('mitarbeiter_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
$this->mitarbeiter_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO mitarbeiter (mitarbeiter_pk, beginndatum, akadgrad, habilitation,".
|
||||
//" mitgliedentwicklungsteam,".
|
||||
//" qualifikation, hauptberuflich, hauptberuf, semesterwochenstunden,".
|
||||
" creationdate, creationuser, persnr,".
|
||||
" person_fk, beendigungsdatum, ausgeschieden, kurzbez, stundensatz, ausbildung, aktiv) VALUES (".
|
||||
" '$this->mitarbeiter_id',".
|
||||
(strlen($this->beginndatum)>0?"'$this->beginndatum'":"NULL") .", '".($this->akadgrad?'J':'N')."',".
|
||||
" '".($this->habilitation?'J':'N')."', ".
|
||||
//"'".($this->mitgliedentwicklungsteam?'J':'N')."',".
|
||||
//" '$this->qualifikation', '".($this->hauptberuflich?'J':'N')."', '$this->hauptberuf', '$this->semesterwochenstunden',".
|
||||
" now(),".
|
||||
" '$this->updatevon', '$this->persnr', '$this->person_id',".
|
||||
(strlen($this->beendigungsdatum)>0?"'$this->beendigungsdatum'":"null").",".
|
||||
" '".($this->ausgeschieden?'J':'N')."',".
|
||||
(strlen($this->kurzbez)>0?"'$this->kurzbez'":"null").", '$this->stundensatz',".
|
||||
($this->ausbildung!=''?"'$this->ausbildung'":'null').",'$this->aktiv');";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Bestehenden Datensatz ueberschreiben
|
||||
|
||||
//mitarbeiter_id auf Gueltigkeit pruefen
|
||||
if(!is_numeric($this->mitarbeiter_id))
|
||||
{
|
||||
$this->errormsg = 'mitarbeiter_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "UPDATE mitarbeiter SET".
|
||||
" beginndatum=".($this->beginndatum!=''?"'$this->beginndatum'":'null').",".
|
||||
" akadgrad='".($this->akadgrad?'J':'N')."',".
|
||||
" habilitation='".($this->habilitation?'J':'N')."',".
|
||||
//" mitgliedentwicklungsteam='".($this->mitgliedentwicklungsteam?'J':'N')."',".
|
||||
//" qualifikation='$this->qualifikation', hauptberuflich='".($this->hauptberuflich?'J':'N')."',".
|
||||
//" hauptberuf='$this->hauptberuf', semesterwochenstunden='$this->semesterwochenstunden',".
|
||||
" persnr=".($this->persnr!=''?"'$this->persnr'":'null').",".
|
||||
" person_fk='$this->person_id',".
|
||||
" beendigungsdatum=".($this->beendigungsdatum!=''?"'$this->beendigungsdatum'":'null').",".
|
||||
" ausgeschieden='".($this->ausgeschieden?'J':'N')."',".
|
||||
" kurzbez=".($this->kurzbez!=''?"'$this->kurzbez'":'null').",".
|
||||
" stundensatz=".($this->stundensatz!=''?"'$this->stundensatz'":'null').",".
|
||||
" ausbildung=".($this->ausbildung!=''?"'$this->ausbildung'":'null').",".
|
||||
" aktiv='$this->aktiv'".
|
||||
" WHERE mitarbeiter_pk=$this->mitarbeiter_id;";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Wenn nicht ausgeschieden dann den Status neu setzen
|
||||
//Da sonst beim ruecksetzen des Hakerls ausgeschieden der status bleibt
|
||||
if(!$this->ausgeschieden)
|
||||
{
|
||||
if(!person::updateaktstatus($this->person_id))
|
||||
{
|
||||
pg_query($this->conn,"Rollback;");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!person::setaktstatus(150,$this->person_id))
|
||||
{
|
||||
pg_query($this->conn,"Rollback;");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
pg_query($this->conn,"Commit;");
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn,"Rollback;");
|
||||
$this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet die Daten aus der Datenbank
|
||||
* @param $fix wenn 'true' Fixangestellte laden
|
||||
* wenn 'false' Freie MA laden
|
||||
* $stgl wenn 'true' Studiengangsleiter laden
|
||||
* $fbl wenn 'true' Fachbereichsleiter laden
|
||||
* $aktiv wenn 'true' Aktive MA laden
|
||||
* $karrenziert wenn 'true' Karenzierte laden
|
||||
* $ausgesch wenn 'true' Ausgeschiedene laden
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getMitarbeiter($mitarbeiter_id='', $fix='', $stgl='', $fbl='', $aktiv='', $karenziert='', $ausgesch='', $adresse=false, $studiensemester_id='')
|
||||
{
|
||||
$qry = "SELECT * FROM (mitarbeiter JOIN person ON (person_pk=mitarbeiter.person_fk))";
|
||||
if($adresse)
|
||||
$qry .= " LEFT JOIN adresse on(person_pk=adresse.person_fk)";
|
||||
$qry .= " WHERE true";
|
||||
|
||||
if($mitarbeiter_id!='')
|
||||
if(is_numeric($mitarbeiter_id))
|
||||
$qry .= " AND mitarbeiter_pk = $mitarbeiter_id";
|
||||
else
|
||||
{
|
||||
$this->errormsg = "mitarbeiter_id muss eine gueltige Zahl sein";
|
||||
return false;
|
||||
}
|
||||
|
||||
if($studiensemester_id=='')
|
||||
{
|
||||
$query = "Select studiensemester_pk FROM studiensemester WHERE aktuell='J'";
|
||||
if($row = pg_fetch_object(pg_query($this->conn, $query)))
|
||||
$studiensemester_id = $row->studiensemester_pk;
|
||||
}
|
||||
|
||||
if($fix=='true') // Alle Fixangestellten
|
||||
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.beschart1=3 AND funktion.studiensemester_fk='$studiensemester_id')";
|
||||
|
||||
if($fix=='false') // Freie Mitarbeiter
|
||||
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.beschart1=4 AND funktion.studiensemester_fk='$studiensemester_id')";
|
||||
|
||||
if($stgl=='true') //Alle Studiengangsleiter
|
||||
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.funktion=5 AND funktion.studiensemester_fk='$studiensemester_id')";
|
||||
|
||||
|
||||
if($fbl=='true') //Alle Fachbereichsleiter
|
||||
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.funktion=6 AND funktion.studiensemester_fk='$studiensemester_id')";
|
||||
|
||||
if($aktiv=='true') //Alle aktiven
|
||||
$qry .= " AND aktiv=true";
|
||||
|
||||
if($karenziert=='true') //Alle Karenzierten
|
||||
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.ausmass=5 AND funktion.studiensemester_fk='$studiensemester_id')";
|
||||
|
||||
if($ausgesch=='true') // Alle Ausgeschiedenen
|
||||
$qry .= " AND beendigungsdatum is not null";
|
||||
|
||||
$qry .= " ORDER BY familienname";
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$mitarb = new mitarbeiter($this->conn);
|
||||
//Personendaten
|
||||
$mitarb->person_id = $row->person_pk;
|
||||
$mitarb->familienname = $row->familienname;
|
||||
$mitarb->angelegtam = $row->angelegtam;
|
||||
$mitarb->vorname = $row->vorname;
|
||||
$mitarb->anrede = $row->anrede;
|
||||
$mitarb->vornamen = $row->vornamen;
|
||||
$mitarb->geschlecht = $row->geschlecht;
|
||||
$mitarb->gebdat = $row->gebdat;
|
||||
$mitarb->gebort = $row->gebort;
|
||||
$mitarb->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$mitarb->familienstand = $row->familienstand;
|
||||
$mitarb->familienstand_bezeichnung = $this->getFamilienstandBezeichnung($row->familienstand);
|
||||
$mitarb->svnr = $row->svnr;
|
||||
$mitarb->anzahlderkinder = $row->anzahlderkinder;
|
||||
$mitarb->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$mitarb->bemerkung = $row->bemerkung;
|
||||
$mitarb->aktstatus = $row->aktstatus;
|
||||
$mitarb->aktstatus_bezeichnung = $this->getAktstatusBezeichnung($row->aktstatus);
|
||||
$mitarb->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$mitarb->bismelden_bezeichnung = ($row->bismelden=='J'?'Ja':'Nein');
|
||||
$mitarb->titelpre = $row->titel;
|
||||
$mitarb->titelpost = $row->postnomentitel;
|
||||
$mitarb->uid = $row->uid;
|
||||
$mitarb->gebnation = $row->gebnation;
|
||||
|
||||
//Mitarbeiterdaten
|
||||
$mitarb->mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
$mitarb->beginndatum = $row->beginndatum;
|
||||
$mitarb->akadgrad = ($row->akadgrad=='J'?true:false);
|
||||
$mitarb->akadgrad_bezeichnung = ($row->akadgrad=='J'?'Ja':'Nein');
|
||||
$mitarb->habilitation = ($row->habilitation=='J'?true:false);
|
||||
$mitarb->habilitation_bezeichnung = ($row->habilitation=='J'?'Ja':'Nein');
|
||||
$mitarb->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
|
||||
$mitarb->qualifikation = $row->qualifikation;
|
||||
$mitarb->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$mitarb->hauptberuf = $row->hauptberuf;
|
||||
$mitarb->updateamum = $row->creationdate;
|
||||
$mitarb->updatevon = $row->creationuser;
|
||||
$mitarb->semesterwochenstunden = $row->semesterwochenstunden;
|
||||
$mitarb->persnr = $row->persnr;
|
||||
$mitarb->beendigungsdatum = $row->beendigungsdatum;
|
||||
$mitarb->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
|
||||
$mitarb->ausgeschieden_bezeichnung = ($row->ausgeschieden=='J'?'Ja':'Nein');
|
||||
$mitarb->kurzbez = $row->kurzbez;
|
||||
$mitarb->stundensatz = $row->stundensatz;
|
||||
$mitarb->ausbildung = $row->ausbildung;
|
||||
$mitarb->ausbildung_bezeichnung = $this->getAusbildungBezeichnung($row->ausbildung);
|
||||
$mitarb->aktiv = ($row->aktiv=='t'?true:false);
|
||||
$mitarb->aktiv_bezeichnung = ($row->aktiv=='t'?'Ja':'Nein');
|
||||
|
||||
if($adresse)
|
||||
{
|
||||
$mitarb->zustelladresse_plz = $row->plz;
|
||||
$mitarb->zustelladresse_strasse = $row->strasse;
|
||||
$mitarb->zustelladresse_ort = $row->ort;
|
||||
}
|
||||
$this->result[] = $mitarb;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Mitarbeiter
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
|
||||
$qry = "Select person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
|
||||
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
|
||||
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
|
||||
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
|
||||
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk)";
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$mitarb = new mitarbeiter($this->conn);
|
||||
//Personendaten
|
||||
$mitarb->person_id = $row->person_pk;
|
||||
$mitarb->familienname = $row->familienname;
|
||||
$mitarb->angelegtam = $row->angelegtam;
|
||||
$mitarb->vorname = $row->vorname;
|
||||
$mitarb->anrede = $row->anrede;
|
||||
$mitarb->vornamen = $row->vornamen;
|
||||
$mitarb->geschlecht = $row->geschlecht;
|
||||
$mitarb->gebdat = $row->gebdat;
|
||||
$mitarb->gebort = $row->gebort;
|
||||
$mitarb->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$mitarb->familienstand = $row->familienstand;
|
||||
$mitarb->svnr = $row->svnr;
|
||||
$mitarb->anzahlderkinder = $row->anzahlderkinder;
|
||||
$mitarb->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$mitarb->bemerkung = $row->bemerkung;
|
||||
$mitarb->aktstatus = $row->aktstatus;
|
||||
$mitarb->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$mitarb->titelpre = $row->titel;
|
||||
$mitarb->titelpost = $row->postnomentitel;
|
||||
$mitarb->uid = $row->uid;
|
||||
$mitarb->gebnation = $row->gebnation;
|
||||
//Mitarbeiterdaten
|
||||
$mitarb->mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
$mitarb->beginndatum = $row->beginndatum;
|
||||
$mitarb->akadgrad = ($row->akadgrad=='J'?true:false);
|
||||
$mitarb->habilitation = ($row->habilitation=='J'?true:false);
|
||||
$mitarb->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
|
||||
$mitarb->qualifikation = $row->qualifikation;
|
||||
$mitarb->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$mitarb->hauptberuf = $row->hauptberuf;
|
||||
$mitarb->updateamum = $row->creationdate;
|
||||
$mitarb->updatevon = $row->creationuser;
|
||||
$mitarb->semesterwochenstunden = $row->semesterwochenstunden;
|
||||
$mitarb->persnr = $row->persnr;
|
||||
$mitarb->beendigungsdatum = $row->beendigungsdatum;
|
||||
$mitarb->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
|
||||
$mitarb->kurzbez = $row->kurzbez;
|
||||
$mitarb->stundensatz = $row->stundensatz;
|
||||
$mitarb->ausbildung = $row->ausbildung;
|
||||
$mitarb->aktiv = ($row->aktiv=='t'?true:false);
|
||||
|
||||
$this->result[] = $mitarb;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Mitarbeiterdaten der uebergebenen ID
|
||||
* @param $person_id ID der Person die geladen werden soll
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($person_id)
|
||||
{
|
||||
//person_id auf Gueltigkeit pruefen
|
||||
if(!is_numeric($person_id) || $person_id=='')
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
|
||||
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
|
||||
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
|
||||
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
|
||||
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk) where person_pk=$person_id";
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
//Personendaten
|
||||
$this->person_id = $row->person_pk;
|
||||
$this->familienname = $row->familienname;
|
||||
$this->angelegtam = $row->angelegtam;
|
||||
$this->vorname = $row->vorname;
|
||||
$this->anrede = $row->anrede;
|
||||
$this->vornamen = $row->vornamen;
|
||||
$this->geschlecht = $row->geschlecht;
|
||||
$this->gebdat = $row->gebdat;
|
||||
$this->gebort = $row->gebort;
|
||||
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$this->familienstand = $row->familienstand;
|
||||
$this->svnr = $row->svnr;
|
||||
$this->anzahlderkinder = $row->anzahlderkinder;
|
||||
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$this->bemerkung = $row->bemerkung;
|
||||
$this->aktstatus = $row->aktstatus;
|
||||
$this->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$this->titelpre = $row->titel;
|
||||
$this->titelpost = $row->postnomentitel;
|
||||
$this->uid = $row->uid;
|
||||
$this->gebnation = $row->gebnation;
|
||||
//Mitarbeiterdaten
|
||||
$this->mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
$this->beginndatum = $row->beginndatum;
|
||||
$this->akadgrad = ($row->akadgrad=='J'?true:false);
|
||||
$this->habilitation = ($row->habilitation=='J'?true:false);
|
||||
$this->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
|
||||
$this->qualifikation = $row->qualifikation;
|
||||
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$this->hauptberuf = $row->hauptberuf;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
$this->semesterwochenstunden = $row->semesterwochenstunden;
|
||||
$this->persnr = $row->persnr;
|
||||
$this->beendigungsdatum = $row->beendigungsdatum;
|
||||
$this->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
|
||||
$this->kurzbez = $row->kurzbez;
|
||||
$this->stundensatz = $row->stundensatz;
|
||||
$this->ausbildung = $row->ausbildung;
|
||||
$this->aktiv = ($row->aktiv=='t'?true:false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Mitarbeiterdaten der uebergebenen ID
|
||||
* @param $mitarbeiter_id ID der Person die geladen werden soll
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_mitarbeiter($mitarbeiter_id)
|
||||
{
|
||||
//person_id auf Gueltigkeit pruefen
|
||||
if(!is_numeric($mitarbeiter_id) || $mitarbeiter_id=='')
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
|
||||
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
|
||||
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
|
||||
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
|
||||
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk) where mitarbeiter_pk=$mitarbeiter_id";
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
//Personendaten
|
||||
$this->person_id = $row->person_pk;
|
||||
$this->familienname = $row->familienname;
|
||||
$this->angelegtam = $row->angelegtam;
|
||||
$this->vorname = $row->vorname;
|
||||
$this->anrede = $row->anrede;
|
||||
$this->vornamen = $row->vornamen;
|
||||
$this->geschlecht = $row->geschlecht;
|
||||
$this->gebdat = $row->gebdat;
|
||||
$this->gebort = $row->gebort;
|
||||
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$this->familienstand = $row->familienstand;
|
||||
$this->svnr = $row->svnr;
|
||||
$this->anzahlderkinder = $row->anzahlderkinder;
|
||||
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$this->bemerkung = $row->bemerkung;
|
||||
$this->aktstatus = $row->aktstatus;
|
||||
$this->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$this->titelpre = $row->titel;
|
||||
$this->titelpost = $row->postnomentitel;
|
||||
$this->uid = $row->uid;
|
||||
$this->gebnation = $row->gebnation;
|
||||
//Mitarbeiterdaten
|
||||
$this->mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
$this->beginndatum = $row->beginndatum;
|
||||
$this->akadgrad = ($row->akadgrad=='J'?true:false);
|
||||
$this->habilitation = ($row->habilitation=='J'?true:false);
|
||||
$this->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
|
||||
$this->qualifikation = $row->qualifikation;
|
||||
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
|
||||
$this->hauptberuf = $row->hauptberuf;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
$this->semesterwochenstunden = $row->semesterwochenstunden;
|
||||
$this->persnr = $row->persnr;
|
||||
$this->beendigungsdatum = $row->beendigungsdatum;
|
||||
$this->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
|
||||
$this->kurzbez = $row->kurzbez;
|
||||
$this->stundensatz = $row->stundensatz;
|
||||
$this->ausbildung = $row->ausbildung;
|
||||
$this->aktiv = ($row->aktiv=='t'?true:false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* loescht den Mitarbeiter mit der uebergebenen ID
|
||||
* @param ma_id Mitarbeiter_id
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($person_id)
|
||||
{
|
||||
//person_id auf Gueltigkeit pruefen
|
||||
if(!is_numeric($person_id) || $person_id=='')
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM funktion where mitarbeiter_fk=(Select mitarbeiter_pk from mitarbeiter where person_fk=$person_id);".
|
||||
" DELETE FROM adresse where person_fk=$person_id;".
|
||||
" DELETE FROM telefonnummer where person_fk=$person_id;".
|
||||
" DELETE FROM email where person_fk=$person_id;".
|
||||
" DELETE FROM mitarbeiter where person_fk=$person_id";
|
||||
|
||||
if(!pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!person::delete($person_id))
|
||||
return false;
|
||||
else
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die passende Bezeichnung des Familienstandes
|
||||
* @param $id ID des Familienstandes
|
||||
*/
|
||||
function getFamilienstandBezeichnung($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'ledig';
|
||||
case 2: return 'verheiratet';
|
||||
case 3: return 'geschieden';
|
||||
case 4: return 'verwitwet';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die passende Bezeichnung der Ausbildung
|
||||
* @param $id ID der Ausbildung
|
||||
*/
|
||||
function getAusbildungBezeichnung($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'Universitätsabschluss mit Doktorat als Zweit- oder Dritt- oder PhD-Abschluss';
|
||||
case 2: return 'Universitäts- oder Hochschulabschluss auf Diplom oder Magisterebene, Doktor als Erstabschluss';
|
||||
case 3: return 'Fachhochschulabschluss auf Diplom- oder Magisterebene';
|
||||
case 4: return 'Universitätsabschluss auf Bakkalaureatsebene';
|
||||
case 5: return 'Fachhochschulabschluss auf Bakkalaureatsebene';
|
||||
case 6: return 'Diplom einer Akademie';
|
||||
case 7: return 'Anderer tertiärer Bildungsabschluss';
|
||||
case 8: return 'Reifeprüfung einer allgemeinbildenden höheren Schule';
|
||||
case 9: return 'Reifeprüfung einer berufsbildenden höheren Schule';
|
||||
case 10: return 'Lehrabschlussprüfung';
|
||||
case 11: return 'Pflichtschule';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die passende Bezeichnung des Aktuellen Status
|
||||
* @param $id ID des Status
|
||||
*/
|
||||
function getAktstatusBezeichnung($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 100: return 'Mitarbeiter';
|
||||
case 101: return 'Lektor';
|
||||
case 102: return 'Koordinator';
|
||||
case 103: return 'Fachbereichsleiter';
|
||||
case 104: return 'Studiengangsleiter';
|
||||
case 150: return 'Ausgeschieden';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob eine Kurzbezeichnung schon existiert. Falls eine mitarbeiter_id
|
||||
* angegeben wird, dann wird dieser Datensatz von der ueberpruefung ausgeschlossen
|
||||
* ( fuer Update eines Datensatzes)
|
||||
*/
|
||||
function kurzbz_exists($kurzbz, $mitarbeiter_id='')
|
||||
{
|
||||
if($kurzbz!='')
|
||||
{
|
||||
$this->errormsg = '';
|
||||
$qry = "SELECT count(*) as anz from mitarbeiter where kurzbez='$kurzbz'";
|
||||
if($mitarbeiter_id!='')
|
||||
$qry .= " AND mitarbeiter_pk<>".$mitarbeiter_id;
|
||||
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
if($row->anz == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim pruefen der Kurzbezeichnung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die naechste Personalnummer
|
||||
*/
|
||||
function getNextPersonalnr()
|
||||
{
|
||||
$qry = "SELECT max(persnr) AS persnr FROM mitarbeiter WHERE length(persnr)=(SELECT max(length(persnr)) FROM mitarbeiter)";
|
||||
if($row = pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
return $row->persnr+1;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse Nation (FAS-Online)
|
||||
* @create 06-04-2006
|
||||
*/
|
||||
|
||||
class nation
|
||||
{
|
||||
var $conn;
|
||||
var $errormsg;
|
||||
var $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
var $code;
|
||||
var $sperre;
|
||||
var $kontinent;
|
||||
var $entwland;
|
||||
var $euflag;
|
||||
var $ewrflag;
|
||||
var $kurztext;
|
||||
var $langtext;
|
||||
var $engltext;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection
|
||||
* $code Zu ladende Nation
|
||||
*/
|
||||
function nation($conn,$code=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($code != null)
|
||||
$this->load($code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Funktion mit der ID $adress_id
|
||||
* @param $code code der zu ladenden Nation
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($code)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Nationen
|
||||
* @param ohnesperre wenn dieser Parameter auf true gesetzt ist werden
|
||||
* nur die nationen geliefert dessen Buerger bei uns studieren duerfen
|
||||
*/
|
||||
function getAll($ohnesperre=false)
|
||||
{
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM nation";
|
||||
if($ohnesperre)
|
||||
$qry .= " where sperre='N'";
|
||||
|
||||
$qry .=" order by kurztext";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$nation_obj = new nation($this->conn);
|
||||
|
||||
$nation_obj->code = $row->code;
|
||||
$nation_obj->sperre = $row->sperre;
|
||||
$nation_obj->kontinent = $row->sperre;
|
||||
$nation_obj->entwland = $row->entwland;
|
||||
$nation_obj->euflag = $row->euflag;
|
||||
$nation_obj->ewrflag = $row->ewrflag;
|
||||
$nation_obj->kurztext = $row->kurztext;
|
||||
$nation_obj->langtext = $row->langtext;
|
||||
$nation_obj->engltext = $row->engltext;
|
||||
|
||||
$this->result[] = $nation_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,615 @@
|
||||
<?php
|
||||
/**
|
||||
* Basisklasse Person (FAS-Online)
|
||||
* @create 06-03-2006
|
||||
*/
|
||||
|
||||
class person
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $errormsg; // @var string
|
||||
var $new; // @var boolean
|
||||
var $result = array(); // @var person Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $person_id; // @var integer
|
||||
var $aktstatus; // @var integer
|
||||
var $aktstatus_bezeichnung; // @var integer
|
||||
var $angelegtam; // @var timestamp
|
||||
var $anrede; // @var string
|
||||
var $anzahlderkinder; // @var integer
|
||||
var $bemerkung; // @var string
|
||||
var $bismelden; // @var boolean
|
||||
var $bismelden_bezeichnung; // @var boolean
|
||||
var $ersatzkennzeichen; // @var string
|
||||
var $familienname; // @var string
|
||||
var $familienstand; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
|
||||
var $familienstand_bezeichnung; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
|
||||
var $gebdat; // @var date
|
||||
var $gebnation; // @var string
|
||||
var $gebort; // @var string
|
||||
var $geschlecht; // @var string
|
||||
var $staatsbuergerschaft; // @var string
|
||||
var $svnr; // @var string
|
||||
var $titelpost; // @var string Titel nach dem Namen (BA, MA, etc)
|
||||
var $titelpre; // @var string Titel vor dem Namen (Dr, Mag, Dipl.Ing, etc)
|
||||
var $uid; // @var string
|
||||
var $vorname; // @var string
|
||||
var $vornamen; // @var string
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor - Uebergibt die Connection und Laedt optional eine Person
|
||||
* @param $conn Datenbank-Connection
|
||||
* $pers_id Person die geladen werden soll (default=null)
|
||||
*/
|
||||
function person($conn, $pers_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($pers_id != null)
|
||||
$this->load($pers_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laden einen Datensatz mit der Personal_id die uebergeben wird
|
||||
* @param $person_id ID der Person die geladen werden soll
|
||||
*/
|
||||
function load($person_id)
|
||||
{
|
||||
//person_id auf gueltigkeit pruefen
|
||||
if(is_numeric($person_id) && $person_id!='')
|
||||
{
|
||||
$qry = "SELECT * FROM person WHERE person_pk=$person_id";
|
||||
if(!$res=pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->person_id = $row->person_pk;
|
||||
$this->aktstatus = $row->aktstatus;
|
||||
$this->angelegtam = $row->angelegtam;
|
||||
$this->anrede = $row->anrede;
|
||||
$this->anzahlderkinder = $row->anzahlderkinder;
|
||||
$this->bemerkung = $row->bemerkung;
|
||||
$this->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$this->familienname = $row->familienname;
|
||||
$this->familienstand = $row->familienstand;
|
||||
$this->gebdat = $row->gebdat;
|
||||
$this->gebnation = $row->gebnation;
|
||||
$this->gebort = $row->gebort;
|
||||
$this->geschlecht = $row->geschlecht;
|
||||
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$this->svnr = $row->svnr;
|
||||
$this->titelpre = $row->titel;
|
||||
$this->titlepost = $row->postnomentitel;
|
||||
$this->uid = $row->uid;
|
||||
$this->vorname = $row->vorname;
|
||||
$this->vornamen = $row->vornamen;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Die person_id muss eine Zahl sein";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Clean stuff from a string
|
||||
function clean_string1($string)
|
||||
{
|
||||
$trans = array("瓣" => "ae",
|
||||
"�" => "Ae",
|
||||
"繹" => "oe",
|
||||
"�" => "Oe",
|
||||
"羹" => "ue",
|
||||
"�" => "Ue",
|
||||
"獺" => "a",
|
||||
"�" => "a",
|
||||
"矇" => "e",
|
||||
"癡" => "e",
|
||||
"籀" => "o",
|
||||
"簷" => "o",
|
||||
"穩" => "i",
|
||||
"穫" => "i",
|
||||
"繳" => "u",
|
||||
"羅" => "u",
|
||||
"�" => "ss");
|
||||
$string = strtr($string, $trans);
|
||||
return ereg_replace("[^a-zA-Z0-9]", "", $string);
|
||||
//[:space:]
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen auf Gueltigkeit
|
||||
* @return true wenn ok, false wenn Variablen ungueltig sind
|
||||
*/
|
||||
function checkvars1()
|
||||
{
|
||||
//Hochkomma herausfiltern
|
||||
$this->familienname = str_replace("'","`", $this->familienname);
|
||||
$this->vorname = str_replace("'","`", $this->vorname);
|
||||
$this->anrede = str_replace("'","`", $this->anrede);
|
||||
$this->vornamen = str_replace("'","`", $this->vornamen);
|
||||
$this->gebort = str_replace("'","`", $this->gebort);
|
||||
$this->svnr = str_replace("'","`", $this->svnr);
|
||||
$this->titelpre = str_replace("'","`", $this->titelpre);
|
||||
$this->titelpost = str_replace("'","`", $this->titelpost);
|
||||
$this->gebnation = str_replace("'","`", $this->gebnation);
|
||||
$this->ersatzkennzeichen = str_replace("'","`", $this->ersatzkennzeichen);
|
||||
$this->bemerkung = str_replace("'","`", $this->bemerkung);
|
||||
if(ereg("[^a-zA-Z0-9]", $this->uid))
|
||||
{
|
||||
$this->errormsg = "UID darf keine Umlaute oder Sonderzeichen enthalten";
|
||||
return false;
|
||||
}
|
||||
|
||||
//Maximallaenge pruefen
|
||||
if(strlen($this->familienname)>255)
|
||||
{
|
||||
$this->errormsg = 'Familienname darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->vorname)>255)
|
||||
{
|
||||
$this->errormsg = 'Vorname darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->anrede)>20)
|
||||
{
|
||||
$this->errormsg = 'Anrede darf nicht laenger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->vornamen)>255)
|
||||
{
|
||||
$this->errormsg = 'Vornamen darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->geschlecht)>1)
|
||||
{
|
||||
$this->errormsg = 'Geschlecht darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gebort)>255)
|
||||
{
|
||||
$this->errormsg = 'Geburtsort darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->svnr)!=10)
|
||||
{
|
||||
$this->errormsg = 'SVNR muss 10 Zeichen lang sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->svnr))
|
||||
{
|
||||
$this->errormsg = 'SVNR muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->svnr=='0000000000') //Leere SVNR wird zum anlegen des neuen Leerdatensatzes benoetigt
|
||||
$this->svnr='';
|
||||
else
|
||||
{
|
||||
//SVNR mit Pruefziffer pruefen
|
||||
//Die 4. Stelle in der SVNR ist die Pruefziffer
|
||||
//(Summe von (gewichtung[i]*svnr[i])) modulo 11 ergibt diese Pruefziffer
|
||||
//Falls nicht, ist die SVNR ungueltig
|
||||
$gewichtung = array(3,7,9,0,5,8,4,2,1,6);
|
||||
$erg=0;
|
||||
//Quersumme bilden
|
||||
for($i=0;$i<10;$i++)
|
||||
$erg += $gewichtung[$i] * $this->svnr{$i};
|
||||
|
||||
if($this->svnr{3}!=($erg%11)) //Vergleichen der Pruefziffer mit Quersumme Modulo 11
|
||||
{
|
||||
$this->errormsg = 'SVNR ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(strlen($this->bismelden)>1)
|
||||
{
|
||||
$this->errormsg = 'bismelden darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->titelpre)>30)
|
||||
{
|
||||
$this->errormsg = 'titelpre darf nicht laenger als 30 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->titelpost)>30)
|
||||
{
|
||||
$this->errormsg = 'titelpost darf nicht laenger als 30 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->uid)>20)
|
||||
{
|
||||
$this->errormsg = 'uid darf nicht laenger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gebnation)>3)
|
||||
{
|
||||
$this->errormsg = 'Geburtsnation darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->staatsbuergerschaft)>3)
|
||||
{
|
||||
$this->errormsg = 'Staatsb羹rgerschaft darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->ersatzkennzeichen)>10)
|
||||
{
|
||||
$this->errormsg = 'ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Zahlenwerte ueberpruefen
|
||||
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->familienstand) && $this->familienstand!='') return false;
|
||||
if(!is_numeric($this->anzahlderkinder) && $this->anzahlderkinder!='') return false;
|
||||
if(!is_numeric($this->aktstatus) && $this->aktstatus!='') return false;
|
||||
|
||||
if($this->gebdat!='' && (time() - strtotime($this->gebdat))<315360000) // Wenn nicht aelter als 10 Jahre = 315360000 Sekunden
|
||||
{
|
||||
$this->errormsg = 'Geburtsdatum ist falsch: Person muss 鄟ter als 10 Jahre sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->uid_exists($this->uid, $this->person_id))
|
||||
{
|
||||
$this->errormsg = 'Diese UID existiert bereits';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg='';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die Daten in die Datenbank
|
||||
* Wenn $new auf true gesetzt ist wird eingefuegt
|
||||
* ansonsten der datensatz $person_id upgedated
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->checkvars1())
|
||||
return false;
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
//Naechste ID aus Sequence holen
|
||||
$qry = "SELECT nextval('person_seq') as id;";
|
||||
if(!$row=pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Auslesen der Sequence";
|
||||
return false;
|
||||
}
|
||||
$this->person_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO person (person_pk, familienname, angelegtam, vorname, anrede, vornamen,".
|
||||
" geschlecht, gebdat, gebort, staatsbuergerschaft, familienstand, svnr, anzahlderkinder,".
|
||||
" ersatzkennzeichen, bemerkung, creationdate,creationuser, aktstatus, bismelden, titel, postnomentitel,".
|
||||
" uid, gebnation) VALUES( $this->person_id,".
|
||||
" '$this->familienname', now(), '$this->vorname', '$this->anrede', '$this->vornamen',".
|
||||
($this->geschlecht!=''?"'$this->geschlecht'":"'M'").", ".
|
||||
($this->gebdat!=''?"'$this->gebdat'":'null').", '$this->gebort', '$this->staatsbuergerschaft',".
|
||||
($this->familienstand!=''?"'$this->familienstand'":'null').",".
|
||||
" '$this->svnr', ".
|
||||
($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'null').",".
|
||||
" '$this->ersatzkennzeichen', '$this->bemerkung', now(),".
|
||||
" '$this->updatevon', '".($this->aktstatus>0?$this->aktstatus:100)."', '".($this->bismelden?'J':'N')."', '$this->titelpre', '$this->titelpost',".
|
||||
(strlen($this->uid)>0?" '$this->uid'":'null').",".
|
||||
" '$this->gebnation');";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//peson_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($this->person_id))
|
||||
{
|
||||
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "UPDATE person SET ".
|
||||
" familienname='$this->familienname',".
|
||||
" vorname='$this->vorname',".
|
||||
" anrede='$this->anrede',".
|
||||
" vornamen='$this->vornamen',".
|
||||
" geschlecht=".($this->geschlecht!=''?"'$this->geschlecht'":"'M'").",".
|
||||
" gebdat=".($this->gebdat!=''?"'$this->gebdat'":'null').",".
|
||||
" gebort='$this->gebort',".
|
||||
" staatsbuergerschaft='$this->staatsbuergerschaft',".
|
||||
" familienstand=".($this->familienstand!=''?"'$this->familienstand'":'0').",".
|
||||
" svnr=".($this->svnr!=''?"'$this->svnr'":'null').",".
|
||||
" anzahlderkinder=".($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'0').",".
|
||||
" ersatzkennzeichen='$this->ersatzkennzeichen',".
|
||||
" bemerkung='$this->bemerkung',".
|
||||
" aktstatus='$this->aktstatus',".
|
||||
" bismelden='".($this->bismelden?'J':'N')."',".
|
||||
" titel='$this->titelpre',".
|
||||
" postnomentitel='$this->titelpost',".
|
||||
" uid='$this->uid',".
|
||||
" gebnation='$this->gebnation'".
|
||||
" WHERE person_pk='$this->person_id'";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Speichern des Person-Datensatzes:".$qry;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param $person_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn OK false im Fehlerfall
|
||||
*/
|
||||
function delete($person_id)
|
||||
{
|
||||
//person_id auf Gueltigkeit pruefen
|
||||
if(!is_numeric($person_id) || $person_id=='')
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "Delete from person where person_pk=$person_id";
|
||||
|
||||
if(!pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle Personen aus der Datenbank
|
||||
* @return true wenn OK, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
/** Braucht zuviel Speicher
|
||||
|
||||
$qry = "SELECT * FROM person";
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Datensaetze';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$pers=new person($this->conn);
|
||||
|
||||
$pers->person_id = $row->person_pk;
|
||||
$pers->aktstatus = $row->aktstatus;
|
||||
$pers->angelegtam = $row->angelegtam;
|
||||
$pers->anrede = $row->anrede;
|
||||
$pers->anzahlderkinder = $row->anzahlderkinder;
|
||||
$pers->bemerkung = $row->bemerkung;
|
||||
$pers->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$pers->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$pers->familienname = $row->familienname;
|
||||
$pers->familienstand = $row->familienstand;
|
||||
$pers->gebdat = $row->gebdat;
|
||||
$pers->gebnation = $row->gebnation;
|
||||
$pers->gebort = $row->gebort;
|
||||
$pers->geschlecht = $row->geschlecht;
|
||||
$pers->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$pers->svnr = $row->svnr;
|
||||
$pers->titelpre = $row->titel;
|
||||
$pers->titelpost = $row->postnomentitel;
|
||||
$pers->uid = $row->uid;
|
||||
$pers->vorname = $row->vorname;
|
||||
$pers->vornamen = $row->vornamen;
|
||||
$pers->updateamum = $row->creationdate;
|
||||
$pers->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $pers;
|
||||
}
|
||||
return true;
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob die UID schon vergeben ist. Wenn ein zweiter
|
||||
* Parameter angegeben wird, wird diese ID von der ueberpruefung
|
||||
* ausgeschlossen ( fuer Update eines Datensatzes )
|
||||
*/
|
||||
function uid_exists($uid, $person_id='')
|
||||
{
|
||||
if($uid!='')
|
||||
{
|
||||
$this->errormsg = '';
|
||||
//Datenbank Check
|
||||
$qry = "SELECT count(*) as anz from person where uid='$uid'";
|
||||
if($person_id!='')
|
||||
$qry .= " AND person_pk<>".$person_id;
|
||||
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
if($row->anz == 0)
|
||||
{
|
||||
//Wurde deaktiviert weil der Zugriff vom auf den LDAP Server
|
||||
//vom der Calva aus nicht funktioniert
|
||||
//Ldap Check
|
||||
//$ds = ldap_connect(LDAP_SERVER);
|
||||
//$dn = "ou=People, dc=technikum-wien, dc=at";
|
||||
//$sr = ldap_search($ds,$dn,"uid=$uid");
|
||||
|
||||
//if(ldap_count_entries($ds,$sr)>0)
|
||||
// return true;
|
||||
//else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim checken der uid';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert den AktStatus
|
||||
*/
|
||||
function updateaktstatus($person_id)
|
||||
{
|
||||
$mitarbeiter_id = '';
|
||||
$qry = "Select mitarbeiter_pk from mitarbeiter where person_fk='$person_id'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
$mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim ermitteln der Mitarbeiter_id';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim ermitteln der mitarbeiter_id';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Funktionen holen
|
||||
$qry = "Select funktion from funktion where ".
|
||||
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
|
||||
" AND mitarbeiter_fk = '$mitarbeiter_id'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
$fkt=array();
|
||||
$i=0;
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$fkt[$i]=$row->funktion;
|
||||
$i++;
|
||||
}
|
||||
|
||||
//Aktstatus ermitteln
|
||||
if(in_array(5,$fkt)) //STGL
|
||||
$aktstatus = 104;
|
||||
elseif(in_array(6,$fkt)) //FBL
|
||||
$aktstatus = 103;
|
||||
elseif(in_array(2,$fkt)) //FBK
|
||||
$aktstatus = 102;
|
||||
elseif(in_array(1,$fkt)) //LKT
|
||||
$aktstatus = 101;
|
||||
else
|
||||
$aktstatus = 100; //Mitarbeiter
|
||||
|
||||
$this->status = $aktstatus;
|
||||
//neuen akstatus setzen
|
||||
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
|
||||
if(pg_query($qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql .= $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim setzen des Aktstatus';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setaktstatus($status, $person_id)
|
||||
{
|
||||
$qry = "Update person set aktstatus = '$status' where person_pk='$person_id'";
|
||||
if(!pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Setzen des aktuellen Status'.$qry;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse raumtyp (FAS-Online)
|
||||
* @create 14-03-2006
|
||||
*/
|
||||
class raumtyp
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var raumtyp Objekt
|
||||
|
||||
var $raumtyp_id; // @var integer
|
||||
var $bezeichnung; // @var string
|
||||
var $kurzbezeichnung; // @var string
|
||||
var $plaetze; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param conn Connection zur Datenbank
|
||||
* raum_id ID des zu ladenden Raumes (default=null)
|
||||
*/
|
||||
function raumtyp($conn, $raum_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($raum_id != null)
|
||||
$this->load($raum_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param $raum_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($raum_id)
|
||||
{
|
||||
if(!is_numeric($raum_id) || $raum_id == '')
|
||||
{
|
||||
$this->errormsg = 'raum_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM raumtyp WHERE raumtyp_pk = '$raum_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datenstatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->raumtyp_id = $row->raumtyp_pk;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$this->plaetze = $row->plaetze;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Datensaetze
|
||||
* @return ture wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM raumtyp;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Datensaetze';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$raum_obj = new raumtyp($this->conn);
|
||||
|
||||
$raum_obj->raumtyp_id = $row->raumtyp_pk;
|
||||
$raum_obj->bezeichnung = $row->bezeichnung;
|
||||
$raum_obj->kurzbezeichnung = $row->kurzbezeichnung;
|
||||
$raum_obj->plaetze = $row->plaetze;
|
||||
$raum_obj->updateamum = $row->creationdate;
|
||||
$raum_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $raum_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht Implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($raum_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht Implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,228 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse studiengang (FAS-Online)
|
||||
* @create 14-03-2006
|
||||
*/
|
||||
class studiengang
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var studiengang Objekt
|
||||
|
||||
var $studiengang_id; // @var integer
|
||||
var $bafirmaaufzeugnis; // @var boolean
|
||||
var $batitelaufzeugnis; // @var boolean
|
||||
var $bescheid; // @var string
|
||||
var $bescheidbgbl1; // @var string
|
||||
var $bescheidbgbl2; // @var string
|
||||
var $bescheidgz; // @var string
|
||||
var $bescheidvom; // @var date
|
||||
var $beschreibung; // @var string
|
||||
var $betreuerstunden; // @var float
|
||||
var $emailkuerzel; // @var string
|
||||
var $endedatum; // @var date
|
||||
var $erhalter_id; // @var integer
|
||||
var $kennzahl; // @var integer
|
||||
var $kennzahl_neu; // @var integer
|
||||
var $kuerzel; // @var string
|
||||
var $name; // @var string
|
||||
var $nummerintern; // @var integer
|
||||
var $organisationsform; // @var integer
|
||||
var $regelstudiendauer; // @var integer
|
||||
var $regelwochenstunden; // @var integer
|
||||
var $standort; // @var string
|
||||
var $startdatum; // @var date
|
||||
var $studiengangsart; // @var integer
|
||||
var $studiensemester_id; // @var integer
|
||||
var $telefonnummer; // @var string
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param conn Connection zur Datenbank
|
||||
* studiengang_id ID des zu ladenden Studienganges
|
||||
*/
|
||||
function studiengang($conn, $studiengang_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($studiengang_id != null)
|
||||
$this->load($studiengang_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Studiengang
|
||||
* @param stg_id ID des Studienganges der zu laden ist
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($stg_id)
|
||||
{
|
||||
//Pruefen ob stg_id eine gueltige Zahl ist
|
||||
if(!is_numeric($stg_id) || $stg_id == '')
|
||||
{
|
||||
$this->errormsg = 'stg_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM studiengang WHERE studiengang_pk = '$stg_id'";
|
||||
|
||||
if(!$res=pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->studiengang_id = $row->studiengang_pk;
|
||||
$this->name = $row->name;
|
||||
$this->erhalter_id = $row->erhalter_fk;
|
||||
$this->kuerzel = $row->kuerzel;
|
||||
$this->studiengangsart = $row->studiengangsart;
|
||||
$this->organisationsform = $row->organisationsform;
|
||||
$this->kennzahl = $row->kennzahl;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
$this->standort = $row->standort;
|
||||
$this->regelstudiendauer = $row->regelstudiendauer;
|
||||
$this->emailkuerzel = $row->emailkuerzel;
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->telefonnummer = $row->telefonnummer;
|
||||
$this->bescheid = $row->bescheid;
|
||||
$this->bescheidvom = $row->bescheidvom;
|
||||
$this->bescheidgz = $row->bescheidgz;
|
||||
$this->bescheidbgbl1 = $row->bescheidbgbl1;
|
||||
$this->bescheidbgbl2 = $row->bescheidbgbl2;
|
||||
$this->kennzahl_neu = $row->kennzahl_neu;
|
||||
$this->nummerintern = $row->nummerintern;
|
||||
$this->bafirmaaufzeugnis = ($row->bafirmaaufzeugnis=='t'?true:false);
|
||||
$this->batitelaufzeugnis = ($row->batitelaufzeugnis=='t'?true:false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Kein Datensatz mit dieser Nummer vorhanden';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt Studiengang und Studiensemester
|
||||
* @param stg_id Studiengangs_id
|
||||
* stsem_id Studiensemester_id
|
||||
*/
|
||||
function load_stsem($stg_id, $stsem_id)
|
||||
{
|
||||
//Studiengang laden
|
||||
if(!$this->load($stg_id))
|
||||
return false;
|
||||
|
||||
//pruefen ob stsem_id eine gueltige Zahl ist
|
||||
if(!is_numeric($stsem_id) || $stsem_id == '')
|
||||
{
|
||||
$this->errormsg = 'studiensemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM studiengang_studiensemester WHERE studiengang_fk='$this->studiengang_id' ".
|
||||
"AND studiensemester_fk='$stsem_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->studiensemester_id = $row->studiensemester_fk;
|
||||
$this->startdatum = $row->startdatum;
|
||||
$this->endedatum = $row->endedatum;
|
||||
$this->regelwochenstunden = $row->regelwochen;
|
||||
$this->betreuerstunden = $row->rvar1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Studiengaenge
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM studiengang order by name;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$stg_obj = new studiengang($this->conn);
|
||||
|
||||
$stg_obj->studiengang_id = $row->studiengang_pk;
|
||||
$stg_obj->name = $row->name;
|
||||
$stg_obj->erhalter_id = $row->erhalter_fk;
|
||||
$stg_obj->kuerzel = $row->kuerzel;
|
||||
$stg_obj->studiengangsart = $row->studiengangsart;
|
||||
$stg_obj->organisationsform = $row->organisationsform;
|
||||
$stg_obj->kennzahl = $row->kennzahl;
|
||||
$stg_obj->updateamum = $row->creationdate;
|
||||
$stg_obj->updatevon = $row->creationuser;
|
||||
$stg_obj->standort = $row->standort;
|
||||
$stg_obj->regelstudiendauer = $row->regelstudiendauer;
|
||||
$stg_obj->emailkuerzel = $row->emailkuerzel;
|
||||
$stg_obj->beschreibung = $row->beschreibung;
|
||||
$stg_obj->telefonnummer = $row->telefonnummer;
|
||||
$stg_obj->bescheid = $row->bescheid;
|
||||
$stg_obj->bescheidvom = $row->bescheidvom;
|
||||
$stg_obj->bescheidgz = $row->bescheidgz;
|
||||
$stg_obj->bescheidbgbl1 = $row->bescheidbgbl1;
|
||||
$stg_obj->bescheidbgbl2 = $row->bescheidbgbl2;
|
||||
$stg_obj->kennzahl_neu = $row->kennzahl_neu;
|
||||
$stg_obj->nummerintern = $row->nummerintern;
|
||||
$stg_obj->bafirmaaufzeugnis = ($row->bafirmaaufzeugnis=='t'?true:false);
|
||||
$stg_obj->batitelaufzeugnis = ($row->batitelaufzeugnis=='t'?true:false);
|
||||
|
||||
$this->result[] = $stg_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Studiengang
|
||||
* @param $stg_id ID des zu loeschenden Studienganges
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($stg_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,163 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse studiensemester (FAS-Online)
|
||||
* @create 15-03-2006
|
||||
*/
|
||||
class studiensemester
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var studiensemester Objekt
|
||||
|
||||
var $studiensemester_id; // @var integer
|
||||
var $aktuell; // @var boolean
|
||||
var $art; // @var integer ( 1 = Wintersemester, 2 = Sommersemester )
|
||||
var $jahr; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $stsem_id ID des Studiensemesters das geladen werden soll
|
||||
*/
|
||||
function studiensemester($conn, $stsem_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($stsem_id != null)
|
||||
$this->load($stsem_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den Datensatz mit der ID die uebergeben wird
|
||||
* @param stsem_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im fehlerfall;
|
||||
*/
|
||||
function load($stsem_id)
|
||||
{
|
||||
//Pruefen ob stsem_id eine gueltige Zahl ist
|
||||
if(!is_numeric($stsem_id) || $stsem_id == '')
|
||||
{
|
||||
$this->errormsg = 'stsem_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Laden eines Datensatzes
|
||||
$qry = "SELECT * FROM studiensemester WHERE studiensemester_pk = '$stsem_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->studiensemester_id = $row->studiensemester_pk;
|
||||
$this->aktuell = ($row->aktuell=='J'?true:false);
|
||||
$this->art = $row->art;
|
||||
$this->jahr = $row->jahr;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt das aktuelle Studiensemester
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_akt()
|
||||
{
|
||||
$qry = "SELECT * FROM studiensemester WHERE aktuell='J'";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->studiensemester_id = $row->studiensemester_pk;
|
||||
$this->aktuell = ($row->aktuell=='J'?true:false);
|
||||
$this->art = $row->art;
|
||||
$this->jahr = $row->jahr;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle studiensemester
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM studiensemester order by jahr, art desc;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$stsem_obj = new studiensemester($this->conn);
|
||||
|
||||
$stsem_obj->studiensemester_id = $row->studiensemester_pk;
|
||||
$stsem_obj->aktuell = ($row->aktuell=='J'?true:false);
|
||||
$stsem_obj->art = $row->art;
|
||||
$stsem_obj->jahr = $row->jahr;
|
||||
$stsem_obj->updateamum = $row->creationdate;
|
||||
$stsem_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param $stsem_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($stsem_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,296 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse telefonnummer (FAS-Online)
|
||||
* @create 13-03-2006
|
||||
*/
|
||||
|
||||
class telefonnummer
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var telefonnummer Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $telefonnummer_id; // @var integer
|
||||
var $person_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $nummer; // @var string
|
||||
var $typ; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $telefonnummer_id ID der zu ladenden telefonnummer
|
||||
*/
|
||||
function telefonnummer($conn, $telefonnummer_id = null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($telefonnummer_id != null)
|
||||
$this->load($telefonnummer_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den Datensatz mit der ID die uebergeben wurde
|
||||
* @param $telefonnummer_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($telefonnummer_id)
|
||||
{
|
||||
//Gueltigkeit von telefonnummer_id pruefen
|
||||
if(!is_numeric($telefonnummer_id) || $telefonnummer_id == '')
|
||||
{
|
||||
$this->errormsg = 'telefonnummer_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM telefonnummer WHERE telefonnummer_pk=$telefonnummer_id";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->telefonnummer_id = $row->telefonnummer_pk;
|
||||
$this->name = $row->name;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->person_id = $row->person_fk;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Telefonnummern einer Person
|
||||
* @param $person_id Person zu der die Telefonnummern gesucht werden sollen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($person_id)
|
||||
{
|
||||
//Gueltigkeit von person_id pruefen
|
||||
if(!is_numeric($person_id) || $person_id == '')
|
||||
{
|
||||
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * from telefonnummer where person_fk=$person_id";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$tel_obj = new telefonnummer($this->conn);
|
||||
|
||||
$tel_obj->telefonnummer_id = $row->telefonnummer_pk;
|
||||
$tel_obj->name = $row->name;
|
||||
$tel_obj->nummer = $row->nummer;
|
||||
$tel_obj->person_id = $row->person_fk;
|
||||
$tel_obj->typ = $row->typ;
|
||||
$tel_obj->updateamum = $row->creationdate;
|
||||
$tel_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $tel_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Telefonnummern
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
/* Benoetigt zu viel Speicher
|
||||
|
||||
$qry = "SELECT * FROM telefonnummer;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Telefonnummern';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$tel_obj = new telefonnummer($this->conn);
|
||||
|
||||
$tel_obj->telefonnummer_id = $row->telefonnummer_pk;
|
||||
$tel_obj->name = $row->name;
|
||||
$tel_obj->nummer = $row->nummer;
|
||||
$tel_obj->person_id = $row->person_fk;
|
||||
$tel_obj->typ = $row->typ;
|
||||
$tel_obj->updateamum = $row->creationdate;
|
||||
$tel_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $tel_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die gueltigkeit der Variablen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Hochkomma und HTML Tags ersetzen
|
||||
//$this->name = htmlentities($this->name, ENT_QUOTES);
|
||||
//$this->nummer = htmlentities($this->nummer, ENT_QUOTES);
|
||||
|
||||
//Laenge pruefen
|
||||
$this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten';
|
||||
if(strlen($this->name)>255) return false;
|
||||
if(strlen($this->nummer)>30) return false;
|
||||
|
||||
//Zahlenfelder pruefen
|
||||
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->person_id)) return false;
|
||||
if(!is_numeric($this->typ)) return false;
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $telefonnummer_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Variablen pruefen
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz anlegen
|
||||
|
||||
//neue ID aus der Sequence holen
|
||||
$qry = "SELECT nextval('telefonnummer_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->telefonnummer_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO telefonnummer (telefonnummer_pk, person_fk, name, nummer, typ, creationdate, creationuser)".
|
||||
" VALUES('$this->telefonnummer_id', '$this->person_id', '$this->name', '$this->nummer', '$this->typ', now(), '$this->updatevon');";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Bestehenden Datensatz aktualisieren
|
||||
|
||||
//Pruefen der ID
|
||||
if(!is_numeric($this->telefonnummer_id) || $this->telefonnummer_id == '')
|
||||
{
|
||||
$this->errormsg = 'telefonnummer_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "UPDATE telefonnummer SET person_fk='$this->person_id', name='$this->name', typ='$this->typ', nummer='$this->nummer'".
|
||||
" WHERE telefonnummer_pk='$this->telefonnummer_id'";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datensatz mit der uebergebenen ID
|
||||
* @param telefonnummer_id ID des zu leoschenen Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($telefonnummer_id)
|
||||
{
|
||||
//Pruefen der ID
|
||||
if(!is_numeric($telefonnummer_id) || $telefonnummer_id == '')
|
||||
{
|
||||
$this->errormsg = 'telefonnummer_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//loeschen des Datensatzes
|
||||
$qry = "DELETE FROM telefonnummer where telefonnummer_pk='$telefonnummer_id'";
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen eines Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/*
|
||||
$Header: /include/lehrfach.class.php,v 1.2 2004/10/16 17:05:38 pam Exp $
|
||||
$Log: lehrstunde.class.php,v $
|
||||
Revision 1.2 2004/10/16 17:05:38 pam
|
||||
Anpassung an neue DB-Struktur.
|
||||
*/
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* @class Lehrfach
|
||||
* @author Christian Paminger
|
||||
* @date 2004/8/21
|
||||
* @version $Revision: 1.2 $
|
||||
* Update: 21.10.2004 von Christian Paminger
|
||||
* @brief Klasse zur Bearbeitung und Abfrage der Tabelle tbl_ferien
|
||||
* Abhaengig: von ?
|
||||
*****************************************************************************/
|
||||
|
||||
class ferien
|
||||
{
|
||||
|
||||
// @var string
|
||||
var $bezeichnung;
|
||||
// @var int
|
||||
var $studiengang_kz;
|
||||
// @var string
|
||||
var $vondatum;
|
||||
// @var string
|
||||
var $bisdatum;
|
||||
// @var timestamp
|
||||
var $vontimestamp;
|
||||
// @var timestamp
|
||||
var $bistimestamp;
|
||||
|
||||
// @var string
|
||||
var $errormsg;
|
||||
// @var conn
|
||||
var $conn;
|
||||
// @var ferien
|
||||
var $ferien=array();
|
||||
|
||||
function ferien($conn)
|
||||
{
|
||||
$this->conn=$conn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alle Fachbereiche zurueckgeben
|
||||
* @return array mit Fachbereichen oder false=fehler
|
||||
*/
|
||||
function getAll($stg_kz)
|
||||
{
|
||||
$sql_query="SELECT * FROM tbl_ferien WHERE studiengang_kz=0 OR studiengang_kz=$stg_kz ORDER BY vondatum";
|
||||
if (!$result=@pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
//$num_rows=pg_numrows($result);
|
||||
//for ($i=0; $i<$num_rows; $i++)
|
||||
while ($row=@pg_fetch_object($result))
|
||||
{
|
||||
// Record holen
|
||||
// Instanz erzeugen
|
||||
$f = new ferien($this->conn);
|
||||
$f->bezeichnung=$row->bezeichnung;
|
||||
$f->studiengang_kz = $row->studiengang_kz;
|
||||
$f->vondatum=$row->vondatum;
|
||||
$f->bisdatum=$row->bisdatum;
|
||||
$f->vontimestamp=mktime(0,0,0,substr($row->vondatum,5,2),substr($row->vondatum,8),substr($row->vondatum,0,4));;
|
||||
$f->bistimestamp=mktime(23,59,59,substr($row->bisdatum,5,2),substr($row->bisdatum,8),substr($row->bisdatum,0,4));;
|
||||
// in array speichern
|
||||
$this->ferien[]=$f;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function isferien($timestamp)
|
||||
{
|
||||
foreach ($this->ferien AS $f)
|
||||
if ($timestamp>=$f->vontimestamp && $timestamp<=$f->bistimestamp)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
function db_query($conn, $sql_query)
|
||||
{
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
return pg_last_error($conn);
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
function get_uid()
|
||||
{
|
||||
return strtolower(trim($_SERVER['REMOTE_USER']));
|
||||
}
|
||||
|
||||
function check_lektor($uid, $conn)
|
||||
{
|
||||
// uid von View 'Lektor' holen
|
||||
$sql_query="SELECT uid FROM vw_lektor WHERE uid='$uid'";
|
||||
//echo $sql_query;
|
||||
$result=pg_query($conn, $sql_query) or die(pg_last_error($conn));
|
||||
$num_rows=pg_numrows($result);
|
||||
// Wenn kein ergebnis return 0 sonst ID
|
||||
if ($num_rows>0)
|
||||
{
|
||||
$row=pg_fetch_object($result);
|
||||
return $row->uid;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
function check_student($uid, $conn)
|
||||
{
|
||||
// uid von Tabelle 'Student' holen
|
||||
$sql_query="SELECT uid FROM tbl_student WHERE uid='$uid'";
|
||||
//echo $sql_query;
|
||||
$result=pg_query($conn, $sql_query) or die(pg_last_error($conn));
|
||||
$num_rows=pg_numrows($result);
|
||||
// Wenn kein ergebnis return 0 sonst ID
|
||||
if ($num_rows>0)
|
||||
return pg_result($result,0,'uid');
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
function kalenderwoche($datum)
|
||||
{
|
||||
//$woche=date("W",mktime($date[hours],$date[minutes],$date[seconds],$date[mon],$date[mday],$date[year]));
|
||||
if (!date("w",$datum))
|
||||
$datum+=86400;
|
||||
//echo date("l j.m.Y - W",$datum);
|
||||
$woche=date("W",$datum);
|
||||
//if ($woche==53)
|
||||
// $woche=1;
|
||||
return $woche;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* Springt zum vorhergehenden Montag, wenn $datum kein Sonntag oder Montag ist.
|
||||
*
|
||||
*/
|
||||
function montag($datum)
|
||||
{
|
||||
// Wochentag
|
||||
$wt=date("w",$datum);
|
||||
// Sonntag?
|
||||
if (!$wt)
|
||||
$wt++;
|
||||
if($wt!=1)
|
||||
$datum-=86400*($wt-1);
|
||||
|
||||
return $datum;
|
||||
}
|
||||
|
||||
function jump_day($datum, $tage)
|
||||
{
|
||||
// Ein Tag sind 86400 Sekunden
|
||||
$datum+=86400*$tage;
|
||||
return $datum;
|
||||
}
|
||||
|
||||
function jump_week($datum, $wochen)
|
||||
{
|
||||
$stunde_vor=date("G",$datum);
|
||||
// Eine Woche sind 604800 Sekunden
|
||||
$datum+=604800*$wochen;
|
||||
$stunde_nach=date("G",$datum);
|
||||
if ($stunde_nach!=$stunde_vor)
|
||||
$datum+=3600;
|
||||
return $datum;
|
||||
}
|
||||
|
||||
function jahreskalenderjump($link)
|
||||
{
|
||||
$datum=mktime();
|
||||
$woche=kalenderwoche($datum);
|
||||
$datum=montag($datum);
|
||||
echo '<SMALL><CENTER><B>Jump to KW</B><BR><SMALL>';
|
||||
for ($anz=1;$anz<26;$anz++)
|
||||
{
|
||||
$linknew=$link.'&datum='.$datum;
|
||||
if ($woche==54)
|
||||
$woche=1;
|
||||
echo ' <A HREF="'.$linknew.'">'.$woche.'</A> ';
|
||||
if ($anz%5==0)
|
||||
echo '<br>';
|
||||
$datum+=60*60*24*7;
|
||||
$woche++;
|
||||
}
|
||||
echo '</SMALL></CENTER></SMALL>';
|
||||
}
|
||||
|
||||
function loadVariables($conn, $user)
|
||||
{
|
||||
$error_msg='';
|
||||
if(!($result=@pg_query($conn, "SELECT * FROM tbl_variable WHERE uid='$user'")))
|
||||
$error_msg.=pg_errormessage($conn).'<BR>'.$sql_query;
|
||||
else
|
||||
$num_rows=@pg_numrows($result);
|
||||
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
global ${$row->name};
|
||||
${$row->name}=$row->wert;
|
||||
}
|
||||
if (!isset($semester_aktuell))
|
||||
if(!($result=@pg_query($conn, 'SELECT * FROM tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1')))
|
||||
$error_msg.=pg_errormessage($conn).'<BR>'.$sql_query;
|
||||
else
|
||||
{
|
||||
$num_rows=@pg_numrows($result);
|
||||
if ($num_rows>0)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
global $semester_aktuell;
|
||||
$semester_aktuell=$row->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
if (!isset($db_stpl_table))
|
||||
$db_stpl_table='stundenplan';
|
||||
|
||||
return $error_msg;
|
||||
}
|
||||
|
||||
function writeCISlog($stat, $rm = '')
|
||||
{
|
||||
if($stat=='STOP')
|
||||
$stat = 'STOP ';
|
||||
$handle = fopen(CIS_LOG_PATH,'a');
|
||||
fwrite($handle, date('Y-m-d H:i:s').' '. $stat .' '. getmypid() .' '. $_SERVER['REMOTE_USER'] .' '. $_SERVER['REQUEST_URI'] .' '.$rm.'
|
||||
');
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,279 @@
|
||||
<?php
|
||||
|
||||
|
||||
/**
|
||||
* @author Christian Paminger, Werner Masik
|
||||
* @version 1.0
|
||||
* @created 22-Okt-2004
|
||||
* @update 28.10.2004
|
||||
*/
|
||||
class funktion
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $aktiv;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $new=true;
|
||||
|
||||
/**
|
||||
* @var resource
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
function funktion($conn)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der Funktion aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($kurzbz)
|
||||
{
|
||||
$this->kurzbz=$kurzbz;
|
||||
$qry="select * from tbl_funktion where funktion_kurzbz='$kurzbz'";
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1) {
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
$this->bezeichnung=$row->bezeichnung;
|
||||
$this->aktiv=$row->aktiv=='t'?true:false;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die Funktion in die Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'. INSERT oder DELETE wird
|
||||
* durch 'new' bestimmt.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($this->kurzbz)==0)
|
||||
{
|
||||
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
|
||||
return false;
|
||||
}
|
||||
if ($this->new)
|
||||
{
|
||||
$qry="insert into tbl_funktion(funktion_kurzbz,bezeichnung,aktiv) ".
|
||||
"values('".$this->kurzbz."','".$this->bezeichnung."',".($this->aktiv?'t':'f').")";
|
||||
} else
|
||||
{
|
||||
$qry="update tbl_funktion set bezeichnung='".$this->bezeichnung."',".
|
||||
"aktiv=".($this->aktiv?'t':'f')." where funktion_kurzbzb='$this->kurzbz'";
|
||||
}
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Funktion aus der Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function delete()
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($this->kurzbz)==0)
|
||||
{
|
||||
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_funktion where funktion_kurzbz='".$this->kurzbz."'";
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* alle Personen mit dieser Funktion holen
|
||||
* @param string $kurzbz Kurzbezeichnung der Funktion (wenn nicht angegeben
|
||||
* wird lokale $kurzbz verwendet)
|
||||
* @return array key=personfunktion_id, value=array('person','studiengang_kz'',
|
||||
* 'studiengang_kurzbz','fachbereich_id', 'fachbereich_kurzbz') oder false, wenn Fehler
|
||||
*/
|
||||
function getPersonen($kurzbz='')
|
||||
{
|
||||
// Array für Suchergebnis
|
||||
$result=array();
|
||||
|
||||
if (strlen($kurzbz)==0)
|
||||
{
|
||||
$search_kurzbz=$this->kurzbz;
|
||||
} else
|
||||
{
|
||||
$search_kurzbz=$kurzbz;
|
||||
}
|
||||
$qry="select tbl_personfunktion.*,tbl_studiengang.kurzbz as studiengang_kurzbz,tbl_fachbereich.kurzbz as fachbereich_kurzbz from tbl_personfunktion join tbl_person using(uid) ".
|
||||
"left join tbl_studiengang using(studiengang_kz) ".
|
||||
"left join tbl_fachbereich using(fachbereich_id) ".
|
||||
"where funktion_kurzbz='$search_kurzbz' ".
|
||||
"order by upper(tbl_person.nachname)";
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
//echo "'".$qry."'";
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
// Person laden (nicht für große Anzahl von Personen geeignet)
|
||||
$temp_person=new person($this->conn);
|
||||
$temp_person->load(pg_result($erg,$i,'uid'));
|
||||
// und in Array speichern
|
||||
$result[pg_result($erg,$i,'personfunktion_id')]=array(
|
||||
'person'=>$temp_person,
|
||||
'studiengang_kz'=>@pg_result($erg,$i,'studiengang_kz'),
|
||||
'studiengang_kurzbz'=>@pg_result($erg,$i,'studiengang_kurzbz'),
|
||||
'fachbereich_kurzbz'=>@pg_result($erg,$i,'fachbereich_kurzbz'),
|
||||
'fachbereich_id'=>@pg_result($erg,$i,'fachbereich_id')
|
||||
);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Person Funktion dazugeben
|
||||
* @param string $uid User-ID
|
||||
* @param string $studiengang_kz Studiengang-Kennzahl (optional)
|
||||
* @param integer $fachbereich_id optional
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function addPerson($uid,$studiengang_kz=null,$fachbereich_id=null)
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$targetlist="uid,funktion_kurzbz";
|
||||
if (strlen($studiengang_kz)>0) $targetlist.=",studiengang_kz";
|
||||
if (strlen($fachbereich_id)>0) $targetlist.=",fachbereich_id";
|
||||
$values="'$uid','".$this->kurzbz."'";
|
||||
if (strlen($studiengang_kz)>0) $values.=",$studiengang_kz";
|
||||
if (strlen($fachbereich_id)>0) $values.=",$fachbereich_id";
|
||||
$qry="insert into tbl_personfunktion($targetlist) ".
|
||||
"values($values)";
|
||||
//echo $qry;
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Person Funktion wegnehmen
|
||||
* @param string $uid User-ID
|
||||
* @param string $studiengang_kz Studiengang-Kennzahl (optional)
|
||||
* @param integer $fachbereich_id optional
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function removePerson($personfunktion_id)
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($personfunktion_id)==0) {
|
||||
$this->errormsg="personfunktion_id darf nicht NULL sein";
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_personfunktion where personfunktion_id=$personfunktion_id";
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Personfunktion aktualisieren
|
||||
* @param integer $personfunktion ID aus der Zuordnungstabelle
|
||||
* @param string $uid User-ID
|
||||
* @param string $studiengang_kz Studiengang-Kennzahl (optional)
|
||||
* @param integer $fachbereich_id optional
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function updatePerson($personfunktion_id,$uid,$studiengang_kz=null,
|
||||
$fachbereich_id=null) {
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($studiengang_kz)>0)
|
||||
{
|
||||
$values.=",studiengang_kz=$studiengang_kz ";
|
||||
} else
|
||||
{
|
||||
$values.=",studiengang_kz=NULL ";
|
||||
}
|
||||
if (strlen($fachbereich_id)>0)
|
||||
{
|
||||
$values.=",fachbereich_id=$fachbereich_id";
|
||||
} else
|
||||
{
|
||||
if (strlen($studiengang_kz)==0) {
|
||||
$this->errormsg="Studiengang oder Fachbereich fehlt.";
|
||||
return false;
|
||||
}
|
||||
$values.=",fachbereich_id=NULL";
|
||||
}
|
||||
$qry="update tbl_personfunktion set ".
|
||||
"uid='$uid'$values ".
|
||||
"where personfunktion_id=$personfunktion_id";
|
||||
//echo $qry;
|
||||
if(!($erg=@pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
// Hintergrundfarben fuer Tabellen beim Zeitwunsch
|
||||
global $cfgStdBgcolor;
|
||||
$cfgStdBgcolor=array();
|
||||
$cfgStdBgcolor[0]="#FF0000";
|
||||
$cfgStdBgcolor[1]="#D44128";
|
||||
$cfgStdBgcolor[2]="#CA8780";
|
||||
$cfgStdBgcolor[3]="#C0C0C0";
|
||||
$cfgStdBgcolor[4]="#A2C294";
|
||||
$cfgStdBgcolor[5]="#4EA83C";
|
||||
$cfgStdBgcolor[6]="#006000";
|
||||
|
||||
// Wochentage auf Deutsch (Zeitwunsch)
|
||||
global $tagbez;
|
||||
$tagbez=array();
|
||||
$tagbez[1]="Montag";
|
||||
$tagbez[2]="Dienstag";
|
||||
$tagbez[3]="Mittwoch";
|
||||
$tagbez[4]="Donnerstag";
|
||||
$tagbez[5]="Freitag";
|
||||
$tagbez[6]="Samstag";
|
||||
?>
|
||||
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
|
||||
class lehrfach
|
||||
{
|
||||
|
||||
/**
|
||||
* @var sint
|
||||
*/
|
||||
var $lehrfach_nr;
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
var $fachbereich_id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $lehrevz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $farbe;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
//var $lehrform_kurzbz;
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $aktiv;
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var real
|
||||
*/
|
||||
var $ects;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
var $semester;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $sprache;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
var $fkterg = array();
|
||||
var $conn;
|
||||
|
||||
function lehrfach($conn)
|
||||
{
|
||||
|
||||
$this->conn=$conn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet einen Datensatz mit der id $id
|
||||
* @param $id lehrfach_nr
|
||||
* @return true wenn erfolgreich sonst false
|
||||
*/
|
||||
function load($id)
|
||||
{
|
||||
$sql_query = "Select * from tbl_lehrfach where lehrfach_nr=$id";
|
||||
if($result=pg_exec($sql_query))
|
||||
{
|
||||
if($row=pg_fetch_object($result))
|
||||
{
|
||||
$this->lehrfach_nr = $id;
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->fachbereich_id = $row->fachbereich_id;
|
||||
$this->kurzbz = $row->kurzbz;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->lehrevz = $row->lehrevz;
|
||||
$this->farbe = $row->farbe;
|
||||
//$this->lehrform = $row->lehrform;
|
||||
$this->aktiv = $row->aktiv;
|
||||
$this->ects = $row->ects;
|
||||
$this->semester = $row->semester;
|
||||
$this->sprache = $row->sprache;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Tabellenelemente die den Kriterien der Parameter entsprechen
|
||||
* @param $stg Studiengangs_kz
|
||||
* $sem Semester
|
||||
* $order Sortierkriterium
|
||||
* $fachb fachbereichs_id
|
||||
* @return array mit Fachbereichen oder false=fehler
|
||||
*/
|
||||
function getTab($stg='-1',$sem='-1', $order='lehrfach_nr', $fachb='-1',$lehre='')
|
||||
{
|
||||
|
||||
$sql_query = "SELECT * FROM tbl_lehrfach";
|
||||
|
||||
if($stg!=-1 || $sem!=-1 || $fachb!=-1)
|
||||
$sql_query .= " WHERE true";
|
||||
|
||||
if($stg!=-1)
|
||||
{
|
||||
$sql_query .= " AND studiengang_kz=$stg";
|
||||
}
|
||||
|
||||
if($sem!=-1)
|
||||
{
|
||||
$sql_query .= " AND semester=$sem";
|
||||
}
|
||||
|
||||
if($fachb!=-1)
|
||||
{
|
||||
$sql_query .= " AND fachbereich_id=$fachb";
|
||||
}
|
||||
|
||||
if($lehre!='')
|
||||
{
|
||||
$sql_query .= " AND lehre=$lehre";
|
||||
}
|
||||
|
||||
$sql_query .= " ORDER BY $order";
|
||||
|
||||
if($result=pg_exec($this->conn,$sql_query))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$l = new lehrfach($this->conn);
|
||||
$l->lehrfach_nr = $row->lehrfach_nr;
|
||||
$l->fachbereich_id = $row->fachbereich_id;
|
||||
$l->kurzbz = $row->kurzbz;
|
||||
$l->bezeichnung = $row->bezeichnung;
|
||||
$l->lehrevz = $row->lehrevz;
|
||||
$l->farbe = $row->farbe;
|
||||
//$l->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$l->aktiv = $row->aktiv;
|
||||
$l->ects = $row->ects;
|
||||
$l->studiengang_kz = $row->studiengang_kz;
|
||||
$l->semester = $row->semester;
|
||||
$this->fkterg[]=$l;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alle Fachbereiche zurückgeben
|
||||
* @return array mit Fachbereichen oder false=fehler
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$qry = "select * from tbl_lehrfach ".
|
||||
"order by kurzbz";
|
||||
//echo $qry;
|
||||
if (!($erg = pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$result = array();
|
||||
$num_rows = pg_numrows($erg);
|
||||
for ($i = 0; $i < $num_rows; $i ++)
|
||||
{
|
||||
// Record holen
|
||||
$row = pg_fetch_object($erg, $i);
|
||||
// Instanz erzeugen
|
||||
$lf = new lehrfach($this->conn);
|
||||
$lf->lehrfach_nr = $row->lehrfach_nr;
|
||||
$lf->fachbereich_id = $row->fachbereich_id;
|
||||
$lf->kurzbz = $row->kurzbz;
|
||||
$lf->bezeichnung = $row->bezeichnung;
|
||||
$lf->lehrelink = $row->lehrelink;
|
||||
$lf->farbe = $row->farbe;
|
||||
//$lf->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$lf->aktiv = $row->aktiv;
|
||||
$lf->ects = $row->ects;
|
||||
$lf->studiengang_kz = $row->studiengang_kz;
|
||||
// in array speichern
|
||||
$result[] = $lf;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
class lehrform
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
/**
|
||||
* @var resource
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
function lehrform($conn)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alle Fachbereiche zurückgeben
|
||||
* @return array mit Fachbereichen oder false=fehler
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$qry = "select lehrform_kurzbz, bezeichnung from tbl_lehrform ".
|
||||
"order by lehrform_kurzbz";
|
||||
//echo $qry;
|
||||
if (!($erg = pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$result = array();
|
||||
$num_rows = pg_numrows($erg);
|
||||
for ($i = 0; $i < $num_rows; $i ++)
|
||||
{
|
||||
// Record holen
|
||||
$row = pg_fetch_object($erg, $i);
|
||||
// Instanz erzeugen
|
||||
$lf = new lehrform($this->conn);
|
||||
$lf->kurzbz = $row->lehrform_kurzbz;
|
||||
$lf->bezeichnung = $row->bezeichnung;
|
||||
// in array speichern
|
||||
$result[] = $lf;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,457 @@
|
||||
<?php
|
||||
/*
|
||||
$Header: /include/lehrstunde.class.php,v 1.2 2004/10/16 17:05:38 pam Exp $
|
||||
$Log: lehrstunde.class.php,v $
|
||||
Revision 1.2 2004/10/16 17:05:38 pam
|
||||
Anpassung an neue DB-Struktur.
|
||||
*/
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* @class Lehrstunde
|
||||
* @author Christian Paminger
|
||||
* @date 2004/8/21
|
||||
* @version $Revision: 1.2 $
|
||||
* Update: 21.10.2004 von Christian Paminger
|
||||
* @brief Beschreibung einer Unterrichts-Stunde der Tabelle tbl_stundenplan
|
||||
* Abhaengig: von ?
|
||||
*****************************************************************************/
|
||||
|
||||
// include_once('mitarbeiter.class.php');
|
||||
|
||||
class lehrstunde
|
||||
{
|
||||
var $conn; // @brief Connection zur Datenbank
|
||||
|
||||
var $stundenplan_id;// @brief id in der Datenbank
|
||||
var $unr; // @brief Unterrichtsnummer
|
||||
var $lektor_uid; // @brief UID des Lektors
|
||||
var $lektor_kurzbz; // @brief Kurzbezeichnung des Lektors
|
||||
var $datum; // @brief Datum
|
||||
var $stunde; // @brief Unterrichts-Stunde des Tages
|
||||
var $ort_kurzbz; // @brief Ort in dem der Unterricht stattfindet
|
||||
var $lehrfach_nr; // @brief Nummer des Lehrfachs
|
||||
var $lehrfach; // @brief Name des Lehrfachs
|
||||
var $lehrfach_bez; // @brief Voller Name des Lehrfachs
|
||||
var $lehrform; // @brief Lehrform des Lehrfachs (Vorlesung, ...)
|
||||
var $studiengang_kz;// @brief Kennzahl des Studiengangs
|
||||
var $studiengang; // @brief Kurzbezeichnung des Studiengangs
|
||||
var $sem; // @brief Semester
|
||||
var $ver; // @brief Verband
|
||||
var $grp; // @brief Gruppe
|
||||
var $einheit_kurzbz;// @brief Kurzbezeichnung der Einheit
|
||||
var $titel; // @brief Titel der Unterrichtsstunde
|
||||
var $anmerkung; // @brief Anmerkungen zur Unterrichtsstunde
|
||||
var $fix; // @brief true wenn diese Stunde nicht mehr verschoben wird
|
||||
var $updateamum; // @brief letztes Update
|
||||
var $updatevon; // @brief Update von wem?
|
||||
var $errormsg; // @brief String fuer die Fehlermeldung
|
||||
var $new; // @brief true wenns ein neuer Datensatz ist
|
||||
var $reservierung; // @brief true wenns eine Reservierung ist
|
||||
|
||||
var $lehrstunden=array(); // @brief Objekt der eigenen Klasse
|
||||
var $anzahl; // @brief Gesamte Anzahl der Stunden im Array
|
||||
|
||||
|
||||
/** Konstruktor
|
||||
*
|
||||
*
|
||||
*/
|
||||
function lehrstunde($conn)
|
||||
{
|
||||
// Startvariablen setzen
|
||||
$this->conn=$conn;
|
||||
$this->new=TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Einen Datensatz laden
|
||||
*
|
||||
*/
|
||||
function load($stundenplan_id,$stpl_table='stundenplandev')
|
||||
{
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_view=VIEW_BEGIN.$stpl_table;
|
||||
$stpl_table=TABLE_BEGIN.$stpl_table;
|
||||
|
||||
$sql_query="SELECT * FROM $stpl_view WHERE $stpl_id=$stundenplan_id;";
|
||||
//echo $sql_query.'<br>';
|
||||
|
||||
|
||||
//Datenbankabfrage
|
||||
if (! $stpl_tbl=pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
//echo $this->errormsg;
|
||||
return false;
|
||||
}
|
||||
$this->anzahl=pg_numrows($stpl_tbl);
|
||||
//Daten uebernehmen
|
||||
if ($this->anzahl!=1)
|
||||
{
|
||||
$this->errormsg='Keinen Datensatz gefunden';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$row=pg_fetch_object ($stpl_tbl);
|
||||
$this->stundenplan_id=$row->{$stpl_id};
|
||||
$this->unr=$row->unr;
|
||||
$this->lektor_uid=$row->uid;
|
||||
$this->lektor_kurzbz=$row->lektor;
|
||||
$this->datum=$row->datum;
|
||||
$this->stunde=$row->stunde;
|
||||
$this->ort_kurzbz=$row->ort_kurzbz;
|
||||
$this->lehrfach=$row->lehrfach;
|
||||
$this->lehrfach_bez=$row->lehrfach_bez;
|
||||
$this->lehrfach_nr=$row->lehrfach_nr;
|
||||
$this->lehrform=$row->lehrform;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->studiengang=$row->stg_kurzbz;
|
||||
$this->sem=$row->semester;
|
||||
$this->ver=$row->verband;
|
||||
$this->grp=$row->gruppe;
|
||||
$this->einheit_kurzbz=$row->einheit_kurzbz;
|
||||
$this->titel=$row->titel;
|
||||
$this->anmerkung=$row->anmerkung;
|
||||
$this->updateamum=$row->updateamum;
|
||||
$this->updatevon=$row->updatevon;
|
||||
$this->new=false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Datensatz in DB speichern
|
||||
*
|
||||
*/
|
||||
function save($uid, $stpl_table='stundenplandev')
|
||||
{
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table=TABLE_BEGIN.$stpl_table;
|
||||
if ($this->new)
|
||||
{
|
||||
// insert
|
||||
}
|
||||
else
|
||||
{
|
||||
// update
|
||||
$sql_query='UPDATE '.$stpl_table;
|
||||
$sql_query.=" SET datum='$this->datum', stunde=$this->stunde";
|
||||
$sql_query.=", ort_kurzbz='$this->ort_kurzbz', uid='$this->lektor_uid'";
|
||||
$sql_query.=", updateamum=now(), updatevon='$uid'";
|
||||
$sql_query.=" WHERE $stpl_id=$this->stundenplan_id";
|
||||
//echo $sql_query."<br>";
|
||||
|
||||
//Datenbankabfrage
|
||||
if (! @pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.pg_last_error($this->conn);
|
||||
//echo $this->errormsg;
|
||||
return false;
|
||||
}
|
||||
//$this->errormsg.=$sql_query;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Datensatz aus DB entfernen
|
||||
* @param id ID des Datensatzes in der Tabelle
|
||||
* @param stpl_table Name der Tabelle
|
||||
*
|
||||
*/
|
||||
function delete($id, $stpl_table='stundenplandev')
|
||||
{
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table=TABLE_BEGIN.$stpl_table;
|
||||
// Delete SQL vorbereiten
|
||||
$sql_query='DELETE FROM '.$stpl_table;
|
||||
$sql_query.=" WHERE $stpl_id=$id";
|
||||
//echo $sql_query."<br>";
|
||||
|
||||
//Datenbankrequest
|
||||
if (! pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.pg_last_error($this->conn);
|
||||
//echo $this->errormsg;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param type (student, lektor, lehrverband, einheit, ort, ....)
|
||||
* @param datum_von (inklusive) Startdatum der Abfrage
|
||||
* @param datum_bis (exklusive) Enddatum der Abfrage
|
||||
* @param uid (des Lektors oder Studenten) kann auch NULL sein
|
||||
* @param ort_kurzbz (Kurzbezeichnung des Orts) kann auch NULL sein
|
||||
* @param studiengang_kz
|
||||
* @param sem
|
||||
* @param ver
|
||||
* @param grp
|
||||
* @param einheit_kurzbz
|
||||
*
|
||||
*/
|
||||
function load_lehrstunden($type, $datum_von, $datum_bis, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $einheit_kurzbz=NULL, $stpl_view='stundenplan')
|
||||
{
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_view.TABLE_ID;
|
||||
$stpl_view=VIEW_BEGIN.$stpl_view;
|
||||
// Datum im Format YYYY-MM-TT ?
|
||||
if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_von) )
|
||||
{
|
||||
$this->errormsg='Fehler: Startdatum hat falsches Format!';
|
||||
return -1;
|
||||
}
|
||||
if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_bis) )
|
||||
{
|
||||
$this->errormsg='Fehler: Enddatum hat falsches Format!';
|
||||
return -1;
|
||||
}
|
||||
// Person
|
||||
if (($type=='student' || $type=='lektor') && $uid==NULL)
|
||||
{
|
||||
$this->errormsg='Fehler: uid der Person ist nicht gesetzt';
|
||||
return -1;
|
||||
}
|
||||
// Ort
|
||||
if ($type=='ort' && $ort_kurzbz==NULL)
|
||||
{
|
||||
$this->errormsg='Fehler: Kurzbezeichnung des Orts ist nicht gesetzt';
|
||||
return -1;
|
||||
}
|
||||
// Einheit
|
||||
if ($type=='einheit' && $einheit_kurzbz==NULL)
|
||||
{
|
||||
$this->errormsg='Fehler: Kurzbezeichnung der Einheit ist nicht gesetzt';
|
||||
return -1;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// Zusaetzliche Daten ermitteln
|
||||
// Personendaten
|
||||
if ($type=='student')
|
||||
{
|
||||
// Lehrverband ermitteln
|
||||
$sql_query="SELECT studiengang_kz, semester, verband, gruppe FROM tbl_student WHERE uid='$uid'";
|
||||
//echo $sql_query;
|
||||
if (! $result=@pg_query($this->conn, $sql_query) )
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
return -2;
|
||||
}
|
||||
$num_rows=pg_num_rows($result);
|
||||
if ($num_rows>0)
|
||||
$row=pg_fetch_object($result);
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler: Student ('.$uid.') wurde nicht gefunden!';
|
||||
return -2;
|
||||
}
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
$sem=$row->semester;
|
||||
$ver=$row->verband;
|
||||
$grp=$row->gruppe;
|
||||
|
||||
// Einheiten ermitteln
|
||||
$sql_query="SELECT einheit_kurzbz FROM tbl_einheitstudent WHERE uid='$uid'";
|
||||
//echo $sql_query;
|
||||
if (! $result_einheit=@pg_query($this->conn, $sql_query) )
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
return -2;
|
||||
}
|
||||
$num_rows_einheit=pg_num_rows($result_einheit);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// Stundenplandaten ermitteln
|
||||
// Abfrage generieren
|
||||
$sql_query_stdplan='SELECT * FROM '.$stpl_view;
|
||||
$sql_query=" WHERE datum>='$datum_von' AND datum<'$datum_bis'";
|
||||
if ($type=='lektor')
|
||||
$sql_query.=" AND uid='$uid'";
|
||||
elseif ($type=='ort')
|
||||
$sql_query.=" AND ort_kurzbz='$ort_kurzbz'";
|
||||
elseif ($type=='einheit')
|
||||
$sql_query.=" AND einheit_kurzbz='$einheit_kurzbz'";
|
||||
else
|
||||
{
|
||||
$sql_query.=' AND ( (studiengang_kz='.$studiengang_kz;
|
||||
if ($sem!='0' && $sem!=null && $sem!=0 && $sem!='')
|
||||
{
|
||||
$sql_query.=" AND (semester=$sem OR semester IS NULL";
|
||||
if ($type=='student')
|
||||
$sql_query.=' OR semester='.($sem+1);
|
||||
$sql_query.=')';
|
||||
}
|
||||
if ($ver!='0' && $ver!=null && $ver!='')
|
||||
$sql_query.=" AND (verband='$ver' OR verband IS NULL OR verband='0' OR verband='')";
|
||||
if ($grp!='0' && $grp!=null && $grp!='')
|
||||
$sql_query.=" AND (gruppe='$grp' OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
|
||||
if ($type=='student')
|
||||
$sql_query.=' AND einheit_kurzbz IS NULL';
|
||||
$sql_query.=' )';
|
||||
for ($i=0;$i<$num_rows_einheit;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result_einheit,$i);
|
||||
$sql_query.=" OR einheit_kurzbz='$row->einheit_kurzbz'";
|
||||
}
|
||||
$sql_query.=')';
|
||||
}
|
||||
$sql_query.=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, einheit_kurzbz, uid';
|
||||
$sql_query_stdplan.=$sql_query;
|
||||
//echo '<label>'.htmlspecialchars($sql_query_stdplan).'</label>';
|
||||
|
||||
//Datenbankabfrage
|
||||
if (! $stpl_tbl=pg_query($this->conn, $sql_query_stdplan))
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
//echo $this->errormsg;
|
||||
return -2;
|
||||
}
|
||||
$num_rows=pg_numrows($stpl_tbl);
|
||||
$this->anzahl=$num_rows;
|
||||
//Daten uebernehmen
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object ($stpl_tbl, $i);
|
||||
$stunde=new lehrstunde($this->conn);
|
||||
$stunde->stundenplan_id=$row->{$stpl_id};
|
||||
$stunde->unr=$row->unr;
|
||||
$stunde->lektor_uid=$row->uid;
|
||||
$stunde->lektor_kurzbz=$row->lektor;
|
||||
$stunde->datum=$row->datum;
|
||||
$stunde->stunde=$row->stunde;
|
||||
$stunde->ort_kurzbz=$row->ort_kurzbz;
|
||||
$stunde->lehrfach=$row->lehrfach;
|
||||
$stunde->lehrfach_bez=$row->lehrfach_bez;
|
||||
$stunde->lehrfach_nr=$row->lehrfach_nr;
|
||||
$stunde->lehrform=$row->lehrform;
|
||||
if ($row->farbe!=' ' && $row->farbe!=null)
|
||||
$stunde->farbe=$row->farbe;
|
||||
else
|
||||
$stunde->farbe='FFFFFF';
|
||||
$stunde->studiengang_kz=$row->studiengang_kz;
|
||||
$stunde->studiengang=$row->stg_kurzbz;
|
||||
$stunde->sem=$row->semester;
|
||||
$stunde->ver=$row->verband;
|
||||
$stunde->grp=$row->gruppe;
|
||||
$stunde->einheit_kurzbz=$row->einheit_kurzbz;
|
||||
$stunde->titel=$row->titel;
|
||||
$stunde->anmerkung=$row->anmerkung;
|
||||
$stunde->updateamum=$row->updateamum;
|
||||
$stunde->updatevon=$row->updatevon;
|
||||
$stunde->reservierung=false;
|
||||
$this->lehrstunden[$i]=$stunde;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// Reservierungsdaten ermitteln
|
||||
// Datenbankabfrage generieren
|
||||
$sql_query_reservierung='SELECT * FROM vw_reservierung';
|
||||
$sql_query_reservierung.=$sql_query;
|
||||
//echo $sql_query_reservierung;
|
||||
//Datenbankabfrage
|
||||
if (! $stpl_tbl=pg_query($this->conn, $sql_query_reservierung))
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
return -2;
|
||||
}
|
||||
$num_rows=pg_numrows($stpl_tbl);
|
||||
$this->anzahl+=$num_rows;
|
||||
|
||||
//Daten uebernehmen
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object ($stpl_tbl, $i);
|
||||
$stunde=new lehrstunde($this->conn);
|
||||
$stunde->reservierung=true;
|
||||
$stunde->stundenplan_id=$row->reservierung_id;
|
||||
$stunde->unr=0;
|
||||
$stunde->lektor_uid=$row->uid;
|
||||
$stunde->lektor_kurzbz=$row->uid;
|
||||
$stunde->datum=$row->datum;
|
||||
$stunde->stunde=$row->stunde;
|
||||
$stunde->ort_kurzbz=$row->ort_kurzbz;
|
||||
//$stunde->lehrfach_nr=$row->lehrfach_nr;
|
||||
$stunde->lehrfach=$row->titel;
|
||||
$stunde->lehrfach_bez=$row->beschreibung;
|
||||
$stunde->studiengang_kz=$row->studiengang_kz;
|
||||
$stunde->studiengang=$row->stg_kurzbz;
|
||||
$stunde->sem=$row->semester;
|
||||
$stunde->ver=$row->verband;
|
||||
$stunde->grp=$row->gruppe;
|
||||
$stunde->einheit_kurzbz=$row->einheit_kurzbz;
|
||||
$stunde->titel=$row->titel;
|
||||
$stunde->anmerkung=$row->beschreibung;
|
||||
$this->lehrstunden[]=$stunde;
|
||||
//var_dump($stunde);
|
||||
}
|
||||
//echo $this->anzahl;
|
||||
return $this->anzahl;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* Prueft die geladene Lehrveranstaltung auf Kollisionen im Stundenplan.
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
|
||||
* @param string datum gewuenschtes Datum YYYY-MM-TT
|
||||
* @param integer stunde gewuenschte Stunde
|
||||
* @param string ort gewuenschter Ort
|
||||
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
|
||||
* @return boolean true=ok, false=fehler
|
||||
*************************************************************************/
|
||||
function kollision($stpl_table='stundenplandev')
|
||||
{
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table=VIEW_BEGIN.$stpl_table;
|
||||
|
||||
// Datenbank abfragen
|
||||
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, einheit_kurzbz, datum, stunde FROM $stpl_table
|
||||
WHERE datum='$this->datum' AND stunde=$this->stunde AND (ort_kurzbz='$this->ort_kurzbz' OR ";
|
||||
if ($this->lektor_uid!='_DummyLektor')
|
||||
$sql_query.="(uid='$this->lektor_uid') AND uid!='_DummyLektor' OR ";
|
||||
$sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem";
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')";
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
if ($this->einheit_kurzbz!=null && $this->einheit_kurzbz!='' && $this->einheit_kurzbz!=' ')
|
||||
$sql_query.=" AND (einheit_kurzbz='$this->einheit_kurzbz')";
|
||||
$sql_query.=")) AND unr!=$this->unr";
|
||||
|
||||
//echo $sql_query.'<br>';
|
||||
if (! $erg_stpl=pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
return true;
|
||||
}
|
||||
$anz=pg_numrows($erg_stpl);
|
||||
//Check
|
||||
if ($anz==0)
|
||||
return false;
|
||||
else
|
||||
{
|
||||
$row=pg_fetch_object($erg_stpl);
|
||||
$this->errormsg="Kollision ($stpl_table): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->einheit_kurzbz - $row->datum/$row->stunde";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,392 @@
|
||||
<?php
|
||||
/******************************************************************************
|
||||
* Basisklasse fuer Lehrveranstaltung
|
||||
* @author Christian Paminger, Werner Masik
|
||||
* @version 1.0
|
||||
* @updated 12-Mar-2005
|
||||
*****************************************************************************/
|
||||
|
||||
class lehrveranstaltung
|
||||
{
|
||||
// @var integer interne Lehrveranstaltungs-ID (Zaehler aus DB)
|
||||
var $lehrveranstaltung_id;
|
||||
// @var string Lehrveranstaltungsnummer
|
||||
var $lvnr;
|
||||
// @var string Unterrichtsnummer; zum patizipieren verwendet
|
||||
var $unr;
|
||||
// @var string
|
||||
var $einheit_kurzbz;
|
||||
// @var string
|
||||
var $lektor;
|
||||
// @var integer
|
||||
var $lehrfach_nr;
|
||||
// @var string Kurzbz vom Lehrfach
|
||||
var $lehrfach;
|
||||
// @var string Kurzbz der Lehrform
|
||||
var $lehrform;
|
||||
// @var string lange Beschreibung vom Lehrfach
|
||||
var $lehrfach_bez;
|
||||
// @var string Farbe vom Lehrfach
|
||||
var $lehrfach_farbe;
|
||||
// @var integer
|
||||
var $studiengang_kz;
|
||||
// @var integer
|
||||
var $fachbereich_id;
|
||||
// @var string beschreibung von foreign key
|
||||
var $fachbereich;
|
||||
// @var integer
|
||||
var $semester;
|
||||
// @var string
|
||||
var $verband;
|
||||
// @var string
|
||||
var $gruppe;
|
||||
// @var string
|
||||
var $raumtyp;
|
||||
// @var string
|
||||
var $raumtypalternativ;
|
||||
// @var integer
|
||||
var $semesterstunden;
|
||||
// @var integer
|
||||
var $stundenblockung;
|
||||
// @var integer
|
||||
var $wochenrythmus;
|
||||
// @var integer
|
||||
var $start_kw;
|
||||
// @var string
|
||||
var $anmerkung;
|
||||
// @var string
|
||||
var $studiensemester_kurzbz;
|
||||
// @var string
|
||||
var $fas_id;
|
||||
|
||||
// @var boolean;
|
||||
var $new=true;
|
||||
// @var DB-Handle;
|
||||
var $conn;
|
||||
// @var string
|
||||
var $errormsg;
|
||||
|
||||
function lehrveranstaltung($conn, $id='')
|
||||
{
|
||||
$this->conn=$conn;
|
||||
$this->errormsg='';
|
||||
if (strlen($id)>0)
|
||||
{
|
||||
$this->lehrveranstaltung_id=$id;
|
||||
$this->load($id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Prueft die geladene Lehrveranstaltung auf Kollisionen im Stundenplan.
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
|
||||
* @param string datum gewuenschtes Datum YYYY-MM-TT
|
||||
* @param integer stunde gewuenschte Stunde
|
||||
* @param string ort gewuenschter Ort
|
||||
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
|
||||
* @return boolean true=ok, false=fehler
|
||||
*************************************************************************/
|
||||
function check_lva($datum,$stunde,$ort,$stpl_table)
|
||||
{
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table=TABLE_BEGIN.$stpl_table;
|
||||
|
||||
/*// Connection holen
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}*/
|
||||
|
||||
// Datenbank abfragen
|
||||
$sql_query="SELECT $stpl_id FROM $stpl_table
|
||||
WHERE datum='$datum' AND stunde=$stunde
|
||||
AND ((ort_kurzbz='$ort' OR (uid='$this->lektor' AND uid!='_DummyLektor'))
|
||||
AND unr!=$this->unr)"; //AND lehrveranstaltung_id!=$this->lehrveranstaltung_id
|
||||
//$this->errormsg=$sql_query;
|
||||
if (! $erg_stpl=pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
//echo $this->errormsg;
|
||||
return false;
|
||||
}
|
||||
$anzahl=pg_numrows($erg_stpl);
|
||||
//Check
|
||||
if ($anzahl==0)
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$row=pg_fetch_row($erg_stpl);
|
||||
$this->errormsg="Kollision mit StundenplanID($stpl_table.$stpl_id): $row[0]";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* Speichert die geladene Lehrveranstaltung im Stundenplan.
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
|
||||
* @param string datum gewuenschtes Datum YYYY-MM-TT
|
||||
* @param integer stunde gewuenschte Stunde
|
||||
* @param string ort gewuenschter Ort
|
||||
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
|
||||
* @param string user UID des aktuellen Bentzers
|
||||
* @return boolean true=ok, false=fehler
|
||||
*************************************************************************/
|
||||
function save_stpl($datum,$stunde,$ort,$stpl_table, $user)
|
||||
{
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table=TABLE_BEGIN.$stpl_table;
|
||||
|
||||
// Datenbank abfragen
|
||||
$sql_query="INSERT INTO $stpl_table
|
||||
(unr,uid,datum, stunde, ort_kurzbz,lehrfach_nr,lehrform_kurzbz,studiengang_kz,semester,verband,
|
||||
gruppe, einheit_kurzbz, titel, anmerkung, updatevon, lehrveranstaltung_id)
|
||||
VALUES ($this->unr,'$this->lektor','$datum',$stunde,
|
||||
'$ort',$this->lehrfach_nr, '$this->lehrform', $this->studiengang_kz,$this->semester,
|
||||
'$this->verband','$this->gruppe'";
|
||||
if ($this->einheit_kurzbz==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",'$this->einheit_kurzbz'";
|
||||
$sql_query.=",'$this->titel','$this->anmerkung','$user',$this->lehrveranstaltung_id)";
|
||||
//$this->errormsg=$sql_query.'<br>';
|
||||
//return false;
|
||||
if (! $erg_stpl=pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_last_error($this->conn);
|
||||
//echo $this->errormsg;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der LVA aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($id='')
|
||||
{
|
||||
// optional: id setzen
|
||||
if ($id!='')
|
||||
$this->lehrveranstaltung_id=$id;
|
||||
// id vorhanden?
|
||||
if (strlen($this->lehrveranstaltung_id)==0)
|
||||
{
|
||||
$this->errormsg='<i>lehrveranstaltung_id</i> nicht gesetzt.';
|
||||
return false;
|
||||
}
|
||||
|
||||
// LVA-Daten holen
|
||||
$sql_query='SELECT * FROM tbl_lehrveranstaltung WHERE lehrveranstaltung_id='.$this->lehrveranstaltung_id;
|
||||
//$this->errormsg.=$sql_query;
|
||||
//return false;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1)
|
||||
{
|
||||
$this->errormsg.="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->lvnr=$row->lvnr;
|
||||
$this->unr=$row->unr;
|
||||
$this->einheit_kurzbz=$row->einheit_kurzbz;
|
||||
$this->lektor=$row->lektor;
|
||||
$this->lehrfach_nr=$row->lehrfach_nr;
|
||||
$this->lehrform=$row->lehrform_kurzbz;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->fachbereich_id=$row->fachbereich_id;
|
||||
$this->semester=$row->semester;
|
||||
$this->verband=$row->verband;
|
||||
$this->gruppe=$row->gruppe;
|
||||
$this->raumtyp=$row->raumtyp;
|
||||
$this->raumtypalternativ=$row->raumtypalternativ;
|
||||
$this->semesterstunden=$row->semesterstunden;
|
||||
$this->stundenblockung=$row->stundenblockung;
|
||||
$this->wochenrythmus=$row->wochenrythmus;
|
||||
$this->start_kw=$row->start_kw;
|
||||
$this->anmerkung=$row->anmerkung;
|
||||
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
//$this->fas_id=$row->fas_id;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
global $auth;
|
||||
|
||||
// Daten zur Person speichern
|
||||
|
||||
if (!person::save()) {
|
||||
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
$sql_query="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,lehrform_kurzbz,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung)".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
"'".$this->unr."',".
|
||||
"'".$this->einheit_kurzbz."',".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
"'".$this->lehrform."',".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"'".$this->verband."',".
|
||||
"'".$this->gruppe."',".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$sql_query="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr='".$this->unr."',".
|
||||
"einheit_kurzbz='".$this->einheit_kurzbz."',".
|
||||
"lektor='".$this->lektor."',".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
"lehrform_kurzbz=".(strlen($this->lehrform)>0?$this->lehrform:NULL).",".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"verband='".$this->verband."',".
|
||||
"gruppe='".$this->gruppe."',".
|
||||
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
|
||||
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
}
|
||||
//echo "<br>".$sql_query;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
|
||||
* Fehlermeldung liegt in errormsg.
|
||||
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
|
||||
* @param string $einheit_kurzbz Einheit
|
||||
* @param string grp Gruppe
|
||||
* @param string ver Verband
|
||||
* @param integer sem Semester
|
||||
* @param integer stg_kz Kennzahl des Studiengangs
|
||||
* @return variabel Array mit LVA; <b>false</b> bei Fehler
|
||||
*/
|
||||
function getLehrveranstaltungSTPL($db_stpl_table,$studiensemester, $type, $stg_kz, $sem, $lektor, $ver=null, $grp=null, $einheit=null)
|
||||
{
|
||||
$lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table;
|
||||
|
||||
if (strlen($studiensemester)<=0)
|
||||
{
|
||||
$this->errormsg='Ausbildungssemester ist nicht gesetzt!';
|
||||
return false;
|
||||
}
|
||||
else $where=" studiensemester_kurzbz='$studiensemester'";
|
||||
|
||||
if ($type=='lektor')
|
||||
$where.=" AND lektor_uid='$lektor'";
|
||||
elseif ($type=='einheit')
|
||||
$where.=" AND einheit='$einheit'";
|
||||
elseif ($type=='verband')
|
||||
{
|
||||
$where.=" AND studiengang_kz='$stg_kz'";
|
||||
if ($sem>0)
|
||||
$where.=" AND semester=$sem";
|
||||
if (strlen($ver)>0 && $ver!=' ')
|
||||
$where.=" AND verband='$ver'";
|
||||
if (strlen($grp)>0 && $grp!=' ')
|
||||
$where.=" AND gruppe='$grp' ";
|
||||
}
|
||||
$sql_query='SELECT *, semesterstunden-verplant::smallint AS offenestunden
|
||||
FROM '.$lva_stpl_view.' JOIN tbl_lehrform ON '.$lva_stpl_view.'.lehrform=tbl_lehrform.lehrform_kurzbz
|
||||
WHERE '.$where.' AND verplanen ORDER BY offenestunden DESC, lehrfach, lehrform, semester, verband, gruppe, einheit;';
|
||||
//$this->errormsg=$sql_query;
|
||||
//return false;
|
||||
if(!($erg=@pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$l=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
//$l[$row->unr]=new lehrveranstaltung();
|
||||
$l[$row->unr]->lehrveranstaltung_id[]=$row->lehrveranstaltung_id;
|
||||
$l[$row->unr]->lvnr[]=$row->lvnr;
|
||||
$l[$row->unr]->unr=$row->unr;
|
||||
$l[$row->unr]->fachbereich_id=$row->fachbereich_id;
|
||||
$l[$row->unr]->fachbereich=$row->fachbereich_kurzbz;
|
||||
$l[$row->unr]->lehrfach_nr=$row->lehrfach_nr;
|
||||
$l[$row->unr]->lehrfach[]=$row->lehrfach;
|
||||
$l[$row->unr]->lehrfach_bez[]=$row->lehrfach_bez;
|
||||
$l[$row->unr]->lehrfach_farbe[]=$row->lehrfach_farbe;
|
||||
$l[$row->unr]->lehrform[]=$row->lehrform;
|
||||
$l[$row->unr]->lektor_uid[]=$row->lektor_uid;
|
||||
$l[$row->unr]->lektor[]=trim($row->lektor);
|
||||
$l[$row->unr]->stg_kz[]=$row->studiengang_kz;
|
||||
$l[$row->unr]->stg[]=$row->studiengang;
|
||||
$l[$row->unr]->einheit[]=$row->einheit;
|
||||
$l[$row->unr]->semester[]=$row->semester;
|
||||
$l[$row->unr]->verband[]=$row->verband;
|
||||
$l[$row->unr]->gruppe[]=$row->gruppe;
|
||||
$l[$row->unr]->raumtyp=$row->raumtyp;
|
||||
$l[$row->unr]->raumtypalternativ=$row->raumtypalternativ;
|
||||
$l[$row->unr]->stundenblockung[]=$row->stundenblockung;
|
||||
$l[$row->unr]->wochenrythmus[]=$row->wochenrythmus;
|
||||
$l[$row->unr]->semesterstunden[]=$row->semesterstunden;
|
||||
$l[$row->unr]->start_kw[]=$row->start_kw;
|
||||
$l[$row->unr]->anmerkung[]=$row->anmerkung;
|
||||
$l[$row->unr]->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$l[$row->unr]->verplant[]=$row->verplant;
|
||||
$l[$row->unr]->offenestunden[]=$row->offenestunden;
|
||||
if (isset($l[$row->unr]->verplant_gesamt))
|
||||
$l[$row->unr]->verplant_gesamt+=$row->verplant;
|
||||
else
|
||||
$l[$row->unr]->verplant_gesamt=$row->verplant;
|
||||
$lvb=$row->studiengang.'-'.$row->semester;
|
||||
if ($row->verband!='' && $row->verband!=' ' && $row->verband!='0' && $row->verband!=null)
|
||||
$lvb.=$row->verband;
|
||||
if ($row->gruppe!='' && $row->gruppe!=' ' && $row->gruppe!='0' && $row->gruppe!=null)
|
||||
$lvb.=$row->gruppe;
|
||||
if ($row->einheit!='' && $row->einheit!=null)
|
||||
$l[$row->unr]->lehrverband[]=$row->einheit;
|
||||
else
|
||||
$l[$row->unr]->lehrverband[]=$lvb;
|
||||
}
|
||||
return $l;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,423 @@
|
||||
<?php
|
||||
/**
|
||||
* Basisklasse fuer Studenten
|
||||
* @author Christian Paminger, Werner Masik
|
||||
* @version 1.0
|
||||
* @updated 03-Feb-2005
|
||||
*/
|
||||
class lfvt
|
||||
{
|
||||
/**
|
||||
* interne Lehrveranstaltungs-ID (Z?hler aus DB)
|
||||
* @var integer
|
||||
*/
|
||||
var $lehrveranstaltung_id;
|
||||
/**
|
||||
* Lehrveranstaltungsnummer
|
||||
* @var string
|
||||
*/
|
||||
var $lvnr;
|
||||
/**
|
||||
* Unterrichtsnummer; zum patizipieren verwendet
|
||||
* @var string
|
||||
*/
|
||||
var $unr;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $einheit_kurzbz;
|
||||
/**
|
||||
* @var string ID aus Datenbank
|
||||
*/
|
||||
var $lektor;
|
||||
/**
|
||||
* @var string Lektor-Nachname+Vorname+Titel zum leichteren Anzeigen
|
||||
*/
|
||||
var $lektorPrettyPrint;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $lehrfach_nr;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $lehrform;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $fachbereich_id;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $semester;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $verband;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $gruppe;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $raumtyp;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $raumtypalternativ;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $semesterstunden;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $stundenblockung;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $wochenrythmus;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $start_kw;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $anmerkung;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $studiensemester_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $fas_id;
|
||||
/**
|
||||
* @var boolean;
|
||||
*/
|
||||
var $new=true;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
/**
|
||||
* @var string beschreibung von foreign key
|
||||
*/
|
||||
var $fachbereich;
|
||||
/**
|
||||
* @var string beschreibung von foreign key
|
||||
*/
|
||||
var $lehrfach;
|
||||
|
||||
/**
|
||||
* @var string beschreibung von foreign key
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
function lfvt($conn,$id='')
|
||||
{
|
||||
$this->conn=$conn;
|
||||
if (strlen($id)>0) {
|
||||
$this->$lehrveranstaltung_id=$id;
|
||||
$this->load();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der LVA aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($id='')
|
||||
{
|
||||
// optional: id setzen
|
||||
if (strlen($id)>0)
|
||||
$this->$lehrveranstaltung_id=$id;
|
||||
// id vorhanden?
|
||||
if (strlen($this->$this->$lehrveranstaltung_id)==0) {
|
||||
$this->errormsg='<i>lehrveranstaltung_id</i> nicht gesetzt.';
|
||||
return false;
|
||||
}
|
||||
// LVA-Daten holen
|
||||
$sql_query="SELECT lva.* ".
|
||||
"FROM tbl_lehrveranstaltung as lva ".
|
||||
"WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
die(pg_errormessage($this->conn));
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1) {
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->lvnr=$row->lvnr;
|
||||
$this->unr=$row->unr;
|
||||
$this->einheit_kurzbz=$row->einheit_kurzbz;
|
||||
$this->lektor=$row->lektor;
|
||||
$this->lehrfach_nr=$row->lehrfach_nr;
|
||||
$this->lehrform=$row->lehrform_kurzbz;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->fachbereich_id=$row->fachbereich_id;
|
||||
$this->semester=$row->semester;
|
||||
$this->verband=$row->verband;
|
||||
$this->gruppe=$row->gruppe;
|
||||
$this->raumtyp=$row->raumtyp;
|
||||
$this->raumtypalternativ=$row->raumtypalternativ;
|
||||
$this->semesterstunden=$row->semesterstunden;
|
||||
$this->stundenblockung=$row->stundenblockung;
|
||||
$this->wochenrythmus=$row->wochenrythmus;
|
||||
$this->start_kw=$row->start_kw;
|
||||
$this->anmerkung=$row->anmerkung;
|
||||
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
//$this->fas_id=$row->fas_id;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
global $auth;
|
||||
if (!isset($this->unr)) {
|
||||
$this->errormsg='unr fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->lvnr)) {
|
||||
$this->errormsg='lvnr fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->lektor)) {
|
||||
$this->errormsg='lektor fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->lehrfach_nr)) {
|
||||
$this->errormsg='lehrfach_nr fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->lehrform))
|
||||
{
|
||||
$this->errormsg='lehrform fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->studiengang_kz)) {
|
||||
$this->errormsg='studiengang_kz fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->fachbereich_id)) {
|
||||
$this->errormsg='fachbereich_id fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->raumtyp)) {
|
||||
$this->errormsg='raumtyp fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->semesterstunden)) {
|
||||
$this->errormsg='semesterstunden fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->stundenblockung)) {
|
||||
$this->errormsg='stundenblockung fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->wochenrythmus)) {
|
||||
$this->errormsg='wochenrythmus fehlt';
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->studiensemester_kurzbz)) {
|
||||
$this->errormsg='studiensemester_kurzbz fehlt';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,lehrform_kurzbz,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz)\n".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
"'".$this->unr."',".
|
||||
(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'NULL').",".
|
||||
"'".$this->lehrform."',".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'NULL').",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
|
||||
(strlen($this->semester)>0?$this->semester:'NULL').",".
|
||||
"'".$this->verband."',".
|
||||
"'".$this->gruppe."',".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":'NULL').",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:'NULL').",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:'NULL').",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'NULL').",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:'NULL').",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').','.
|
||||
(strlen($this->studiensemester_kurzbz)>0?"'".$this->studiensemester_kurzbz."'":'NULL').
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$qry="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr='".$this->unr."',".
|
||||
"einheit_kurzbz=".(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
|
||||
"lektor='".$this->lektor."',\n".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'NULL').",".
|
||||
"lehrform_kurzbz='".$this->lehrform."',\n".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'NULL').",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:'NULL').",\n".
|
||||
"verband='".$this->verband."',".
|
||||
"gruppe='".$this->gruppe."',".
|
||||
"raumtyp='".$this->raumtyp."',".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",\n".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:'NULL').",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:'NULL').",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'NULL').",\n".
|
||||
"start_kw=".($this->start_kw>0?$this->start_kw:'NULL').",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').
|
||||
" WHERE lehrveranstaltung_id=".$this->lehrveranstaltung_id;
|
||||
}
|
||||
//echo "<br>".$qry.'start_kw: <'.$this->start_kw.'>';
|
||||
if(!($erg=pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn).' sql: '.$qry;
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
// neue Lehrveranstaltungs-ID herausfinden und speichern
|
||||
$lastoid=pg_getlastoid($erg);
|
||||
$qry="select lehrveranstaltung_id from tbl_lehrveranstaltung where oid=$lastoid";
|
||||
if(!($erg=pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn).' sql: '.$qry;;
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
$this->lehrveranstaltung_id=$row->lehrveranstaltung_id;
|
||||
$this->new=false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function delete() {
|
||||
global $auth;
|
||||
if ($this->new) {
|
||||
$this->errormsg='Datensatz mit new=true kann nicht gel?scht werden.';
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_lehrveranstaltung where lehrveranstaltung_id=".addslashes($this->lehrveranstaltung_id);
|
||||
if(!($erg=pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn)." \nSQL: ".$qry;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
|
||||
* Fehlermeldung liegt in errormsg.
|
||||
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
|
||||
* @param string $einheit_kurzbz Einheit
|
||||
* @param string grp Gruppe
|
||||
* @param string ver Verband
|
||||
* @param integer sem Semester
|
||||
* @param integer stg_kz Kennzahl des Studiengangs
|
||||
* @return variabel Array mit LVA; <b>false</b> bei Fehler
|
||||
*/
|
||||
function getLVAs($einheit_kurzbz, $grp, $ver, $sem, $stg_kz,$lektor, $stsem='')
|
||||
{
|
||||
if (strlen($einheit_kurzbz)>0)
|
||||
{
|
||||
// einheit?
|
||||
//$join=" join tbl_einheitstudent on (m.uid=tbl_einheitstudent.uid) ";
|
||||
$where=" lva.einheit_kurzbz='".$einheit_kurzbz."'";
|
||||
}
|
||||
if (strlen($grp)>0)
|
||||
{
|
||||
// Gruppe
|
||||
$where.=(strlen($where)>0?' and ':'')." lva.gruppe='".$grp."' ";
|
||||
}
|
||||
if (strlen($ver)>0)
|
||||
{
|
||||
// Verband
|
||||
$where.=(strlen($where)>0?' and ':'')." lva.verband='".$ver."' ";
|
||||
}
|
||||
if (strlen($sem)>0)
|
||||
{
|
||||
// Semester
|
||||
$where.=(strlen($where)>0?' and ':'')." lva.semester=".$sem." ";
|
||||
}
|
||||
if (strlen($stg_kz)>0)
|
||||
{
|
||||
// Studiengang
|
||||
$where.=(strlen($where)>0?' and ':'')." lva.studiengang_kz='".$stg_kz."' ";
|
||||
}
|
||||
if (strlen($lektor)>0)
|
||||
{
|
||||
// Lektor
|
||||
$where.=(strlen($where)>0?' and ':'')." lva.lektor='".$lektor."' ";
|
||||
}
|
||||
if (strlen($stsem)>0)
|
||||
{
|
||||
// Studiensemester
|
||||
$where.=(strlen($where)>0?' and ':'')." lva.studiensemester_kurzbz='".$stsem."' ";
|
||||
}
|
||||
$sql_query="set datestyle to german;SELECT lva.*,tbl_lehrfach.bezeichnung as lehrfach_bezeichnung, ".
|
||||
" tbl_person.nachname || ', ' || tbl_person.titel || ' ' || tbl_person.vornamen as lektorName ".
|
||||
"FROM tbl_lehrveranstaltung as lva join tbl_lehrfach using(lehrfach_nr) ".
|
||||
" left join tbl_person on(lva.lektor=tbl_person.uid) ".
|
||||
(strlen($where)>1?'WHERE '.$where:'').
|
||||
"ORDER by upper(lva.unr),upper(lva.lvnr)";
|
||||
//echo $sql_query;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new lfvt($this->conn);
|
||||
$l->lehrveranstaltung_id=$row->lehrveranstaltung_id;
|
||||
$l->lvnr=$row->lvnr;
|
||||
$l->unr=$row->unr;
|
||||
$l->einheit_kurzbz=$row->einheit_kurzbz;
|
||||
$l->lektor=$row->lektor;
|
||||
$l->lektorPrettyPrint=$row->lektorname;
|
||||
$l->lehrfach_nr=$row->lehrfach_nr;
|
||||
$l->lehrform=$row->lehrform_kurzbz;
|
||||
$l->studiengang_kz=$row->studiengang_kz;
|
||||
$l->fachbereich_id=$row->fachbereich_id;
|
||||
$l->semester=$row->semester;
|
||||
$l->verband=strlen($row->verband)>0?$row->verband:null;
|
||||
$l->gruppe=$row->gruppe;
|
||||
$l->raumtyp=$row->raumtyp;
|
||||
$l->raumtypalternativ=$row->raumtypalternativ;
|
||||
$l->semesterstunden=$row->semesterstunden;
|
||||
$l->stundenblockung=$row->stundenblockung;
|
||||
$l->wochenrythmus=$row->wochenrythmus;
|
||||
$l->start_kw=$row->start_kw;
|
||||
$l->anmerkung=$row->anmerkung;
|
||||
$l->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$l->lehrfach=$row->lehrfach_bezeichnung;
|
||||
// lva in Array speichern
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
<?php
|
||||
/*
|
||||
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
|
||||
$Log: Kodierrichtlinien.tex,v $
|
||||
Revision 1.2 2004/02/29 17:05:38 pam
|
||||
Fehler in Umlauten beseitigt.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class lv_info
|
||||
*
|
||||
* @author Andreas Oesterreicher
|
||||
*
|
||||
* @date 29.9.2005
|
||||
*
|
||||
* @version $Revision: 1.2 $
|
||||
*
|
||||
* @brief Bearbeitungsschritte fuer die Tabelle LVINFO
|
||||
*/
|
||||
|
||||
|
||||
class lv_info
|
||||
{
|
||||
//integer
|
||||
var $lvinfo_id;
|
||||
//integer
|
||||
var $studiensemester_kurzbz;
|
||||
//String
|
||||
var $lehrziele;
|
||||
//String
|
||||
var $lehrinhalte;
|
||||
//String
|
||||
var $voraussetzungen;
|
||||
//String
|
||||
var $basiert_auf;
|
||||
//String
|
||||
var $kooperiert_mit;
|
||||
//String
|
||||
var $liefert_fuer;
|
||||
//String
|
||||
var $unterlagen;
|
||||
//String
|
||||
var $pruefungsordnung;
|
||||
//String
|
||||
var $anmerkungen;
|
||||
//String
|
||||
var $niveau;
|
||||
//String
|
||||
var $lehrformen;
|
||||
//boolean
|
||||
var $genehmigt='false';
|
||||
//boolean
|
||||
var $aktiv='true';
|
||||
//timestamp
|
||||
var $updateamum;
|
||||
//String
|
||||
var $updatevon;
|
||||
//integer
|
||||
var $lehrfach_nr;
|
||||
//String
|
||||
var $sprache;
|
||||
//String
|
||||
var $lehrende;
|
||||
//String
|
||||
var $lehrfach;
|
||||
//smalint
|
||||
var $semstunden;
|
||||
|
||||
//boolean
|
||||
var $neu;
|
||||
//string
|
||||
var $lastqry;
|
||||
|
||||
//int
|
||||
var $anz;
|
||||
|
||||
//Connection
|
||||
var $conn;
|
||||
//Array
|
||||
var $result = array();
|
||||
var $errormsg;
|
||||
|
||||
/********************************************************************
|
||||
* @brief Konstruktor
|
||||
*
|
||||
* @param $conn Connection zur DB
|
||||
********************************************************************/
|
||||
function lv_info($conn)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Speichert die Daten in der Datenbank ab. Wenn new auf true
|
||||
* gesetzt ist wird INSERT ausgefuehrt sonst UPDATE
|
||||
* @param keine
|
||||
*
|
||||
* @return true=Ok false=Fehler
|
||||
********************************************************************/
|
||||
function save()
|
||||
{
|
||||
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
$this->errormsg = "Fehler: Keine Datenbank connection vorhanden";
|
||||
return false;
|
||||
}
|
||||
|
||||
//Variablen ueberpruefen
|
||||
//$this->checkvars();
|
||||
|
||||
if($this->neu)
|
||||
{
|
||||
$sql_query = "INSERT INTO tbl_lvinfo (studiensemester_kurzbz,lehrziele,lehrinhalte,voraussetzungen,basiert_auf,".
|
||||
"kooperiert_mit, liefert_fuer, unterlagen, pruefungsordnung, anmerkungen, niveau,".
|
||||
"lehrformen, genehmigt, aktiv,updatevon,lehrfach_nr, sprache, lehrende, lehrfach, semstunden)".
|
||||
" VALUES('$this->studiensemester_kurzbz',".
|
||||
(strlen($this->lehrziele)>0?"'".$this->lehrziele."'":'NULL').",".
|
||||
(strlen($this->lehrinhalte)>0?"'".$this->lehrinhalte."'":'NULL').",".
|
||||
(strlen($this->voraussetzungen)>0?"'".$this->voraussetzungen."'":'NULL').",".
|
||||
(strlen($this->basiert_auf)>0?"'".$this->basiert_auf."'":'NULL').",".
|
||||
(strlen($this->kooperiert_mit)>0?"'".$this->kooperiert_mit."'":'NULL').",".
|
||||
(strlen($this->liefert_fuer)>0?"'".$this->liefert_fuer."'":'NULL').",".
|
||||
(strlen($this->unterlagen)>0?"'".$this->unterlagen."'":'NULL').",".
|
||||
(strlen($this->pruefungsordnung)>0?"'".$this->pruefungsordnung."'":'NULL').",".
|
||||
(strlen($this->anmerkungen)>0?"'".$this->anmerkungen."'":'NULL').",".
|
||||
(strlen($this->niveau)>0?"'".$this->niveau."'":'NULL').",".
|
||||
(strlen($this->lehrformen)>0?"'".$this->lehrformen."'":'NULL').",".
|
||||
($this->genehmigt=="'true'"?'true':'false').",".($this->aktiv=='true'?'true':'false').",'$this->updatevon',$this->lehrfach_nr,'$this->sprache',".
|
||||
(strlen($this->lehrende)>0?"'".$this->lehrende."'":'NULL').",".
|
||||
(strlen($this->lehrfach)>0?"'".$this->lehrfach."'":'NULL').",".
|
||||
($this->semstunden!=''?"'".$this->semstunden."'":'NULL') .");";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql_query = "UPDATE tbl_lvinfo SET".
|
||||
" studiensemester_kurzbz='$this->studiensemester_kurzbz'".
|
||||
", lehrziele=".(strlen($this->lehrziele)>0?"'".$this->lehrziele."'":'NULL') .
|
||||
", lehrinhalte=".(strlen($this->lehrinhalte)>0?"'".$this->lehrinhalte."'":'NULL') .
|
||||
", voraussetzungen=".(strlen($this->voraussetzungen)>0?"'".$this->voraussetzungen."'":'NULL') .
|
||||
", basiert_auf=".(strlen($this->basiert_auf)>0?"'".$this->basiert_auf."'":'NULL') .
|
||||
", kooperiert_mit=".(strlen($this->kooperiert_mit)>0?"'".$this->kooperiert_mit."'":'NULL') .
|
||||
", liefert_fuer=".(strlen($this->liefert_fuer)>0?"'".$this->liefert_fuer."'":'NULL') .
|
||||
", unterlagen=".(strlen($this->unterlagen)>0?"'".$this->unterlagen."'":'NULL') .
|
||||
", pruefungsordnung=".(strlen($this->pruefungsordnung)>0?"'".$this->pruefungsordnung."'":'NULL') .
|
||||
", anmerkungen=".(strlen($this->anmerkungen)>0?"'".$this->anmerkungen."'":'NULL') .
|
||||
", niveau=".(strlen($this->niveau)>0?"'".$this->niveau."'":'NULL') .
|
||||
", lehrformen=".(strlen($this->lehrformen)>0?"'".$this->lehrformen."'":'NULL') .
|
||||
", lehrende=".(strlen($this->lehrende)>0?"'".$this->lehrende."'":'NULL') .
|
||||
($this->genehmigt==''?'':", genehmigt=$this->genehmigt").
|
||||
($this->aktiv==''?'':", aktiv=$this->aktiv").
|
||||
", updateamum=now()".
|
||||
", updatevon='".$_SERVER["REMOTE_USER"]."'".
|
||||
", lehrfach_nr=$this->lehrfach_nr".
|
||||
", lehrfach='$this->lehrfach'".
|
||||
($this->semstunden!=''?", semstunden=$this->semstunden ":'').
|
||||
", sprache='$this->sprache' WHERE lvinfo_id=$this->lvinfo_id";
|
||||
|
||||
}
|
||||
|
||||
$this->lastqry=$sql_query."--$this->genehmigt--";
|
||||
//echo $sql_query;
|
||||
if(pg_exec($this->conn,$sql_query))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Fuehrt einen Selectbefehl aus und Schreibt das Ergebnis in
|
||||
* $result
|
||||
*
|
||||
* @param $sql_query - Select befehl
|
||||
*
|
||||
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
|
||||
* Anzahl der Datensaetze steht in $anz
|
||||
********************************************************************/
|
||||
function getData($sql_query)
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
$this->errormsg = "Fehler: Keine Datenbank connection vorhanden";
|
||||
return false;
|
||||
}
|
||||
|
||||
if($res=pg_exec($this->conn,$sql_query))
|
||||
{
|
||||
while($row=pg_fetch_object($res))
|
||||
{
|
||||
$elem = new lv_info($this->conn);
|
||||
$elem->lvinfo_id = $row->lvinfo_id;
|
||||
$elem->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$elem->lehrziele = $row->lehrziele;
|
||||
$elem->lehrinhalte = $row->lehrinhalte;
|
||||
$elem->voraussetzungen = $row->voraussetzungen;
|
||||
$elem->basiert_auf = $row->basiert_auf;
|
||||
$elem->kooperiert_mit = $row->kooperiert_mit;
|
||||
$elem->liefert_fuer = $row->liefert_fuer;
|
||||
$elem->unterlagen = $row->unterlagen;
|
||||
$elem->pruefungsordnung = $row->pruefungsordnung;
|
||||
$elem->anmerkungen = $row->anmerkungen;
|
||||
$elem->niveau = $row->niveau;
|
||||
$elem->lehrformen = $row->lehrformen;
|
||||
$elem->genehmigt = $row->genehmigt;
|
||||
$elem->aktiv = $row->aktiv;
|
||||
$elem->updateamum = $row->updateamum;
|
||||
$elem->updatevon = $row->updatevon;
|
||||
$elem->lehrfach_nr = $row->lehrfach_nr;
|
||||
$elem->lehrfach = $row->lehrfach;
|
||||
$elem->sprache = $row->sprache;
|
||||
$elem->lehrende = $row->lehrende;
|
||||
$elem->semstunden = $row->semstunden;
|
||||
$this->result[] = $elem;
|
||||
}
|
||||
$this->anz = pg_num_rows($res);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Liefert alle Datensaetze der Tabelle tbl_lvinfo
|
||||
*
|
||||
* @param keine
|
||||
*
|
||||
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
|
||||
********************************************************************/
|
||||
function getAll()
|
||||
{
|
||||
$sql_query = "Select * from tbl_lvinfo";
|
||||
return $this->getData($sql_query);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Liefert alle Datensaetze der Tabelle tbl_lvinfo mit der
|
||||
* lvinfo_id $id
|
||||
* @param $id lvinfo_id
|
||||
*
|
||||
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
|
||||
********************************************************************/
|
||||
function getByID($id)
|
||||
{
|
||||
$sql_query = "SELECT * from tbl_lvinfo WHERE lvinfo_id=$id";
|
||||
return $this->getData($sql_query);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Liefert alle Datensaetze mit den Kriterien die ueberg. wurden
|
||||
*
|
||||
* @param $lf Lehrfach
|
||||
* $stg Studiengang
|
||||
* $sem Semester
|
||||
* $sprache Sprache
|
||||
* $studiensemester_kurzbz Studiensemester
|
||||
*
|
||||
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
|
||||
********************************************************************/
|
||||
function getByElem($lf,$stg,$sem,$sprache='',$studiensemester_kurzbz='',$order='version DESC')
|
||||
{
|
||||
if($sprache=='')
|
||||
{
|
||||
if($studiensemester_kurzbz=='')
|
||||
{
|
||||
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
|
||||
"AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND tbl_lvinfo.aktiv=true ORDER BY $order";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
|
||||
"AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND studiensemester_kurzbz='$studiensemester_kurzbz' AND tbl_lvinfo.aktiv=true ORDER BY $order";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($studiensemester_kurzbz=='')
|
||||
{
|
||||
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
|
||||
"AND tbl_lvinfo.sprache='$sprache' AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND tbl_lvinfo.aktiv=true ORDER BY $order";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
|
||||
"AND tbl_lvinfo.sprache='$sprache' AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND studiensemester_kurzbz='$studiensemester_kurzbz' AND tbl_lvinfo.aktiv=true ORDER BY $order";
|
||||
}
|
||||
}
|
||||
return $this->getData($sql_query);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Sieht in der DB nach ob ein Eintrag mit den Kriterien
|
||||
* vorhanden ist.
|
||||
* @param $studiensemester_kurzbz Studiensemester
|
||||
* $lf Lehrfach
|
||||
*
|
||||
* @return true=Vorhanden, id des DS in $lvinfo_id false=Nicht vorhanden
|
||||
********************************************************************/
|
||||
function vorhanden($lf, $studiensemester_kurzbz, $sprache)
|
||||
{
|
||||
$sql_query = "SELECT * from tbl_lvinfo WHERE ".
|
||||
"lehrfach_nr=$lf AND studiensemester_kurzbz='$studiensemester_kurzbz' AND sprache='$sprache' AND aktiv=true";
|
||||
$res=pg_exec($this->conn, $sql_query);
|
||||
if(pg_numrows($res)>0)
|
||||
{
|
||||
$row=pg_fetch_object($res);
|
||||
$this->lvinfo_id=$row->lvinfo_id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,359 @@
|
||||
<?php
|
||||
/*
|
||||
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
|
||||
$Log: Kodierrichtlinien.tex,v $
|
||||
Revision 1.2 2004/02/29 17:05:38 pam
|
||||
Fehler in Umlauten beseitigt.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class lv_verteilung
|
||||
*
|
||||
* @author Andreas Österreicher
|
||||
*
|
||||
* @date 13.9.2005
|
||||
*
|
||||
* @version $Revision: 1.2 $
|
||||
*
|
||||
* @brief Bearbeitungsschritte für LV Veranstaltungen
|
||||
*/
|
||||
class lv_verteilung
|
||||
{
|
||||
|
||||
// @var integer interne Lehrveranstaltungs-ID (Zaehler aus DB)
|
||||
var $lehrveranstaltung_id;
|
||||
// @var string Lehrveranstaltungsnummer
|
||||
var $lvnr;
|
||||
// @var string Unterrichtsnummer; zum patizipieren verwendet
|
||||
var $unr;
|
||||
// @var string
|
||||
var $einheit_kurzbz;
|
||||
// @var string
|
||||
var $lektor;
|
||||
// @var integer
|
||||
var $lehrfach_nr;
|
||||
// @var string
|
||||
var $lehrfach_kurzbz;
|
||||
// @var string
|
||||
var $lehrform;
|
||||
// @var integer
|
||||
var $studiengang_kz;
|
||||
// @var string
|
||||
var $studiengang_kurzbz;
|
||||
// @var integer
|
||||
var $fachbereich_id;
|
||||
// @var integer
|
||||
var $semester;
|
||||
// @var string
|
||||
var $verband;
|
||||
// @var string
|
||||
var $gruppe;
|
||||
// @var string
|
||||
var $raumtyp;
|
||||
// @var string
|
||||
var $raumtypalternativ;
|
||||
// @var integer
|
||||
var $semesterstunden;
|
||||
// @var integer
|
||||
var $stundenblockung;
|
||||
// @var integer
|
||||
var $wochenrythmus;
|
||||
// @var integer
|
||||
var $start_kw;
|
||||
// @var string
|
||||
var $anmerkung;
|
||||
// @var string
|
||||
var $studiensemester_kurzbz;
|
||||
// @var string
|
||||
var $fas_id;
|
||||
// @var string
|
||||
var $lehrevz;
|
||||
// @var bool;
|
||||
var $lehre;
|
||||
// @var string
|
||||
var $lehrfach_bz;
|
||||
|
||||
// @var bool
|
||||
var $new;
|
||||
// @var string
|
||||
var $errormsg;
|
||||
// @var SQL Connection
|
||||
var $connection;
|
||||
// @var Array für Rückgabe
|
||||
var $retwert = array();
|
||||
// @var int
|
||||
var $anz;
|
||||
|
||||
/********************************************************************
|
||||
* @brief Konstruktor - Liefert die Connection als Parameter
|
||||
*
|
||||
* @param $conn Connection
|
||||
********************************************************************/
|
||||
function lv_verteilung($conn)
|
||||
{
|
||||
$this->connection = $conn;
|
||||
}
|
||||
|
||||
function load($lv_id)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_lehrveranstaltung where lehrveranstaltung_id='$lv_id'";
|
||||
|
||||
$result = pg_exec($this->connection,$sql_query);
|
||||
|
||||
if($row=pg_fetch_object($result))
|
||||
{
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->lvnr = $row->lvnr;
|
||||
$this->einheit_kurzbz = $row->einheit_kurzbz;
|
||||
$this->lektor = $row->lektor;
|
||||
$this->lehrfach_nr = $row->lehrfach_nr;
|
||||
$this->lehrform = $row->lehrform_kurzbz;
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->fachbereich_id = $row->fachbereich_id;
|
||||
$this->semester = $row->semester;
|
||||
$this->verband = $row->verband;
|
||||
$this->gruppe = $row->gruppe;
|
||||
$this->raumtyp = $row->raumtyp;
|
||||
$this->raumtypalternativ = $row->raumtypalernativ;
|
||||
$this->semesterstunden = $row->semesterstunden;
|
||||
$this->stundenblockung = $row->stundenblockung;
|
||||
$this->wochenrythmus = $row->wochenrythmus;
|
||||
$this->start_kw = $row->start_kw;
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->fas_id = $row->fas_id;
|
||||
$this->unr = $row->unr;
|
||||
$this->lehre = $row->lehre;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Datensatz mit dieser ID vorhanden";
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Prüft ob die Variablen gültige Werte enthalten
|
||||
*
|
||||
* @return true=OK false=Fehler
|
||||
********************************************************************/
|
||||
function checkvars()
|
||||
{
|
||||
if(!is_numeric($this->semesterstunden))
|
||||
{
|
||||
$this->errormsg = "Fehler: Semesterstunden muss eine Zahl sein";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->stundenblockung))
|
||||
{
|
||||
$this->errormsg = "Fehler: Stundenblockung muss eine Zahl sein";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->wochenrythmus))
|
||||
{
|
||||
$this->errormsg = "Fehler: Wochenrythmus muss eine Zahl sein";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(strlen($this->lvnr)==0)
|
||||
{
|
||||
$this->errormsg = "Fehler: LVNR muss eingegeben werden";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->start_kw) AND strlen($this->start_kw)>0)
|
||||
{
|
||||
$this->errormsg = "Fehler: Start-KW muss eine Zahl sein";
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Speichert die Daten in der Datenbank ab. Wenn new auf true
|
||||
* gesetzt ist wird INSERT ausgeführt sonst UPDATE
|
||||
* @param keine
|
||||
*
|
||||
* @return true=Ok false=Fehler
|
||||
********************************************************************/
|
||||
function save()
|
||||
{
|
||||
// Connection überprüfen
|
||||
if (is_null($this->connection))
|
||||
{
|
||||
$this->errormsg = "Fehler: Keine Datenbank connection vorhanden";
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,lehrform_kurzbz,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz,lehre)".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
(strlen($this->unr)>0?"'".$this->unr."'":'NULL').",".
|
||||
(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'0').",".
|
||||
"'".$this->lehrform."',".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'0').",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
|
||||
(strlen($this->semester)>0?$this->semester:'NULL').",".
|
||||
(strlen($this->verband)>0?"'".$this->verband."'":'NULL').",".
|
||||
(strlen($this->gruppe)>0?"'".$this->gruppe."'":'NULL').",".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":'0').",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:'1').",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:'1').",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'1').",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:'NULL').",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').",".
|
||||
(strlen($this->studiensemester_kurzbz)>0?"'".$this->studiensemester_kurzbz."'":'0').",".
|
||||
(($this->lehre=='on')?'true':'false').
|
||||
")";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr=".(strlen($this->unr)>0?"'".$this->unr."'":'NULL').",".
|
||||
"einheit_kurzbz=".(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
|
||||
"lektor='".$this->lektor."',".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'0').",".
|
||||
"lehrform_kurzbz='".$this->lehrform."',".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'0').",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:'NULL').",".
|
||||
"verband=".(strlen($this->verband)>0?"'".$this->verband."'":'NULL').",".
|
||||
"gruppe=".(strlen($this->gruppe)>0?"'".$this->gruppe."'":'NULL').",".
|
||||
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":'0').",".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:'1').",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:'1').",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'1').",".
|
||||
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:'NULL').",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').",".
|
||||
"studiensemester_kurzbz=".(strlen($this->studiensemester_kurzbz)>0?"'".$this->studiensemester_kurzbz."'":'0').",".
|
||||
"lehre=".(($this->lehre=='on')?'true':'false').
|
||||
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
}
|
||||
//echo $qry.':'.$this->lehre;
|
||||
if($this->checkvars())
|
||||
{
|
||||
if(!($erg=pg_exec($this->connection, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->connection);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/********************************************************************
|
||||
* @brief Liefert die Datensätze aus der Tabelle tbl_lehrveranstaltung
|
||||
* die zu diesen Kriterien passen
|
||||
* @param $stsem Studiensemester / -1 wenn keines gewählt
|
||||
* $sem Semester / -1 wenn keines gewählt
|
||||
* $stg Studiengang / -1 wenn keiner gewählt
|
||||
* $lektor Lektor / -1 wenn keiner gewählt
|
||||
* @return $result=Array mit den Elementen false=Fehler
|
||||
********************************************************************/
|
||||
function getTab($stsem, $sem, $stg, $lektor, $order)
|
||||
{
|
||||
$sql_query="SELECT a.semester As sem,a.lehre as lvlehre, * FROM (SELECT * FROM public.tbl_lehrveranstaltung";
|
||||
$and = false;
|
||||
|
||||
//Zusammenstöpseln des SQL Strings
|
||||
if($lektor!=-1 OR $stsem!=-1 OR $stg!=-1)
|
||||
{
|
||||
$sql_query = $sql_query." WHERE";
|
||||
}
|
||||
|
||||
//Zusammenstöpseln des SQL Strings
|
||||
if($lektor!=-1)
|
||||
{
|
||||
$sql_query = $sql_query." lektor='$lektor'";
|
||||
$and=true;
|
||||
}
|
||||
|
||||
if($stsem!=-1)
|
||||
{
|
||||
if($and)
|
||||
$sql_query = $sql_query." AND studiensemester_kurzbz='$stsem'";
|
||||
else
|
||||
$sql_query = $sql_query." studiensemester_kurzbz='$stsem'";
|
||||
$and=true;
|
||||
}
|
||||
|
||||
if($stg!=-1)
|
||||
{
|
||||
if($sem!=-1)
|
||||
{
|
||||
if($and)
|
||||
$sql_query = $sql_query." AND studiengang_kz='$stg' AND semester='$sem'";
|
||||
else
|
||||
$sql_query = $sql_query." studiengang_kz='$stg' AND semester='$sem'";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($and)
|
||||
$sql_query = $sql_query." AND studiengang_kz='$stg'";
|
||||
else
|
||||
$sql_query = $sql_query." studiengang_kz='$stg'";
|
||||
}
|
||||
}
|
||||
|
||||
$sql_query = $sql_query.") AS a, tbl_lehrfach b WHERE a.lehrfach_nr=b.lehrfach_nr ORDER BY $order";
|
||||
//echo $sql_query;
|
||||
|
||||
$result = pg_exec($this->connection,$sql_query);
|
||||
$this->anz = pg_numrows($result);
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$lv = new lv_verteilung($connection);
|
||||
$lv->lehrveranstaltung_id=$row->lehrveranstaltung_id;
|
||||
$lv->lvnr = $row->lvnr;
|
||||
$lv->einheit_kurzbz = $row->einheit_kurzbz;
|
||||
$lv->lektor = $row->lektor;
|
||||
$lv->lehrfach_nr = $row->lehrfach_nr;
|
||||
$lv->lehrform = $row->lehrform_kurzbz;
|
||||
$lv->studiengang_kz = $row->studiengang_kz;
|
||||
$lv->fachbereich_id = $row->fachbereich_id;
|
||||
$lv->semester = $row->sem;
|
||||
$lv->verband = $row->verband;
|
||||
$lv->gruppe = $row->gruppe;
|
||||
$lv->raumtyp = $row->raumtyp;
|
||||
$lv->raumtypalternativ = $row->raumtypalternativ;
|
||||
$lv->semesterstunden = $row->semesterstunden;
|
||||
$lv->stundenblockung = $row->stundenblockung;
|
||||
$lv->wochenrythmus = $row->wochenrythmus;
|
||||
$lv->start_kw = $row->start_kw;
|
||||
$lv->anmerkung = $row->anmerkung;
|
||||
$lv->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$lv->fas_id = $row->fas_id;
|
||||
$lv->unr = $row->unr;
|
||||
$lv->lehrfach_kurzbz = $row->kurzbz;
|
||||
$lv->lehrevz = $row->lehrevz;
|
||||
$lv->lehre = $row->lvlehre;
|
||||
$lv->lehrfach_bz = $row->bezeichnung;
|
||||
$this->retwert[] = $lv;
|
||||
}
|
||||
|
||||
if($this->anz>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
class mailgrp
|
||||
{
|
||||
//String
|
||||
var $mailgrp_kurzbz;
|
||||
//Int
|
||||
var $studiengang_kz;
|
||||
//string
|
||||
var $beschreibung;
|
||||
//bool
|
||||
var $sichtbar;
|
||||
//bool
|
||||
var $generiert;
|
||||
//bool
|
||||
var $aktiv;
|
||||
//array
|
||||
var $result = array();
|
||||
//string
|
||||
var $errormsg;
|
||||
// resource
|
||||
var $conn;
|
||||
|
||||
|
||||
function mailgrp($conn)
|
||||
{
|
||||
$this->conn=$conn;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verbindung zur Datenbank herstellen
|
||||
* @return PostgreSQL-Connection oder NULL
|
||||
|
||||
function getConnection() {
|
||||
if (!$conn = @pg_pconnect(CONN_STRING)) {
|
||||
$this->errormsg="Es konnte keine Verbindung zum Server ".
|
||||
"aufgebaut werden.";
|
||||
return null;
|
||||
}
|
||||
return $conn;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Liefert alle Elemente der tbl_mailgrp
|
||||
* @param studiengang_kz
|
||||
* @return true wenn OK false wenn Fehler
|
||||
*/
|
||||
function getAll($studiengang_kz='')
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
$this->errormsg = "Keine Connection vorhanden";
|
||||
return false;
|
||||
}
|
||||
if (strlen($this->studiengang_kz)>0)
|
||||
{
|
||||
$where=" where studiengang_kz='".$studiengang_kz."' ";
|
||||
} else
|
||||
{
|
||||
$where="";
|
||||
}
|
||||
$qry="select * FROM tbl_mailgrp".
|
||||
"$where order by mailgrp_kurzbz";
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
while($row=pg_fetch_object($erg))
|
||||
{
|
||||
$l=new mailgrp($this->conn);
|
||||
$l->mailgrp_kurzbz = $row->mailgrp_kurzbz;
|
||||
$l->studiengang_kz = $row->studiengang_kz;
|
||||
$l->beschreibung = $row->beschreibung;
|
||||
$l->aktiv = $row->aktiv;
|
||||
$l->generiert = $row->generiert;
|
||||
$l->sichtbar = $row->sichtbar;
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,362 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Christian Paminger, Werner Masik (werner@gefi.at)
|
||||
* @version 1.0
|
||||
* @created 22-Okt-2004
|
||||
* @updated 29.10.2004 (WM)
|
||||
*/
|
||||
class mitarbeiter extends person
|
||||
{
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $personalnr;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var boolean true=lektor, false=sonstiger MA
|
||||
*/
|
||||
var $lektor;
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $fixangestellt;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $telefonklappe;
|
||||
/**
|
||||
* @var funktion
|
||||
*/
|
||||
var $funktion;
|
||||
/**
|
||||
* @var mitarbeiter
|
||||
*/
|
||||
var $mitarbeiter;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
/**
|
||||
* @var string?
|
||||
*/
|
||||
var $updateamum;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $updatevon;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $ort_kurzbz='0';
|
||||
|
||||
|
||||
function mitarbeiter($conn,$uid='')
|
||||
{
|
||||
$this->conn=$conn;
|
||||
if (strlen($uid)>0) {
|
||||
$this->uid=$uid;
|
||||
$this->load();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
global $auth;
|
||||
// uid vorhanden?
|
||||
if (strlen($this->uid)==0) {
|
||||
$this->errormsg='<i>uid</i> nicht gesetzt.';
|
||||
return false;
|
||||
}
|
||||
// Connection holen
|
||||
if (is_null($conn=person::getConnection())) {
|
||||
return false;
|
||||
}
|
||||
// Daten zur Person speichern
|
||||
|
||||
if (!person::save()) {
|
||||
$this->errormsg.="<br/>Daten zur Person konnten nicht gespeichert werden.";
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_mitarbeiter(uid,personalnummer,kurzbz,".
|
||||
"lektor,fixangestellt,telefonklappe,updateamum,updatevon, ort_kurzbz)".
|
||||
"values(".
|
||||
"'".$this->uid."',".
|
||||
"'".$this->personalnummer."',".
|
||||
"'".$this->kurzbz."','".
|
||||
($this->lektor?'t':'f')."','".
|
||||
($this->fixangestellt?'t':'f')."',".
|
||||
"'".$this->telefonklappe."',".
|
||||
"now(),'".$_SERVER['PHP_AUTH_USER']."', ".($this->ort_kurzbz!='0'?"'$this->ort_kurzbz'":'NULL').
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$qry="UPDATE tbl_mitarbeiter ".
|
||||
"SET personalnummer='".$this->personalnummer."',".
|
||||
"kurzbz='".$this->kurzbz."',".
|
||||
"lektor='".($this->lektor?'t':'f')."',".
|
||||
"fixangestellt='".($this->fixangestellt?'t':'f')."',".
|
||||
"telefonklappe='".$this->telefonklappe."',".
|
||||
"updateamum=now(),updatevon='".$_SERVER['PHP_AUTH_USER']."', ort_kurzbz=".($this->ort_kurzbz!='0'?"'$this->ort_kurzbz'":'NULL').
|
||||
" WHERE uid='".$this->uid."'";
|
||||
}
|
||||
//echo "<br>".$qry;
|
||||
if(!($erg=pg_exec($conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet die Attribute des Studenten aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($uid='')
|
||||
{
|
||||
// optional: uid setzen
|
||||
if (strlen($uid)>0)
|
||||
$this->uid=$uid;
|
||||
// uid vorhanden?
|
||||
if (strlen($this->uid)==0) {
|
||||
$this->errormsg='<i>uid</i> nicht gesetzt.';
|
||||
return false;
|
||||
}
|
||||
// Connection holen
|
||||
if (is_null($conn=person::getConnection())) {
|
||||
return false;
|
||||
}
|
||||
// Daten zur Person laden
|
||||
if (!person::load()) {
|
||||
$this->errormsg.="<br/>Daten zur Person konnten nicht geladen werden.";
|
||||
return false;
|
||||
}
|
||||
// MA-Daten holen
|
||||
$sql_query="SELECT m.personalnummer,m.kurzbz,m.lektor,m.fixangestellt,m.telefonklappe,m.updateamum,m.updatevon, m.ort_kurzbz ".
|
||||
"FROM tbl_mitarbeiter as m ".
|
||||
"WHERE uid='".$this->uid."'";
|
||||
if(!($erg=pg_exec($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1) {
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->personalnummer=$row->personalnummer;
|
||||
$this->kurzbz=$row->kurzbz;
|
||||
$this->lektor=$row->lektor=='t'?true:false;
|
||||
$this->fixangestellt=$row->fixangestellt=='t'?true:false;
|
||||
$this->telefonklappe=$row->telefonklappe;
|
||||
$this->updateamum=$row->updateamum;
|
||||
$this->updatevon=$row->updatevon;
|
||||
$this->ort_kurzbz=$row->ort_kurzbz;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Mitarbeiter aus der Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
* vererbt, wenn Person gelöscht wird, sollte wahrscheinlich auch
|
||||
* automatisch der Eintrag in den anderen Tabellen gelöscht werden
|
||||
*/
|
||||
/*
|
||||
function delete()
|
||||
{
|
||||
if (is_null($conn=$this->getConnection())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* gibt array mit allen Lektoren zurück
|
||||
* @return array mit Lektoren
|
||||
*/
|
||||
function getLektoren()
|
||||
{
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$sql_query="set datestyle to german;SELECT tbl_person.*,".
|
||||
"m.personalnummer,m.kurzbz,m.lektor,m.fixangestellt,m.telefonklappe, m.ort_kurzbz ".
|
||||
"FROM tbl_person join tbl_mitarbeiter as m using(uid) ".
|
||||
"WHERE m.lektor=true ".
|
||||
"ORDER by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
|
||||
if(!($erg=@pg_exec($conn, $sql_query))) {
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new mitarbeiter($this->conn);
|
||||
// Personendaten
|
||||
$l->uid=$row->uid;
|
||||
$l->titel=$row->titel;
|
||||
$l->vornamen=$row->vornamen;
|
||||
$l->nachname=$row->nachname;
|
||||
$l->gebdatum=$row->gebdatum;
|
||||
$l->gebort=$row->gebort;
|
||||
$l->gebzeit=$row->gebzeit;
|
||||
$l->foto=$row->foto;
|
||||
$l->anmerkungen=$row->anmerkungen;
|
||||
$l->aktiv=$row->aktiv=='t'?true:false;
|
||||
$l->email=$row->email;
|
||||
$l->homepage=$row->homepage;
|
||||
$l->updateamum=$row->updateamum;
|
||||
$l->updatevon=$row->updatevon;
|
||||
// Lektorendaten
|
||||
$l->personalnummer=$row->personalnummer;
|
||||
$l->kurzbz=$row->kurzbz;
|
||||
$l->lektor=$row->lektor=='t'?true:false;
|
||||
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
|
||||
$l->telefonklappe=$row->telefonklappe;
|
||||
$l->ort_kurzbz=$row->ort_kurzbz;
|
||||
// Lektor in Array speichern
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt array mit allen Mitarbeitern zurück
|
||||
* @param $order gibt die spalte an nach der Sortiert werden soll
|
||||
* @return array mit MA
|
||||
*/
|
||||
function getAll($order='upper(tbl_person.nachname),upper(tbl_person.vornamen)')
|
||||
{
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$sql_query="set datestyle to german;SELECT tbl_person.*,".
|
||||
"m.personalnummer,m.kurzbz,m.lektor,m.fixangestellt,m.telefonklappe, m.ort_kurzbz ".
|
||||
"FROM tbl_person join tbl_mitarbeiter as m using(uid) ".
|
||||
"ORDER by $order";
|
||||
if(!($erg=@pg_exec($conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new mitarbeiter($this->conn);
|
||||
// Personendaten
|
||||
$l->uid=$row->uid;
|
||||
$l->titel=$row->titel;
|
||||
$l->vornamen=$row->vornamen;
|
||||
$l->nachname=$row->nachname;
|
||||
$l->gebdatum=$row->gebdatum;
|
||||
$l->gebort=$row->gebort;
|
||||
$l->gebzeit=$row->gebzeit;
|
||||
$l->foto=$row->foto;
|
||||
$l->anmerkungen=$row->anmerkungen;
|
||||
$l->aktiv=$row->aktiv=='t'?true:false;
|
||||
$l->email=$row->email;
|
||||
$l->homepage=$row->homepage;
|
||||
$l->updateamum=$row->updateamum;
|
||||
$l->updatevon=$row->updatevon;
|
||||
// Lektorendaten
|
||||
$l->personalnummer=$row->personalnummer;
|
||||
$l->kurzbz=$row->kurzbz;
|
||||
$l->lektor=($row->lektor=='t'?'true':'false');
|
||||
$l->fixangestellt=($row->fixangestellt=='t'?'true':'false');
|
||||
$l->telefonklappe=$row->telefonklappe;
|
||||
$l->ort_kurzbz=$row->ort_kurzbz;
|
||||
// MA in Array speichern
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt array mit allen Mitarbeitern zurueck
|
||||
* @return array mit Mitarbeitern
|
||||
*/
|
||||
function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null,$fachbereich_id=null)
|
||||
{
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$sql_query='SELECT DISTINCT vw_mitarbeiter.* FROM vw_mitarbeiter
|
||||
LEFT OUTER JOIN tbl_personfunktion USING(uid)
|
||||
WHERE';
|
||||
if (!$lektor)
|
||||
$sql_query.=' NOT';
|
||||
$sql_query.=' lektor';
|
||||
if ($fixangestellt!=null)
|
||||
{
|
||||
$sql_query.=' AND';
|
||||
if (!$fixangestellt)
|
||||
$sql_query.=' NOT';
|
||||
$sql_query.=' fixangestellt';
|
||||
}
|
||||
if ($stg_kz!=null)
|
||||
$sql_query.=' AND studiengang_kz='.$stg_kz;
|
||||
if ($fachbereich_id!=null)
|
||||
$sql_query.=' AND fachbereich_id='.$fachbereich_id;
|
||||
$sql_query.=' ORDER BY nachname, vornamen, kurzbz';
|
||||
//echo $sql_query;
|
||||
if(!($erg=@pg_query($conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new mitarbeiter($this->conn);
|
||||
// Personendaten
|
||||
$l->uid=$row->uid;
|
||||
$l->titel=$row->titel;
|
||||
$l->vornamen=$row->vornamen;
|
||||
$l->nachname=$row->nachname;
|
||||
$l->gebdatum=$row->gebdatum;
|
||||
$l->gebort=$row->gebort;
|
||||
$l->gebzeit=$row->gebzeit;
|
||||
$l->foto=$row->foto;
|
||||
$l->anmerkungen=$row->anmerkungen;
|
||||
$l->aktiv=$row->aktiv=='t'?true:false;
|
||||
$l->email=$row->email;
|
||||
$l->homepage=$row->homepage;
|
||||
$l->updateamum=$row->updateamum;
|
||||
$l->updatevon=$row->updatevon;
|
||||
// Lektorendaten
|
||||
$l->personalnummer=$row->personalnummer;
|
||||
$l->kurzbz=$row->kurzbz;
|
||||
$l->lektor=$row->lektor=='t'?true:false;
|
||||
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
|
||||
$l->telefonklappe=$row->telefonklappe;
|
||||
//$l->ort_kurzbz=$row->ort_kurzbz;
|
||||
// Lektor in Array speichern
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,191 @@
|
||||
<?php
|
||||
/**
|
||||
* Ueberlagerte Klasse fuer die
|
||||
* Erstellung des PDF-Dokumentes
|
||||
*/
|
||||
class PDF extends FPDF
|
||||
{
|
||||
|
||||
var $tablewidths;
|
||||
var $footerset;
|
||||
var $headerset;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*
|
||||
* @param $orientation: p oder portrait = Hochformat
|
||||
* l oder landscape = Querformat
|
||||
*
|
||||
* $unit: pt = Point
|
||||
* mm = Millimeter
|
||||
* cm = Zentimeter
|
||||
* in = Inch
|
||||
*
|
||||
* $format: A3
|
||||
* A4
|
||||
* A5
|
||||
* letter
|
||||
* legal
|
||||
*/
|
||||
function PDF($orientation='P',$unit='mm',$format='A4')
|
||||
{
|
||||
//Call parent constructor
|
||||
$this->FPDF($orientation,$unit,$format);
|
||||
//Initialization
|
||||
$this->B=0;
|
||||
$this->I=0;
|
||||
$this->U=0;
|
||||
$this->HREF='';
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt eine Fusszeile aus
|
||||
*
|
||||
*/
|
||||
function Footer()
|
||||
{
|
||||
// Check if Footer for this page already exists (do the same for Header())
|
||||
if(!$this->footerset[$this->page]) {
|
||||
$this->SetY(-30);
|
||||
//Page number
|
||||
$this->Cell(0,10,'Seite '.$this->PageNo().'/{nb}',0,0,'C');
|
||||
// set footerset
|
||||
$this->footerset[$this->page] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt eine Kopfzeile aus
|
||||
*
|
||||
*/
|
||||
function Header()
|
||||
{
|
||||
// Check if Header for this page already exists (do the same for Footer())
|
||||
if(!$this->headerset[$this->page]) {
|
||||
$this->SetFont('Arial','B',10);
|
||||
$this->SetY(25);
|
||||
//Page number
|
||||
$this->Cell(0,10,'',0,0,'C');
|
||||
// set headerset
|
||||
$this->SetY(100);
|
||||
$this->headerset[$this->page] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Erzeugt eine Tabelle
|
||||
* @param $datas Array - 1. Zeile = Spaltenueberschrift
|
||||
* x. Zeile = Eintraege
|
||||
* $lineheight Zeilenhoehe
|
||||
* $aligns Array - enthaelt die ausrichtung der Spalten (L=Left,R=Right,C=Center)
|
||||
*/
|
||||
function morepagestable($datas,$lineheight=12,$aligns)
|
||||
{
|
||||
// some things to set and 'remember'
|
||||
$l = $this->lMargin;
|
||||
$startheight = $h = $this->GetY();
|
||||
$startpage = $currpage = $this->page;
|
||||
|
||||
// calculate the whole width
|
||||
foreach($this->tablewidths AS $width)
|
||||
{
|
||||
$fullwidth += $width;
|
||||
}
|
||||
|
||||
// Now let's start to write the table
|
||||
$r=0;
|
||||
$markline=false;
|
||||
foreach($datas AS $row => $data)
|
||||
{
|
||||
$this->page = $currpage;
|
||||
// write the horizontal borders
|
||||
if($r<=1)
|
||||
{
|
||||
$this->SetLineWidth(1.5);
|
||||
$this->Line($l,$h,$fullwidth+$l,$h);
|
||||
}
|
||||
else
|
||||
{
|
||||
//$this->SetLineWidth(0.001);
|
||||
//$this->Line($l,$h,$fullwidth+$l,$h); NO-Line
|
||||
}
|
||||
|
||||
//Farben fuer die zeilenmarkierung setzen
|
||||
if($markline)
|
||||
$this->SetFillColor(230,230,230);
|
||||
else
|
||||
$this->SetFillColor(255,255,255);
|
||||
|
||||
$markline=!$markline;
|
||||
|
||||
// write the content and remember the height of the highest col
|
||||
foreach($data AS $col => $txt)
|
||||
{
|
||||
$this->page = $currpage;
|
||||
$this->SetXY($l,$h);
|
||||
$align=($r==0)?'C':$aligns[$col];
|
||||
if($r==0) $this->SetFont('Arial','B',$lineheight-2);
|
||||
else $this->SetFont('Arial','',$lineheight-2);
|
||||
|
||||
//erste und zweite zeile nicht fuellen da sonst der rahmen verloren geht
|
||||
if($row==0)
|
||||
$this->MultiCell($this->tablewidths[$col],$lineheight,$txt,0,$align,0);
|
||||
else
|
||||
$this->MultiCell($this->tablewidths[$col],$lineheight,$txt,0,$align,1);
|
||||
|
||||
$l += $this->tablewidths[$col];
|
||||
|
||||
if($tmpheight[$row.'-'.$this->page] < $this->GetY())
|
||||
{
|
||||
$tmpheight[$row.'-'.$this->page] = $this->GetY();
|
||||
}
|
||||
if($this->page > $maxpage)
|
||||
$maxpage = $this->page;
|
||||
}
|
||||
|
||||
// get the height we were in the last used page
|
||||
$h = $tmpheight[$row.'-'.$maxpage];
|
||||
// set the "pointer" to the left margin
|
||||
$l = $this->lMargin;
|
||||
// set the $currpage to the last page
|
||||
$currpage = $maxpage;
|
||||
$r++;
|
||||
}
|
||||
// draw the borders
|
||||
// we start adding a horizontal line on the last page
|
||||
$this->page = $maxpage;
|
||||
$this->SetLineWidth(1.5);
|
||||
//Immer gleich
|
||||
if($h<=660)
|
||||
$h=660;
|
||||
else
|
||||
$h=810;
|
||||
|
||||
$this->Line($l,$h,$fullwidth+$l,$h);
|
||||
// now we start at the top of the document and walk down
|
||||
for($i = $startpage; $i <= $maxpage; $i++)
|
||||
{
|
||||
$this->page = $i;
|
||||
$l = $this->lMargin;
|
||||
$t = ($i == $startpage) ? $startheight : $this->tMargin;
|
||||
$lh = ($i == $maxpage) ? $h : $this->h-$this->bMargin;
|
||||
$this->SetLineWidth(1.5);
|
||||
$this->Line($l,$t,$l,$lh);
|
||||
$n=0;
|
||||
$maxcol=count($this->tablewidths)-1;
|
||||
foreach($this->tablewidths AS $width)
|
||||
{
|
||||
$l += $width;
|
||||
if($n==$maxcol) $this->SetLineWidth(1.5);
|
||||
else $this->SetLineWidth(0.5);
|
||||
$this->Line($l,$t,$l,$lh);
|
||||
$n++;
|
||||
}
|
||||
}
|
||||
// set it to the last page, if not it'll cause some problems
|
||||
$this->page = $maxpage;
|
||||
$this->SetY($h);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,286 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>FAQ</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>FAQ</H2>
|
||||
<B>1.</B> <A HREF='#1'>What's exactly the license of FPDF? Are there any usage restrictions?</A><BR>
|
||||
<B>2.</B> <A HREF='#2'>When I try to create a PDF, a lot of weird characters show on the screen. Why?</A><BR>
|
||||
<B>3.</B> <A HREF='#3'>I try to generate a PDF and IE displays a blank page. What happens?</A><BR>
|
||||
<B>4.</B> <A HREF='#4'>I send parameters using the POST method and the values don't appear in the PDF.</A><BR>
|
||||
<B>5.</B> <A HREF='#5'>When I use a PHP session, IE doesn't display my PDF any more but asks me to download it.</A><BR>
|
||||
<B>6.</B> <A HREF='#6'>When I'm on SSL, IE can't open the PDF.</A><BR>
|
||||
<B>7.</B> <A HREF='#7'>When I execute a script I get the message "FPDF error: Don't alter the locale before including class file".</A><BR>
|
||||
<B>8.</B> <A HREF='#8'>I try to put a PNG and Acrobat says "There was an error processing a page. A drawing error occurred".</A><BR>
|
||||
<B>9.</B> <A HREF='#9'>I encounter the following error when I try to generate a PDF: Warning: Cannot add header information - headers already sent by (output started at script.php:X)</A><BR>
|
||||
<B>10.</B> <A HREF='#10'>I try to display a variable in the Header method but nothing prints.</A><BR>
|
||||
<B>11.</B> <A HREF='#11'>I defined the Header and Footer methods in my PDF class but nothing appears.</A><BR>
|
||||
<B>12.</B> <A HREF='#12'>I can't make line breaks work. I put \n in the string printed by MultiCell but it doesn't work.</A><BR>
|
||||
<B>13.</B> <A HREF='#13'>I try to put the euro symbol but it doesn't work.</A><BR>
|
||||
<B>14.</B> <A HREF='#14'>I draw a frame with very precise dimensions, but when printed I notice some differences.</A><BR>
|
||||
<B>15.</B> <A HREF='#15'>I'd like to use the whole surface of the page, but when printed I always have some margins. How can I get rid of them?</A><BR>
|
||||
<B>16.</B> <A HREF='#16'>What's the limit of the file sizes I can generate with FPDF?</A><BR>
|
||||
<B>17.</B> <A HREF='#17'>Can I modify a PDF with FPDF?</A><BR>
|
||||
<B>18.</B> <A HREF='#18'>I'd like to make a search engine in PHP and index PDF files. Can I do it with FPDF?</A><BR>
|
||||
<B>19.</B> <A HREF='#19'>Can I convert an HTML page to PDF with FPDF?</A><BR>
|
||||
<B>20.</B> <A HREF='#20'>Can I concatenate PDF files with FPDF?</A><BR>
|
||||
<BR><BR>
|
||||
<P><A NAME='1'></A><B>1.</B> <FONT CLASS='st'>What's exactly the license of FPDF? Are there any usage restrictions?</FONT></P>
|
||||
FPDF is Freeware (it is stated at the beginning of the source file). There is no usage
|
||||
restriction. You may embed it freely in your application (commercial or not), with or
|
||||
without modification. You may redistribute it, too.
|
||||
<P><A NAME='2'></A><B>2.</B> <FONT CLASS='st'>When I try to create a PDF, a lot of weird characters show on the screen. Why?</FONT></P>
|
||||
These "weird" characters are in fact the actual content of your PDF. This behaviour is a bug of
|
||||
IE. When it first receives an HTML page, then a PDF from the same URL, it displays it directly
|
||||
without launching Acrobat. This happens frequently during the development stage: on the least
|
||||
script error, an HTML page is sent, and after correction, the PDF arrives.
|
||||
<BR>
|
||||
To solve the problem, simply quit and restart IE. You can also go to another URL and come
|
||||
back.
|
||||
<BR>
|
||||
To avoid this kind of inconvenience during the development, you can generate the PDF directly
|
||||
to a file and open it through the explorer.
|
||||
<P><A NAME='3'></A><B>3.</B> <FONT CLASS='st'>I try to generate a PDF and IE displays a blank page. What happens?</FONT></P>
|
||||
First of all, check that you send nothing to the browser after the PDF (not even a space or a
|
||||
carriage return). You can put an exit statement just after the call to the Output() method to
|
||||
be sure.
|
||||
<BR>
|
||||
If it still doesn't work, it means you're a victim of the "blank page syndrome". IE used in
|
||||
conjunction with the Acrobat plug-in suffers from numerous bugs, in all versions. You should
|
||||
test your application with as many IE versions as possible (at least if you're on the Internet).
|
||||
The problem occurs mostly with the POST method, so it is strongly advised to avoid it (all the
|
||||
more that it causes other problems, see the next question). The GET works better but may fail
|
||||
when the URL becomes too long: don't use a query string with more than 45 characters. However, a
|
||||
tip exists to exceed this limit: end the URL with .pdf, which tricks IE. If you use a form, you
|
||||
can add a hidden field at the last position:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
<INPUT TYPE="HIDDEN" NAME="ext" VALUE=".pdf">
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
The usage of PHP sessions also often causes trouble (avoid using HTTP headers preventing caching).
|
||||
See question 5 for a workaround.
|
||||
<BR>
|
||||
<BR>
|
||||
To avoid all these problems in a reliable manner, two main techniques exist:
|
||||
<BR>
|
||||
<BR>
|
||||
- Disable the plug-in and use Acrobat as a helper application. To do this, launch Acrobat; in
|
||||
the File menu, Preferences, General, uncheck the option "Web Browser Integration" (for Acrobat
|
||||
5: Edit, Preferences, Options, "Display PDF in Browser"). Then, the next time you load a PDF in
|
||||
IE, it displays the dialog box "Open it" or "Save it to disk". Uncheck the option "Always ask
|
||||
before opening this type of file" and choose Open. From now on, PDF files will open
|
||||
automatically in an external Acrobat window.
|
||||
<BR>
|
||||
The drawback of the method is that you need to alter the client configuration, which you can do
|
||||
in an intranet environment but not for the Internet.
|
||||
<BR>
|
||||
<BR>
|
||||
- Use a redirection technique. It consists in generating the PDF in a temporary file on the
|
||||
server and redirect the client on it (by using JavaScript, not the Location HTTP header which
|
||||
also causes trouble). For instance, at the end of the script, you can put the following:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
//Determine a temporary file name in the current directory<BR>
|
||||
$file=basename(tempnam(getcwd(),'tmp'));<BR>
|
||||
//Save PDF to file<BR>
|
||||
$pdf->Output($file);<BR>
|
||||
//JavaScript redirection<BR>
|
||||
echo "<HTML><SCRIPT>document.location='getpdf.php?f=$file';</SCRIPT></HTML>";
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
Then create the getpdf.php file with this:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
<?php<BR>
|
||||
$f=$HTTP_GET_VARS['f'];<BR>
|
||||
//Check file (don't skip it!)<BR>
|
||||
if(substr($f,0,3)!='tmp' or strpos($f,'/') or strpos($f,'\\'))<BR>
|
||||
die('Incorrect file name');<BR>
|
||||
if(!file_exists($f))<BR>
|
||||
die('File does not exist');<BR>
|
||||
//Handle special IE request if needed<BR>
|
||||
if($HTTP_SERVER_VARS['HTTP_USER_AGENT']=='contype')<BR>
|
||||
{<BR>
|
||||
Header('Content-Type: application/pdf');<BR>
|
||||
exit;<BR>
|
||||
}<BR>
|
||||
//Output PDF<BR>
|
||||
Header('Content-Type: application/pdf');<BR>
|
||||
Header('Content-Length: '.filesize($f));<BR>
|
||||
readfile($f);<BR>
|
||||
//Remove file<BR>
|
||||
unlink($f);<BR>
|
||||
exit;<BR>
|
||||
?>
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
This method works in most cases but IE6 can still experience trouble. The "ultimate" method
|
||||
consists in redirecting directly to the temporary file. The file name must therefore end with .pdf:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
//Determine a temporary file name in the current directory<BR>
|
||||
$file=basename(tempnam(getcwd(),'tmp'));<BR>
|
||||
rename($file,$file.'.pdf');<BR>
|
||||
$file.='.pdf';<BR>
|
||||
//Save PDF to file<BR>
|
||||
$pdf->Output($file);<BR>
|
||||
//JavaScript redirection<BR>
|
||||
echo "<HTML><SCRIPT>document.location='$file';</SCRIPT></HTML>";
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
This method turns the dynamic PDF into a static one and avoids all troubles. But you have to do
|
||||
some cleaning in order to delete the temporary files. For instance:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
function CleanFiles($dir)<BR>
|
||||
{<BR>
|
||||
//Delete temporary files<BR>
|
||||
$t=time();<BR>
|
||||
$h=opendir($dir);<BR>
|
||||
while($file=readdir($h))<BR>
|
||||
{<BR>
|
||||
if(substr($file,0,3)=='tmp' and substr($file,-4)=='.pdf')<BR>
|
||||
{<BR>
|
||||
$path=$dir.'/'.$file;<BR>
|
||||
if($t-filemtime($path)>3600)<BR>
|
||||
@unlink($path);<BR>
|
||||
}<BR>
|
||||
}<BR>
|
||||
closedir($h);<BR>
|
||||
}
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
This function deletes all files of the form tmp*.pdf older than an hour in the specified
|
||||
directory. You may call it where you want, for instance in the script which generates the PDF.
|
||||
<BR>
|
||||
<BR>
|
||||
Remark: it is necessary to open the PDF in a new window, as you can't go backwards due to the
|
||||
redirection.
|
||||
<P><A NAME='4'></A><B>4.</B> <FONT CLASS='st'>I send parameters using the POST method and the values don't appear in the PDF.</FONT></P>
|
||||
It's a problem affecting some versions of IE (especially the first 5.5). See the previous
|
||||
question for the ways to work around it.
|
||||
<P><A NAME='5'></A><B>5.</B> <FONT CLASS='st'>When I use a PHP session, IE doesn't display my PDF any more but asks me to download it.</FONT></P>
|
||||
It's a problem affecting some versions of IE. To work around it, add the following line before
|
||||
session_start():
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
session_cache_limiter('private');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
or do a redirection as explained in question 3.
|
||||
<P><A NAME='6'></A><B>6.</B> <FONT CLASS='st'>When I'm on SSL, IE can't open the PDF.</FONT></P>
|
||||
The problem may be fixed by adding this line:<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
Header('Pragma: public');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
|
||||
<P><A NAME='7'></A><B>7.</B> <FONT CLASS='st'>When I execute a script I get the message "FPDF error: Don't alter the locale before including class file".</FONT></P>
|
||||
When the decimal separator is configured as a comma before including a file, there is a
|
||||
<A HREF="http://bugs.php.net/bug.php?id=17105" TARGET="_blank">bug</A> in some PHP versions and decimal
|
||||
numbers get truncated. Therefore you shouldn't make a call to setlocale() before including the class.
|
||||
On Unix, you shouldn't set the LC_ALL environment variable neither, for it is equivalent to a
|
||||
setlocale() call.
|
||||
<P><A NAME='8'></A><B>8.</B> <FONT CLASS='st'>I try to put a PNG and Acrobat says "There was an error processing a page. A drawing error occurred".</FONT></P>
|
||||
Acrobat 5 has a bug and is unable to display transparent monochrome images (i.e. with 1 bit per
|
||||
pixel). Remove transparency or save your image in 16 colors (4 bits per pixel) or more.
|
||||
<P><A NAME='9'></A><B>9.</B> <FONT CLASS='st'>I encounter the following error when I try to generate a PDF: Warning: Cannot add header information - headers already sent by (output started at script.php:X)</FONT></P>
|
||||
You must send nothing to the browser except the PDF itself: no HTML, no space, no carriage return,
|
||||
neither before nor after. The script outputs something at line X.
|
||||
<P><A NAME='10'></A><B>10.</B> <FONT CLASS='st'>I try to display a variable in the Header method but nothing prints.</FONT></P>
|
||||
You have to use the <TT>global</TT> keyword, for instance:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
function Header()<BR>
|
||||
{<BR>
|
||||
global $title;<BR>
|
||||
<BR>
|
||||
$this->SetFont('Arial','B',15);<BR>
|
||||
$this->Cell(0,10,$title,1,1,'C');<BR>
|
||||
}
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
|
||||
<P><A NAME='11'></A><B>11.</B> <FONT CLASS='st'>I defined the Header and Footer methods in my PDF class but nothing appears.</FONT></P>
|
||||
You have to create an object from the PDF class, not FPDF:<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
$pdf=new PDF();
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
|
||||
<P><A NAME='12'></A><B>12.</B> <FONT CLASS='st'>I can't make line breaks work. I put \n in the string printed by MultiCell but it doesn't work.</FONT></P>
|
||||
You have to enclose your string with double quotes, not single ones.
|
||||
<P><A NAME='13'></A><B>13.</B> <FONT CLASS='st'>I try to put the euro symbol but it doesn't work.</FONT></P>
|
||||
The standard fonts have the euro character at position 128. You can define a constant like this
|
||||
for convenience:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
define('EURO',chr(128));
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
Note: Acrobat 4 or higher is required to display euro.
|
||||
<P><A NAME='14'></A><B>14.</B> <FONT CLASS='st'>I draw a frame with very precise dimensions, but when printed I notice some differences.</FONT></P>
|
||||
To respect dimensions, you have to uncheck the option "Fit to page" in the print dialog box.
|
||||
<P><A NAME='15'></A><B>15.</B> <FONT CLASS='st'>I'd like to use the whole surface of the page, but when printed I always have some margins. How can I get rid of them?</FONT></P>
|
||||
All printers have physical margins (different depending on the model), it is therefore impossible
|
||||
to remove them and print on the totality of the paper.
|
||||
<P><A NAME='16'></A><B>16.</B> <FONT CLASS='st'>What's the limit of the file sizes I can generate with FPDF?</FONT></P>
|
||||
There is no particular limit. There are some constraints however:
|
||||
<BR>
|
||||
<BR>
|
||||
- The maximum memory size allocated to PHP scripts defaults to 8MB. For very big documents,
|
||||
especially with images, this limit may be reached (the file being built into memory). The
|
||||
parameter is configured in the php.ini file.
|
||||
<BR>
|
||||
<BR>
|
||||
- The maximum execution time allocated defaults to 30 seconds. This limit can of course be easily
|
||||
reached. It is configured in php.ini and may be altered dynamically with set_time_limit().
|
||||
<BR>
|
||||
<BR>
|
||||
- Browsers generally have a 5 minute time-out. If you send the PDF directly to the browser and
|
||||
reach the limit, it will be lost. It is therefore advised for very big documents to
|
||||
generate them in a file, and to send some data to the browser from time to time (for instance
|
||||
page 1, page 2... with flush() to force the output). When the document is finished, you can send
|
||||
a redirection on it with JavaScript or create a link.
|
||||
<BR>
|
||||
Remark: even when the browser goes in time-out, the script may continue to run on the server.
|
||||
<P><A NAME='17'></A><B>17.</B> <FONT CLASS='st'>Can I modify a PDF with FPDF?</FONT></P>
|
||||
No.
|
||||
<P><A NAME='18'></A><B>18.</B> <FONT CLASS='st'>I'd like to make a search engine in PHP and index PDF files. Can I do it with FPDF?</FONT></P>
|
||||
No. But a GPL C utility does exist, pdftotext, which is able to extract the textual content from
|
||||
a PDF. It is provided with the Xpdf package:<BR>
|
||||
<BR>
|
||||
<A HREF="http://www.foolabs.com/xpdf/" TARGET="_blank">http://www.foolabs.com/xpdf/</A>
|
||||
<P><A NAME='19'></A><B>19.</B> <FONT CLASS='st'>Can I convert an HTML page to PDF with FPDF?</FONT></P>
|
||||
No. But a GPL C utility does exist, htmldoc, which allows to do it and gives good results:<BR>
|
||||
<BR>
|
||||
<A HREF="http://www.easysw.com/htmldoc/" TARGET="_blank">http://www.easysw.com/htmldoc/</A>
|
||||
<P><A NAME='20'></A><B>20.</B> <FONT CLASS='st'>Can I concatenate PDF files with FPDF?</FONT></P>
|
||||
No. But a free C utility exists to perform this task:<BR>
|
||||
<BR>
|
||||
<A HREF="http://thierry.schmit.free.fr/dev/mbtPdfAsm/enMbtPdfAsm2.html" TARGET="_blank">http://thierry.schmit.free.fr/dev/mbtPdfAsm/enMbtPdfAsm2.html</A>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,70 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>AcceptPageBreak</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>AcceptPageBreak</H2>
|
||||
<TT><B>boolean</B> AcceptPageBreak()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.4
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Whenever a page break condition is met, the method is called, and the break is issued or not
|
||||
depending on the returned value. The default implementation returns a value according to the
|
||||
mode selected by SetAutoPageBreak().
|
||||
<BR>
|
||||
This method is called automatically and should not be called directly by the application.
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
The method is overriden in an inherited class in order to obtain a 3 column layout:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
class PDF extends FPDF<BR>
|
||||
{<BR>
|
||||
var $col=0;<BR>
|
||||
<BR>
|
||||
function SetCol($col)<BR>
|
||||
{<BR>
|
||||
//Move position to a column<BR>
|
||||
$this->col=$col;<BR>
|
||||
$x=10+$col*65;<BR>
|
||||
$this->SetLeftMargin($x);<BR>
|
||||
$this->SetX($x);<BR>
|
||||
}<BR>
|
||||
<BR>
|
||||
function AcceptPageBreak()<BR>
|
||||
{<BR>
|
||||
if($this->col<2)<BR>
|
||||
{<BR>
|
||||
//Go to next column<BR>
|
||||
$this->SetCol($this->col+1);<BR>
|
||||
$this->SetY(10);<BR>
|
||||
return false;<BR>
|
||||
}<BR>
|
||||
else<BR>
|
||||
{<BR>
|
||||
//Go back to first column and issue page break<BR>
|
||||
$this->SetCol(0);<BR>
|
||||
return true;<BR>
|
||||
}<BR>
|
||||
}<BR>
|
||||
}<BR>
|
||||
<BR>
|
||||
$pdf=new PDF();<BR>
|
||||
$pdf->Open();<BR>
|
||||
$pdf->AddPage();<BR>
|
||||
$pdf->SetFont('Arial','',12);<BR>
|
||||
for($i=1;$i<=300;$i++)<BR>
|
||||
$pdf->Cell(0,5,"Line $i",0,1);<BR>
|
||||
$pdf->Output();
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,62 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>AddFont</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>AddFont</H2>
|
||||
<TT>AddFont(<B>string</B> family [, <B>string</B> style [, <B>string</B> file]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.5
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Imports a TrueType or Type1 font and makes it available. It is necessary to generate a font
|
||||
definition file first with the makefont.php utility.
|
||||
<BR>
|
||||
The definition file (and the font file itself when embedding) must be present either in the
|
||||
current directory or in the one indicated by <TT>FPDF_FONTPATH</TT> if the constant is defined.
|
||||
If it could not be found, the error "Could not include font definition file" is generated.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>family</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Font family. The name can be chosen arbitrarily. If it is a standard family name, it will
|
||||
override the corresponding font.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>style</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Font style. Possible values are (case insensitive):
|
||||
<UL>
|
||||
<LI>empty string: regular
|
||||
<LI><TT>B</TT>: bold
|
||||
<LI><TT>I</TT>: italic
|
||||
<LI><TT>BI</TT> or <TT>IB</TT>: bold italic
|
||||
</UL>
|
||||
The default value is regular.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>file</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The font definition file.
|
||||
<BR>
|
||||
By default, the name is built from the family and style, in lower case with no space.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
$pdf->AddFont('Comic','I');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
is equivalent to:
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
$pdf->AddFont('Comic','I','comici.php');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setfont.htm">SetFont()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>AddLink</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>AddLink</H2>
|
||||
<TT><B>int</B> AddLink()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.5
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Creates a new internal link and returns its identifier. An internal link is a clickable area
|
||||
which directs to another place within the document.
|
||||
<BR>
|
||||
The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is
|
||||
defined with SetLink().
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="write.htm">Write()</A>,
|
||||
<A HREF="image.htm">Image()</A>,
|
||||
<A HREF="link.htm">Link()</A>,
|
||||
<A HREF="setlink.htm">SetLink()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,42 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>AddPage</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>AddPage</H2>
|
||||
<TT>AddPage([<B>string</B> orientation])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Adds a new page to the document. If a page is already present, the Footer() method is called
|
||||
first to output the footer. Then the page is added, the current position set to the top-left
|
||||
corner according to the left and top margins, and Header() is called to display the header.
|
||||
<BR>
|
||||
The font which was set before calling is automatically restored. There is no need to call
|
||||
SetFont() again if you want to continue with the same font. The same is true for colors and
|
||||
line width.
|
||||
<BR>
|
||||
The origin of the coordinate system is at the top-left corner and increasing ordinates go
|
||||
downwards.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>orientation</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Page orientation. Possible values are (case insensitive):
|
||||
<UL>
|
||||
<LI><TT>P</TT> or <TT>Portrait</TT>
|
||||
<LI><TT>L</TT> or <TT>Landscape</TT>
|
||||
</UL>
|
||||
The default value is the one passed to the constructor.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="fpdf.htm">FPDF()</A>,
|
||||
<A HREF="header.htm">Header()</A>,
|
||||
<A HREF="footer.htm">Footer()</A>,
|
||||
<A HREF="setmargins.htm">SetMargins()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,47 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>AliasNbPages</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>AliasNbPages</H2>
|
||||
<TT>AliasNbPages([<B>string</B> alias])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.4
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines an alias for the total number of pages. It will be substituted as the document is
|
||||
closed.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>alias</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The alias. Default value: <TT>{nb}</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
class PDF extends FPDF<BR>
|
||||
{<BR>
|
||||
function Footer()<BR>
|
||||
{<BR>
|
||||
//Go to 1.5 cm from bottom<BR>
|
||||
$this->SetY(-15);<BR>
|
||||
//Select Arial italic 8<BR>
|
||||
$this->SetFont('Arial','I',8);<BR>
|
||||
//Print current and total page numbers<BR>
|
||||
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');<BR>
|
||||
}<BR>
|
||||
}<BR>
|
||||
<BR>
|
||||
$pdf=new PDF();<BR>
|
||||
$pdf->AliasNbPages();
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="pageno.htm">PageNo()</A>,
|
||||
<A HREF="footer.htm">Footer()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,106 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Cell</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Cell</H2>
|
||||
<TT>Cell(<B>float</B> w [, <B>float</B> h [, <B>string</B> txt [, <B>mixed</B> border [, <B>int</B> ln [, <B>string</B> align [, <B>int</B> fill [, <B>mixed</B> link]]]]]]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Prints a cell (rectangular area) with optional borders, background color and character string.
|
||||
The upper-left corner of the cell corresponds to the current position. The text can be aligned
|
||||
or centered. After the call, the current position moves to the right or to the next line. It is
|
||||
possible to put a link on the text.
|
||||
<BR>
|
||||
If automatic page breaking is enabled and the cell goes beyond the limit, a page break is
|
||||
done before outputting.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>w</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Cell width. If <TT>0</TT>, the cell extends up to the right margin.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>h</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Cell height.
|
||||
Default value: <TT>0</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>txt</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
String to print.
|
||||
Default value: empty string.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>border</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Indicates if borders must be drawn around the cell. The value can be either a number:
|
||||
<UL>
|
||||
<LI><TT>0</TT>: no border
|
||||
<LI><TT>1</TT>: frame
|
||||
</UL>
|
||||
or a string containing some or all of the following characters (in any order):
|
||||
<UL>
|
||||
<LI><TT>L</TT>: left
|
||||
<LI><TT>T</TT>: top
|
||||
<LI><TT>R</TT>: right
|
||||
<LI><TT>B</TT>: bottom
|
||||
</UL>
|
||||
Default value: <TT>0</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>ln</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Indicates where the current position should go after the call. Possible values are:
|
||||
<UL>
|
||||
<LI><TT>0</TT>: to the right
|
||||
<LI><TT>1</TT>: to the beginning of the next line
|
||||
<LI><TT>2</TT>: below
|
||||
</UL>
|
||||
Putting <TT>1</TT> is equivalent to putting <TT>0</TT> and calling Ln() just after.
|
||||
Default value: <TT>0</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>align</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Allows to center or align the text. Possible values are:
|
||||
<UL>
|
||||
<LI><TT>L</TT> or empty string: left align (default value)
|
||||
<LI><TT>C</TT>: center
|
||||
<LI><TT>R</TT>: right align
|
||||
</UL>
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>fill</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Indicates if the cell background must be painted (<TT>1</TT>) or transparent (<TT>0</TT>).
|
||||
Default value: <TT>0</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>link</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
URL or identifier returned by AddLink().
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
//Set font<BR>
|
||||
$pdf->SetFont('Arial','B',16);<BR>
|
||||
//Move to 8 cm to the right<BR>
|
||||
$pdf->Cell(80);<BR>
|
||||
//Centered text in a framed 20*10 mm cell and line break<BR>
|
||||
$pdf->Cell(20,10,'Title',1,1,'C');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setfont.htm">SetFont()</A>,
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor()</A>,
|
||||
<A HREF="setfillcolor.htm">SetFillColor()</A>,
|
||||
<A HREF="settextcolor.htm">SetTextColor()</A>,
|
||||
<A HREF="setlinewidth.htm">SetLineWidth()</A>,
|
||||
<A HREF="addlink.htm">AddLink()</A>,
|
||||
<A HREF="ln.htm">Ln()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>,
|
||||
<A HREF="write.htm">Write()</A>,
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,24 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Close</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Close</H2>
|
||||
<TT>Close()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Terminates the PDF document. It is not necessary to call this method explicitly because Output()
|
||||
does it automatically.
|
||||
<BR>
|
||||
If the document contains no page, AddPage() is called to prevent from getting an invalid document.
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="open.htm">Open()</A>,
|
||||
<A HREF="output.htm">Output()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,25 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Error</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Error</H2>
|
||||
<TT>Error(<B>string</B> msg)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
This method is automatically called in case of fatal error; it simply outputs the message
|
||||
and halts the execution. An inherited class may override it to customize the error handling
|
||||
but should always halt the script, or the resulting document would probably be invalid.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>msg</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The error message.
|
||||
</BLOCKQUOTE>
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,39 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Footer</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Footer</H2>
|
||||
<TT>Footer()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
This method is used to render the page footer. It is automatically called by AddPage() and
|
||||
Close() and should not be called directly by the application. The implementation in FPDF is
|
||||
empty, so you have to subclass it and override the method if you want a specific processing.
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
class PDF extends FPDF<BR>
|
||||
{<BR>
|
||||
function Footer()<BR>
|
||||
{<BR>
|
||||
//Go to 1.5 cm from bottom<BR>
|
||||
$this->SetY(-15);<BR>
|
||||
//Select Arial italic 8<BR>
|
||||
$this->SetFont('Arial','I',8);<BR>
|
||||
//Print centered page number<BR>
|
||||
$this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');<BR>
|
||||
}<BR>
|
||||
}
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="header.htm">Header()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>FPDF</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>FPDF</H2>
|
||||
<TT>FPDF([<B>string</B> orientation [, <B>string</B> unit [, <B>mixed</B> format]]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
This is the class constructor. It allows to set up the page format, the orientation and the
|
||||
measure unit used in all the methods (except for the font sizes).
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>orientation</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Default page orientation. Possible values are (case insensitive):
|
||||
<UL>
|
||||
<LI><TT>P</TT> or <TT>Portrait</TT>
|
||||
<LI><TT>L</TT> or <TT>Landscape</TT>
|
||||
</UL>
|
||||
Default value is <TT>P</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>unit</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
User measure unit. Possible values are:
|
||||
<UL>
|
||||
<LI><TT>pt</TT>: point
|
||||
<LI><TT>mm</TT>: millimeter
|
||||
<LI><TT>cm</TT>: centimeter
|
||||
<LI><TT>in</TT>: inch
|
||||
</UL>
|
||||
A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This
|
||||
is a very common unit in typography; font sizes are expressed in that unit.
|
||||
<BR>
|
||||
<BR>
|
||||
Default value is <TT>mm</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>format</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The format used for pages. It can be either one of the following values (case insensitive):
|
||||
<UL>
|
||||
<LI><TT>A3</TT>
|
||||
<LI><TT>A4</TT>
|
||||
<LI><TT>A5</TT>
|
||||
<LI><TT>Letter</TT>
|
||||
<LI><TT>Legal</TT>
|
||||
</UL>
|
||||
or a custom format in the form of a two-element array containing the width and the height
|
||||
(expressed in the unit given by <TT>unit</TT>).
|
||||
</BLOCKQUOTE>
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,23 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>GetStringWidth</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>GetStringWidth</H2>
|
||||
<TT><B>float</B> GetStringWidth(<B>string</B> s)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Returns the length of a string in user unit. A font must be selected.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>s</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The string whose length is to be computed.
|
||||
</BLOCKQUOTE>
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,22 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>GetX</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>GetX</H2>
|
||||
<TT><B>float</B> GetX()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Returns the abscissa of the current position.
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setx.htm">SetX()</A>,
|
||||
<A HREF="gety.htm">GetY()</A>,
|
||||
<A HREF="sety.htm">SetY()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,22 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>GetY</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>GetY</H2>
|
||||
<TT><B>float</B> GetY()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Returns the ordinate of the current position.
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="sety.htm">SetY()</A>,
|
||||
<A HREF="getx.htm">GetX()</A>,
|
||||
<A HREF="setx.htm">SetX()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,41 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Header</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Header</H2>
|
||||
<TT>Header()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
This method is used to render the page header. It is automatically called by AddPage() and
|
||||
should not be called directly by the application. The implementation in FPDF is empty, so
|
||||
you have to subclass it and override the method if you want a specific processing.
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
class PDF extends FPDF<BR>
|
||||
{<BR>
|
||||
function Header()<BR>
|
||||
{<BR>
|
||||
//Select Arial bold 15<BR>
|
||||
$this->SetFont('Arial','B',15);<BR>
|
||||
//Move to the right<BR>
|
||||
$this->Cell(80);<BR>
|
||||
//Framed title<BR>
|
||||
$this->Cell(30,10,'Title',1,0,'C');<BR>
|
||||
//Line break<BR>
|
||||
$this->Ln(20);<BR>
|
||||
}<BR>
|
||||
}
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="footer.htm">Footer()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,88 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Image</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Image</H2>
|
||||
<TT>Image(<B>string</B> file, <B>float</B> x, <B>float</B> y [, <B>float</B> w [, <B>float</B> h [, <B>string</B> type [, <B>mixed</B> link]]]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.1
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Puts an image in the page. The upper-left corner must be given. The dimensions can be specified
|
||||
in different ways:
|
||||
<UL>
|
||||
<LI>explicit width and height (expressed in user unit)
|
||||
<LI>one explicit dimension, the other being calculated automatically in order to keep the original
|
||||
proportions
|
||||
<LI>no explicit dimension, in which case the image is put at 72 dpi
|
||||
</UL>
|
||||
Supported formats are JPEG and PNG.
|
||||
<BR>
|
||||
<BR>
|
||||
For JPEG, all flavors are allowed:
|
||||
<UL>
|
||||
<LI>gray scales
|
||||
<LI>true colors (24 bits)
|
||||
<LI>CMYK (32 bits)
|
||||
</UL>
|
||||
For PNG, are allowed:
|
||||
<UL>
|
||||
<LI>gray scales on at most 8 bits (256 levels)
|
||||
<LI>indexed colors
|
||||
<LI>true colors (24 bits)
|
||||
</UL>
|
||||
but are not supported:
|
||||
<UL>
|
||||
<LI>Interlacing
|
||||
<LI>Alpha channel
|
||||
</UL>
|
||||
If a transparent color is defined, it will be taken into account (but will be only interpreted
|
||||
by Acrobat 4 and above).
|
||||
<BR>
|
||||
The format can be specified explicitly or inferred from the file extension.
|
||||
<BR>
|
||||
It is possible to put a link on the image.
|
||||
<BR>
|
||||
<BR>
|
||||
Remark: if an image is used several times, only one copy will be embedded in the file.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>file</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Name of the file containing the image.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>x</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Abscissa of the upper-left corner.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of the upper-left corner.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>w</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Width of the image in the page. If not specified or equal to zero, it is automatically
|
||||
calculated.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>h</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Height of the image in the page. If not specified or equal to zero, it is automatically
|
||||
calculated.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>type</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Image format. Possible values are (case insensitive): <TT>JPG</TT>, <TT>JPEG</TT>, <TT>PNG</TT>.
|
||||
If not specified, the type is inferred from the file extension.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>link</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
URL or identifier returned by AddLink().
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="addlink.htm">AddLink()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>FPDF 1.52 Reference Manual</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>FPDF 1.52 Reference Manual</H2>
|
||||
<A HREF="acceptpagebreak.htm">AcceptPageBreak</A> - accept or not automatic page break<BR>
|
||||
<A HREF="addfont.htm">AddFont</A> - add a new font<BR>
|
||||
<A HREF="addlink.htm">AddLink</A> - create an internal link<BR>
|
||||
<A HREF="addpage.htm">AddPage</A> - add a new page<BR>
|
||||
<A HREF="aliasnbpages.htm">AliasNbPages</A> - define an alias for number of pages<BR>
|
||||
<A HREF="cell.htm">Cell</A> - print a cell<BR>
|
||||
<A HREF="close.htm">Close</A> - terminate the document<BR>
|
||||
<A HREF="error.htm">Error</A> - fatal error<BR>
|
||||
<A HREF="footer.htm">Footer</A> - page footer<BR>
|
||||
<A HREF="fpdf.htm">FPDF</A> - constructor<BR>
|
||||
<A HREF="getstringwidth.htm">GetStringWidth</A> - compute string length<BR>
|
||||
<A HREF="getx.htm">GetX</A> - get current x position<BR>
|
||||
<A HREF="gety.htm">GetY</A> - get current y position<BR>
|
||||
<A HREF="header.htm">Header</A> - page header<BR>
|
||||
<A HREF="image.htm">Image</A> - output an image<BR>
|
||||
<A HREF="line.htm">Line</A> - draw a line<BR>
|
||||
<A HREF="link.htm">Link</A> - put a link<BR>
|
||||
<A HREF="ln.htm">Ln</A> - line break<BR>
|
||||
<A HREF="multicell.htm">MultiCell</A> - print text with line breaks<BR>
|
||||
<A HREF="open.htm">Open</A> - create a document<BR>
|
||||
<A HREF="output.htm">Output</A> - save or send the document<BR>
|
||||
<A HREF="pageno.htm">PageNo</A> - page number<BR>
|
||||
<A HREF="rect.htm">Rect</A> - draw a rectangle<BR>
|
||||
<A HREF="setauthor.htm">SetAuthor</A> - set the document author<BR>
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak</A> - set the automatic page breaking mode<BR>
|
||||
<A HREF="setcompression.htm">SetCompression</A> - turn compression on or off<BR>
|
||||
<A HREF="setcreator.htm">SetCreator</A> - set document creator<BR>
|
||||
<A HREF="setdisplaymode.htm">SetDisplayMode</A> - set display mode<BR>
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor</A> - set drawing color<BR>
|
||||
<A HREF="setfillcolor.htm">SetFillColor</A> - set filling color<BR>
|
||||
<A HREF="setfont.htm">SetFont</A> - set font<BR>
|
||||
<A HREF="setfontsize.htm">SetFontSize</A> - set font size<BR>
|
||||
<A HREF="setkeywords.htm">SetKeywords</A> - associate keywords with document<BR>
|
||||
<A HREF="setleftmargin.htm">SetLeftMargin</A> - set left margin<BR>
|
||||
<A HREF="setlinewidth.htm">SetLineWidth</A> - set line width<BR>
|
||||
<A HREF="setlink.htm">SetLink</A> - set internal link destination<BR>
|
||||
<A HREF="setmargins.htm">SetMargins</A> - set margins<BR>
|
||||
<A HREF="setrightmargin.htm">SetRightMargin</A> - set right margin<BR>
|
||||
<A HREF="setsubject.htm">SetSubject</A> - set document subject<BR>
|
||||
<A HREF="settextcolor.htm">SetTextColor</A> - set text color<BR>
|
||||
<A HREF="settitle.htm">SetTitle</A> - set document title<BR>
|
||||
<A HREF="settopmargin.htm">SetTopMargin</A> - set top margin<BR>
|
||||
<A HREF="setx.htm">SetX</A> - set current x position<BR>
|
||||
<A HREF="setxy.htm">SetXY</A> - set current x and y positions<BR>
|
||||
<A HREF="sety.htm">SetY</A> - set current y position<BR>
|
||||
<A HREF="text.htm">Text</A> - print a string<BR>
|
||||
<A HREF="write.htm">Write</A> - print flowing text<BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,38 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Line</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Line</H2>
|
||||
<TT>Line(<B>float</B> x1, <B>float</B> y1, <B>float</B> x2, <B>float</B> y2)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Draws a line between two points.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>x1</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Abscissa of first point.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y1</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of first point.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>x2</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Abscissa of second point.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y2</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of second point.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setlinewidth.htm">SetLineWidth()</A>,
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,46 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Link</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Link</H2>
|
||||
<TT>Link(<B>float</B> x, <B>float</B> y, <B>float</B> w, <B>float</B> h, <B>mixed</B> link)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.5
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(),
|
||||
Write() or Image(), but this method can be useful for instance to define a clickable area inside
|
||||
an image.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>x</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Abscissa of the upper-left corner of the rectangle.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of the upper-left corner of the rectangle.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>w</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Width of the rectangle.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>h</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Height of the rectangle.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>link</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
URL or identifier returned by AddLink().
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="addlink.htm">AddLink()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="write.htm">Write()</A>,
|
||||
<A HREF="image.htm">Image()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Ln</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Ln</H2>
|
||||
<TT>Ln([<B>float</B> h])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Performs a line break. The current abscissa goes back to the left margin and the ordinate
|
||||
increases by the amount passed in parameter.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>h</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The height of the break.
|
||||
<BR>
|
||||
By default, the value equals the height of the last printed cell.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="cell.htm">Cell()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,76 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>MultiCell</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>MultiCell</H2>
|
||||
<TT>MultiCell(<B>float</B> w, <B>float</B> h, <B>string</B> txt [, <B>mixed</B> border [, <B>string</B> align [, <B>int</B> fill]]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.3
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
This method allows printing text with line breaks. They can be automatic (as soon as the
|
||||
text reaches the right border of the cell) or explicit (via the \n character). As many cells
|
||||
as necessary are output, one below the other.
|
||||
<BR>
|
||||
Text can be aligned, centered or justified. The cell block can be framed and the background
|
||||
painted.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>w</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Width of cells. If <TT>0</TT>, they extend up to the right margin of the page.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>h</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Height of cells.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>txt</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
String to print.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>border</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Indicates if borders must be drawn around the cell block. The value can be either a number:
|
||||
<UL>
|
||||
<LI><TT>0</TT>: no border
|
||||
<LI><TT>1</TT>: frame
|
||||
</UL>
|
||||
or a string containing some or all of the following characters (in any order):
|
||||
<UL>
|
||||
<LI><TT>L</TT>: left
|
||||
<LI><TT>T</TT>: top
|
||||
<LI><TT>R</TT>: right
|
||||
<LI><TT>B</TT>: bottom
|
||||
</UL>
|
||||
Default value: <TT>0</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>align</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Sets the text alignment. Possible values are:
|
||||
<UL>
|
||||
<LI><TT>L</TT>: left alignment
|
||||
<LI><TT>C</TT>: center
|
||||
<LI><TT>R</TT>: right alignment
|
||||
<LI><TT>J</TT>: justification (default value)
|
||||
</UL>
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>fill</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Indicates if the cell background must be painted (<TT>1</TT>) or transparent (<TT>0</TT>).
|
||||
Default value: <TT>0</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setfont.htm">SetFont()</A>,
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor()</A>,
|
||||
<A HREF="setfillcolor.htm">SetFillColor()</A>,
|
||||
<A HREF="settextcolor.htm">SetTextColor()</A>,
|
||||
<A HREF="setlinewidth.htm">SetLineWidth()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="write.htm">Write()</A>,
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,23 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Open</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Open</H2>
|
||||
<TT>Open()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
This method begins the generation of the PDF document. It is not necessary to call it
|
||||
explicitly because AddPage() does it automatically.<BR>
|
||||
Note: no page is created by this method.
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="addpage.htm">AddPage()</A>,
|
||||
<A HREF="close.htm">Close()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,47 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Output</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Output</H2>
|
||||
<TT><B>string</B> Output([<B>string</B> name [, <B>string</B> dest]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Send the document to a given destination: string, local file or browser. In the last case, the
|
||||
plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
|
||||
<BR>
|
||||
The method first calls Close() if necessary to terminate the document.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>name</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The name of the file. If not given, the document will be sent to the browser
|
||||
(destination <TT>I</TT>) with the name <TT>doc.pdf</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>dest</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Destination where to send the document. It can take one of the following values:
|
||||
<UL>
|
||||
<LI><TT>I</TT>: send the file inline to the browser. The plug-in is used if available.
|
||||
The name given by <TT>name</TT> is used when one selects the "Save as" option on the
|
||||
link generating the PDF.
|
||||
<LI><TT>D</TT>: send to the browser and force a file download with the name given by
|
||||
<TT>name</TT>.
|
||||
<LI><TT>F</TT>: save to a local file with the name given by <TT>name</TT>.
|
||||
<LI><TT>S</TT>: return the document as a string. <TT>name</TT> is ignored.
|
||||
</UL>
|
||||
If the parameter is not specified but a name is given, destination is <TT>F</TT>. If no
|
||||
parameter is specified at all, destination is <TT>I</TT>.<BR>
|
||||
<BR>
|
||||
Note: for compatibility with previous versions, a boolean value is also accepted
|
||||
(<TT>false</TT> for <TT>F</TT> and <TT>true</TT> for <TT>D</TT>).
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="close.htm">Close()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,20 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>PageNo</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>PageNo</H2>
|
||||
<TT><B>int</B> PageNo()</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Returns the current page number.
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="aliasnbpages.htm">AliasNbPages()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,48 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Rect</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Rect</H2>
|
||||
<TT>Rect(<B>float</B> x, <B>float</B> y, <B>float</B> w, <B>float</B> h [, <B>string</B> style])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Outputs a rectangle. It can be drawn (border only), filled (with no border) or both.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>x</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Abscissa of upper-left corner.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of upper-left corner.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>w</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Width.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>h</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Height.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>style</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Style of rendering. Possible values are:
|
||||
<UL>
|
||||
<LI><TT>D</TT> or empty string: draw. This is the default value.
|
||||
<LI><TT>F</TT>: fill
|
||||
<LI><TT>DF</TT> or <TT>FD</TT>: draw and fill
|
||||
</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setlinewidth.htm">SetLineWidth()</A>,
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor()</A>,
|
||||
<A HREF="setfillcolor.htm">SetFillColor()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetAuthor</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetAuthor</H2>
|
||||
<TT>SetAuthor(<B>string</B> author)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the author of the document.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>author</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The name of the author.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setcreator.htm">SetCreator()</A>,
|
||||
<A HREF="setkeywords.htm">SetKeywords()</A>,
|
||||
<A HREF="setsubject.htm">SetSubject()</A>,
|
||||
<A HREF="settitle.htm">SetTitle()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,33 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetAutoPageBreak</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetAutoPageBreak</H2>
|
||||
<TT>SetAutoPageBreak(<B>boolean</B> auto [, <B>float</B> margin])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Enables or disables the automatic page breaking mode. When enabling, the second parameter is
|
||||
the distance from the bottom of the page that defines the triggering limit. By default, the
|
||||
mode is on and the margin is 2 cm.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>auto</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Boolean indicating if mode should be on or off.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>margin</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Distance from the bottom of the page.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>,
|
||||
<A HREF="acceptpagebreak.htm">AcceptPageBreak()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,31 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetCompression</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetCompression</H2>
|
||||
<TT>SetCompression(<B>boolean</B> compress)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.4
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Activates or deactivates page compression. When activated, the internal representation of
|
||||
each page is compressed, which leads to a compression ratio of about 2 for the resulting
|
||||
document.
|
||||
<BR>
|
||||
Compression is on by default.
|
||||
<BR>
|
||||
<BR>
|
||||
<B>Note: </B>the Zlib extension is required for this feature. If not present, compression
|
||||
will be turned off.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>compress</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Boolean indicating if compression must be enabled.
|
||||
</BLOCKQUOTE>
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,29 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetCreator</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetCreator</H2>
|
||||
<TT>SetCreator(<B>string</B> creator)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the creator of the document. This is typically the name of the application that
|
||||
generates the PDF.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>creator</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The name of the creator.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setauthor.htm">SetAuthor()</A>,
|
||||
<A HREF="setkeywords.htm">SetKeywords()</A>,
|
||||
<A HREF="setsubject.htm">SetSubject()</A>,
|
||||
<A HREF="settitle.htm">SetTitle()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,47 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetDisplayMode</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetDisplayMode</H2>
|
||||
<TT>SetDisplayMode(<B>mixed</B> zoom [, <B>string</B> layout])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be
|
||||
displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a
|
||||
specific zooming factor or use viewer default (configured in the Preferences menu of Acrobat).
|
||||
The page layout can be specified too: single at once, continuous display, two columns or viewer
|
||||
default.
|
||||
<BR>
|
||||
By default, documents use the full width mode with continuous display.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>zoom</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The zoom to use. It can be one of the following string values:
|
||||
<UL>
|
||||
<LI><TT>fullpage</TT>: displays the entire page on screen
|
||||
<LI><TT>fullwidth</TT>: uses maximum width of window
|
||||
<LI><TT>real</TT>: uses real size (equivalent to 100% zoom)
|
||||
<LI><TT>default</TT>: uses viewer default mode
|
||||
</UL>
|
||||
or a number indicating the zooming factor to use.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>layout</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The page layout. Possible values are:
|
||||
<UL>
|
||||
<LI><TT>single</TT>: displays one page at once
|
||||
<LI><TT>continuous</TT>: displays pages continuously
|
||||
<LI><TT>two</TT>: displays two pages on two columns
|
||||
<LI><TT>default</TT>: uses viewer default mode
|
||||
</UL>
|
||||
Default value is <TT>continuous</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,41 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetDrawColor</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetDrawColor</H2>
|
||||
<TT>SetDrawColor(<B>int</B> r [, <B>int</B> g, <B>int</B> b])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.3
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the color used for all drawing operations (lines, rectangles and cell borders). It
|
||||
can be expressed in RGB components or gray scale. The method can be called before the first
|
||||
page is created and the value is retained from page to page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>r</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
If <TT>g</TT> et <TT>b</TT> are given, red component; if not, indicates the gray level.
|
||||
Value between 0 and 255.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>g</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Green component (between 0 and 255).
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>b</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Blue component (between 0 and 255).
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setfillcolor.htm">SetFillColor()</A>,
|
||||
<A HREF="settextcolor.htm">SetTextColor()</A>,
|
||||
<A HREF="line.htm">Line()</A>,
|
||||
<A HREF="rect.htm">Rect()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,40 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetFillColor</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetFillColor</H2>
|
||||
<TT>SetFillColor(<B>int</B> r [, <B>int</B> g, <B>int</B> b])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.3
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the color used for all filling operations (filled rectangles and cell backgrounds).
|
||||
It can be expressed in RGB components or gray scale. The method can be called before the first
|
||||
page is created and the value is retained from page to page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>r</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
If <TT>g</TT> and <TT>b</TT> are given, red component; if not, indicates the gray level.
|
||||
Value between 0 and 255.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>g</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Green component (between 0 and 255).
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>b</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Blue component (between 0 and 255).
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor()</A>,
|
||||
<A HREF="settextcolor.htm">SetTextColor()</A>,
|
||||
<A HREF="rect.htm">Rect()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,103 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetFont</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetFont</H2>
|
||||
<TT>SetFont(<B>string</B> family [, <B>string</B> style [, <B>float</B> size]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Sets the font used to print character strings. It is mandatory to call this method
|
||||
at least once before printing text or the resulting document would not be valid.
|
||||
<BR>
|
||||
The font can be either a standard one or a font added via the AddFont() method. Standard fonts
|
||||
use Windows encoding cp1252 (Western Europe).
|
||||
<BR>
|
||||
The method can be called before the first page is created and the font is retained from page
|
||||
to page.
|
||||
<BR>
|
||||
If you just wish to change the current font size, it is simpler to call SetFontSize().
|
||||
<BR>
|
||||
<BR>
|
||||
<B>Note: </B>for the standard fonts, the font metric files must be accessible. There are three
|
||||
possibilities for this:
|
||||
<BR>
|
||||
<BR>
|
||||
<UL>
|
||||
<LI>They are in the current directory (the one where the running script lies)
|
||||
<BR>
|
||||
<LI>They are in one of the directories defined by the <TT>include_path</TT> parameter
|
||||
<BR>
|
||||
<LI>They are in the directory defined by the <TT>FPDF_FONTPATH</TT> constant
|
||||
</UL>
|
||||
Example for the last case (note the trailing slash):
|
||||
<BR>
|
||||
<BR>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
define('FPDF_FONTPATH','/home/www/font/');<BR>
|
||||
require('fpdf.php');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
If the file corresponding to the requested font is not found, the error "Could not include
|
||||
font metric file" is generated.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>family</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Family font. It can be either a name defined by AddFont() or one of the standard families (case
|
||||
insensitive):
|
||||
<UL>
|
||||
<LI><TT>Courier</TT> (fixed-width)
|
||||
<LI><TT>Helvetica<TT> or </TT>Arial</TT> (synonymous; sans serif)
|
||||
<LI><TT>Times</TT> (serif)
|
||||
<LI><TT>Symbol</TT> (symbolic)
|
||||
<LI><TT>ZapfDingbats</TT> (symbolic)
|
||||
</UL>
|
||||
It is also possible to pass an empty string. In that case, the current family is retained.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>style</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Font style. Possible values are (case insensitive):
|
||||
<UL>
|
||||
<LI>empty string: regular
|
||||
<LI><TT>B</TT>: bold
|
||||
<LI><TT>I</TT>: italic
|
||||
<LI><TT>U</TT>: underline
|
||||
</UL>
|
||||
or any combination. The default value is regular.
|
||||
Bold and italic styles do not apply to <TT>Symbol</TT> and <TT>ZapfDingbats</TT>.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>size</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Font size in points.
|
||||
<BR>
|
||||
The default value is the current size. If no size has been specified since the beginning of
|
||||
the document, the value taken is 12.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>Example</H4>
|
||||
<TABLE WIDTH="100%" BGCOLOR="#E0E0E0"><TR><TD>
|
||||
<TT>
|
||||
//Times regular 12<BR>
|
||||
$pdf->SetFont('Times');<BR>
|
||||
//Arial bold 14<BR>
|
||||
$pdf->SetFont('Arial','B',14);<BR>
|
||||
//Removes bold<BR>
|
||||
$pdf->SetFont('');<BR>
|
||||
//Times bold, italic and underlined 14<BR>
|
||||
$pdf->SetFont('Times','BIU');
|
||||
</TT>
|
||||
</TD></TR></TABLE><BR>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="addfont.htm">AddFont()</A>,
|
||||
<A HREF="setfontsize.htm">SetFontSize()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>,
|
||||
<A HREF="write.htm">Write()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,25 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetFontSize</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetFontSize</H2>
|
||||
<TT>SetFontSize(<B>float</B> size)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the size of the current font.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>size</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The size (in points).
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setfont.htm">SetFont()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetKeywords</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetKeywords</H2>
|
||||
<TT>SetKeywords(<B>string</B> keywords)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>keywords</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The list of keywords.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setauthor.htm">SetAuthor()</A>,
|
||||
<A HREF="setcreator.htm">SetCreator()</A>,
|
||||
<A HREF="setsubject.htm">SetSubject()</A>,
|
||||
<A HREF="settitle.htm">SetTitle()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,30 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetLeftMargin</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetLeftMargin</H2>
|
||||
<TT>SetLeftMargin(<B>float</B> margin)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.4
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the left margin. The method can be called before creating the first page.
|
||||
<BR>
|
||||
If the current abscissa gets out of page, it is brought back to the margin.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>margin</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The margin.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="settopmargin.htm">SetTopMargin()</A>,
|
||||
<A HREF="setrightmargin.htm">SetRightMargin()</A>,
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>,
|
||||
<A HREF="setmargins.htm">SetMargins()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,29 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetLineWidth</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetLineWidth</H2>
|
||||
<TT>SetLineWidth(<B>float</B> width)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the line width. By default, the value equals 0.2 mm. The method can be called before
|
||||
the first page is created and the value is retained from page to page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>width</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The width.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="line.htm">Line()</A>,
|
||||
<A HREF="rect.htm">Rect()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,34 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetLink</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetLink</H2>
|
||||
<TT>SetLink(<B>int</B> link [, <B>float</B> y [, <B>int</B> page]])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.5
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the page and position a link points to.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>link</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The link identifier returned by AddLink().
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of target position; <TT>-1</TT> indicates the current position.
|
||||
The default value is <TT>0</TT> (top of page).
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>page</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Number of target page; <TT>-1</TT> indicates the current page. This is the default value.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="addlink.htm">AddLink()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,37 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetMargins</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetMargins</H2>
|
||||
<TT>SetMargins(<B>float</B> left, <B>float</B> top [, <B>float</B> right])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change
|
||||
them.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>left</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Left margin.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>top</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Top margin.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>right</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Right margin. Default value is the left one.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setleftmargin.htm">SetLeftMargin()</A>,
|
||||
<A HREF="settopmargin.htm">SetTopMargin()</A>,
|
||||
<A HREF="setrightmargin.htm">SetRightMargin()</A>,
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetRightMargin</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetRightMargin</H2>
|
||||
<TT>SetRightMargin(<B>float</B> margin)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.5
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the right margin. The method can be called before creating the first page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>margin</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The margin.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setleftmargin.htm">SetLeftMargin()</A>,
|
||||
<A HREF="settopmargin.htm">SetTopMargin()</A>,
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>,
|
||||
<A HREF="setmargins.htm">SetMargins()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetSubject</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetSubject</H2>
|
||||
<TT>SetSubject(<B>string</B> subject)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the subject of the document.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>subject</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The subject.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setauthor.htm">SetAuthor()</A>,
|
||||
<A HREF="setcreator.htm">SetCreator()</A>,
|
||||
<A HREF="setkeywords.htm">SetKeywords()</A>,
|
||||
<A HREF="settitle.htm">SetTitle()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,40 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetTextColor</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetTextColor</H2>
|
||||
<TT>SetTextColor(<B>int</B> r [, <B>int</B> g, <B>int</B> b])</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.3
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the color used for text. It can be expressed in RGB components or gray scale. The
|
||||
method can be called before the first page is created and the value is retained from page to
|
||||
page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>r</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
If <TT>g</TT> et <TT>b</TT> are given, red component; if not, indicates the gray level.
|
||||
Value between 0 and 255.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>g</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Green component (between 0 and 255).
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>b</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Blue component (between 0 and 255).
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setdrawcolor.htm">SetDrawColor()</A>,
|
||||
<A HREF="setfillcolor.htm">SetFillColor()</A>,
|
||||
<A HREF="text.htm">Text()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetTitle</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetTitle</H2>
|
||||
<TT>SetTitle(<B>string</B> title)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the title of the document.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>title</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The title.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setauthor.htm">SetAuthor()</A>,
|
||||
<A HREF="setcreator.htm">SetCreator()</A>,
|
||||
<A HREF="setkeywords.htm">SetKeywords()</A>,
|
||||
<A HREF="setsubject.htm">SetSubject()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,28 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetTopMargin</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetTopMargin</H2>
|
||||
<TT>SetTopMargin(<B>float</B> margin)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.5
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the top margin. The method can be called before creating the first page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>margin</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The margin.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setleftmargin.htm">SetLeftMargin()</A>,
|
||||
<A HREF="setrightmargin.htm">SetRightMargin()</A>,
|
||||
<A HREF="setautopagebreak.htm">SetAutoPageBreak()</A>,
|
||||
<A HREF="setmargins.htm">SetMargins()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,29 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetX</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetX</H2>
|
||||
<TT>SetX(<B>float</B> x)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the abscissa of the current position. If the passed value is negative, it is relative
|
||||
to the right of the page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>x</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The value of the abscissa.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="getx.htm">GetX()</A>,
|
||||
<A HREF="gety.htm">GetY()</A>,
|
||||
<A HREF="sety.htm">SetY()</A>,
|
||||
<A HREF="setxy.htm">SetXY()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,31 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetXY</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetXY</H2>
|
||||
<TT>SetXY(<B>float</B> x, <B>float</B> y)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.2
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Defines the abscissa and ordinate of the current position. If the passed values are negative,
|
||||
they are relative respectively to the right and bottom of the page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>x</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The value of the abscissa.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The value of the ordinate.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setx.htm">SetX()</A>,
|
||||
<A HREF="sety.htm">SetY()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,29 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>SetY</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>SetY</H2>
|
||||
<TT>SetY(<B>float</B> y)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Moves the current abscissa back to the left margin and sets the ordinate. If the passed value
|
||||
is negative, it is relative to the bottom of the page.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
The value of the ordinate.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="getx.htm">GetX()</A>,
|
||||
<A HREF="gety.htm">GetY()</A>,
|
||||
<A HREF="sety.htm">SetY()</A>,
|
||||
<A HREF="setxy.htm">SetXY()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,39 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
||||
<TITLE>Text</TITLE>
|
||||
<LINK TYPE="text/css" REL="stylesheet" HREF="../fpdf.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>Text</H2>
|
||||
<TT>Text(<B>float</B> x, <B>float</B> y, <B>string</B> txt)</TT>
|
||||
<H4 CLASS='st'>Version</H4>
|
||||
1.0
|
||||
<H4 CLASS='st'>Description</H4>
|
||||
Prints a character string. The origin is on the left of the first charcter, on the baseline.
|
||||
This method allows to place a string precisely on the page, but it is usually easier to use
|
||||
Cell(), MultiCell() or Write() which are the standard methods to print text.
|
||||
<H4 CLASS='st'>Parameters</H4>
|
||||
<TT><U>x</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Abscissa of the origin.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>y</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
Ordinate of the origin.
|
||||
</BLOCKQUOTE>
|
||||
<TT><U>txt</U></TT>
|
||||
<BLOCKQUOTE>
|
||||
String to print.
|
||||
</BLOCKQUOTE>
|
||||
<H4 CLASS='st'>See also</H4>
|
||||
<A HREF="setfont.htm">SetFont()</A>,
|
||||
<A HREF="settextcolor.htm">SetTextColor()</A>,
|
||||
<A HREF="cell.htm">Cell()</A>,
|
||||
<A HREF="multicell.htm">MultiCell()</A>,
|
||||
<A HREF="write.htm">Write()</A>.
|
||||
<H6></H6>
|
||||
<HR>
|
||||
<DIV ALIGN="CENTER"><A HREF="index.htm">Index</A></DIV>
|
||||
</BODY>
|
||||
</HTML>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user