279 lines
13 KiB
PHP
279 lines
13 KiB
PHP
<?php
|
|
require_once(ROOT."include/config.inc.php");
|
|
require_once(ROOT."include/events.inc.php");
|
|
require_once(CMS_DIR."modules/_page.class.php");
|
|
require_once(CMS_DIR."modules/_container.class.php");
|
|
require_once(CMS_DIR."modules/_ticketobject.class.php");
|
|
require_once(CMS_DIR."modules/website.class.php");
|
|
require_once(CMS_DIR."modules/menu.class.php");
|
|
require_once(CMS_DIR."modules/stdpage.class.php");
|
|
require_once(CMS_DIR."modules/separator.class.php");
|
|
require_once(CMS_DIR."modules/menulink.class.php");
|
|
require_once(CMS_DIR."modules/eventlist.class.php");
|
|
require_once(CMS_DIR."modules/indexpage.class.php");
|
|
require_once(CMS_DIR."modules/phppage.class.php");
|
|
require_once(CMS_DIR."modules/user.class.php");
|
|
require_once(CMS_DIR."modules/stdpagecopy.class.php");
|
|
require_once(CMS_DIR."modules/person.class.php");
|
|
require_once(CMS_DIR."modules/personpage.class.php");
|
|
require_once(CMS_DIR."modules/personlist.class.php");
|
|
require_once(CMS_DIR."modules/gallery.class.php");
|
|
require_once(CMS_DIR."modules/gallerycontainer.class.php");
|
|
require_once(CMS_DIR."modules/usercontainer.class.php");
|
|
require_once(CMS_DIR."modules/ticketcategory.class.php");
|
|
require_once(CMS_DIR."modules/ticketcategorycontainer.class.php");
|
|
require_once(CMS_DIR."modules/ticketreduction.class.php");
|
|
require_once(CMS_DIR."modules/ticketreductioncontainer.class.php");
|
|
require_once(CMS_DIR."modules/ticketroom.class.php");
|
|
require_once(CMS_DIR."modules/ticketroomcontainer.class.php");
|
|
require_once(CMS_DIR."modules/ticketroot.class.php");
|
|
require_once(CMS_DIR."modules/ticketevent.class.php");
|
|
require_once(CMS_DIR."modules/ticketeventcontainer.class.php");
|
|
require_once(CMS_DIR."modules/ticketpage.class.php");
|
|
require_once(CMS_DIR."modules/ticketgenre.class.php");
|
|
require_once(CMS_DIR."modules/ticketgenrecontainer.class.php");
|
|
require_once(CMS_DIR."modules/newsletter.class.php");
|
|
require_once(CMS_DIR."modules/newslettercontainer.class.php");
|
|
require_once(CMS_DIR."modules/newsletterroot.class.php");
|
|
require_once(CMS_DIR."modules/newslettermailer.class.php");
|
|
require_once(CMS_DIR."modules/customerroot.class.php");
|
|
require_once(CMS_DIR."modules/customerimporter.class.php");
|
|
require_once(CMS_DIR."modules/customerexporter.class.php");
|
|
require_once(CMS_DIR."modules/customerlist.class.php");
|
|
require_once(CMS_DIR."modules/customergrouplist.class.php");
|
|
require_once(CMS_DIR."modules/customergroupcontainer.class.php");
|
|
require_once(CMS_DIR."modules/customerform.class.php");
|
|
require_once(CMS_DIR."modules/presslist.class.php");
|
|
require_once(CMS_DIR."modules/pressinfo.class.php");
|
|
require_once(CMS_DIR."modules/presspage.class.php");
|
|
require_once(CMS_DIR."modules/lmspage.class.php");
|
|
|
|
/** FlexiconFactory
|
|
* factory class to produce instances of CMS elements
|
|
*
|
|
* @version 2.0.0
|
|
* @since 2007-05-19
|
|
* @author martin lenzelbauer
|
|
*
|
|
*/
|
|
class FlexiconFactory{
|
|
|
|
|
|
/** returns an instance of a page (only subclasses of Page!)
|
|
* @param id unique flexicon id
|
|
* @param parrent the parent object
|
|
* @return page
|
|
*/
|
|
//---------------------------------------
|
|
function instanceById($id, $parent=NULL){
|
|
//---------------------------------------
|
|
$query = sprintf("SELECT class FROM bruckm_index WHERE id = %d", sqlnum($id));
|
|
$result = dbQuery($query);
|
|
$line = mysqli_fetch_array($result, MYSQLI_ASSOC);
|
|
|
|
switch(strtolower($line['class'])){
|
|
case "customerexporter": return new CustomerExporter($id, $parent);
|
|
case "customerform": return new CustomerForm($id, $parent);
|
|
case "customergrouplist": return new CustomerGroupList($id, $parent);
|
|
case "customergroupcontainer": return new CustomerGroupContainer($id, $parent);
|
|
case "customerimporter": return new CustomerImporter($id, $parent);
|
|
case "customerlist": return new CustomerList($id, $parent);
|
|
case "customerroot": return new CustomerRoot($id, $parent);
|
|
case "eventlist": return new EventList($id, $parent);
|
|
case "gallery": return new Gallery($id, $parent);
|
|
case "gallerycontainer": return new GalleryContainer($id, $parent);
|
|
case "indexpage": return new IndexPage($id, $parent);
|
|
case "lmspage": return new LmsPage($id, $parent);
|
|
case "menu": return new Menu($id, $parent);
|
|
case "menulink": return new MenuLink($id, $parent);
|
|
case "newsletter": return new Newsletter($id, $parent);
|
|
case "newslettercontainer": return new NewsletterContainer($id, $parent);
|
|
case "newsletterroot": return new NewsletterRoot($id, $parent);
|
|
case "newslettermailer": return new NewsletterMailer($id, $parent);
|
|
case "person": return new Person($id, $parent);
|
|
case "personlist": return new PersonList($id, $parent);
|
|
case "personpage": return new PersonPage($id, $parent);
|
|
case "phppage": return new PhpPage($id, $parent);
|
|
case "pressinfo": return new PressInfo($id, $parent);
|
|
case "presslist": return new PressList($id, $parent);
|
|
case "presspage": return new PressPage($id, $parent);
|
|
case "searchpage": return new SearchPage($id, $parent);
|
|
case "separator": return new Separator($id, $parent);
|
|
case "stdpage": return new StdPage($id, $parent);
|
|
case "stdpagecopy": return new StdPageCopy($id, $parent);
|
|
case "ticketcategory": return new TicketCategory($id, $parent);
|
|
case "ticketcategorycontainer": return new TicketCategoryContainer($id, $parent);
|
|
case "ticketevent": return new TicketEvent($id, $parent);
|
|
case "ticketeventcontainer": return new TicketEventContainer($id, $parent);
|
|
case "ticketgenre": return new TicketGenre($id, $parent);
|
|
case "ticketgenrecontainer": return new TicketGenreContainer($id, $parent);
|
|
case "ticketpage": return new TicketPage($id, $parent);
|
|
case "ticketreduction": return new TicketReduction($id, $parent);
|
|
case "ticketreductioncontainer": return new TicketReductionContainer($id, $parent);
|
|
case "ticketroom": return new TicketRoom($id, $parent);
|
|
case "ticketroomcontainer": return new TicketRoomContainer($id, $parent);
|
|
case "ticketroot": return new TicketRoot($id, $parent);
|
|
case "user": return new User($id, $parent);
|
|
case "usercontainer": return new UserContainer($id, $parent);
|
|
case "website": return new Website($id, $parent);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/** returns a new instance of a page
|
|
* @param class class name
|
|
*/
|
|
//---------------------------------------------
|
|
function instanceByClass($class, $parent=NULL){
|
|
//---------------------------------------------
|
|
switch(strtolower($class)){
|
|
case "customerexporter": return new CustomerExporter(0, $parent);
|
|
case "customerform": return new CustomerForm(0, $parent);
|
|
case "customergroupcontainer": return new CustomerGroupContainer(0, $parent);
|
|
case "customergrouplist": return new CustomerGroupList(0, $parent);
|
|
case "customerimporter": return new CustomerImporter(0, $parent);
|
|
case "customerlist": return new CustomerList(0, $parent);
|
|
case "customerroot": return new CustomerRoot(0, $parent);
|
|
case "eventlist": return new EventList(0, $parent);
|
|
case "gallery": return new Gallery(0, $parent);
|
|
case "gallerycontainer": return new GalleryContainer(0, $parent);
|
|
case "indexpage": return new IndexPage(0, $parent);
|
|
case "menu": return new Menu(0, $parent);
|
|
case "menulink": return new MenuLink(0, $parent);
|
|
case "newsletter": return new Newsletter(0, $parent);
|
|
case "newslettercontainer": return new NewsletterContainer(0, $parent);
|
|
case "newslettermailer": return new NewsletterMailer(0, $parent);
|
|
case "newsletterroot": return new NewsletterRoot(0, $parent);
|
|
case "person": return new Person(0, $parent);
|
|
case "personlist": return new PersonList(0, $parent);
|
|
case "personpage": return new PersonPage(0, $parent);
|
|
case "phppage": return new PhpPage(0, $parent);
|
|
case "pressinfo": return new PressInfo(0, $parent);
|
|
case "presslist": return new PressList(0, $parent);
|
|
case "presspage": return new PressPage(0, $parent);
|
|
case "searchpage": return new SearchPage(0, $parent);
|
|
case "separator": return new Separator(0, $parent);
|
|
case "stdpage": return new StdPage(0, $parent);
|
|
case "stdpagecopy": return new StdPageCopy(0, $parent);
|
|
case "ticketcategory": return new TicketCategory(0, $parent);
|
|
case "ticketcategorycontainer": return new TicketCategoryContainer(0, $parent);
|
|
case "ticketevent": return new TicketEvent(0, $parent);
|
|
case "ticketeventcontainer": return new TicketEventContainer(0, $parent);
|
|
case "ticketgenre": return new TicketGenre(0, $parent);
|
|
case "ticketgenrecontainer": return new TicketGenreContainer(0, $parent);
|
|
case "ticketpage": return new TicketPage(0, $parent);
|
|
case "ticketreduction": return new TicketReduction(0, $parent);
|
|
case "ticketreductioncontainer": return new TicketReductionContainer(0, $parent);
|
|
case "ticketroom": return new TicketRoom(0, $parent);
|
|
case "ticketroomcontainer": return new TicketRoomContainer(0, $parent);
|
|
case "ticketroot": return new TicketRoot(0, $parent);
|
|
case "user": return new User(0, $parent);
|
|
case "usercontainer": return new UserContainer(0, $parent);
|
|
case "website": return new Website(0, $parent);
|
|
}
|
|
}
|
|
|
|
|
|
/** returns a german name for the class
|
|
* @param class class name
|
|
*/
|
|
//---------------------------
|
|
function nameOfClass($class){
|
|
//---------------------------
|
|
switch(strtolower($class)){
|
|
case "customerexporter": return "Besucherdaten exportieren";
|
|
case "customerform": return "Besucher hinzufügen";
|
|
case "customergroupcontainer": return "Besuchergruppen";
|
|
case "customergrouplist": return "Besucherliste (Gruppen)";
|
|
case "customerimporter": return "Besucherdaten importieren";
|
|
case "customerlist": return "Besucherliste (alphabetisch)";
|
|
case "customerroot": return "Besucherdaten verwalten";
|
|
case "eventlist": return "Veranstaltungsliste";
|
|
case "gallery": return "Bildergalerie";
|
|
case "gallerycontainer": return "Bildergalerien";
|
|
case "indexpage": return "Startseite";
|
|
case "menu": return "Menü";
|
|
case "menulink": return "Hyperlink";
|
|
case "newsletter": return "Newsletter";
|
|
case "newslettercontainer": return "Newsletter bearbeiten";
|
|
case "newsletterimporter": return "Kundendaten importieren";
|
|
case "newslettermailer": return "Newsletter senden";
|
|
case "newsletterroot": return "Newsletter";
|
|
case "person": return "Person";
|
|
case "personlist": return "Personenliste";
|
|
case "personpage": return "Personenseite";
|
|
case "phppage": return "PHP-Seite";
|
|
case "pressinfo": return "Presseinfo";
|
|
case "presslist": return "Presseliste";
|
|
case "presspage": return "Seite";
|
|
case "searchpage": return "Suche";
|
|
case "separator": return "Abtrennung";
|
|
case "stdpage": return "Seite";
|
|
case "stdpagecopy": return "Kopie von Seite";
|
|
case "ticketcategory": return "Kategorie";
|
|
case "ticketcategorycontainer": return "Veranstaltungskategorien";
|
|
case "ticketevent": return "Veranstaltung";
|
|
case "ticketeventcontainer": return "Veranstaltungen";
|
|
case "ticketgenre": return "Genre";
|
|
case "ticketgenrecontainer": return "Genres";
|
|
case "ticketpage": return "Seite";
|
|
case "ticketreduction": return "Ermäßigung";
|
|
case "ticketreductioncontainer": return "Ermäßigungen";
|
|
case "ticketroom": return "Sitzplan";
|
|
case "ticketroomcontainer": return "Sitzpläne";
|
|
case "ticketroot": return "Programm";
|
|
case "user": return "Benutzer";
|
|
case "usercontainer": return "Benutzer";
|
|
case "website": return "Website";
|
|
}
|
|
}
|
|
|
|
|
|
/** creates the lookup table
|
|
*/
|
|
//-----------------
|
|
function install(){
|
|
//-----------------
|
|
$query = sprintf("CREATE TABLE IF NOT EXISTS bruckm_index (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(200) NOT NULL DEFAULT '',
|
|
class VARCHAR(100),
|
|
classId INT UNSIGNED NOT NULL,
|
|
parentId INT UNSIGNED NOT NULL,
|
|
childObjects VARCHAR(255) NOT NULL DEFAULT '',
|
|
lastUpdate DATETIME NOT NULL,
|
|
visible TINYINT(1) NOT NULL DEFAULT 1,
|
|
editable ENUM('3','2','1') NOT NULL DEFAULT '3',
|
|
listable ENUM('3','2','1') NOT NULL DEFAULT '1',
|
|
cache TEXT,
|
|
PRIMARY KEY (id),
|
|
KEY (name),
|
|
KEY (class),
|
|
KEY (classId)
|
|
)");
|
|
dbQuery($query);
|
|
|
|
$query = sprintf("CREATE TABLE IF NOT EXISTS bruckm_log (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`date` DATETIME NOT NULL,
|
|
severity TINYINT UNSIGNED NOT NULL,
|
|
message VARCHAR(255) NOT NULL DEFAULT '',
|
|
file VARCHAR(100) NOT NULL DEFAULT '',
|
|
line TINYINT UNSIGNED NOT NULL,
|
|
PRIMARY KEY(id))");
|
|
dbQuery($query);
|
|
|
|
$query = sprintf("CREATE TABLE IF NOT EXISTS bruckm_lock (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
lockTime DATETIME,
|
|
user VARCHAR(100),
|
|
flexiconId INT UNSIGNED NOT NULL,
|
|
PRIMARY KEY (id))");
|
|
dbQuery($query);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
?>
|