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;
 }
Esempio n. 3
0
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();
}
Esempio n. 4
0
        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());
Esempio n. 5
0
 public function Parent()
 {
     return settingArray::getSetting($this->b);
 }