static function setUserById($pid, $id, $v) { $S = settingArray::getSetting($id); if (Page($pid)->access() < 1 or !$S->in(Page($pid)->SET)) { G()->Answer = array('cmsWarning' => L('Ihnen fehlt das nötige Recht')); return; } $S->setUser($v); return 1; }
static function access($id) { if (!isset($_SESSION['qgSettingsEditor roots'])) { return false; } $S = settingArray::getSetting((int) $id); if (!$S) { return false; } if (isset($_SESSION['qgSettingsEditor roots']['0'])) { return $S; } foreach ($_SESSION['qgSettingsEditor roots'] as $rootS => $egal) { $RootS = settingArray::getSetting($rootS); if (!$RootS) { continue; } if ($S->in($RootS)) { return $S; } } return false; }
function backtoLog($pid, $log) { //$generate = null; //$generate = function ($pid) use(&$generate, $log) { // vers::setLog($log); $generate = null; $generate = function ($pid) use(&$generate) { $Cont = Page($pid); foreach ($Cont->Conts() as $SubCont) { // todo, select only conts and no pages $generate($SubCont->id); } if ($Cont->access() < 2) { return; } // access in the past!? vers::tableRollBackWhere('page', array('id' => $pid)); //vers::tableRollBackWhere('page', array('basis' => $pid, 'type'=>'c')); // remove subpages not in this version, problem: changes access! vers::tableRollBackWhere('page_class', array('page_id' => $pid)); vers::tableRollBackWhere('page_file', array('page_id' => $pid)); vers::tableRollBackWhere('page_text', array('page_id' => $pid)); vers::tableRollBackWhere('page_url', array('page_id' => $pid)); vers::tableRollBackWhere('text', array('id' => $Cont->vs['title_id'])); // todo: cached! foreach (D()->col("SELECT text_id FROM page_text WHERE page_id = " . $pid) as $text_id) { vers::tableRollBackWhere('text', array('id' => $text_id)); } foreach (D()->col("SELECT file_id FROM page_file WHERE page_id = " . $pid) as $file_id) { vers::tableRollBackWhere('file', array('id' => $file_id)); } // qg settings $basis = G()->SET['cms']['pages']->i; vers::qgSettingsRollBack($basis, $pid); }; settingArray::$All = array(); cms::$_Pages = array(); // remove Page-Object-Cache vers::setLog($log); $generate($pid); vers::setLog(0); cms::$_Pages = array(); // remove Page-Object-Cache settingArray::$All = array(); }
L::$all[$l] = $l; } } L::$def = reset(L::$all); liveSess::$maxpause = G()->SET['qg']['session']['maxpause']->v; liveSess::init(); G()->win = isset(G()->ASK['rTicket']) ? G()->ASK['rTicket'] : (isset($_GET['rTicket']) ? $_GET['rTicket'] : null); if (G()->win && !rTicket::check(G()->win)) { Answer(array('info' => 'rTicket nicht gültig')); } if (!G()->win) { G()->win = rTicket::get(); } if (isset($_GET['qgSetting'])) { foreach ($_GET['qgSetting'] as $id => $value) { $S = settingArray::getSetting($id); $S && $S->setUser($value); } } L::init(); liveLog::init(); // todo: country from ip? $l_country = 'ch'; if (Usr()->is()) { $values = Usr()->getVs(); if (isset($values['country']) && $values['country']) { $l_country = $values['country']; } } $winCountryTranslate = array('ch' => 's', 'at' => 'a', 'de' => 'u', 'it' => 'a', 'fr' => 'a', 'pl' => 'k'); setLocale(LC_ALL, L() . '_' . strtoupper($l_country) . '.utf8', L() . $winCountryTranslate[$l_country], L());
public function Parent() { return settingArray::getSetting($this->b); }