Exemple #1
0
function clients_new_client($cid, $project_name, $newdesc, $newpath, $newurl, $with_dir, $newlang, $newlangdesc, $charset)
{
    global $db, $cms_db, $auth, $cfg_cms, $perm;
    global $errno, $user_msg;
    //Globals die f�r Neue Sprache anlegen gebraucht werden
    global $sess, $lang;
    $project_name = empty($project_name) ? 'Neues Projekt' : $project_name;
    include_once 'Archive/Tar.php';
    $tar = new Archive_Tar($cfg_cms['path_base'] . $cfg_cms['path_backend_rel'] . 'tpl/projektvorlage.tar');
    if ($with_dir == 1) {
        umask(00);
        $chmod_value = intval($cfg_cms['chmod_value'], 8);
        if (@(!mkdir($cfg_cms['path_base'] . $newpath, $chmod_value))) {
            $errno = 'cant_make_path';
            return;
        }
        if (!$tar->extract($cfg_cms['path_base'] . $newpath)) {
            $errno = 'cant_extract_tar';
            return;
        }
    }
    // SQL Eintraege
    $sql_array = file($cfg_cms['path_base'] . $cfg_cms['path_backend_rel'] . 'tpl/projektvorlage.sql');
    $project_path_relative = str_replace($cfg_cms['path_base_http'], '', $newpath);
    $project_http_path_absolute = str_replace($project_path_relative, '', $newurl);
    foreach ($sql_array as $sql) {
        if (substr($sql, 0) == '#' || trim($sql) == '') {
            continue;
        }
        if (!empty($sql)) {
            $sql = substr(chop($sql), 0, -1);
            $sql = str_replace("<!--{db_prefix}-->", $cfg_cms['db_table_prefix'], $sql);
            $sql = str_replace("<!--{client_path_relative}-->", $project_path_relative, $sql);
            $sql = str_replace("<!--{base_http_path_absolute}-->", $project_http_path_absolute, $sql);
            $sql = str_replace("<!--{idclient}-->", $cid, $sql);
            $sql = str_replace("<!--{projectname}-->", $project_name, $sql);
            $sql = str_replace("<!--{projectdesc}-->", $newdesc, $sql);
            $sql = str_replace("<!--{userid}-->", $auth->auth['uid'], $sql);
            $sql = str_replace("<!--{time}-->", time(), $sql);
            $db->query($sql);
        }
    }
    //neue rechte einf�gen f�r client
    $perm->xcopy_perm(0, 'area_clients', $cid, 'clients', 4294967295.0, 0, 0, true);
    // make new userright
    //Neue Sprache anlegen
    $newlang = empty($newlang) ? 'Neue Sprache' : $newlang;
    $errno = lang_new_language($cid, $newlang, $newlangdesc, $charset, '', 'standard', false);
    $sql = "SELECT MAX(idlang) AS max FROM " . $cms_db['lang'];
    $db->query($sql);
    $db->next_record();
    $nextlang = $db->f('max');
    //set new lang as startlang
    lang_make_start_lang($cid, $nextlang);
    // Config schreiben
    if ($with_dir == 1) {
        $fh = fopen($cfg_cms['path_base'] . $newpath . "/cms/inc/config.php", "w");
        fwrite($fh, "<?php\n\t\$cms_path = '../" . $cfg_cms['path_backend_rel'] . "';\n\t\$client = '{$cid}';\n\t\t\n\t// options for logger in client\n\t\$cfg_client['log_path']\t\t\t\t= 'logs/errorlog.txt';\n\t\$cfg_client['log_size']\t\t\t\t= 2097152; //2097152 = 2 MB\n\t\$cfg_client['logfile_mailaddress']\t= '';\n\n\t// display errors if no logger available\n\t\$cfg_client['display_errors']\t= 1;\n\t\t\n\t// overwrite the default error_reporting for client\n\t//\$error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED;\n\t\n\t\n\t// overwrite value display_errors set ini_set for frontend\n\tif(\$cfg_client['display_errors'] == 0 || \$cfg_client['display_errors'] == 1) {\n\t\tini_set('display_errors', \$cfg_client['display_errors']);\n\t}\n?" . ">\n");
        fclose($fh);
    }
    //neue rechte einf�gen f�r sprache
    $perm->xcopy_perm($cid, 'clients', $nextlang, 'clientlangs', 4294901760.0, 0, 0, true);
    //langstring for new client success userinfo
    $user_msg = 'success_new_client';
}
     break;
 case 'save_edited_client':
     //Projekt umbenennen
     $perm->check(3, 'clients', $cid);
     $errno = clients_rename_client($cid, $newname, $newdesc);
     break;
 case 'delete_client':
     //Projekt löschen
     $perm->check(5, 'clients', $cid);
     $errno = clients_delete_client($cid);
     break;
 case 'save_new_lang':
     // neue Sprache anlegen
     //collapse ist idclient
     $perm->check(18, 'clients', $collapse);
     $errno = lang_new_language($collapse, $newname, $newdesc, $charset, $_REQUEST['rewrite_key'], $_REQUEST['rewrite_mapping']);
     break;
 case 'save_edited_lang':
     // Sprache umbenennen
     $perm->check(19, 'clientlangs', $idlang);
     $errno = lang_rename_language($idlang, $newname, $newdesc, $charset, $_REQUEST['rewrite_key'], $_REQUEST['rewrite_mapping']);
     break;
 case 'delete_lang':
     // Sprache löschen
     //collapse ist idclient
     $perm->check(21, 'clientlangs', $idlang);
     $errno = lang_delete_language($collapse, $lid);
     break;
 case 'makestartlang':
     $errno = lang_make_start_lang((int) $_REQUEST['cid'], (int) $_REQUEST['lid']);
     break;
