/**
  * Creates a new instance of this object with attributevalues set to supplied values.
  * 
  * @return Attributes New instance with supplied values
  * 
  * @param array $values The new values
  */
 function newWithAssociativeArray($values)
 {
     $a = PMReflector::getAttributesArray(get_class($this));
     for ($i = 0; $i < count($a); $i++) {
         if (isset($values[$a[$i]])) {
             $this->{$a}[$i] = $values[$a[$i]];
         }
     }
 }
Example #2
0
 public function fill(array $contents)
 {
     $this->loadAttributes();
     #$this->object->loadMeOrEmpty();
     $allowed = PMReflector::getAttributesArrayAnyObject($this->attributes);
     foreach ($allowed as $v) {
         if (isset($contents[$v])) {
             $this->sA($v, $contents[$v]);
         }
     }
 }
Example #3
0
 public static function getAttributesArray($className)
 {
     if (is_object($className)) {
         return PMReflector::getAttributesArrayAnyObject($className);
     }
     /*$a = array();
     	    $class = new ReflectionClass("$className");
     		$props = $class->getProperties();
     		for($i = 0;$i < count($props);$i++)
     			$a[] = $props[$i]->getName();
     		return $a;*/
     return PMReflector::getAttributesArrayAnyObject(new $className());
 }
Example #4
0
 public function getDBData($newFolder = null)
 {
     if ($newFolder == null) {
         $newFolder = Util::getRootPath() . "system/DBData/";
     }
     if (!isset($_SERVER["HTTP_HOST"])) {
         $_SERVER["HTTP_HOST"] = "*";
     }
     $data = new mInstallation();
     if ($newFolder != "") {
         $data->changeFolder($newFolder);
     }
     $data->setAssocV3("httpHost", "=", $_SERVER["HTTP_HOST"]);
     #$data->loadCollectionV2();
     $n = $data->getNextEntry();
     if ($n == null) {
         #$data = new mInstallation();
         #if($newFolder != "") $data->changeFolder($newFolder);
         $data = new mInstallation();
         if ($newFolder != "") {
             $data->changeFolder($newFolder);
         }
         $data->setAssocV3("httpHost", "=", "*");
         $n = $data->getNextEntry();
     }
     if ($n != null) {
         $n->changeFolder($newFolder);
         $d = $n->getA();
     } else {
         $I = new Installation(-1);
         $I->changeFolder($newFolder);
         $I->makeNewInstallation();
         $d = $I->getA();
     }
     $I2 = new Installation(-1);
     $s = PMReflector::getAttributesArray($I2->newAttributes());
     $t = array();
     foreach ($s as $key => $value) {
         $t[$value] = $d->{$value};
     }
     $rt = Environment::getS("databaseData", $t);
     return $rt;
 }
 private function translate($table, $A)
 {
     $t = new $table(-1);
     $schema = $t->getLDAPSchema();
     #if($as == null)
     $as = PMReflector::getAttributesArray($A);
     foreach ($schema as $k => $v) {
         if ($k == "objectclass") {
             continue;
         }
         foreach ($as as $m) {
             $v = str_replace("{" . $m . "}", $A->{$m}, $v);
         }
         if ($v == "") {
             unset($schema[$k]);
             continue;
         }
         $schema[$k] = $v;
     }
     return $schema;
 }
Example #6
0
 public function getQuicksearchInput()
 {
     $I = new HTMLInput("quickSearch", "text", "");
     #$I->hasFocusEvent(true);
     $I->id("quickSearch{$this->collectionName}");
     $I->onkeyup("AC.update(event.keyCode, this, '{$this->collectionName}','quickSearchLoadFrame');");
     $I->autocompleteBrowser(false);
     $I->onfocus("focusMe(this); ACInputHasFocus=true; AC.start(this); if(this.value != '') AC.update('10', this, '{$this->collectionName}', 'quickSearchLoadFrame');");
     $I->onblur("blurMe(this); ACInputHasFocus=false; AC.end(this);");
     $I->placeholder("Suche");
     $B = "";
     $showSF = PMReflector::implementsInterface($this->collectionName . "GUI", "iSearchFilter");
     if ($showSF) {
         $B = new Button("Suche als Filter anwenden", "./images/i2/searchFilter.png", "icon");
         $B->style("float:right;");
         $B->rme("HTML", "", "saveContextMenu", array("'searchFilter'", "'{$this->collectionName};:;'+\$('quickSearch{$this->collectionName}').value"), "if(checkResponse(transport)) contentManager.reloadFrameRight();");
         $mU = new mUserdata();
         $K = $mU->getUDValue("searchFilterInHTMLGUI" . $this->collectionName);
         $I->setValue($K);
         $I->style("width:90%;");
     }
     return $B . $I;
 }
Example #7
0
 function makeNewLine2($table, $A)
 {
     $fields = PMReflector::getAttributesArray($A);
     $values = "''";
     $sets = "`" . $table . "ID`";
     for ($i = 0; $i < count($fields); $i++) {
         if ($fields[$i] == $table . "ID") {
             continue;
         }
         $values .= ", '" . mysql_real_escape_string($A->{$fields}[$i]) . "'\n";
         $sets .= ",\n`" . $fields[$i] . "`";
     }
     $sql = "INSERT INTO\n {$table}\n ({$sets}) VALUES ({$values})";
     $_SESSION["messages"]->addMessage("executing MySQL: {$sql}");
     mysql_query($sql);
     if (mysql_error() and mysql_errno() == 1054) {
         preg_match("/[a-zA-Z0-9 ]*\\'([a-zA-Z0-9\\.]*)\\'[a-zA-Z ]*\\'([a-zA-Z ]*)\\'.*/", $this->c->error, $regs);
         throw new FieldDoesNotExistException($regs[1], $regs[2]);
     }
     if (mysql_error() and mysql_errno() == 1062) {
         throw new DuplicateEntryException($this->c->error);
     }
     if (mysql_error()) {
         throw new StorageException();
     }
     return mysql_insert_id();
 }
Example #8
0
 /**
  * Same as lCV4, but without typesafe capabilities.
  * @deprecated since version 20160218
  * @return Object All objects matching selectStatement
  */
 function lCV3()
 {
     $this->parseSearchString();
     if ($this->DBS == null) {
         $this->getConnection();
     }
     if ($this->selectStatement->AttributesClassName == "") {
         $this->selectStatement->AttributesClassName = $this->selectStatement->table[0] . (count($this->selectStatement->joinTables) > 0 ? "Join" : "") . "Attributes";
     }
     if (count($this->selectStatement->fields) == 0) {
         $this->selectStatement->fields = PMReflector::getAttributesArray($this->selectStatement->AttributesClassName);
     }
     #$this->selectStatement->table[0].(count($this->selectStatement->joinTables) > 0 ? "Join" : "")."Attributes");
     if (!in_array($this->selectStatement->table[0] . "ID", $this->selectStatement->fields)) {
         $this->selectStatement->fields[] = (count($this->selectStatement->joinTables) > 0 ? "t1." : "") . $this->selectStatement->table[0] . "ID";
     }
     $this->DBS->setParser($this->parsers);
     if ($this->affectedRowsOnly) {
         $this->affectedRowsOnly = false;
     }
     $return = $this->DBS->loadMultipleV3($this->selectStatement);
     if ($return != null and is_array($return)) {
         foreach ($return as $k => $v) {
             $v->parsers = $this->hasParsers;
         }
     }
     return $return;
 }
