/** * 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]]; } } }
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]); } } }
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()); }
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; }
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; }
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(); }
/** * 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; }
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; }
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(); }
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; } }
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; }
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; }
$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."); }
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; }
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"); }
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(); }
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; }
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; } }
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; }
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; }
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; } }
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(); }
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; }