Example #1
0
function arr_tag2atm(&$item, $fmode = '')
{
    if (in_array($fmode, array('', 'f', 'm', 'ma'))) {
        $fields = read_cache($fmode . 'fields', $item[$fmode == 'm' ? 'mchid' : ($fmode == 'ma' ? 'matid' : 'chid')]);
    } elseif (in_array($fmode, array('ca', 'cc'))) {
        $fields = reload_cache($fmode . 'fields');
    }
    foreach ($fields as $k => $v) {
        if (isset($item[$k]) && $v['datatype'] == 'htmltext') {
            $item[$k] = tag2atm($item[$k], 1);
        }
    }
}
Example #2
0
function save_cnode($cnstr, $sid, $cncid, $tpls = '')
{
    global $timestamp, $db, $tblprefix, $cn_max_addno;
    parse_str($cnstr, $idsarr);
    $cnconfigs = reload_cache('cnconfigs', '', '', $sid);
    if (!($cnconfig = @$cnconfigs[$cncid])) {
        return;
    }
    $cnode = array('caid' => 0, 'cnlevel' => count($idsarr), 'mainline' => 0);
    $i = 0;
    foreach ($idsarr as $k => $v) {
        !$i && ($cnode['mainline'] = $k == 'caid' ? 0 : str_replace('ccid', '', $k));
        $k == 'caid' && ($cnode['caid'] = $v);
        $i++;
    }
    unset($idsarr);
    if ($cnid = $db->result_one("SELECT cnid FROM {$tblprefix}cnodes WHERE sid={$sid} AND ename='{$cnstr}'")) {
        $sqlstr = '';
        foreach (array('tpls', 'wtpls', 'urls', 'statics', 'periods') as $var) {
            $cnconfig[$var . 'mode'] == 2 && ($sqlstr .= ',' . $var . "='" . $cnconfig[$var] . "'");
        }
        $db->query("UPDATE {$tblprefix}cnodes SET cncids = CONCAT(cncids,'|{$cncid}|') {$sqlstr} WHERE cnid='{$cnid}' AND sid='{$sid}'");
        return;
    }
    $needstatics = '';
    for ($i = 0; $i <= $cn_max_addno; $i++) {
        $needstatics = $timestamp . ',';
    }
    $sqlstr = '';
    $tpls && ($sqlstr .= ",tpls='{$tpls}'");
    $vararr = array('wtpls', 'urls', 'statics', 'periods');
    !$tpls && ($vararr[] = 'tpls');
    foreach ($vararr as $var) {
        $cnconfig[$var . 'mode'] && ($sqlstr .= ',' . $var . "='" . $cnconfig[$var] . "'");
    }
    $db->query("INSERT INTO {$tblprefix}cnodes SET \n\t\tename='{$cnstr}', \n\t\tsid='{$sid}', \n\t\tinconfig='1',\n\t\tcncids='|{$cncid}|',\n\t\tmainline='{$cnode['mainline']}',\n\t\tcaid='{$cnode['caid']}',\n\t\tcnlevel='{$cnode['cnlevel']}',\n\t\tneedstatics='{$needstatics}' \n\t\t{$sqlstr}\n\t\t");
    return;
}
Example #3
0
 $subsitenew['dirname'] = trim(strip_tags($subsitenew['dirname']));
 if (!$subsitenew['sitename'] || !$subsitenew['dirname']) {
     amessage('subdatamiss', M_REFERER);
 }
 if (preg_match("/[^a-zA-Z_0-9]+/", $subsitenew['dirname'])) {
     amessage('substadirill', M_REFERER);
 }
 $subsitenew['dirname'] = strtolower($subsitenew['dirname']);
 if (!mmkdir(M_ROOT . $subsitenew['dirname'], 0)) {
     anmessage('nowcresubstadir', M_REFERER);
 }
 $db->query("INSERT INTO {$tblprefix}subsites SET \n\t\t\t\t\tsitename='{$subsitenew['sitename']}',\n\t\t\t\t\tdirname='{$subsitenew['dirname']}',\n\t\t\t\t\ttemplatedir='{$templatedir}',\n\t\t\t\t\tineedstatic='{$timestamp}'\n\t\t\t\t\t");
 if ($nsid = $db->insert_id()) {
     updatecache('subsites');
     //需要先将模板目录放入子站内存之中,才能进行模板的转换
     $subsites = reload_cache('subsites');
     include_once M_ROOT . "./include/cparse.fun.php";
     cn_blank('', $nsid, 0);
     foreach (array('catalogs', 'cnconfigs', 'cnodes', 'archives', 'freeinfos', 'gmissions', 'gmodels', 'gurls') as $dbtable) {
         $db->query("UPDATE {$tblprefix}{$dbtable} SET sid='{$nsid}' WHERE sid='0'");
     }
     //将在子站记录中要保留的记录存下来
     $s_config = array();
     load_cache('channels');
     foreach ($channels as $k => $v) {
         $v = read_cache('channel', $k, '', $sid);
         $s_config[$k]['available'] = $v['available'];
         $s_config[$k]['arctpls'] = $v['arctpls'];
         $s_config[$k]['pretpl'] = $v['pretpl'];
         $s_config[$k]['srhtpl'] = $v['srhtpl'];
     }
Example #4
0
     // $useTable = MERGELOGTABLE;
     $useTable = USETABLE;
 } elseif ($table) {
     $useTable = $table;
 } else {
     $useTable = DEFAULTLOGTABLE;
 }
 //------------------------------------------------------------------------
 // Use cache?
 //------------------------------------------------------------------------
 if (USE_CACHE && table_exists(CACHETABLENAME, $dbLink)) {
     // If the cache table is empty then reload it.
     $sql = "SELECT * FROM " . CACHETABLENAME . " WHERE tablename='" . $useTable . "'";
     $queryresult = perform_query($sql, $dbLink);
     if (num_rows($queryresult) == 0) {
         reload_cache($useTable, $dbLink);
     }
     // Get the timestamp for the last update.
     $sql = "SELECT updatetime FROM " . CACHETABLENAME . " WHERE tablename='" . $useTable . "'";
     $queryresult = perform_query($sql, $dbLink);
     $row = fetch_array($queryresult);
     $cacheUpdate = $row['updatetime'];
     // Print info about the cache.
     echo "<table class=\"searchform\">";
     echo "<tr class=\"lighter\"><td>";
     echo "<b>USING CACHE TO POPULATE HOST, FACILITY, AND PROGRAM FIELDS.</b>";
     echo "<br />Cache last updated on " . $cacheUpdate . ".";
     echo "</td></tr></table>";
     // Get the HOST list
     $sql = "SELECT DISTINCT value FROM " . CACHETABLENAME . " WHERE type='HOST'\n\t\t   \tAND tablename='" . $useTable . "'";
     $queryresult = perform_query($sql, $dbLink);
Example #5
0
	$sql = "SELECT * FROM ".MERGELOGTABLE." LIMIT 1";
	$result = perform_query($sql, $dbLink);
	if(num_rows($result)) {
	echo "Loading the cache with data from the merge table\n";
	reload_cache(MERGELOGTABLE, $dbLink);
	}
} else {
// Else load the cache with data from each log table
*/
$tableArray = get_logtables($dbLink);
foreach ($tableArray as $table) {
    if ($table == MERGELOGTABLE) {
        continue;
    }
    echo "Loading the cache with data from: " . $table . "\n";
    reload_cache($table, $dbLink);
}
// }
// Delete rows with data from log tables that do not exist
echo "\nDeleting cache entries for tables that no longer exist...\n";
$tableArray = get_logtables($dbLink);
$sql = "SELECT DISTINCT tablename FROM " . CACHETABLENAME;
$result = perform_query($sql, $dbLink);
while ($row = fetch_array($result)) {
    if (array_search($row['tablename'], $tableArray) === FALSE) {
        $sql = "DELETE FROM " . CACHETABLENAME . " WHERE tablename='" . $row['tablename'] . "'";
        perform_query($sql, $dbLink);
    }
}
if ($mergelog) {
    $sql = "DELETE FROM " . CACHETABLENAME . " WHERE tablename!='" . MERGELOGTABLE . "'";
Example #6
0
function cacheinit()
{
    global $langs;
    include_once M_ROOT . './include/ios.fun.php';
    include_once M_ROOT . './include/cache.fun.php';
    showjsmessage(ilang('init_cache'));
    $langs = reload_cache('langs');
    rebuild_cache(-1);
}
Example #7
0
                    $db->query("UPDATE {$tblprefix}amconfigs SET \n\t\t\t\t\t\t\t\tcname='{$amconfignew['cname']}'\n\t\t\t\t\t\t\t\tWHERE amcid='{$amcid}'");
                }
            }
        }
        adminlog(lang('editbaprojectlist'));
        updatecache('amconfigs');
        amessage('bapmodifyfinish', "?entry=amconfigs&action=amconfigsedit");
    }
} elseif ($action == 'amconfigdetail' && !empty($amcid)) {
    empty($amconfigs[$amcid]) && amessage('chooseadminbap');
    $amconfig = $amconfigs[$amcid];
    if ($amconfig['sid'] && empty($subsites[$amconfig['sid']])) {
        amessage('nosite');
    }
    $menus = reload_cache($amconfig['sid'] ? 'mnmenuss' : 'mnmenus');
    $mnlangs = reload_cache($amconfig['sid'] ? 'mnlangss' : 'mnlangs');
    $langs += $mnlangs;
    if (!submitcheck('bamconfigdetail')) {
        $url_type = 'amconfigdetail';
        include 'urlsarr.inc.php';
        url_nav('[' . $amconfigs[$amcid]['cname'] . ']&nbsp;' . lang('amconfig'), $urlsarr, 'base');
        foreach (array('menus', 'funcs', 'caids', 'fcaids', 'mchids', 'cuids', 'mcuids', 'matids', 'checks') as $var) {
            $amconfig[$var] = array_filter(explode(',', $amconfig[$var]));
        }
        tabheader(lang('msitebasshieldmenu') . '&nbsp; &nbsp; &nbsp; <input class="checkbox" type="checkbox" name="mchkall" onclick="checkall(this.form,\'menusnew\',\'mchkall\')">' . lang('selectall'), 'amconfigdetail', '?entry=amconfigs&action=amconfigdetail&amcid=' . $amcid, 6);
        foreach ($menus as $k1 => $v1) {
            $menusarr = array();
            foreach ($v1 as $k2 => $v2) {
                $menusarr[$k2] = lang('menuitem_' . $k2);
            }
            trbasic(lang('menutype_' . $k1), '', makecheckbox("menusnew[]", $menusarr, empty($amconfig['menus']) ? array() : $amconfig['menus'], 5), '');
Example #8
0
            }
        }
        if (!empty($stepadds['initfields'])) {
            //删除通用字段在主表中增加的字段
            foreach ($stepadds['initfields'] as $ename) {
                $db->query("ALTER TABLE {$tblprefix}archives DROP {$ename}", 'SILENT');
                //还要删除每个模型中该通用字段的缓存
            }
        }
        if (!empty($stepadds['fields'])) {
            //删除在mfields表中增加的记录
            $db->query("DELETE FROM {$tblprefix}fields WHERE fid " . multi_str($stepadds['fields']), 'SILENT');
        }
        updatecache('initfields');
        updatecache('channels');
        $channels = reload_cache('channels');
        foreach ($channels as $k => $v) {
            updatecache('fields', $k);
        }
        $db->query("UPDATE {$tblprefix}subsites SET channels='' WHERE sid='{$nsid}'");
        updatecache('subsites');
        unset($stepeds['channels'], $idsmap['chids'], $stepadds['channels'], $stepadds['initfields'], $stepadds['fields']);
        ocache2file($stepeds, 'stepeds');
        ocache2file($idsmap, 'idsmap');
        ocache2file($stepadds, 'stepadds');
        amessage('undosuc', '?entry=subsetup&action=channels');
    }
} elseif ($action == 'altypes') {
    load_cache('altypes', $nsid);
    $oaltypes = oread_cache('altypes', '', '', 'cache');
    $n_operated = isset($stepeds['altypes']);
Example #9
0
 tabheader(lang('editusergroup') . '-' . $grouptype['cname'], 'usergroupdetail', "?entry=usergroups&action=usergroupdetail&gtid={$gtid}&ugid={$ugid}&forward=" . rawurlencode($forward), 2, 0, 0, 1);
 trbasic(lang('usergroupcname'), 'usergroupnew[cname]', $usergroup['cname']);
 trbasic(lang('inchallowuse'), '', makecheckbox('usergroupnew[mchids][]', mchidsarr(), !empty($usergroup['mchids']) ? explode(',', $usergroup['mchids']) : array(), 5), '');
 trbasic(lang('uservalid') . '(' . lang('day') . ')', 'usergroupnew[limitday]', $usergroup['limitday']);
 if (!$grouptype['issystem'] && $grouptype['mode'] != 2) {
     trbasic(lang('autoinit'), 'usergroupnew[autoinit]', $usergroup['autoinit'], 'radio', lang('agautoinit'));
 }
 if ($grouptype['forbidden']) {
     trbasic(lang('alloissuearch'), 'usergroupnew[issuepermit]', $usergroup['issuepermit'], 'radio');
     trbasic(lang('allissuecomm'), 'usergroupnew[commentpermit]', $usergroup['commentpermit'], 'radio');
     trbasic(lang('allpurcgoods'), 'usergroupnew[purchasepermit]', $usergroup['purchasepermit'], 'radio');
     trbasic(lang('alloissans'), 'usergroupnew[answerpermit]', $usergroup['answerpermit'], 'radio');
     trbasic(lang('allouploattach'), 'usergroupnew[uploadpermit]', $usergroup['uploadpermit'], 'radio');
     trbasic(lang('allodownattach'), 'usergroupnew[downloadpermit]', $usergroup['downloadpermit'], 'radio');
 } elseif ($grouptype['afunction']) {
     $amconfigs = reload_cache('amconfigs');
     $sidsarr = array('m' => lang('msite'));
     foreach ($subsites as $k => $v) {
         $sidsarr[$k] = $v['sitename'];
     }
     foreach ($sidsarr as $k => $v) {
         $amcidarr = array('0' => lang('noset'));
         foreach ($amconfigs as $k1 => $v1) {
             if ($v1['sid'] == intval($k)) {
                 $amcidarr[$k1] = $v1['cname'];
             }
         }
         trbasic($v . lang('admibackaproje'), "usergroupnew[amcids][{$k}]", makeoption($amcidarr, empty($usergroup['amcids'][$k]) ? 0 : $usergroup['amcids'][$k]), 'select');
     }
     trbasic(lang('allouploattach'), 'usergroupnew[uploadpermit]', $usergroup['uploadpermit'], 'radio');
     trbasic(lang('allinsisear'), 'usergroupnew[searchpermit]', $usergroup['searchpermit'], 'radio');
Example #10
0
function deal_btagnames()
{
    global $btagnames;
    $commus = reload_cache('commus');
    sys_cache('btagnames');
    $commoned = 0;
    $channels = reload_cache('channels');
    foreach ($channels as $chid => $channel) {
        $fields = reload_cache('fields', $chid);
        foreach ($fields as $k => $field) {
            if ($field['mcommon']) {
                !$commoned && ($btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'archive', 'sclass' => '', 'datatype' => $field['datatype']));
            } else {
                $btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'archive', 'sclass' => $chid, 'datatype' => $field['datatype']);
            }
        }
        if (@$commus[$channel['cuid']]['cclass'] == 'answer') {
            $btagnames[] = array('ename' => 'appeals', 'cname' => lang('appealamount'), 'bclass' => 'archive', 'sclass' => $chid, 'datatype' => 'int');
            $btagnames[] = array('ename' => 'appealdate', 'cname' => lang('appeendtime'), 'bclass' => 'archive', 'sclass' => $chid, 'datatype' => 'date');
        }
        $commoned = 1;
    }
    unset($channels, $fields);
    $commoned = 0;
    $fchannels = reload_cache('fchannels');
    foreach ($fchannels as $chid => $fchannel) {
        $fields = reload_cache('ffields', $chid);
        foreach ($fields as $k => $field) {
            if ($k == 'subject') {
                !$commoned && ($btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'freeinfo', 'sclass' => '', 'datatype' => $field['datatype']));
            } else {
                $btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'freeinfo', 'sclass' => $chid, 'datatype' => $field['datatype']);
            }
        }
        $commoned = 1;
    }
    unset($fchannels, $fields);
    $cotypes = reload_cache('cotypes');
    foreach ($cotypes as $coid => $cotype) {
        $btagnames[] = array('ename' => 'ccid' . $coid . 'title', 'cname' => $cotype['cname'] . lang('cocname'), 'bclass' => 'archive', 'sclass' => '', 'datatype' => 'text');
        $btagnames[] = array('ename' => "ccid{$coid}", 'cname' => $cotype['cname'] . lang('coclass') . 'id', 'bclass' => 'archive', 'sclass' => '', 'datatype' => 'int');
    }
    unset($cotypes, $cotype);
    $cafields = reload_cache('cafields');
    foreach ($cafields as $field) {
        $btagnames[] = array('ename' => $field['ename'], 'cname' => $field['cname'], 'bclass' => 'cnode', 'sclass' => 'catalog', 'datatype' => $field['datatype']);
    }
    unset($cafields, $field);
    $ccfields = reload_cache('ccfields');
    foreach ($ccfields as $field) {
        $btagnames[] = array('ename' => $field['ename'], 'cname' => $field['cname'], 'bclass' => 'cnode', 'sclass' => 'coclass', 'datatype' => $field['datatype']);
    }
    unset($ccfields, $field);
    $commoned = 0;
    $mchannels = reload_cache('mchannels');
    foreach ($mchannels as $chid => $mchannel) {
        $mfields = reload_cache('mfields', $chid);
        foreach ($mfields as $k => $field) {
            if ($field['mcommon']) {
                !$commoned && !in_array($k, array('password')) && ($btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'member', 'sclass' => '', 'datatype' => $field['datatype']));
            } else {
                $btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'member', 'sclass' => $chid, 'datatype' => $field['datatype']);
            }
        }
        $commoned = 1;
    }
    unset($mchannels, $mfields, $field);
    $currencys = reload_cache('currencys');
    foreach ($currencys as $crid => $currency) {
        $btagnames[] = array('ename' => 'currency' . $crid, 'cname' => $currency['cname'] . lang('amount'), 'bclass' => 'member', 'sclass' => '', 'datatype' => 'int');
    }
    unset($currencys, $currency);
    $grouptypes = reload_cache('grouptypes');
    foreach ($grouptypes as $gtid => $grouptype) {
        $btagnames[] = array('ename' => 'grouptype' . $gtid, 'cname' => $grouptype['cname'] . lang('usergroup') . 'id', 'bclass' => 'member', 'sclass' => '', 'datatype' => 'int');
        $btagnames[] = array('ename' => 'grouptype' . $gtid . 'name', 'cname' => $grouptype['cname'] . lang('usergroup'), 'bclass' => 'member', 'sclass' => '', 'datatype' => 'text');
    }
    unset($grouptypes, $grouptype);
    $bnames = array();
    foreach ($btagnames as $k => $v) {
        if (!array_key_exists($v['ename'], $bnames)) {
            $bnames[$v['ename']] = $v['cname'];
        } elseif (!in_array($v['cname'], array_filter(explode(' | ', $bnames[$v['ename']])))) {
            $bnames[$v['ename']] .= ' | ' . $v['cname'];
        }
    }
    cache2file($btagnames, 'btagnames');
    cache2file($bnames, 'bnames');
    unset($btagnames, $bnames);
}