Example #9
0
 function makeNewLine2($table, $A)
 {
     $fields = PMReflector::getAttributesArray($A);
     #if(PHYNX_MYSQL_STRICT)
     #	$this->fixTypes($table, $A);
     $values = "NULL";
     if (self::$useAsNextID != null) {
         $values = self::$useAsNextID;
         self::$useAsNextID = null;
     }
     $sets = "`" . $table . "ID`";
     for ($i = 0; $i < count($fields); $i++) {
         if ($fields[$i] == $table . "ID") {
             continue;
         }
         #if(is_numeric($A->$fields[$i])) $values .= ", ".$A->$fields[$i]."\n";
         #else
         $cf = $fields[$i];
         $values .= ", '" . $this->cWrite->real_escape_string($A->{$cf}) . "'\n";
         $sets .= ",\n`" . $cf . "`";
     }
     $sql = "INSERT INTO\n {$table}\n ({$sets}) VALUES ({$values})";
     $_SESSION["messages"]->addMessage("executing MySQL: {$sql}");
     Timer::now("sql start", __FILE__, __LINE__);
     $this->cWrite->query($sql);
     Timer::now("sql end", __FILE__, __LINE__);
     DBStorage::$queryCounter++;
     if ($this->cWrite->error and $this->cWrite->errno == 1054) {
         preg_match("/[a-zA-Z0-9 ]*\\'([a-zA-Z0-9\\.]*)\\'[a-zA-Z ]*\\'([a-zA-Z ]*)\\'.*/", $this->cWrite->error, $regs);
         throw new FieldDoesNotExistException($regs[1], $regs[2]);
     }
     if ($this->cWrite->error and $this->cWrite->errno == 1062) {
         throw new DuplicateEntryException($this->cWrite->error);
     }
     if ($this->cWrite->error) {
         throw new StorageException($this->cWrite->error);
     }
     if ($this->cWrite->error and PHYNX_USE_SYSLOG) {
         syslog(LOG_ERR, "MySQL: " . $this->cWrite->error . "(" . $this->cWrite->errno . ") in {$sql}");
     }
     return $this->cWrite->insert_id;
 }
Example #10
0
 function makeNewLine2($table, $A)
 {
     $fields = PMReflector::getAttributesArray($A);
     $values = "NULL";
     if (self::$useAsNextID != null) {
         $values = self::$useAsNextID;
         self::$useAsNextID = null;
     }
     $sets = "`" . $table . "ID`";
     for ($i = 0; $i < count($fields); $i++) {
         if ($fields[$i] == $table . "ID") {
             continue;
         }
         $values .= ", " . $this->c->quote($A->{$fields}[$i]) . "\n";
         $sets .= ",\n`" . $fields[$i] . "`";
     }
     $sql = "INSERT INTO\n {$table}\n ({$sets}) VALUES ({$values})";
     $_SESSION["messages"]->addMessage("executing PDO: {$sql}");
     $this->c->exec($sql);
     print_r($this->c->errorInfo());
     DBPDOStorage::$queryCounter++;
     #if($this->cWrite->error AND $this->cWrite->errno == 1054) {
     #	preg_match("/[a-zA-Z0-9 ]*\'([a-zA-Z0-9\.]*)\'[a-zA-Z ]*\'([a-zA-Z ]*)\'.*/", $this->cWrite->error, $regs);
     #	throw new FieldDoesNotExistException($regs[1],$regs[2]);
     #}
     #if($this->cWrite->error AND $this->cWrite->errno == 1062) throw new DuplicateEntryException($this->cWrite->error);
     #if($this->cWrite->error) throw new StorageException($this->cWrite->error);
     return $this->c->lastInsertId();
 }
