Files
bm/public_html/public/cms/modules/_flexiconfactory.class.php
2025-09-24 13:26:28 +02:00

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);
}
};
?>