function clients_new_client($cid, $project_name, $newdesc, $newpath, $newurl, $with_dir, $newlang, $newlangdesc, $charset)
{
    global $db, $cms_db, $auth, $cfg_cms, $perm;
    global $errno, $user_msg;
    //Globals die für Neue Sprache anlegen gebraucht werden
    global $sess, $lang;
    $project_name = empty($project_name) ? 'Neues Projekt' : $project_name;
    include_once 'Archive/Tar.php';
    $tar = new Archive_Tar($cfg_cms['cms_path'] . 'tpl/projektvorlage.tar');
    if ($with_dir == 1) {
        umask(00);
        $chmod_value = intval($cfg_cms['chmod_value'], 8);
        if (@(!mkdir($newpath, $chmod_value))) {
            $errno = 'cant_make_path';
            return;
        }
        if (!$tar->extract($newpath)) {
            $errno = 'cant_extract_tar';
            return;
        }
    }
    // SQL Einträge
    $sql_array = file($cfg_cms['cms_path'] . 'tpl/projektvorlage.sql');
    foreach ($sql_array as $sql) {
        if (!empty($sql)) {
            $sql = substr(chop($sql), 0, -1);
            $sql = str_replace("<!--{db_prefix}-->", $cfg_cms['db_table_prefix'], $sql);
            $sql = str_replace("<!--{cms_path}-->", $newpath, $sql);
            $sql = str_replace("<!--{cms_full_http_path}-->", $newurl, $sql);
            $sql = str_replace("<!--{idclient}-->", $cid, $sql);
            $sql = str_replace("<!--{projectname}-->", $project_name, $sql);
            $sql = str_replace("<!--{projectdesc}-->", $newdesc, $sql);
            $sql = str_replace("<!--{userid}-->", $auth->auth['uid'], $sql);
            $sql = str_replace("<!--{time}-->", time(), $sql);
            $db->query($sql);
        }
    }
    //neue rechte einfügen für client
    $perm->xcopy_perm(0, 'area_clients', $cid, 'clients', 4294967295.0, 0, 0, true);
    // make new userright
    //Neue Sprache anlegen
    $newlang = empty($newlang) ? 'Neue Sprache' : $newlang;
    $errno = lang_new_language($cid, $newlang, $newlangdesc, $charset, '', 'standard', false);
    $sql = "SELECT MAX(idlang) AS max FROM " . $cms_db['lang'];
    $db->query($sql);
    $db->next_record();
    $nextlang = $db->f('max');
    //set new lang as startlang
    lang_make_start_lang($cid, $nextlang);
    // Config schreiben
    if ($with_dir == 1) {
        $fh = fopen($newpath . "/cms/inc/config.php", "w");
        fwrite($fh, "<?PHP\n\$cms_path = '../backend/';\n\$client = '{$cid}';\n\n?" . ">\n");
        fclose($fh);
    }
    //neue rechte einfügen für sprache
    $perm->xcopy_perm($cid, 'clients', $nextlang, 'clientlangs', 4294901760.0, 0, 0, true);
    //langstring for new client success userinfo
    $user_msg = 'success_new_client';
}