Example #11
0
 public function getContextMenuHTML($identifier)
 {
     $deTexts = array();
     $deTexts["pluginSupport"] = "Bitte beachten Sie, dass ein Plugin diese Einstellungen unterstützen muss, selbst wenn es hier angezeigt wird!";
     $deTexts["selectPlugin"] = "Bitte Plugin wählen";
     $deTexts["add"] = "hinzufügen";
     $deTexts["selectPluginButton"] = "Plugin auswählen";
     $deTexts["save"] = "speichern";
     $deTexts["select"] = "auswählen";
     $deTexts["noPsOptions"] = "keine plugin-spezifischen Optionen vorhanden";
     $deTexts["newFieldName"] = "Neuer Feldname";
     $deTexts["maybeHidden"] = "Bitte beachten Sie, dass hier interne Namen angezeigt werden, die von der Feldbeschriftung abweichen können!<br />Manche internen Felder werden möglichweise gar nicht angezeigt.";
     $ac = new anyC();
     $singularLanguageClass = $ac->loadLanguageClass("Userdata");
     $text = $singularLanguageClass != null ? $singularLanguageClass->getText() : $deTexts;
     $opts = "";
     $ps = array_flip($_SESSION["CurrentAppPlugins"]->getAllPlugins());
     $ms = $_SESSION["CurrentAppPlugins"]->getAllMenuEntries();
     #print_r($ms);
     foreach ($ps as $key => $value) {
         if ($key == "mUserdata") {
             continue;
         }
         if ($identifier == "4" and !PMReflector::implementsInterface($key, "iPluginSpecificRestrictions")) {
             continue;
         }
         if ($identifier == "5" and !in_array($key, $ms)) {
             continue;
         }
         if (!$_SESSION["CurrentAppPlugins"]->getIsAdminOnly($key) and $_SESSION["CurrentAppPlugins"]->isCollectionOfFlip($key) != "") {
             $opts .= "<option value=\"{$key}:" . $_SESSION["CurrentAppPlugins"]->isCollectionOfFlip($key) . "\">{$value}</option>";
         }
     }
     $s = explode(":", $identifier);
     if (isset($s[1])) {
         $identifier = $s[0];
     }
     switch ($identifier) {
         case "1":
             $c = isset($text["kann nicht erstellen"]) ? $text["kann nicht erstellen"] : "kann nicht\nerstellen";
             $b = isset($text["kann nicht bearbeiten"]) ? $text["kann nicht bearbeiten"] : "kann nicht\nbearbeiten";
             $l = isset($text["kann nicht löschen"]) ? $text["kann nicht löschen"] : "kann nicht\nlöschen";
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" class=\"bigButton backgroundColor2\" value=\"" . $c . "\" style=\"background-image:url(./images/navi/new.png);\" onclick=\"phynxContextMenu.update('mUserdata','Create','" . str_replace(array("\n", "'"), array(" ", "\\'"), $c) . ":');\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" class=\"bigButton backgroundColor2\" value=\"" . $b . "\" style=\"background-image:url(./images/navi/editb.png);\" onclick=\"phynxContextMenu.update('mUserdata','Edit','" . str_replace(array("\n", "'"), array(" ", "\\'"), $b) . ":');\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" class=\"bigButton backgroundColor2\" value=\"" . $l . "\" style=\"background-image:url(./images/navi/trash.png);\" onclick=\"phynxContextMenu.update('mUserdata','Delete','" . str_replace(array("\n", "'"), array(" ", "\\'"), $l) . ":');\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><img src=\"./images/navi/warning.png\" style=\"float:left;margin-right:4px;\" />" . $text["pluginSupport"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "Edit":
         case "Delete":
         case "Create":
             echo "\n\t\t\t\t<input type=\"hidden\" id=\"uRestAction\" value=\"{$identifier}\" />\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $text["selectPlugin"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"cant{$identifier}\">{$opts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["add"] . "\" onclick=\"addUserRestriction();\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "3":
         case "2":
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $text["selectPlugin"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"relabelPlugin\">{$opts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["select"] . "\" onclick=\"phynxContextMenu.update('mUserdata','" . ($identifier == "2" ? "relabel" : "hide") . ":'+\$('relabelPlugin').value.split(':')[1], \$('relabelPlugin').value.split(':')[1]);\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><img src=\"./images/navi/warning.png\" style=\"float:left;margin-right:4px;\" />" . $text["maybeHidden"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "5":
         case "4":
             if ($opts == "") {
                 die("<p>" . $text["noPsOptions"] . "</p>");
             }
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $text["selectPlugin"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"relabelPlugin\">{$opts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . ($identifier == 4 ? "<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["selectPluginButton"] . "\" onclick=\"phynxContextMenu.update('mUserdata','pS:'+\$('relabelPlugin').value.split(':')[0], \$('relabelPlugin').value.split(':')[0]);\" /></td>\n\t\t\t\t\t</tr>" : "<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["selectPluginButton"] . "\" onclick=\"addHidePlugin();\" /></td>\n\t\t\t\t\t</tr>") . "\n\t\t\t\t</table>";
             break;
         case "pS":
             $c = new $s[1]();
             $pSs = $c->getPluginSpecificRestrictions();
             $pSopts = "";
             foreach ($pSs as $key => $value) {
                 $pSopts .= "<option value=\"{$key}:{$s['1']}\">{$value}</option>";
             }
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"pSSelect\">{$pSopts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["save"] . "\" onclick=\"savePluginSpecificRestriction();\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "hide":
         case "relabel":
             try {
                 $c = new $s[1](-1);
                 $c = $c->newAttributes();
                 echo "\n\t\t\t\t<input type=\"hidden\" id=\"" . $identifier . "Plugin\" value=\"{$s['1']}\" />\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"" . $identifier . "Field\"><option>" . implode("</option><option>", PMReflector::getAttributesArray($c)) . "</option></select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . ($identifier == "relabel" ? "<tr>\n\t\t\t\t\t\t<td>" . $text["newFieldName"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input id=\"relabelTo\" type=\"text\" /></td>\n\t\t\t\t\t</tr>" : "") . "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["save"] . "\" onclick=\"" . ($identifier == "relabel" ? "saveFieldRelabeling();" : "saveFieldHiding();") . "\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             } catch (ClassNotFoundException $e) {
                 echo "<p>Diese Option steht bei diesem Plugin leider nicht zur Verfügung</p>";
             }
             break;
         case "copyFromUser":
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<colgroup>\n\t\t\t\t\t\t<col style=\"width:20px;\" />\n\t\t\t\t\t\t<col class=\"backgroundColor2\" />\n\t\t\t\t\t</colgroup>";
             $G = new Users();
             $G->addAssocV3("isAdmin", "=", "0");
             #$G->addAssocV3("UserID","!=",$this->ID);
             #$G->addJoinV3("Auftrag","AuftragID","=","AuftragID");
             #$G->setAssocV3("is$identifier","=","1");
             #if($bps != -1) $G->addAssocV3("GRLBMID","!=",$bps["loadGRLBMID"]);
             #$G->addOrderV3("nummer","DESC");
             $G->setLimitV3("10");
             $G->lCV3();
             while ($t = $G->getNextEntry()) {
                 echo "\n\t\t\t\t\t<tr onclick=\"copyFromOtherUser('" . $t->getID() . "');\" class=\"\" onmouseout=\"this.className='';\" style=\"cursor:pointer;\" onmouseover=\"this.className = 'backgroundColor0';\">\n\t\t\t\t\t\t<td><img src=\"./images/i2/copy.png\" class=\"mouseoverFade\" /></td>\n\t\t\t\t\t\t<td>" . $t->getA()->username . "</td>\n\t\t\t\t\t</tr>";
             }
             echo "\n\t\t\t\t</table>";
             break;
     }
 }
Example #12
0
 function makeNewLine2($table, $A)
 {
     $fields = PMReflector::getAttributesArray($A);
     #if(PHYNX_MYSQL_STRICT)
     #	$this->fixTypes($table, $A);
     $values = "NULL";
     $sets = "`" . $table . "ID`";
     for ($i = 0; $i < count($fields); $i++) {
         if ($fields[$i] == $table . "ID") {
             continue;
         }
         #if(is_numeric($A->$fields[$i])) $values .= ", ".$A->$fields[$i]."\n";
         #else
         $values .= ", '" . $this->c->real_escape_string($A->{$fields}[$i]) . "'\n";
         $sets .= ",\n`" . $fields[$i] . "`";
     }
     $sql = "INSERT INTO\n {$table}\n ({$sets}) VALUES ({$values})";
     $_SESSION["messages"]->addMessage("executing MySQL: {$sql}");
     $this->c->query($sql);
     DBStorage::$queryCounter++;
     if ($this->c->error and $this->c->errno == 1054) {
         preg_match("/[a-zA-Z0-9 ]*\\'([a-zA-Z0-9\\.]*)\\'[a-zA-Z ]*\\'([a-zA-Z ]*)\\'.*/", $this->c->error, $regs);
         throw new FieldDoesNotExistException($regs[1], $regs[2]);
     }
     if ($this->c->error and $this->c->errno == 1062) {
         throw new DuplicateEntryException($this->c->error);
     }
     if ($this->c->error) {
         throw new StorageException($this->c->error);
     }
     return $this->c->insert_id;
 }
Example #13
0
 function getBrowserHTML($lineWithId = -1, $useBPS = true)
 {
     T::load(Util::getRootPath() . "libraries");
     $canDelete = mUserdata::isDisallowedTo("cantDelete" . $this->className);
     #$canEdit = mUserdata::isDisallowedTo("cantEdit".$this->className);
     if (!$canDelete) {
         $this->showTrash = false;
     }
     #if(!$canEdit) //KILLS SEARCH-FIELD!!
     #	$this->showEdit = false;
     $bps = BPS::getAllProperties("m" . $this->className . "GUI");
     if (!$useBPS) {
         $bps = false;
     }
     $GUIF = $this->GUIFactory;
     $GUIF->setMultiPageDetails($this->multiPageDetails);
     $GUIF->setTableMode($this->displayMode);
     $GUIF->options($this->showTrash, $this->showEdit, $this->showNew);
     if ($this->blacklists != null) {
         $GUIF->blacklists($this->blacklists);
     }
     if (isset($bps["selectionMode"])) {
         $GUIF->selection($bps["selectionMode"]);
     }
     #$GUIF->features($this->features);
     #$this->multiPageDetails["target"] = $this->frame;#"contentRight";
     #$GUIF->setMultiPageDetails($this->multiPageDetails);
     if ($this->targetFrame != null) {
         $GUIF->targetFrame($this->targetFrame);
     }
     $E = $this->object->getNextEntry();
     if ($this->attributes == null and $E != null) {
         $this->attributes = PMReflector::getAttributesArrayAnyObject($E->getA());
     }
     #if($E == null) //To fix display error when no entry
     #	$this->attributes = array("");
     if ($this->caption == null and $this->caption !== false) {
         $this->caption($this->displayMode == "BrowserLeft" ? $this->name == null ? $this->className : $this->name : "");
     }
     #"Bitte ".($this->name == null ? $this->className : $this->name)." auswählen:");
     $Tab = $GUIF->getTable($E == null ? array("") : $this->attributes, $this->colStyle, $this->caption);
     if ($this->tableWeight) {
         $Tab->weight($this->tableWeight);
     }
     $Tab->setTableID("Browserm{$this->className}");
     $Tab->addTableClass("contentBrowser");
     if ($this->useScreenHeight) {
         $Tab->useScreenHeight();
     }
     if ($this->header != null and $this->object->numLoaded() > 0) {
         $Tab->addHeaderRow($this->header);
     }
     if ($lineWithId == -1) {
         if ($this->showQuicksearch) {
             $GUIF->buildQuickSearchLine();
         }
         #if($this->multiPageDetails["total"] > $this->multiPageDetails["perPage"])
         if ($this->showPageFlip) {
             $GUIF->buildFlipPageLine("top");
         }
         if ($this->object->isFiltered()) {
             $GUIF->buildFilteredWarningLine($this->object->isFilteredLabel());
         }
         $GUIF->buildNewEntryLine(($this->name == null ? $this->className : $this->name) . " neu anlegen");
     }
     $this->object->resetPointer();
     $DisplayGroup = null;
     while ($E = $this->object->getNextEntry()) {
         /**
          * DisplayGroup
          */
         if ($lineWithId == -1 and $this->displayGroup != null and $DisplayGroup != $E->A($this->displayGroup[0])) {
             if ($this->displayGroup[1] != null) {
                 $DGP = explode("::", $this->displayGroup[1]);
                 $GUIF->buildGroupLine(Util::invokeStaticMethod($DGP[0], $DGP[1], array($E->A($this->displayGroup[0]), $E)));
             } else {
                 $GUIF->buildGroupLine($E->A($this->displayGroup[0]));
             }
         }
         $Line = array();
         foreach ($this->attributes as $attributeName) {
             $LineContent = $E->A($attributeName);
             if (isset($this->parsers[$attributeName])) {
                 $LineContent = $this->invokeParser($this->parsers[$attributeName], $LineContent, $E);
             } else {
                 $LineContent = htmlspecialchars($LineContent);
             }
             $Line[] = $LineContent;
         }
         $GUIF->buildLine($E->getID(), $Line);
         if ($this->displayGroup != null) {
             $DisplayGroup = $E->A($this->displayGroup[0]);
         }
     }
     if ($lineWithId == -1) {
         if ($this->object->isFiltered()) {
             $GUIF->buildFilteredWarningLine($this->object->isFilteredLabel());
         }
         if ($this->multiPageDetails["total"] > $this->multiPageDetails["perPage"] and $this->showPageFlip) {
             $GUIF->buildFlipPageLine("bottom");
         }
         if ($this->object->numLoaded() == 0) {
             $GUIF->buildNoEntriesLine();
         }
     } else {
         return $Tab->getHTMLForUpdate();
     }
     $prepend = "";
     foreach ($this->prepended as $PE) {
         $prepend .= $PE;
     }
     $appended = "";
     foreach ($this->appended as $PE) {
         $appended .= $PE;
     }
     return "<div class=\"browserContainer contentBrowser\">" . $prepend . $this->sideButtons($bps) . $GUIF->getContainer($Tab, $this->caption, $appended, $this->topButtons($bps)) . "</div>" . str_replace("%CLASSNAME", $this->className, $this->sortable) . $this->tip;
 }
Example #14
0
    $userHiddenPlugins = mUserdata::getHiddenPlugins();
}
if (isset($userHiddenPlugins[$_GET["p"]])) {
    Red::errorD("Sie haben keine Berechtigung, diese Seite zu betrachten!");
}
if (isset($_GET["bps"])) {
    $_SESSION["BPS"]->setByString($_GET["bps"]);
}
$_GET["p"] = str_replace("GUI", "", $_GET["p"]);
$n = $_GET["p"] . "GUI";
try {
    $b = new $n(isset($_GET["id"]) ? $_GET["id"] : "-1");
} catch (ClassNotFoundException $e) {
    Red::errorClass($n);
}
if (!PMReflector::implementsInterface($n, "iGUIHTMLMP2") and !PMReflector::implementsInterface($n, "iGUIHTML2")) {
    Red::errorD("Class {$_GET['p']}GUI needs to implement the interface iGUIHTML2 or iGUIHTMLMP2!");
}
try {
    echo $b->getHTML(isset($_GET["id"]) ? $_GET["id"] : "-1", isset($_GET["page"]) ? $_GET["page"] : 0);
} catch (TableDoesNotExistException $e) {
    Red::errorD("Die Datenbank-Tabelle (" . $e->getTable() . ") dieses Plugins wurde noch nicht angelegt. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
} catch (DatabaseNotSelectedException $e) {
    Red::errorD("Keine Datenbank ausgewählt. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
} catch (NoDBUserDataException $e) {
    Red::errorD("Die Datenbank-Zugangsdaten sind falsch. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
} catch (FieldDoesNotExistException $e) {
    Red::errorUpdate();
} catch (DatabaseNotFoundException $e) {
    Red::errorD("Keine Datenbank ausgewählt. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
}
Example #15
0
 public function getDBData($newFolder = null)
 {
     $external = false;
     if (file_exists(Util::getRootPath() . "../../phynxConfig")) {
         $newFolder = Util::getRootPath() . "../../phynxConfig/";
         $external = true;
     }
     if (file_exists(Util::getRootPath() . "../phynxConfig")) {
         $newFolder = Util::getRootPath() . "../phynxConfig/";
         $external = true;
     }
     if ($newFolder == null) {
         $newFolder = Util::getRootPath() . "system/DBData/";
     }
     $findFor = "*";
     if (isset($_SERVER["HTTP_HOST"])) {
         $findFor = $_SERVER["HTTP_HOST"];
     }
     $data = new mInstallation();
     if ($newFolder != "") {
         $data->changeFolder($newFolder);
     }
     $data->setAssocV3("httpHost", "=", $findFor);
     #$data->loadCollectionV2();
     $n = $data->getNextEntry();
     if ($n == null) {
         #$data = new mInstallation();
         #if($newFolder != "") $data->changeFolder($newFolder);
         $data = new mInstallation();
         if ($newFolder != "") {
             $data->changeFolder($newFolder);
         }
         $data->setAssocV3("httpHost", "=", "*");
         $n = $data->getNextEntry();
     }
     if ($n != null) {
         $n->changeFolder($newFolder);
         $d = $n->getA();
     } else {
         if (!isset($_SERVER["HTTP_CLOUD"])) {
             $I = new Installation(-1);
             $I->changeFolder($newFolder);
             $I->makeNewInstallation();
             $d = $I->getA();
         }
     }
     $I2 = new Installation(-1);
     $s = PMReflector::getAttributesArray($I2->newAttributes());
     $t = array();
     if (isset($d)) {
         foreach ($s as $key => $value) {
             $t[$value] = $d->{$value};
         }
     }
     $t["external"] = $external;
     $rt = Environment::getS("databaseData", $t);
     return $rt;
 }
Example #16
0
 function getBrowserHTML($lineWithId = -1, $useBPS = true)
 {
     $bps = BPS::getAllProperties("m" . $this->className . "GUI");
     if (!$useBPS) {
         $bps = false;
     }
     $GUIF = $this->GUIFactory;
     $GUIF->setMultiPageDetails($this->multiPageDetails);
     $GUIF->setTableMode($this->displayMode);
     $GUIF->options($this->showTrash, $this->showEdit, $this->showNew);
     if ($this->blacklists != null) {
         $GUIF->blacklists($this->blacklists);
     }
     if (isset($bps["selectionMode"])) {
         $GUIF->selection($bps["selectionMode"]);
     }
     #$GUIF->features($this->features);
     #$this->multiPageDetails["target"] = $this->frame;#"contentRight";
     #$GUIF->setMultiPageDetails($this->multiPageDetails);
     $E = $this->object->getNextEntry();
     if ($this->attributes == null and $E != null) {
         $this->attributes = PMReflector::getAttributesArrayAnyObject($E->getA());
     }
     if ($E == null) {
         //To fix display error when no entry
         $this->attributes = array("");
     }
     if ($this->caption == null) {
         $this->caption("Bitte " . ($this->name == null ? $this->className : $this->name) . " auswählen:");
     }
     $Tab = $GUIF->getTable($this->attributes, $this->colStyle, $this->caption);
     $Tab->setTableID("Browserm{$this->className}");
     if ($this->header != null) {
         $Tab->addHeaderRow($this->header);
     }
     if ($lineWithId == -1) {
         if ($this->showQuicksearch) {
             $GUIF->buildQuickSearchLine();
         }
         if ($this->multiPageDetails["total"] > $this->multiPageDetails["perPage"]) {
             $GUIF->buildFlipPageLine("top");
         }
         $GUIF->buildNewEntryLine(($this->name == null ? $this->className : $this->name) . " neu anlegen");
         if ($this->object->isFiltered()) {
             $GUIF->buildFilteredWarningLine();
         }
     }
     $this->object->resetPointer();
     $DisplayGroup = null;
     while ($E = $this->object->getNextEntry()) {
         /**
          * DisplayGroup
          */
         if ($lineWithId == -1 and $this->displayGroup != null and $DisplayGroup != $E->A($this->displayGroup[0])) {
             if ($this->displayGroup[1] != null) {
                 $DGP = explode("::", $this->displayGroup[1]);
                 $GUIF->buildGroupLine(Util::invokeStaticMethod($DGP[0], $DGP[1], array($E->A($this->displayGroup[0]), $E)));
             } else {
                 $GUIF->buildGroupLine($E->A($this->displayGroup[0]));
             }
         }
         $Line = array();
         foreach ($this->attributes as $attributeName) {
             $LineContent = $E->A($attributeName);
             if (isset($this->parsers[$attributeName])) {
                 $LineContent = $this->invokeParser($this->parsers[$attributeName], $LineContent, $E);
             } else {
                 $LineContent = htmlspecialchars($LineContent);
             }
             $Line[] = $LineContent;
         }
         $GUIF->buildLine($E->getID(), $Line);
         if ($this->displayGroup != null) {
             $DisplayGroup = $E->A($this->displayGroup[0]);
         }
     }
     if ($lineWithId == -1) {
         if ($this->object->isFiltered()) {
             $GUIF->buildFilteredWarningLine();
         }
         if ($this->multiPageDetails["total"] > $this->multiPageDetails["perPage"]) {
             $GUIF->buildFlipPageLine("bottom");
         }
     } else {
         return $Tab->getHTMLForUpdate();
     }
     return $this->topButtons($bps) . $this->sideButtons($bps) . $GUIF->getContainer($Tab, $this->caption) . str_replace("%CLASSNAME", $this->className, $this->sortable) . $this->tip;
 }
 function makeNewLine2($table, $A)
 {
     $mf = new PhpFileDB();
     $mf->setFolder($this->folder);
     #print_r($fields);
     $values = "";
     $fields = PMReflector::getAttributesArray($A);
     for ($i = 0; $i < count($fields); $i++) {
         $values .= ($values != "" ? ", " : "") . "'" . $A->{$fields}[$i] . "'\n";
         $fields[$i] = "" . $fields[$i] . "";
     }
     if ($this->file != "") {
         $table = $this->file;
     }
     $sql = "INSERT INTO\n {$table}\n (" . implode(",\n", $fields) . ") VALUES ({$values})";
     $_SESSION["messages"]->addMessage("executing phpFileDB: {$sql}");
     $mf->pfdbQuery($sql);
     return $mf->pfdbInsertId();
 }
 public function isCloneable()
 {
     return PMReflector::implementsInterface(get_class($this), "iCloneable");
 }
Example #19
0
 public function getEditHTML()
 {
     if (BPS::getProperty($this->className . "GUI", "edit") == "ok") {
         return $this->getEditTableHTML();
     }
     ################################################################################
     if ($this->name == null) {
         $this->name = $this->className;
     }
     if ($this->attributes == null) {
         $this->attributes = PMReflector::getAttributesArrayAnyObject($this->object->getA());
     }
     $widths = Aspect::joinPoint("changeWidths", $this, __METHOD__);
     if ($widths == null) {
         $widths = array(700, 132, 218);
     }
     $tab = new HTMLTable(2);
     $tab->setTableStyle("width:{$widths['0']}px;margin-left:10px;");
     $tab->setColWidth(1, "50%");
     $tab->setColWidth(2, "50%");
     $A = $this->object->getA();
     $TSub = new HTMLTable(2);
     $TSub->setColWidth(1, 120);
     $TSub->setColClass(1, "");
     $TSub->setColClass(2, "");
     $TC = clone $TSub;
     $row = array();
     foreach ($this->attributes as $k => $v) {
         if (isset($this->types[$v]) and $this->types[$v] == "hidden") {
             continue;
         }
         if (isset($this->parsers[$v])) {
             $A->{$v} = $this->invokeParser($this->parsers[$v], $A->{$v}, $this->object);
         }
         if (isset($this->types[$v]) and $this->types[$v] == "select") {
             if (isset($this->options[$v]) and isset($this->options[$v][$A->{$v}])) {
                 $A->{$v} = $this->options[$v][$A->{$v}];
             }
         }
         if (isset($this->spaces[$v]) and $this->spaces[$v] != "") {
             if ($k > 0) {
                 $row[] = $TC;
             }
             if ($this->forceNewRow[$v]) {
                 $row[] = "";
                 $tab->addRow($row);
                 $tab->addRowClass("backgroundColor0");
                 $tab->addRowStyle("vertical-align:top;");
                 $row = array();
             }
             if (count($row) == 2) {
                 $tab->addRow($row);
                 $tab->addRowClass("backgroundColor0");
                 $tab->addRowStyle("vertical-align:top;");
                 $row = array();
             }
             $TC = clone $TSub;
             if (trim($this->spaces[$v]) != "") {
                 $TC->addRow(array($this->spaces[$v]));
                 $TC->addRowClass("backgroundColor2");
                 $TC->addRowColspan(1, 2);
             }
         }
         if ($A->{$v} != "") {
             $B = "";
             if (isset($this->fieldButtons[$v])) {
                 $B = $this->fieldButtons[$v];
                 $B->style("float:right;");
             }
             $TC->addLV($this->labels($v) . ":", $B . nl2br($A->{$v}));
             $TC->addRowStyle("vertical-align:top;");
         }
         /*
         			$label = isset($this->labels[$v]) ? $this->labels[$v] : $v;
         
         			$row[] = "<label>".($label != "" ? ucfirst($label).":" : "")."</label>";
         
         
         
         			$row[] = nl2br($A->$v);*/
         /*if(count($row) == 4){
         			$tab->addRow($row);
         			$row = array();
         		}*/
     }
     $row[] = $TC;
     if (count($row) == 1) {
         $row[] = "";
     }
     if (count($row) == 2) {
         $tab->addRow($row);
         $tab->addRowClass("backgroundColor0");
         $tab->addRowStyle("vertical-align:top;");
     }
     $BE = new Button("Eintrag\nbearbeiten", "edit");
     $BE->onclick(str_replace(array("%CLASSNAME", "%CLASSID"), array($this->className, $this->object->getID()), $this->functionEdit));
     $BE->style("float:left;margin-left:10px;");
     $BD = new Button("Eintrag\nlöschen", "trash");
     $BD->onclick(str_replace(array("%CLASSNAME", "%CLASSID"), array($this->className, $this->object->getID()), $this->functionDelete));
     $BD->style("float:left;margin-left:10px;");
     $options = "<div style=\"width:{$widths['0']}px;\">" . $BE . $BD . implode("", $this->topButtons) . "</div><div style=\"clear:left;height:10px;width:{$widths['0']}px;\"></div>";
     $appended = "";
     if (count($this->appended) > 0) {
         foreach ($this->appended as $k => $v) {
             $appended .= $v->getHTML();
         }
     }
     $prepended = "";
     if (count($this->prepended) > 0) {
         foreach ($this->prepended as $k => $v) {
             $prepended .= $v->getHTML();
         }
     }
     /*
     		if(count($this->CRMGUIappendedElements) > 0)
     			foreach($this->CRMGUIappendedElements as $k => $v)
     				$appended .= $v->getHTML();*/
     return $options . $prepended . $tab . $appended;
 }
 public function saveBis($element_id)
 {
     $bps = $this->getMyBPSData();
     $s = split("_", $element_id);
     if (strpos($s[0], "GUI") === false) {
         $s[0] .= "GUI";
     }
     if (!PMReflector::implementsInterface($s[0], "iCategorizer")) {
         Red::errorD($this->E030);
     }
     if ($bps != -1 and isset($bps["VonClass"]) and $bps["VonClass"] != $s[0]) {
         Red::errorD($this->E031);
     }
     if ($bps != -1 and isset($bps["VonID"]) and $bps["VonID"] > $s[1]) {
         Red::errorD($this->E032);
     }
     $_SESSION["BPS"]->setACProperty("BisClass", $s[0]);
     $_SESSION["BPS"]->setACProperty("BisID", $s[1]);
     $this->getWindowHTML();
 }
Example #21
0
 public function getDesktopLinkButton()
 {
     try {
         if (!PMReflector::implementsInterface(get_class($this->object), "iDesktopLink")) {
             return "";
         }
     } catch (ReflectionException $e) {
         return "";
     }
     $B = new Button("Desktop-Link anlegen", "./images/i2/link.png");
     $B->type("icon");
     $B->style("float:right;margin-right:10px;");
     $B->onclick("DesktopLink.createNew('" . $this->object->getClearClass() . "','" . $this->object->getID() . "','contentLeft','" . $_SESSION["applications"]->getActiveApplication() . "');");
     return $B;
 }
Example #22
0
 public function getContextMenuHTML($identifier)
 {
     $deTexts = array();
     $deTexts["pluginSupport"] = "Bitte beachten Sie, dass ein Plugin diese Einstellungen unterstützen muss, selbst wenn es hier angezeigt wird!";
     $deTexts["selectPlugin"] = "Bitte Plugin wählen";
     $deTexts["add"] = "hinzufügen";
     $deTexts["selectPluginButton"] = "Plugin auswählen";
     $deTexts["save"] = "speichern";
     $deTexts["select"] = "auswählen";
     $deTexts["noPsOptions"] = "keine plugin-spezifischen Optionen vorhanden";
     $deTexts["newFieldName"] = "Neuer Feldname";
     $deTexts["maybeHidden"] = "Bitte beachten Sie, dass hier interne Namen angezeigt werden, die von der Feldbeschriftung abweichen können!<br />Manche internen Felder werden möglichweise gar nicht angezeigt.";
     $ac = new anyC();
     $singularLanguageClass = $ac->loadLanguageClass("Userdata");
     $text = $singularLanguageClass != null ? $singularLanguageClass->getText() : $deTexts;
     $opts = "";
     $ps = array_flip($_SESSION["CurrentAppPlugins"]->getAllPlugins());
     $ms = $_SESSION["CurrentAppPlugins"]->getAllMenuEntries();
     #print_r($ms);
     foreach ($ps as $key => $value) {
         if ($key == "mUserdata") {
             continue;
         }
         if ($identifier == "4" and !PMReflector::implementsInterface($key, "iPluginSpecificRestrictions")) {
             continue;
         }
         if ($identifier == "4") {
             $c = new $key();
             if (!$c->getPluginSpecificRestrictions()) {
                 continue;
             }
         }
         if ($identifier == "5" and !in_array($key, $ms)) {
             continue;
         }
         if ($value == "Kunde") {
             continue;
         }
         if (!$_SESSION["CurrentAppPlugins"]->getIsAdminOnly($key) and $_SESSION["CurrentAppPlugins"]->isCollectionOfFlip($key) != "") {
             $opts .= "<option value=\"{$key}:" . $_SESSION["CurrentAppPlugins"]->isCollectionOfFlip($key) . "\">{$value}</option>";
         }
     }
     $s = explode(":", $identifier);
     if (isset($s[1])) {
         $identifier = $s[0];
     }
     switch ($identifier) {
         case "1":
             $c = isset($text["kann nicht erstellen"]) ? $text["kann nicht erstellen"] : "kann nicht\nerstellen";
             $b = isset($text["kann nicht bearbeiten"]) ? $text["kann nicht bearbeiten"] : "kann nicht\nbearbeiten";
             $l = isset($text["kann nicht löschen"]) ? $text["kann nicht löschen"] : "kann nicht\nlöschen";
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" class=\"bigButton backgroundColor2\" value=\"" . $c . "\" style=\"background-image:url(./images/navi/new.png);\" onclick=\"phynxContextMenu.update('mUserdata','Create','" . str_replace(array("\n", "'"), array(" ", "\\'"), $c) . ":');\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" class=\"bigButton backgroundColor2\" value=\"" . $b . "\" style=\"background-image:url(./images/navi/editb.png);\" onclick=\"phynxContextMenu.update('mUserdata','Edit','" . str_replace(array("\n", "'"), array(" ", "\\'"), $b) . ":');\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" class=\"bigButton backgroundColor2\" value=\"" . $l . "\" style=\"background-image:url(./images/navi/trash.png);\" onclick=\"phynxContextMenu.update('mUserdata','Delete','" . str_replace(array("\n", "'"), array(" ", "\\'"), $l) . ":');\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><img src=\"./images/navi/warning.png\" style=\"float:left;margin-right:4px;\" />" . $text["pluginSupport"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "Edit":
         case "Delete":
         case "Create":
             echo "\n\t\t\t\t<input type=\"hidden\" id=\"uRestAction\" value=\"{$identifier}\" />\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $text["selectPlugin"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"cant{$identifier}\">{$opts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["add"] . "\" onclick=\"addUserRestriction();\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "3":
         case "2":
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $text["selectPlugin"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"relabelPlugin\">{$opts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["select"] . "\" onclick=\"phynxContextMenu.update('mUserdata','" . ($identifier == "2" ? "relabel" : "hide") . ":'+\$('relabelPlugin').value.split(':')[1], \$('relabelPlugin').value.split(':')[1]);\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><img src=\"./images/navi/warning.png\" style=\"float:left;margin-right:4px;\" />" . $text["maybeHidden"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "5":
         case "4":
             if ($opts == "") {
                 die("<p>" . $text["noPsOptions"] . "</p>");
             }
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $text["selectPlugin"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"relabelPlugin\">{$opts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . ($identifier == 4 ? "<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["selectPluginButton"] . "\" onclick=\"phynxContextMenu.update('mUserdata','pS:'+\$('relabelPlugin').value.split(':')[0], \$('relabelPlugin').value.split(':')[0]);\" /></td>\n\t\t\t\t\t</tr>" : "<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["selectPluginButton"] . "\" onclick=\"addHidePlugin();\" /></td>\n\t\t\t\t\t</tr>") . "\n\t\t\t\t</table>";
             break;
         case "pS":
             $c = new $s[1]();
             $pSs = $c->getPluginSpecificRestrictions();
             $pSopts = "";
             foreach ($pSs as $key => $value) {
                 $pSopts .= "<option value=\"{$key}:{$s['1']}\">{$value}</option>";
             }
             echo "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"pSSelect\">{$pSopts}</select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["save"] . "\" onclick=\"savePluginSpecificRestriction();\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             break;
         case "hide":
         case "relabel":
             try {
                 $c = new $s[1](-1);
                 $c = $c->newAttributes();
                 echo "\n\t\t\t\t<input type=\"hidden\" id=\"" . $identifier . "Plugin\" value=\"{$s['1']}\" />\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><select id=\"" . $identifier . "Field\"><option>" . implode("</option><option>", PMReflector::getAttributesArray($c)) . "</option></select></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . ($identifier == "relabel" ? "<tr>\n\t\t\t\t\t\t<td>" . $text["newFieldName"] . ":</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input id=\"relabelTo\" type=\"text\" /></td>\n\t\t\t\t\t</tr>" : "") . "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type=\"button\" value=\"" . $text["save"] . "\" onclick=\"" . ($identifier == "relabel" ? "saveFieldRelabeling();" : "saveFieldHiding();") . "\" /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
             } catch (ClassNotFoundException $e) {
                 echo "<p>Diese Option steht bei diesem Plugin leider nicht zur Verfügung</p>";
             }
             break;
         case "copyFromUser":
             $T = new HTMLTable(2);
             $T->useForSelection();
             $T->setColWidth(1, 20);
             $T->maxHeight(200);
             $G = new Users();
             $G->addAssocV3("isAdmin", "=", "0");
             $G->setLimitV3("10");
             $G->lCV3();
             while ($t = $G->getNextEntry()) {
                 $T->addRow(array(new Button("", "./images/i2/copy.png", "icon"), $t->A("username")));
                 $T->addRowEvent("click", "copyFromOtherUser('" . $t->getID() . "');");
             }
             echo $T;
             break;
         case "login":
             $T = new HTMLTable(2);
             $T->useForSelection();
             $T->setColWidth(1, 20);
             $T->maxHeight(200);
             $apps = Applications::getList();
             foreach ($apps as $app) {
                 #rme("mUserdata","-1","setUserdata",new Array("hidePlugin"+$('relabelPlugin').value.split(":")[0],$('relabelPlugin').value.split(":")[0], "pHide", lastLoadedLeft),"contentManager.reloadFrameLeft()");
                 $T->addRow(array(new Button("", "./plugins/Userdata/login18.png", "icon"), "Kann sich nicht an '{$app}' anmelden"));
                 $T->addRowEvent("click", OnEvent::rme(new mUserdata(-1), "setUserdata", array("'loginTo{$app}'", "'0'", "'loginTo'", "lastLoadedLeft"), OnEvent::closeContext() . OnEvent::reload("Left")));
                 #$T->addRowEvent("click", "copyFromOtherUser('".$t->getID()."');");
             }
             echo $T;
             break;
     }
 }
Example #23
0
 protected function getQuicksearchField()
 {
     if ($this->quickSearchPlugin != "") {
         $B = "";
         $K = "";
         $showSF = PMReflector::implementsInterface($this->quickSearchPlugin . "GUI", "iSearchFilter");
         if ($showSF) {
             $B = new Button("Suche als Filter anwenden", "./images/i2/searchFilter.png", "icon");
             $B->style("float:right;");
             $B->rmePCR("HTML", "", "saveContextMenu", array("'searchFilter'", "'{$this->quickSearchPlugin};:;'+\$('quickSearch{$this->quickSearchPlugin}').value"), "if(checkResponse(transport)) contentManager.reloadFrame('contentRight', '', 0);");
             $mU = new mUserdata();
             $K = $mU->getUDValue("searchFilterInHTMLGUI" . $this->quickSearchPlugin);
         }
         $BSearchInfo = new Button("", "info", "iconic");
         $BSearchInfo->onclick("phynxContextMenu.start(this, '{$this->quickSearchPlugin}','searchHelp','" . $this->texts["Suche"] . ":','left');");
         $BSearchInfo->style("cursor:help;");
         #$BSearchInfo->type("icon");
         $quickSearchRow = "{$B}\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t\t\tonfocus=\"focusMe(this); ACInputHasFocus=true; AC.start(this); if(this.value != '') AC.update('10', this, '{$this->quickSearchPlugin}', 'quickSearchLoadFrame');\"\n\t\t\t\t\t\t\t\tonblur=\"blurMe(this); ACInputHasFocus=false; AC.end(this);\"\n\t\t\t\t\t\t\t\tid=\"quickSearch{$this->quickSearchPlugin}\"\n\t\t\t\t\t\t\t\tonkeyup=\"AC.update(event.keyCode, this, '{$this->quickSearchPlugin}','quickSearchLoadFrame');\"\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tplaceholder=\"Suche\"\n\t\t\t\t\t\t\t\tvalue=\"{$K}\"\n\t\t\t\t\t\t\t\t" . ($showSF ? "style=\"width:90%;\"" : "") . "\n\t\t\t\t\t\t\t/>";
         return array($quickSearchRow, $BSearchInfo);
     }
     return array("", "");
 }
 function loadMultipleV2($table, $fields, $where, $order = "", $limit = "", $join = array(), $joinConditions = array())
 {
     $db = @sqlite_open($this->file) or die("SQLite-DB konnte nicht geöffnet werden. DB-Datei: " . $this->file);
     $joins = "";
     $t = 2;
     #$jF = "";
     foreach ($join as $key => $value) {
         $conditions = "";
         if (isset($joinConditions[$key])) {
             for ($i = 0; $i < count($joinConditions[$key]); $i++) {
                 $conditions .= " AND " . $joinConditions[$key][$i][0] . " = '" . $joinConditions[$key][$i][1] . "'";
             }
         }
         $joins .= "LEFT JOIN {$key} t{$t} ON(t1.{$value} = t{$t}.{$value}{$conditions}) ";
         $t++;
     }
     $sql = "SELECT " . implode(", ", $fields) . " FROM {$table} t1 {$joins}" . ($where != "" ? "WHERE {$where}" : "") . " " . ($order != "" ? "ORDER BY {$order}" : "") . " " . ($limit != "" ? "LIMIT {$limit}" : "");
     $collector = array();
     $ClassAttributes = $table . (count($join) > 0 ? "Join" : "") . "Attributes";
     $AS = new $ClassAttributes();
     $_SESSION["messages"]->addMessage("executing SQLite: {$sql}");
     $q = sqlite_query($db, $sql);
     #if(mysql_error() AND mysql_errno() == 1146) throw new TableDoesNotExistException();
     #if(mysql_error() AND mysql_errno() == 1046) throw new DatabaseNotSelectedException();
     #if(mysql_error() AND mysql_errno() != 1146) echo mysql_error()." ".mysql_errno();
     #if(mysql_affected_rows() == 0) throw new ZeroRowsException();
     $_SESSION["messages"]->addMessage(sqlite_num_rows($q) . " {$table} geladen");
     while ($t = sqlite_fetch_array($q)) {
         if (count($this->parsers) > 0) {
             foreach ($this->parsers as $key => $value) {
                 eval("\$t[\$key] = " . $value . "(\"" . $t[$key] . "\",\"load\");");
             }
         }
         $newAttributes = $AS->newWithValues(PMReflector::getAttributesArray($ClassAttributes), $t);
         $newCOfClass = new $table($t["t1." . $table . "ID"]);
         $newCOfClass->setA($newAttributes);
         $collector[] = $newCOfClass;
     }
     sqlite_close($db);
     return $collector;
 }
 /**
  * Filters table data by specified categories.
  * 
  * @return Boolean True if filters are applied
  */
 protected function filterCategories()
 {
     $fC = false;
     if (PMReflector::implementsInterface(get_class($this), "iCategoryFilter")) {
         $mU = new mUserdata();
         $K = $mU->getUDValue("filteredCategoriesInHTMLGUI" . $this->getClearClass());
         $F = $this->getCategoryFieldName();
         if ($K != null and $K != "") {
             $Ks = explode(";", $K);
             foreach ($Ks as $k => $v) {
                 $this->addAssocV3("{$F}", "=", $v, $k == "0" ? "AND" : "OR", "fCs");
             }
             $fC = true;
         }
     }
     $this->isFiltered = $fC;
     if (!PMReflector::implementsInterface(get_class($this), "iSearchFilter")) {
         return $fC;
     }
     $mU = new mUserdata();
     $K = $mU->getUDValue("searchFilterInHTMLGUI" . $this->getClearClass());
     $F = $this->getSearchedFields();
     if ($K == null or $K == "") {
         return $fC;
     } else {
         foreach ($F as $k => $v) {
             $this->addAssocV3("{$v}", "LIKE", '%' . $K . '%', $k == 0 ? "AND" : "OR", "sfs");
         }
     }
     $this->isFiltered = true;
     return true;
 }
Example #26
0
 public static function fillStdClassWithAssocArray($class, $values)
 {
     $a = PMReflector::getAttributesArray($class);
     for ($i = 0; $i < count($a); $i++) {
         $f = $a[$i];
         if (isset($values[$a[$i]])) {
             $class->{$f} = str_replace("\$", "\\\$", $values[$a[$i]]);
         }
     }
     return $class;
 }
Example #27
0
 private function searchFolder($dir)
 {
     $fp = opendir($dir);
     if (!$fp) {
         return;
     }
     while (($file = readdir($fp)) !== false) {
         if (is_dir("{$dir}/{$file}") and !$this->isRecursive) {
             continue;
         } elseif ($this->isRecursive and is_dir("{$dir}/{$file}") and $file[0] != ".") {
             $this->searchFolder("{$dir}/{$file}");
         }
         $c = false;
         for ($i = 0; $i < count($this->excludeExtensions); $i++) {
             if (strtolower(substr($file, strlen($this->excludeExtensions[$i]) * -1)) == $this->excludeExtensions[$i]) {
                 $c = true;
             }
         }
         if ($c) {
             continue;
         }
         $c = false;
         for ($i = 0; $i < count($this->onlyExtensions); $i++) {
             if (strtolower(substr($file, strlen($this->onlyExtensions[$i]) * -1)) != $this->onlyExtensions[$i]) {
                 $c = true;
             }
         }
         if ($c) {
             continue;
         }
         $c = false;
         for ($i = 0; $i < count($this->implementedInterfaces); $i++) {
             if (!PMReflector::implementsInterface(str_replace($this->onlyExtensions, "", $file), $this->implementedInterfaces[$i])) {
                 $c = true;
             }
         }
         if ($c) {
             continue;
         }
         $this->foundFiles[] = $file;
     }
 }
Example #28
0
 public function __construct($formID, $fields, $title = null, $virtualFields = array())
 {
     $this->id = $formID;
     if (is_array($fields)) {
         $this->fields = $fields;
     }
     if ($fields instanceof PersistentObject) {
         $fields->loadMeOrEmpty();
         $this->fields = PMReflector::getAttributesArrayAnyObject($fields->getA());
     }
     $this->virtualFields = $virtualFields;
     $this->types = array();
     $this->labels = array();
     $this->options = array();
     $this->values = array();
     $this->endLV = array();
     $this->spaces = array();
     $this->spaceLines = array();
     $this->table = new HTMLTable(2, $title);
     $this->table->setColClass(1, "backgroundColor3");
     $this->table->setColClass(2, "backgroundColor2");
     $this->title = $title;
     $this->saveMode = null;
     #$this->onSubmit = null;
     $this->buttons = array();
 }
Example #29
0
 public static function replaceFunctionCalls($html, $object)
 {
     preg_match_all("/\\[\\[([a-zA-Z0-9:]*)\\]\\]/", $html, $treffer);
     if (count($treffer) > 0) {
         $treffer = array_unique($treffer[1]);
         foreach ($treffer as $k => $v) {
             $s = explode("::", $v);
             try {
                 $c = $s[0];
                 $c = new $c();
                 if (PMReflector::implementsInterface($s[0], "iCustomContent") and method_exists($c, $s[1])) {
                     $method = new ReflectionMethod($s[0], $s[1]);
                     $html = str_replace("[[{$v}]]", $method->invoke(null, $object), $html);
                 } else {
                     str_replace("[[{$v}]]", "[[{$s} does not implement iCustomContent]]", $html);
                 }
             } catch (ClassNotFoundException $e) {
             }
         }
     }
     return $html;
 }