function mysql_query_cache($sql, $linkIdentifier = false, $timeout = 4) { //首先调用上面的getCache函数,如果返回值不为false的话,就说明是从memcached服务器获取的数据 //如果返回false,此时就需要直接从数据库中获取数据了。 //需要注意的是这里使用操作的命令加上sql语句的md5码作为一个特定的key,可能大家觉得使用数据项的 //名称作为key会比较自然一点。运行memcached加上"-vv"参数,并且不作为daemon运行的话,可以看见 //memcached处理时输出的相关信息 if (!($cache = getCache(md5("mysql_query" . $sql)))) { $cache = false; $r = $linkIdentifier != false ? mysql_query($sql, $linkIdentifier) : mysql_query($sql); //读取数据库,并将结果放入$cache数组中 if (is_resource($r) && ($rows = mysql_num_rows($r)) != 0) { for ($i = 0; $i < $rows; $i++) { $fields = mysql_num_fields($r); $row = mysql_fetch_array($r); for ($j = 0; $j < $fields; $j++) { if ($i == 0) { $columns[$j] = mysql_field_name($r, $j); } $cache[$i][$columns[$j]] = $row[$j]; } } //将数据放入memcached服务器中,如果memcached服务器没有开的话,此语句什么也不会做 //如果开启了服务器的话,数据将会被缓存到memcached服务器中 if (!setCache(md5("mysql_query" . $sql), $cache, $timeout)) { # If we get here, there isn’t a memcache daemon running or responding } } } return $cache; }
/** * 产品信息缓存 */ function SetDetail(){ $ids = $_REQUEST['id']; $data['id'] = array('in',explode(',',$ids)); $list = $this->db->where($data)->select(); $pmodel = M('Pic'); C('DATA_CACHE_TYPE','File'); foreach($list as $vo){ $p_data['source'] = 'Product'; $p_data['sourceid'] = $vo['id']; $pics = $pmodel->field('domain,filepath,is_thumb')->where($p_data)->select(); $options['dir'] = get_dir($vo['id']); $vo['imgs'] = $pics; setCache('detail',$vo,0,$options); } foreach($list as $array){ $data[$array['id']] = $array; } if($_POST['from']=='self'){ return $data;exit; } $return = $this->SetCache('detail',$vo); if($return){ $msg['error_code'] = 0; }else{ $msg['error_code'] = 8002; } if($_POST['status'])$msg['data'] = $data; echo json_encode($msg);exit; }
/** * 取得今天要顯示的圖片 * @return 圖片的完整路徑 (含檔名) * FALSE: 找不到圖片 **/ function getTodayImage($orgimg) { global $chroot, $imgext; $dir = $chroot; $now = date('Ymd'); $imglst = array(); foreach (array_keys($imgext) as $ext) { foreach (glob($dir . "*.{$ext}") as $filename) { $name = basename($filename, ".{$ext}"); if (!is_numeric($name) || strlen($name) != 8) { continue; } if (strcmp($now, $name) < 0) { continue; } $imglst[$name] = $filename; } } if (count($imglst) <= 0) { setCache($orgimg); return FALSE; } else { krsort($imglst); $img = array_shift($imglst); setCache($img); return $img; } }
function mysql_query_cache($sql, $linkIdentifier = false, $timeout = 4) { $mysqli = $GLOBALS['mysqli']; //首先调用上面的getCache函数,如果返回值不为false的话,就说明是从memcached服务器获取的数据 //如果返回false,此时就需要直接从数据库中获取数据了。 //需要注意的是这里使用操作的命令加上sql语句的md5码作为一个特定的key,可能大家觉得使用数据项的 //名称作为key会比较自然一点。运行memcached加上"-vv"参数,并且不作为daemon运行的话,可以看见 //memcached处理时输出的相关信息 if (!($cache = getCache(md5("mysql_query" . $sql)))) { $cache = false; $r = mysqli_query($mysqli, $sql); $fields = mysqli_fetch_fields($r); //读取数据库,并将结果放入$cache数组中 for ($i = 0; $row = mysqli_fetch_array($r); $i++) { $j = 0; foreach ($fields as $val) { $cache[$i][$val->name] = $row[$j]; $j++; } } //将数据放入memcached服务器中,如果memcached服务器没有开的话,此语句什么也不会做 //如果开启了服务器的话,数据将会被缓存到memcached服务器中 if (!setCache(md5("mysql_query" . $sql), $cache, $timeout)) { # If we get here, there isn’t a memcache daemon running or responding echo "apt-get install memcached"; } } return $cache; }
public function run() { global $_FANWE; $root = array(); $root['return'] = 1; $key = 'm/sharecate'; $cache_list = getCache($key); if ($cache_list !== NULL || TIME_UTC - $cache_list['cache_time'] > 600) { $cate_list = array(); $min_time = $this->getQuarterMinTime(); $max_time = getTodayTime(); FanweService::instance()->cache->loadCache('albums'); $album_cate = $_FANWE['cache']['albums']['category']; foreach ($album_cate as $k => $v) { $cate = array(); $cate['cate_id'] = $v['id']; $cate['cate_name'] = $v['name']; $cate['short_name'] = $v['name']; $cate['cate_code'] = $v['cate_code']; $cate['cate_icon'] = FS("Image")->getImageUrl($v['img'], 2); $cate['desc'] = $v['desc']; $cate['create_time'] = $v['create_time']; //获取本季分享数量 $share_count_sql = 'select count(DISTINCT s.share_id) from ' . FDB::table("share") . ' as s INNER JOIN ' . FDB::table("album_share") . ' as al on s.share_id = al.share_id where al.cid = ' . $v['id'] . " and s.day_time >= {$min_time} AND s.day_time <= {$max_time} "; $cate['share_count'] = FDB::resultFirst($share_count_sql); $cate['img_tags'] = array(); $img_size = 320; $sql = 'select s.share_id,al.title,sp.img from ' . FDB::table("share") . ' as s INNER JOIN ' . FDB::table("album_share") . ' as als ON s.share_id = als.share_id INNER JOIN ' . FDB::table("album") . ' as al ON als.album_id = al.id INNER JOIN ' . FDB::table("share_photo") . " as sp ON s.share_id = sp.share_id \r\n\t\t\t\t\tWHERE s.day_time >= {$min_time} AND s.day_time <= {$max_time} AND als.cid = " . $v['id'] . " GROUP BY s.share_id ORDER BY s.share_id desc limit 5"; $res = FDB::query($sql); while ($data = FDB::fetch($res)) { $img_data = array(); $img_data['share_id'] = $data['share_id']; $img_data['tag_name'] = $data['title']; $img_data['is_tag'] = 0; $img_data['img'] = FS("Image")->getImageUrl(getImgName($data['img'], $img_size, $img_size, 1, true), 2); $img_data['url_tag'] = urlencode($data['title']); $cate['img_tags'][] = $img_data; $img_size = 160; } $cate['txt_tags'] = array(); $cate_list[] = $cate; } $cache_list = array(); $cache_list['cate_list'] = $cate_list; $cache_list['cache_time'] = TIME_UTC; setCache($key, $cache_list); } else { $cate_list = $cache_list['cate_list']; } $root['item'] = $cate_list; m_display($root); }
function m_express($content) { global $_FANWE; $express = getCache('m_emotion_express_cache'); //缓存过的表情hash if (!$express) { $express_rs = FDB::fetchAll("select `emotion`,concat('" . $_FANWE['site_url'] . "public/expression/',`type`,'/',`filename`) as fname from " . FDB::table('expression')); foreach ($express_rs as $k => $row) { $express[0][] = $row['emotion']; $express[1][] = "<img src='" . $row['fname'] . "' title='" . preg_replace("/[\\[\\]]/", '', $row['emotion']) . "' />"; } setCache('m_emotion_express_cache', $express); } $content = str_replace($express[0], $express[1], $content); $parse_user = array(); preg_match_all("/@([^\f\n\r\t\v@<> ]{2,20}?)(?:\\:| )/", $content, $users); if (!empty($users[1])) { $patterns = array(); $replace = array(); $users = array_unique($users[1]); $arr = array(); foreach ($users as $user) { if (!empty($user)) { $arr[] = addslashes($user); } } $res = FDB::query('SELECT uid,user_name FROM ' . FDB::table('user') . ' WHERE user_name ' . FDB::createIN($arr)); while ($data = FDB::fetch($res)) { $parse_user[$data['user_name']] = $data['uid']; } } $parse_events = array(); preg_match_all("/#([^\f\n\r\t\v]{1,80}?)#/", $content, $events); if (!empty($events[1])) { $patterns = array(); $replace = array(); $events = array_unique($events[1]); $arr = array(); foreach ($events as $event) { if (!empty($event)) { $arr[] = addslashes($event); } } $res = FDB::query('SELECT id,title FROM ' . FDB::table('event') . ' WHERE title ' . FDB::createIN($arr)); while ($data = FDB::fetch($res)) { $parse_events[$data['title']] = $data['id']; } } return array("users" => $parse_user, "events" => $parse_events); }
function getSiteByToken($token) { $cacheName = 'siteByToken' . $token; $cache = getCache($cacheName); if ($cache) { return unserialize($cache); } else { $site = $this->get_one(array('token' => $token)); setCache($cacheName, serialize($site)); return $site; } }
public function getContentPictures($id) { $id = intval($id); $crt = getCache('contentPictures' . $id); if ($crt) { return unserialize($crt); } else { $ps = $this->get_results('*', '', array('contentid' => $id), 'taxis ASC'); setCache('contentPictures' . $id, serialize($ps)); return $ps; } }
function keywords() { $cacheName = 'c_keywords'; $cache = getCache($cacheName); if ($cache) { return unserialize($cache); } else { $keywords = $this->select(); setCache($cacheName, serialize($keywords)); return $keywords; } }
public function getCompany($token) { $token = htmlspecialchars($token, ENT_QUOTES); $crt = getCache('company_' . $token); if (0 && $crt) { return unserialize($crt); } else { $ps = $this->get_one(array('token' => $token, 'isbranch' => 0)); setCache('company_' . $token, serialize($ps)); return $ps; } }
/** * 生成缓存 */ protected function giveCache() { $model = D('Config'); $wdata['status'] = 1; $list = $model->where($wdata)->select(); foreach ($list as $array) { $data[$array['key']] = $array['val']; $data[$array['key']] = $array['val']; } //mk_dir(C('DATA_CACHE_PATH').'/config/'); //F('list',$data,C('DATA_CACHE_PATH').'/config/'); setCache('list', $data); }
public function navChannels($siteid) { $siteid = intval($siteid); $cacheName = 'navChannels' . $siteid; $cache = getCache($cacheName); if ($cache) { return unserialize($cache); } else { $channels = $this->select(array('site' => $siteid, 'isnav' => 1), '*', '', 'taxis ASC'); setCache($cacheName, serialize($channels)); return $channels; } }
/** * 生成缓存 */ function GiveCache() { $model = D('Links'); $wdata['status'] = 1; $list = $model->where($wdata)->select(); /* if($list)F('list',$list,C('DATA_CACHE_PATH').'/links/'); */ if ($list) { setCache('list', $list); } if ($_GET['re']) { $this->success('更新完成!'); } }
function extmail() { $req = new stdClass; $req->Get = $_GET; $req->Post = $_POST; // ajax_echo_r ($req); $subject = getvariablereq('subject'); $mail_template = getvariablereq('mail_template'); $email = getvariablereq('email'); $from_name = getvariablereq('from_name'); $from_mail = getvariablereq('from_mail'); $ret = sendmail ($subject, $mail_template, $email, $from_name, $from_mail); $req->Result = $ret; setCache('request-'.date('Y-m-d-H-i-s'), $req); echo json_encode($req); }
public function run() { global $_FANWE; $root = array(); $root['return'] = 1; $uid = (int) $_FANWE['requestData']['uid']; $cid = (int) $_FANWE['requestData']['cid']; if ($uid > 0) { if (!FS('User')->getUserExists($uid)) { $uid = 0; } } if ($cid == 0) { $uid == 0; } if ($uid == 0) { $root['info'] = "请先登录"; m_display($root); } $key = 'm/useralbum' . $uid . $cid; $album_list = getCache($key); if ($album_list !== NULL || TIME_UTC - $cache_list['cache_time'] > 600) { $album_list = array(); $sql = 'select id,title from ' . FDB::table('album') . " where cid = " . $cid . " and uid = " . $uid; $res = FDB::query($sql); $indx = 0; while ($data = FDB::fetch($res)) { $album_list[$indx] = $data; $indx++; } $cache_list = array(); $cache_list['album_list'] = $album_list; $cache_list['cache_time'] = TIME_UTC; setCache($key, $cache_list); } else { $album_list = $cache_list['album_list']; } $root['item'] = $album_list; m_display($root); }
function mysql_query_cache($sql, $linkIdentifier = false, $timeout = 60) { if (($cache = getCache(md5("mysql_query" . $sql))) !== false) { $cache = false; $r = $linkIdentifier !== false ? mysql_query($sql, $linkIdentifier) : mysql_query($sql); if (is_resource($r) && ($rows = mysql_num_rows($r)) !== 0) { for ($i = 0; $i < $rows; $i++) { $fields = mysql_num_fields($r); $row = mysql_fetch_array($r); for ($j = 0; $j < $fields; $j++) { if ($i === 0) { $columns[$j] = mysql_field_name($r, $j); } $cache[$i][$columns[$j]] = $row[$j]; } } if (!setCache(md5("mysql_query" . $sql), $cache, $timeout)) { # Error en Memcache } } } return $cache; }
function getBlockedUserIDs($receive = 0, $send = 0) { global $plugins; global $userid; global $blockpluginmode; $blockedIds = array(); $querystring = ""; if ($send == 1) { $querystring = "select fromid as blockedid from cometchat_block where toid = '" . mysqli_real_escape_string($GLOBALS['dbh'], $userid) . "' UNION "; } if (in_array('block', $plugins)) { if ($receive == 0) { if (!is_array($blockedIds = getCache('blocked_id_of_' . $userid))) { $blockedIds = array(); $sql = "select group_concat(blockedid) blockedids from (" . $querystring . " select toid as blockedid from cometchat_block where fromid = '" . mysqli_real_escape_string($GLOBALS['dbh'], $userid) . "') as blocked"; $query = mysqli_query($GLOBALS['dbh'], $sql); $blockedId = mysqli_fetch_assoc($query); if (!empty($blockedId['blockedids'])) { $blockedIds = explode(',', $blockedId['blockedids']); } setCache('blocked_id_of_' . $userid, $blockedIds, 3600); } } else { if (!is_array($blockedIds = getCache('blocked_id_of_receive_' . $userid)) && $receive == 1) { $blockedIds = array(); $sql = "select group_concat(toid) blockedids from cometchat_block where fromid = '" . mysqli_real_escape_string($GLOBALS['dbh'], $userid) . "'"; $query = mysqli_query($GLOBALS['dbh'], $sql); $blockedId = mysqli_fetch_assoc($query); if (!empty($blockedId['blockedids'])) { $blockedIds = explode(',', $blockedId['blockedids']); } setCache('blocked_id_of_receive_' . $userid, $blockedIds, 3600); } } } return $blockedIds; }
public function clearCache() { $this->cache = array(); // init cache setCache('data',$this->cache); // clear disk cache }
/** * 生成缓存 */ function GiveCache() { $name = CONTROLLER_NAME; $model = M($name); $wdata['status'] = 1; //$wdata['pay_class'] = 'ali'; $list = $model->where($wdata)->order('id desc')->select(); foreach ($list as $val) { /* if($val['pay_class']=='ali'){ $this->alipay_cache($val); }else if($val['pay_class']=='wx'){ $this->wxpay_cache($val); }else if($val['pay_class']=='wxapp'){ $this->wxapppay_cache($val); } */ $key = $val['pay_class']; $list2[$key] = $val; } //F('pay',$list2,C('DATA_CACHE_PATH').'/config/'); setCache('Config:pay', $list2); }
public function run() { // the main sub in our application if(!isset($_SESSION)) session_start(); $action = getvariablereq('action'); // get action from the request $data = getvariablereq('data' ); // get JSON data from the request $data = str_replace('\"','"',$data); // fix some escaped paths (if any) if ($data) { $json=json_decode($data); // parse Json data came from AJAX (if any) } if (sizeof($_FILES)>0) { // file upload // echo "Fileupload..."; // ajax_echo_r($_FILES); $file = $_FILES['fileupload']; // ajax_echo_r($file); mkdirr($this->settings->temppath); switch ($action) { case ('balance'): $fname = $this->settings->temppath.'/'.session_id().".xls"; move_uploaded_file($file['tmp_name'], $fname); $this->model->loadBalance($fname); break; } if ($file['error']==0) { echo localize("<en>File uploaded successfully</en><ru>Файл загружен успешно</ru>"); } else { echo localize("<en>Upload error</en><ru>Ошибка при загрузке файла</ru>"); } } else { // no file upload $userid = getsecurevariable('userid' ,0); // echo $userid; // $hue = getvariable ('hue' ); $hue = getsecurevariable ('hue' ,-1); $theme = getsecurevariable ('theme' ,-1); $SmoothAnimation = getsecurevariable ('SmoothAnimation',-1); $userdetails = $this->model->getUserDetails($userid); if (!is_dir("view/".$theme."/")) { $theme=$this->settings->defaulttheme; } if ((int)$SmoothAnimation==-1) { // if it's not stored in session if ($userid>-1) { // if the user is logged $SmoothAnimation = $userdetails->SmoothAnimation; // get hue value from user details } else { // if the user is came for the first time $SmoothAnimation = 0; // set the default value } } $userDetails = new stdClass(); $this->model->setUserDetails($userDetails); $this->viewroot="view/".$theme; setsecurevariable("viewroot",$this->viewroot); $this->imgfolder = $this->viewroot."/img"; if (file_exists($this->viewroot."theme.php")) { $this->themeinfo = parse_ini_file($this->viewroot."theme.php"); } $userstate = $this->model->isUserAuth($userid); // check user's session and login state if ($action) { // start the processing of ajax commands header("Pragma: no-cache"); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); if (($userid>-1) || ($action=='dologin') || ($action=='api') || ($action=='ownlogin')) { switch ($action) { case ("savefield"): case ("saveField"): $this->model->saveField($json); break; case ("dologin"): // used to login the user $is_auth = $this->model->userAuth($json); if ($is_auth) { setsecurevariable('userid',$is_auth->ID); setsecurevariable('tmpcnt',0 ); // $tmp = new Template($this->viewroot, 'ajax_nouser_logged.htt'); // load JS user successful login template ajax_echo ("##refresh##"); } else { $tmp = new Template($this->viewroot, 'ajax_nouser_error.htt'); // load JS user login error template $tmp->fill('%imgfolder%' , $this->imgfolder ); ajax_echo($tmp->output()); } break; case ("dologout"): // used to log out setsecurevariable( "hue", "-1" ); // set to default (abstracted) setsecurevariable( "theme", $this->settings->defaulttheme ); // set to default (abstracted) setsecurevariable( "SmoothAnimation", "1" ); // enabled by default setsecurevariable( "userid", "-1" ); $userid = -1; // ajax_echo_r($_SESSION); ajax_echo ("##refresh##"); break; case ("setUserParameter"): // used to save user's setting setsecurevariable($json->name, $json->value); // $userid = 0; // ajax_echo_r($_SESSION); if (($json->name=='hue') || ($json->name=='theme')) { ajax_echo ("##refresh##"); } break; case ("newpartner"): // used to login the user $is_sent = (trim($json->name)!='') && (trim($json->email)!='') && (trim($json->comments)!=''); if ($is_sent) { $is_sent = sendmail("Email from ".$json->name,"Bricks Pro partnership request: <br>\n".$json->comments); } if ($is_sent) { $tmp = new Template($this->viewroot, 'ajax_new_partner.htt'); // load JS success template } else { $tmp = new Template($this->viewroot, 'ajax_new_partner_error.htt'); // load JS error template } $tmp->fill('%imgfolder%' ,$this->imgfolder ); ajax_echo($tmp->output()); break; case ("showgallery"): // ajax_echo_r($json); if ($json->operation=='download') { $ret = $this->model->getGalleryItem($json); } else { if ($json->operation=='delete') { $ret = $this->model->deleteGalleryItem($json); } $gal = $this->getGallery($json); $ret = $gal->compiled; } ajax_echo ($ret); break; case ('postevent'): $ret=$this->model->addEvent($json); // ajax_echo_r ($ret->rowsAffected); ajax_echo_r($json); break; case ('getnewevents'): $events = $this->model->getNewEvents($json); echo json_encode($events); break; case ('processxls'): $xls = $this->model->loadXls(0); setCache('settings',$json); if ($xls) { $data = $this->model->processXls($xls, $json); } else { $data = ""; } ajax_echo_r($data); break; case ('showtable'): $json->tablename = $json->go; $thisdebug = 0; if ($thisdebug) $mtime = microtime(true); switch ($json->go) { case ('news'): $params = new stdClass; $params->listid=-1; $table = $this->model->getTasks($params); break; case ('users'): if ($userdetails->GroupID!=1) $id = $userdetails->ID; $table[1] = $this->model->getUsers($json, $id); break; case ('dashboard'): // see case sections for each dashboard subpage break; case ('objects'): $table = $this->model->getObjects($json); break; case ('customers'): $table = $this->model->getCustomers($json); break; case ('happiness'): $table = $this->model->getHappiness($json); break; case ('system'): break; default: $table = $this->model->getTable($json); break; } // ajax_echo_r($table); // ajax_echo_r($json); if ($json->isexport) { $tmp = new Template($this->viewroot, 'output_list.htt'); // load common parent template $block_item = new Template($this->viewroot, $tmp->returnloop('block_item')); $thislist = ""; if (sizeof($table[1])) { foreach ($table[1] as $item) { $block_item->reload(); $block_item->fill("%Item%" , $item->Item ); $block_item->fill("%Name%" , $item->Name ); $thislist.=$block_item->output(); } } $tmp->fillloop("block_item" , $thislist ); $tmp->fill("%numrows%",sizeof($table[1])); ajax_echo(sup($tmp->output())); } else { // ajax_echo_r ($json); if ($json->r_viewmode) { $tmp_src = new Template($this->viewroot, 'main_'.$json->go.'_'.$json->r_viewmode.'.htt'); // load common parent template } else { $tmp_src = new Template($this->viewroot, 'main_'.$json->go.'_'.$json->r_cutby.'.htt'); // load common parent template if (!$tmp_src->is_template) { $tmp_src = new Template($this->viewroot, 'main_'.$json->go.'.htt'); // load common parent template } } $tmp_src->fill( '%imgfolder%' , $this->imgfolder ); // ajax_echo_r ($json); switch ($json->go) { case ('dashboard'): // $tmp_src->loadloop('block_dashboard'); // $cutBy = "customersources"; $cutBy = $json->r_cutby; $caption = $json->r_cutby_caption; $tmp_src->fill('%caption%', $caption); switch ($json->r_cutby) { case ('common'): $t = $this->model->getStats('common','', $json->s_UserID); $vars = $tmp_src->getVariables(); // ajax_echo_r ($t); foreach ($vars as $var) { if (is_numeric($item->$var)) { $tmp_src->fill( '%'.$var.'%', format($t->$var, "#.#") ); } else { $tmp_src->fill( '%'.$var.'%', $t->$var ); } } break; case ('monthly'): $list = $this->model->getMoneyStats($json->r_cutby); // ajax_echo_r ($list); $loop = new Template($this->viewroot, $tmp_src->returnloop('loop_row')); $vars = $loop->getVariables(); // ajax_echo_r ($t); foreach ($list->data as $t) { $loop->reload(); foreach ($vars as $var) { if (is_numeric($t->$var)) { $loop->fill( '%'.$var.'%', format($t->$var, "#.#") ); } else { $loop->fill( '%'.$var.'%', $t->$var ); } } $loopstr .= $loop->output(); } $tmp_src->fillloop('loop_row', $loopstr); $vars = $tmp_src->getVariables(); foreach ($vars as $var) { if (is_numeric($list->$var)) { $tmp_src->fill( '%'.$var.'%', format($list->$var, "#.#") ); } else { $tmp_src->fill( '%'.$var.'%', $list->$var ); } } break; case ('deposits'): $list = $this->model->getDepositsStats($json); // ajax_echo_r ($list); foreach (array('objects', 'customers') as $tablename) { $c = 0; $loop = new Template($this->viewroot, $tmp_src->returnloop('loop_table_row_'.$tablename)); $loopstr = ""; if ($list->$tablename) { $vars = $loop->getVariables(); // ajax_echo_r ($t); foreach ($list->$tablename as $t) { $loop->reload(); $loop->fill("%c%", $c%2); foreach ($vars as $var) { if (is_numeric($t->$var)) { $loop->fill( '%'.$var.'%', format($t->$var, "#.#") ); } else { $loop->fill( '%'.$var.'%', $t->$var ); } } $loopstr .= $loop->output(); $c++; } } else { $block_norows = new Template($this->viewroot, $tmp_src->returnloop('block_norows')); $loopstr = $block_norows->output(); } $tmp_src->fillloop('loop_table_row_'.$tablename, $loopstr); } /* $vars = $tmp_src->getVariables(); foreach ($vars as $var) { if (is_numeric($list->$var)) { $tmp_src->fill( '%'.$var.'%', format($list->$var, "#.#") ); } else { $tmp_src->fill( '%'.$var.'%', $list->$var ); } } */ break; case ('handshakes'): $list = $this->model->getHandshakesStats($json); // ajax_echo_r ($list); foreach (array('objects', 'customers') as $tablename) { $c = 0; $loop = new Template($this->viewroot, $tmp_src->returnloop('loop_table_row_'.$tablename)); $loopstr = ""; if ($list->$tablename) { $vars = $loop->getVariables(); // ajax_echo_r ($t); foreach ($list->$tablename as $t) { $loop->reload(); $loop->fill("%c%", $c%2); foreach ($vars as $var) { if (is_numeric($t->$var)) { $loop->fill( '%'.$var.'%', format($t->$var, "#.#") ); } else { $loop->fill( '%'.$var.'%', $t->$var ); } } $loopstr .= $loop->output(); $c++; } } else { $block_norows = new Template($this->viewroot, $tmp_src->returnloop('block_norows')); $loopstr = $block_norows->output(); } $tmp_src->fillloop('loop_table_row_'.$tablename, $loopstr); } /* $vars = $tmp_src->getVariables(); foreach ($vars as $var) { if (is_numeric($list->$var)) { $tmp_src->fill( '%'.$var.'%', format($list->$var, "#.#") ); } else { $tmp_src->fill( '%'.$var.'%', $list->$var ); } } */ break; case ('userseff'): $loop = new Template($this->viewroot, $tmp_src->returnloop('loop')); $t = $this->model->getStatsUsersEff($json); // ajax_echo_r ($t); $vars = $loop->getVariables(); $loopstr = ""; foreach ($t as $k=>$item) { $loop->reload(); $loop->fill('%total%', $k); foreach ($vars as $var) { if ($var) { if (is_numeric($item->$var)) { $loop->fill( '%'.$var.'%', format($item->$var, "#.#") ); } else { $loop->fill( '%'.$var.'%', $item->$var ); } } } $loopstr .= $loop->output(); } $tmp_src->fillloop('loop', $loopstr); break; default: $loop = new Template($this->viewroot, $tmp_src->returnloop('loop_customersources')); $t = $this->model->getStats('customers', $cutBy, $json->s_UserID); // ajax_echo_r ($t); $vars = $loop->getVariables(); $loopstr = ""; foreach ($t as $k=>$item) { $loop->reload(); $loop->fill('%total%', $k); foreach ($vars as $var) { if (is_numeric($item->$var)) { $loop->fill( '%'.$var.'%', format($item->$var, "#.#") ); } else { $loop->fill( '%'.$var.'%', $item->$var ); } } $loopstr .= $loop->output(); } $tmp_src->fillloop('loop_customersources', $loopstr); $loop = new Template($this->viewroot, $tmp_src->returnloop('loop_objectsources')); $t = $this->model->getStats('objects', $cutBy, $json->s_UserID); $vars = $loop->getVariables(); $loopstr = ""; foreach ($t as $k=>$item) { $loop->reload(); $loop->fill('%total%', $k); foreach ($vars as $var) { if (is_numeric($item->$var)) { $loop->fill( '%'.$var.'%', format($item->$var, "#.#") ); } else { $loop->fill( '%'.$var.'%', $item->$var ); } } $loopstr .= $loop->output(); } $tmp_src->fillloop('loop_objectsources', $loopstr); break; } $tmp_src->fillloop( "block_no","" ); $tmp_src->fillloop( "block_norows","" ); $tmp_src->fillloop( "block_type1","" ); $tmp_src->fillloop( "block_type2","" ); $tmp_src->fillloop( "block_dir0","" ); $tmp_src->fillloop( "block_dir1","" ); break; case ('news'): $looptmp = new Template($this->viewroot, $tmp_src->returnloop('loop_table')); $loop_table_row = new Template($this->viewroot, $tmp_src->returnloop('loop_table_row')); $vars = $loop_table_row->getVariables(); $c = 0; $thistable = ""; if (sizeof($table)) { $thisidcolumnname = $json->tablename."_ID"; foreach ($table as $item) { $loop_table_row->reload(); foreach ($vars as $vn) { if ($vn!=="Children") { $loop_table_row->fill("%".$vn."%", $item->$vn); } } $thistable.=$loop_table_row->output(); $c++; } } $looptmp->fillloop('loop_table_row',$thistable); $tmp_src->fillloop("loop_table",$looptmp->output()); $tmp_src->fill("%numrows%",sizeof($table)); break; case ('money'): $looptmp = new Template($this->viewroot, $tmp_src->returnloop('loop_table')); $loop_table_row = new Template($this->viewroot, $tmp_src->returnloop('loop_table_row')); $vars = $loop_table_row->getVariables(); $block_type = array(); $block_type[1] = new Template($this->viewroot, $tmp_src->returnloop('block_type1')); $block_type[2] = new Template($this->viewroot, $tmp_src->returnloop('block_type2')); $block_type[1] = $block_type[1]->output(); $block_type[2] = $block_type[2]->output(); $lastTypeID = -1; $c = 0; // ajax_echo_r ($table[1]); $thistable = ""; if (sizeof($table)) { $thisidcolumnname = $json->tablename."_ID"; foreach ($table[1] as $item) { if ($lastTypeID!=$item->TypeID) { $lastTypeID = $item->TypeID; $c = 1; } $loop_table_row->reload(); $loop_table_row->fill( "%TypePicture%", $block_type[$item->TypeID]); $loop_table_row->fill("%c%", $c%2+($item->TypeID-1)*2); foreach ($vars as $vn) { $loop_table_row->fill("%".$vn."%", $item->$vn); } $thistable.=$loop_table_row->output(); $c++; } } $looptmp->fillloop('loop_table_row',$thistable); $tmp_src->fillloop("loop_table",$looptmp->output()); $tmp_src->fill("%numrows%",sizeof($table[1])); $tmp_src->fillloop( "block_no","" ); $tmp_src->fillloop( "block_norows","" ); $tmp_src->fillloop( "block_type1","" ); $tmp_src->fillloop( "block_type2","" ); break; case ('events'): // ajax_echo_r ($json); if (($json->go=='events') || ($json->go=='customers') || ($json->r_viewmode=='all') || ($json->r_viewmode=='current')) { $looptmp = clone $tmp_src; $looptmp->loadloop("loop_table"); $tmp = clone $looptmp; if (sizeof($table[1])) { $block_no = clone $looptmp; $block_no->loadloop('block_no'); $block_no=$block_no->output(); $tmp->loadloop("checkbox_th"); $checkbox_th=clone $tmp; $tmp = clone $looptmp; $tmp->loadloop("checkbox_td"); $checkbox_td=clone $tmp; $tmp = clone $looptmp; $loop_table_row = clone $looptmp; // load common parent template $loop_table_cell = clone $looptmp; // load common parent template $looptmp->loadloop("loop_table_header"); $loopdata = ""; $loopdata.=$checkbox_th->output(); if ($table[0]) { foreach ($table[0] as $k => $v ) { if ($v) { if ($v!='CustomerID') { $looptmp->reload(); $looptmp->fill("%th%" , $this->StringForge->prepare($v)); $loopdata.=$looptmp->output(); } } } } $tmp->fillloop("loop_table_header" ,$loopdata ); $loop_table_row->loadloop("loop_table_row"); $loop_table_cell->loadloop("loop_table_cell"); $emptyinfo = file_get_contents($this->viewroot.'/templates/emptyinfo.htt'); $c = 0; $thistable = ""; $thisidcolumnname = $json->tablename."_ID"; foreach ($table[1] as $item) { $loop_table_row->reload(); $thisrow = ""; $checkbox_td->reload(); $checkbox_td->fill('%checked%' , 'checked' ); $checkbox_td->fill('%id%' , $item->$thisidcolumnname ); $thisrow.=$checkbox_td->output(); foreach ($item as $k=>$v) { if ($k && ($k!='CustomerID')) { $loop_table_cell->reload(); if ($k==$json->tablename."_AuxInfo") { if (trim($v)=="") $v=$emptyinfo; } $loop_table_cell->fill("%celldata%" , (((int)$v==0) && ((string)(int)$v==$v))?$block_no:($v)); $loop_table_cell->fill("%k%" , $k); $thisrow.=$loop_table_cell->output(); } } $loop_table_row->fillloop('loop_table_cell',$thisrow); $loop_table_row->fill("%c%", $c%2); $loop_table_row->fill("%id%" , $item->ID ); $loop_table_row->fill("%tablename%" , $json->tablename ); $thistable.=$loop_table_row->output(); $c++; } $tmp->fillloop('loop_table_row',$thistable); $tmp->fillloop("checkbox_th",""); $tmp->fillloop("checkbox_td",""); $tmp_src->fillloop("block_norows",""); $tmp_src->fillloop("loop_table",$tmp->output()); } else { $block_norows = clone $looptmp; $block_norows->loadloop('block_norows'); $block_norows=$block_norows->output(); $tmp_src->fillloop("loop_table",$block_norows); } $tmp_src->fill("%numrows%",sizeof($table[1])); } else { switch ($json->r_viewmode=='monthly') { case ('monthly'): $loop_month = clone $tmp_src; $loop_month->loadloop('loop_month'); $loop_bytype = clone $tmp_src; $loop_bytype->loadloop('loop_bytype'); $months = ""; if (sizeof($table[1])) { $report=array(); $prevmonth = -1; //ajax_echo_r($table[1][0]); $thismonth = new stdClass(); $fakeitem = new stdClass(); $fakeitem->Month=-2; $table[1][]=$fakeitem; foreach ($table[1] as $item) { if (($prevmonth!=$item->Month) && ($thismonth->month)) { $days = cal_days_in_month(CAL_GREGORIAN, $thismonth->month, $thismonth->year); $thismonth->etm = $etm; $thismonth->itm = $itm; $thismonth->aetm = sprintf("%01F", $etm/$days); $thismonth->aitm = sprintf("%01F", $itm/$days); $thismonth->ietm = $ietm; $thismonth->eetm = $eetm; arsort($bytype); $thismonth->bytype = $bytype; $report[] = clone $thismonth; $etm = 0; $itm = 0; $ietm = 0; $eetm = 0; $bytype = array(); } // if ($item->Month==5) { // ajax_echo_r($bytype); // } $thismonth->year = $item->Year ; $thismonth->month = $item->Month ; $bytype[$item->Description] += $item->Value; If (($item->EZID == 1) And ($item->TypeID == 2)) { $eetm += $item->Value; } If (($item->EZID == 2) And ($item->TypeID == 2)) { $ietm += $item->Value; } If (($item->TypeID == 1) || ($item->TypeID == 3)) { // income $itm += $item->Value; } else { // expenditure $etm += $item->Value; } $prevmonth=$item->Month; } foreach ($report as $thismonth) { $loop_month->reload(); $loop_month->fill( "%year%",$thismonth->year ); $loop_month->fill("%month%",$thismonth->month); $loop_month->fill( "%etm%",$thismonth->etm ); $loop_month->fill( "%itm%",$thismonth->itm ); $loop_month->fill( "%aetm%",$thismonth->aetm ); $loop_month->fill( "%aitm%",$thismonth->aitm ); $loop_month->fill( "%eetm%",$thismonth->eetm ); $loop_month->fill( "%ietm%",$thismonth->ietm ); $bytype=""; if (is_array($thismonth->bytype)) { foreach ($thismonth->bytype as $k=>$v) { $loop_bytype->reload(); $loop_bytype->fill("%k%",$k); $loop_bytype->fill("%v%",$v); $bytype.= $loop_bytype->output(); } } $loop_month->fillloop("loop_bytype",$bytype); $months.=$loop_month->output(); } } $tmp_src->fillloop("loop_month",$months); break; } } break; case ('spiderman'): $looptmp = clone $tmp_src; $looptmp->loadloop('loop_item'); $loop_item = ""; $vars = $looptmp->getVariables(); $parents[] = array(); // ajax_echo_r ($table[1]); if (sizeof($table[1])) { foreach ($table[1] as $item) { foreach ($vars as $vn) { if ($vn!=="Children") { $looptmp->fill("%".$vn."%", $item->$vn); } } if (!$parents[$item->ParentID]) $parents[$item->ParentID] = new stdClass(); $parents[$item->ParentID]->Content.=$looptmp->output(); $parents[$item->ParentID]->ID=$item->ID; // $loop_item.=$looptmp->output(); $looptmp->reload(); } } // ajax_echo_r ($parents); foreach($parents as $parent) { $parent->Content = str_replace("Children_".$parent->ID."_", $parents[$parent->ID]->Content, $parent->Content); // ajax_echo_r ($parent->Content); // echo "<hr>"; } foreach ($table[1] as $item) { $parents[0]->Content = str_replace("Children_".$item->ID."_", "", $parents[0]->Content); } $loop_item=$parents[0]->Content; $tmp_src->fillloop('loop_item', $loop_item); break; case ('diary'): $block_no = new Template($this->viewroot, $tmp_src->returnloop('block_no')); $block_no=$block_no->output(); $block_norows = new Template($this->viewroot, $tmp_src->returnloop('block_norows')); $block_norows=$block_norows->output(); // $looptmp->loadloop("loop_table"); // $tmp = clone $looptmp; $checkbox_th = new Template($this->viewroot, $tmp_src->returnloop('checkbox_th')); $checkbox_td = new Template($this->viewroot, $tmp_src->returnloop('checkbox_td')); $loop_table_row = new Template($this->viewroot, $tmp_src->returnloop('loop_table_row')); $loopdata = ""; $loopdata.=$checkbox_th->output(); $cols = array(); $cols[] = 'ID'; $cols[] = 'DateAdded'; $cols[] = 'DateTarget'; $cols[] = 'Description'; $emptyinfo = file_get_contents($this->viewroot.'/templates/emptyinfo.htt'); $c = 0; $thistable = ""; if (sizeof($table[1])) { $thisidcolumnname = $json->tablename."_ID"; // echo $thisidcolumnname."<br>"; foreach ($table[1] as $item) { $loop_table_row->reload(); $thisrow = ""; $checkbox_td->reload(); $checkbox_td->fill('%checked%' , 'checked' ); $checkbox_td->fill('%id%' , $item->$thisidcolumnname ); $thisrow.=$checkbox_td->output(); $loop_table_row->fill( "%ID%", $item->ID); foreach ($cols as $cv) { $k=$cv; $v = $item->$k; if ($k && ($k!='CustomerID')) { if ($k==$json->tablename."_AuxInfo") { if (trim($v)=="") $v=$emptyinfo; } $loop_table_row->fill( "%".$k."%", (((int)$v==0) && ((string)(int)$v==$v) && ($k!='Cost'))?$block_no:($v)); } } $loop_table_row->fillloop('loop_table_cell',$thisrow); $loop_table_row->fill("%c%", ($c%2) + ((date_timestamp_get(date_create($item->DateTarget))<date_timestamp_get(date_create()) )?0:2) ); // echo (date_timestamp_get(date_create($item->DateTarget))."-".date_timestamp_get(date_create())."<br>"); $loop_table_row->fill("%id%" , $item->ID ); $loop_table_row->fill("%tablename%" , $json->tablename ); $thistable.=$loop_table_row->output(); $c++; } } else { /* $thisrow = ""; $thisrow.=$block_norows; $loop_table_row->fillloop('loop_table_cell',$thisrow); $loop_table_row->fill("%c%", $c%2); $thistable.=$loop_table_row->output(); */ $tmp_src->fillloop('loop_table', $block_norows); } $tmp_src->removeloop('loop_table'); $tmp_src->fillloop('loop_table_row',$thistable); $tmp_src->fillloop( "block_no","" ); $tmp_src->fillloop( "block_norows","" ); $tmp_src->fill("%numrows%",sizeof($table[1])); break; case ('objects'): $tmp_src = $this->fillObjects($tmp_src, $table, $json, $userdetails); break; case ('customers'): $tmp_src = $this->fillCustomers($tmp_src, $table, $json, $userdetails); break; case ('happiness'): if ($json->r_viewmode=='objects') { $tmp_src_subitems = new Template($this->viewroot, 'main_customers.htt'); // load common parent template $tmp_src = $this->fillObjects($tmp_src, $table, $json, $userdetails, $tmp_src_subitems); } else { $tmp_src_subitems = new Template($this->viewroot, 'main_objects.htt'); // load common parent template $tmp_src = $this->fillCustomers($tmp_src, $table, $json, $userdetails, $tmp_src_subitems); } if ($json->r_viewmode=='objects') { $objects = $this->fillCustomers(clone $tmp_src_subitems, $item->subitems, $json, $userdetails); } else { $objects = $this->fillObjects (clone $tmp_src_subitems, $item->subitems, $json, $userdetails); } break; case ('users'): // echo $id; if ($id) { $tmp_src->fillloop('block_delete', ''); } else { $tmp_src->removeloop('block_delete'); } $block_no = new Template($this->viewroot, $tmp_src->returnloop('block_no')); $block_no=$block_no->output(); $block_norows = new Template($this->viewroot, $tmp_src->returnloop('block_norows')); $block_norows=$block_norows->output(); $checkbox_th = new Template($this->viewroot, $tmp_src->returnloop('checkbox_th')); $checkbox_td = new Template($this->viewroot, $tmp_src->returnloop('checkbox_td')); $loop_table_row = new Template($this->viewroot, $tmp_src->returnloop('loop_table_row')); $block_dir = array(); $block_dir[0] = new Template($this->viewroot, $tmp_src->returnloop('block_dir0')); $block_dir[1] = new Template($this->viewroot, $tmp_src->returnloop('block_dir1')); $block_dir[0] = $block_dir[0]->output(); $block_dir[1] = $block_dir[1]->output(); $loopdata = ""; $loopdata.=$checkbox_th->output(); $cols = $loop_table_row->getVariables(); // ajax_echo_r ($cols); $emptyinfo = file_get_contents($this->viewroot.'/templates/emptyinfo.htt'); $c = 0; $thistable = ""; if (sizeof($table[1])) { $thisidcolumnname = $json->tablename."_ID"; // echo $thisidcolumnname."<br>"; foreach ($table[1] as $item) { $loop_table_row->reload(); $thisrow = ""; $checkbox_td->reload(); $checkbox_td->fill('%checked%' , 'checked' ); $checkbox_td->fill('%id%' , $item->$thisidcolumnname ); $thisrow.=$checkbox_td->output(); $loop_table_row->fill( "%ID%", $item->ID); $loop_table_row->fill( "%calldiretion%", $block_dir[$item->DirectionID]); // $loop_table_row->fill("%c%", ($c%2) + (((date_timestamp_get(date_create($item->LastAccess)) + 3600*72)>date_timestamp_get(date_create()) )?0:2) ); $loop_table_row->fill("%c%", $c%2); foreach ($cols as $cv) { $k=$cv; $v = $item->$k; if ($k && ($k!='CustomerID')) { if ($k==$json->tablename."_AuxInfo") { if (trim($v)=="") $v=$emptyinfo; } $loop_table_row->fill( "%".$k."%", (((int)$v==0) && ((string)(int)$v==$v) && ($k!='Cost'))?$block_no:($v)); } } $loop_table_row->fillloop('loop_table_cell',$thisrow); // echo (date_timestamp_get(date_create($item->DateTarget))."-".date_timestamp_get(date_create())."<br>"); $loop_table_row->fill("%id%" , $item->ID ); $loop_table_row->fill("%tablename%" , $json->tablename ); $thistable.=$loop_table_row->output(); $c++; } } else { /* $thisrow = ""; $thisrow.=$block_norows; $loop_table_row->fillloop('loop_table_cell',$thisrow); $loop_table_row->fill("%c%", $c%2); $thistable.=$loop_table_row->output(); */ $tmp_src->fillloop('loop_table', $block_norows); } $tmp_src->removeloop('loop_table'); $tmp_src->fillloop('loop_table_row',$thistable); $tmp_src->fillloop( "block_no","" ); $tmp_src->fillloop( "block_norows","" ); $tmp_src->fillloop( "block_dir0","" ); $tmp_src->fillloop( "block_dir1","" ); $tmp_src->fill("%numrows%",sizeof($table[1])); break; } $tmp_src->processfcb(''); $tmp_src->fill( '%imgfolder%' , $this->imgfolder ); $tmp_src->fill( '%viewroot%' , $this->viewroot ); ajax_echo(sup($tmp_src->output())); } break; case ('showtasks'): // ajax_echo_r($json); // session_write_close(); setsecurevariable('TaskListID', $json->flt_TaskListID); setsecurevariable('ProjectID', $json->flt_ProjectID); $loop = new Template($this->viewroot, 'main_tasks.htt'); // load common parent template $block_notasks = new Template($this->viewroot, $loop->returnloop('block_notasks')); $loop->loadloop("loop_task".$json->listid); $list = $this->model->getTasks($json); // ajax_echo_r ($list); $loopdata = ""; $vars = $loop->getVariables(); // ajax_echo_r($vars); if (sizeof($list)>0) { // $i=0; foreach ($list as $ik=>$iv) { // ajax_echo_r ($iv); // echo $iv->ProjectShortTitle; // if (($i==0) && ($json->flt_TaskListID>0)) setsecurevariable('ShortTitle', $iv->ProjectShortTitle); // $block_comments = $this->getComments($iv->ID); // $loop->fill( '%Comments%' , $block_comments ); foreach ($vars as $vn) { if ($vn=='Description') { $loop->fill("%".$vn."%", ru_translate("".$iv->$vn)); } else { $loop->fill("%".$vn."%", ($iv->$vn)); } } if ($iv->StateID==1) { $loop->fillloop('block_paused',''); $loop->removeloop('block_playing'); } else { $loop->removeloop('block_paused'); $loop->fillloop('block_playing',''); } $loop->processfcb(''); $loop->fill( '%imgfolder%' , $this->imgfolder ); $loopdata.=$loop->output(); $loop->reload(); // $i++; } } else { $loopdata.=$block_notasks->output(); //$loopdata.=$block_notasks->output(); } ajax_echo($loopdata); // ajax_echo_r($buf); break; case ('generateresult'): // $block_link = new Template($this->viewroot, 'mainparent.htt'); // $block_link->loadloop('block_link'); // $block_link->fill('%href%', $this->model->generateOutput()); // echo localize($block_link->output()); echo $this->model->generateOutput(); // echo ('test'); break; case ("cleardatabase"): setCache('data', ""); break; case ('clearColumn'): echo $this->model->clearColumn($json->id); break; case ("setListID"): $this->model->setListID($json); break; case ("addTask"): $json->AddedBy = $userid; // echo $userid; $this->model->addTask($json); break; case ("deleteTask"): $this->model->deleteTask($json); break; case ("resumeTask"): $this->model->resumeTask($json); break; case ("pauseTask"): $this->model->pauseTask($json); break; case ('closeProject'): ajax_echo_r ($json); $ret = $this->model->closeProject($json); ajax_echo_r ($ret); break; case ('addProject'): $this->model->addProject($json, $userid); break; case ('deleteProject'): $this->model->deleteProject($json); break; case ('addComment'): $json->UserID = $userid; ajax_echo_r ($json); $ret = $this->model->addComment($json); ajax_echo_r ($ret); break; case ('getComments'): // ajax_echo_r($json); // ajax_echo_r (htmlentities($this->getComments($json))); ajax_echo (($this->getComments($json))); break; case ('deleteComment'): // ajax_echo_r($json); $ret = $this->model->deleteComment($json); // ajax_echo_r($ret); echo $this->getComments($ret); break; case ('addSpider'): $this->model->addSpider($json); break; case ('deleteSpider'): $this->model->deleteSpider($json); break; case ('api'): $method = getvariablereq('method'); switch ($method) { case ('getCurrentProjects'): $json = new stdClass; $json->tablemode = 0; $json->isexport = 0; $json->go = "projects"; $json->r_projectsview = "current"; $json->tablename = "projects"; $json->isapi = 1; $table = $this->model->getTable($json); break; default: echo "Unknown api method: ".$method; break; } echo json_encode($table); break; case ('loadUserPrivileges'): echo $this->getUserPrivileges($json); break; case ('addUserPrivilege'): $this->model->addUserPrivilege($json); echo $this->getUserPrivileges($json); break; case ('removeUserPrivilege'): $this->model->removeUserPrivilege($json); echo $this->getUserPrivileges($json); break; case ('selectChange'): // ajax_echo_r($json); $ret = new stdClass; $ret->debug = ajax_return_r($json); switch ($json->id) { case ('TypeID'): $leftcontent = new Template($this->viewroot, 'left_money.htt'); // load common parent template $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_groupids")); $list = $this->model->getExpenditureGroups($json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_groupids', $loopdata); $ret->GroupID = localize($loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placenames")); $list = $this->model->getPlaceNames($json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_placenames', $loopdata); $ret->PlaceName = localize($loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placetypes")); $list = $this->model->getPlaceTypes($json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_placetypes', $loopdata); $ret->PlaceType = localize($loopdata); break; case ('GroupID'): $leftcontent = new Template($this->viewroot, 'left_money.htt'); // load common parent template $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placenames")); $list = $this->model->getPlaceNames(0, 0, $json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_placenames', $loopdata); $ret->PlaceName = localize($loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placetypes")); $list = $this->model->getPlaceTypes(0, 0, $json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_placetypes', $loopdata); $ret->PlaceType = localize($loopdata); break; case ('PlaceType'): $leftcontent = new Template($this->viewroot, 'left_money.htt'); // load common parent template $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placenames")); $list = $this->model->getPlaceNames(0, $json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_placenames', $loopdata); $ret->PlaceName = localize($loopdata); break; case ('PlaceName'): $leftcontent = new Template($this->viewroot, 'left_money.htt'); // load common parent template $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placetypes")); $list = $this->model->getPlaceTypes(0, $json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); // $leftcontent->fillloop('loop_placetypes', $loopdata); $ret->PlaceType = localize($loopdata); break; case ('CustomerTypeID'): $leftcontent = new Template($this->viewroot, 'left_objects.htt'); // load common parent template $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersources")); $list = $this->model->getCustomerSources($json->value); $loopdata = $this->fillList($list, $loop, 0); $ret->SourceID = localize($loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersubtypes")); $list = $this->model->getCustomerSubtypes($json->value); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, 0); $ret->CustomerSubtypeID = localize($loopdata); break; } echo json_encode($ret); break; case ('newMoney'): // ajax_echo_r ($json); if ($json->ID) { $rec = $this->model->getMoney($json->ID); } else { $rec = new stdClass; $rec->TypeID=1; } // ajax_echo_r ($rec); $leftcontent = new Template($this->viewroot, "editor_money.htt"); // $leftcontent->loadloop('block_popupdefault',''); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_typeids")); $list = $this->model->getList('moneyrecordtypes'); // ajax_echo_r ($list); // ajax_echo_r ($rec); $loopdata = $this->fillList($list, $loop, $rec->TypeID); $leftcontent->fillloop('loop_typeids', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_groupids")); $list = $this->model->getExpenditureGroups($rec->TypeID); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, $rec->GroupID); $leftcontent->fillloop('loop_groupids', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersources_objects")); $list = $this->model->getCustomerSources(1); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, $rec->SourceID); $leftcontent->fillloop('loop_customersources_objects', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersources_customers")); $list = $this->model->getCustomerSources(2); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, $rec->SourceID); $leftcontent->fillloop('loop_customersources_customers', $loopdata); /* $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_months")); $list = $this->model->getMonths('money','DateAdded'); $loopdata = $this->fillList($list, $loop, 0); $leftcontent->fillloop('loop_months', $loopdata); */ $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_objects")); $list = $this->model->getObjects(false, 1); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, $rec->ObjectID); $leftcontent->fillloop('loop_objects', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customers")); $list = $this->model->getCustomers(); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop, $rec->CustomerID); $leftcontent->fillloop('loop_customers', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_users")); $list = $this->model->getUsersLst(); $loopdata = $this->fillList($list, $loop, $rec->UserID); $leftcontent->fillloop('loop_users', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placenames")); $list = $this->model->getPlaceNames($rec->TypeID); $loopdata = $this->fillList($list, $loop, $rec->PlaceName, "PlaceName"); $leftcontent->fillloop('loop_placenames', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_placetypes")); $list = $this->model->getPlaceTypes($rec->TypeID); $loopdata = $this->fillList($list, $loop, $rec->PlaceType, "PlaceType"); $leftcontent->fillloop('loop_placetypes', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_accounts")); $list = $this->model->getListOrdered('accounts', 'ID'); $loopdata = $this->fillList($list, $loop, $rec->AccountID); $leftcontent->fillloop('loop_accounts', $loopdata); // $leftcontent $vars = $leftcontent->getVariables(); foreach ($vars as $var) { if ($var) { $leftcontent->fill( "%".$var."%" , $rec->$var); } } $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); $leftcontent->processfcb(''); ajax_echo (localize($leftcontent->output())); break; case ('addMoney'): $ret = new stdClass; // if (date_create($json->DateAdded)) { // ajax_echo_r (date_create($json->DateAdded)); // echo "test: ".(date_format(date_create($json->DateAdded), 'Y')); // } // return 1; if (floatval($json->Value)<=0) { $ret->message = $this->getMessage('addmoney_error_novalue'); $ret->result = 0; } elseif ((date_create($json->DateAdded)) && ((int)date_format(date_create($json->DateAdded), 'Y')<1985)) { $ret->message = $this->getMessage('addmoney_error_nodate'); $ret->result = 0; } else { if ($this->model->addMoney($json)) { $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; } } echo json_encode($ret); break; case ('deleteMoney'): $this->model->deleteMoney($json); break; case ('newDiary'): // ajax_echo_r ($json); if ($json->ID) { $rec = $this->model->getDiary($json->ID); } else { $rec = new stdClass; $rec->TypeID=1; } // ajax_echo_r ($rec); $leftcontent = new Template($this->viewroot, "left_diary.htt"); $leftcontent->loadloop('block_popupdefault',''); $vars = $leftcontent->getVariables(); foreach ($vars as $var) { if ($var) { $leftcontent->fill( "%".$var."%" , brtonl($rec->$var)); } } $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); $leftcontent->processfcb(''); ajax_echo (localize($leftcontent->output())); break; case ('addDiary'): $ret = new stdClass; if (($json->Description)=='') { $ret->message = $this->getMessage('addmoney_error_novalue'); $ret->result = 0; } elseif ((date_create($json->DateTarget)) && ((int)date_format(date_create($json->DateTarget), 'Y')<1985)) { $ret->message = $this->getMessage('addmoney_error_nodate'); $ret->result = 0; } else { if ($this->model->addDiary($json)) { $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; } } echo json_encode($ret); break; case ('deleteDiary'): $this->model->deleteDiary($json); break; case ('newUser'): $leftcontent = new Template($this->viewroot, "left_users.htt"); $leftcontent->loadloop('block_popupdefault',''); if ($userdetails->GroupID==1) { $leftcontent->removeloop('block_adminonly2'); } else { $leftcontent->fillloop('block_adminonly2',''); } if ($json->ID) { $rec = $this->model->getUser($json->ID); $leftcontent->removeloop('block_editonly'); } else { $rec = new stdClass; $rec->TypeID=1; $leftcontent->fillloop('block_editonly', ''); } $leftcontent->fillloop('block_p',''); $vars = $leftcontent->getVariables(); foreach ($vars as $var) { if ($var) { $leftcontent->fill( "%".$var."%" , brtonl($rec->$var)); } } $leftcontent->processfcb(''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); ajax_echo (localize($leftcontent->output())); break; case ('addUser'): $ret = new stdClass; if (($json->Username=='') && ($userdetails->ID!=1)) { $ret->message = $this->getMessage('adduser_error_nousername'); $ret->result = 0; } elseif (($json->Email=='') && ($userdetails->ID!=1)) { $ret->message = $this->getMessage('adduser_error_noemail'); $ret->result = 0; } else { if ($this->model->addUser($json)) { $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; } } echo json_encode($ret); break; case ('deleteUser'): $this->model->deleteUser($json); break; case ('updatePassword'): $ret = new stdClass; if ($json->Password=='') { $ret->message = $this->getMessage('updatepassword_error_nopassword'); $ret->result = 0; } else { if ($this->model->updatePassword($json)) { $ret->message = $this->getMessage('updatepassword_success'); $ret->result = 1; } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; } } echo json_encode($ret); break; case ('cloneObject'): case ('newObject'): $leftcontent = new Template($this->viewroot, "editor_objects.htt"); $rec = $this->model->getObject($json, $userdetails); // $rec_od = $this->model->getObjectDetails($rec->ID, $rec->MarketID); if ($action=='cloneObject') $rec->ID = ''; if (($rec->UserID!=$userid) && ($userdetails->GroupID!=1)) { $leftcontent->fillloop ('block_phone_editor',''); $leftcontent->removeloop('block_phone_hidden'); $leftcontent->fillloop ('block_userselector',''); $leftcontent->removeloop('block_nouserselector'); } else { $leftcontent->removeloop('block_phone_editor'); $leftcontent->fillloop ('block_phone_hidden',''); $leftcontent->removeloop('block_userselector'); $leftcontent->fillloop ('block_nouserselector',''); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_users")); $list = $this->model->getList('users'); $loopdata = $this->fillList($list, $loop, $rec->UserID); $leftcontent->fillloop('loop_users', $loopdata); } $typepicture = array(); $typepicture[1] = $leftcontent->returnloop('block_typepicture_1'); $typepicture[2] = $leftcontent->returnloop('block_typepicture_2'); $typepicture[3] = $leftcontent->returnloop('block_typepicture_3'); $typepicture[4] = $leftcontent->returnloop('block_typepicture_4'); $typepicture[5] = $leftcontent->returnloop('block_typepicture_5'); $typepicture[6] = $leftcontent->returnloop('block_typepicture_6'); $leftcontent->fillloop('block_typepicture_1', ''); $leftcontent->fillloop('block_typepicture_2', ''); $leftcontent->fillloop('block_typepicture_3', ''); $leftcontent->fillloop('block_typepicture_4', ''); $leftcontent->fillloop('block_typepicture_5', ''); $leftcontent->fillloop('block_typepicture_6', ''); // $leftcontent->loadloop('block_popupdefault',''); /* $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customertypes")); $list = $this->model->getList('customertypes'); $loopdata = $this->fillList($list, $loop, $rec->CustomerTypeID); $leftcontent->fillloop('loop_customertypes', $loopdata); */ $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_methodsofpayment")); $list = $this->model->getMethodsOfPayment(2); $loopdata = $this->fillList($list, $loop, $rec->MethodOfPaymentID); $leftcontent->fillloop('loop_methodsofpayment', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersources")); $list = $this->model->getCustomerSources($rec->CustomerTypeID); $loopdata = $this->fillList($list, $loop, $rec->SourceID); $leftcontent->fillloop('loop_customersources', $loopdata); /* $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_mortgages")); $list = $this->model->getList('mortgages'); $loopdata = $this->fillList($list, $loop, $rec->MortgageID); $leftcontent->fillloop('loop_mortgages', $loopdata); */ $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersubtypes")); $list = $this->model->getCustomerSubtypes($rec->CustomerTypeID); $loopdata = $this->fillList($list, $loop, $rec->CustomerSubtypeID); $leftcontent->fillloop('loop_customersubtypes', $loopdata); // ajax_echo_r ($rec); $marketname = ($rec->MarketID==1)?"apartments":"newbuildings"; // $innercontent = new Template($this->viewroot, "left_objects_".$marketname.".htt"); $leftcontent = $this->fillLists($leftcontent, $marketname, $rec); // echo htmlentities ($leftcontent->output()); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts")); // $list = getFromCache('regions'); // $list = json_decode($list); $list = $this->model->getList('districts'); $loopdata = $this->fillList($list, $loop, $rec->DistrictID); $leftcontent->fillloop('loop_districts', $loopdata); if ($rec->ID) { $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_statuses")); $list = $this->model->getStatuses($rec->ID, 'objects'); foreach ($list as $item) { $item->typepicture = $typepicture[$item->TypeID]; } $loopdata = $this->fillList($list, $loop); } else { $loopdata = ""; } $leftcontent->fillloop('loop_statuses', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_statustypes")); $list = $this->model->getList('statustypes'); // ajax_echo_r ($list); $loopdata = $this->fillList($list, $loop); $leftcontent->fillloop('loop_statustypes', $loopdata); $leftcontent->removeloop('block_statuses'); $leftcontent->removeloop('loop_addr_default'); $leftcontent->fillloop('loop_addr', ''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); $vars = $leftcontent->getVariables(); foreach ($vars as $var) { if ($var) { $leftcontent->fill( "%".$var."%" , brtonl($rec->$var)); } } $leftcontent->fillloop('loop_table', ''); $leftcontent->processfcb(''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); ajax_echo (localize($leftcontent->output())); break; case ('addObject'): $ret = new stdClass; // if ($json->Status=='') { // $ret->message = $this->getMessage('addcall_error_novalue'); // $ret->result = 0; // } else if (($json->UserID!=$userid) && ($userdetails->GroupID!=1)) { $ret->message = $this->getMessage('error_nouserrights'); $ret->result = 0; $ret->canproceed = 0; } elseif ((date_create($json->DateTarget)) && ((int)date_format(date_create($json->DateTarget), 'Y')<1985)) { $ret->message = $this->getMessage('addmoney_error_nodate'); $ret->result = 0; $ret->canproceed = 0; } elseif ($json->Phone=='') { $ret->message = $this->getMessage('addcall_error_nophone'); $ret->result = 0; $ret->canproceed = 0; } else { $r = $this->model->addObject($json); // ajax_echo_r ($r); // $rs = $this->model->addSubObject($json); // if ($r->rowsAffected>0) { $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; $ret->canproceed = 1; if ($r->lastInsertID) { $ret->ID = $r->lastInsertID; } else { $ret->ID = $json->ID; } /* } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; $ret->canproceed = 1; $ret->ID = $json->ID; } */ } echo json_encode($ret); break; case ('deleteObject'): $this->model->deleteObject($json); break; case ('addSubObject'): // ajax_echo_r ($json); $ret = new stdClass; if ($json->MarketID==1) { if ($json->Floor=='') { $ret->message = $this->getMessage('error_nofloor'); $ret->result = 0; $ret->canproceed = 0; /* } elseif ($json->Floors=='') { $ret->message = $this->getMessage('error_nofloors'); $ret->result = 0; $ret->canproceed = 0; } elseif ($json->RoomsTotal=='') { $ret->message = $this->getMessage('error_norooms'); $ret->result = 0; $ret->canproceed = 0; */ } else { $ret->canproceed = 1; } } else { if ($json->Floors=='') { $ret->message = $this->getMessage('error_nofloors'); $ret->result = 0; $ret->canproceed = 0; } else { $ret->canproceed = 1; } } if ($ret->canproceed) { $r = $this->model->addSubObject($json); //if ($r->rowsAffected>0) { $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; $ret->canproceed = 1; if ($r->lastInsertID) { $ret->ID = $r->lastInsertID; } else { $ret->ID = $json->ID; } /* } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; $ret->canproceed = 1; $ret->ID = $json->ID; } */ } echo json_encode($ret); break; case ('loadObjectDetails'): // ajax_echo_r ($json); $rec = $this->model->getObject($json, $userdetails); // ajax_echo_r ($rec); $marketname = ($rec->MarketID==1)?"apartments":"newbuildings"; $innercontent = new Template($this->viewroot, "left_objects_".$marketname.".htt"); // $rec_od = $this->model->getObjectDetails($rec->ID, $rec->MarketID); $loop = new Template($this->viewroot, $innercontent->returnloop("loop_quarters")); $list = $this->model->getList('quarters'); $loopdata = $this->fillList($list, $loop, $rec_od->CompletionDateQuarter); $innercontent->fillloop('loop_quarters', $loopdata); $startyear = (int)date('Y') -10; $endyear = (int)date('Y') +10; $loop = new Template($this->viewroot, $innercontent->returnloop("loop_years")); $list = array(); for ($y = $startyear; $y<$endyear; $y++) { $list[$y] = new stdClass; $list[$y]->ID = $y; $list[$y]->Description = $y; } $loopdata = $this->fillList($list, $loop, $rec_od->CompletionDateYear); $innercontent->fillloop('loop_years', $loopdata); $leftcontent = $this->fillLists($leftcontent, $marketname, $rec); $leftcontent->fillloop('loop_table', ''); // ajax_echo_r ($rec_od); echo $this->fillObjectDetails($innercontent, $rec_od); break; case ("fillnewbuildingssubitems"): // echo_r('deleteID: '.$json->deleteID); // ajax_echo_r ($json); if ($json->deleteID) { $this->model->deleteRow('newbuildings_subitems',$json->deleteID); } if ($json->addID) { $this->model->addNewbuilding($json->ID); } $table = $this->model->getListByParentID('newbuildings_subitems','ParentID',$json->ID); // ajax_echo_r($table); $tmp = new Template($this->viewroot, 'left_objects_newbuildings.htt'); // load common parent template $tmp->loadloop("loop_table"); if (sizeof($table)) { $loop_table_row = new Template($this->viewroot, $tmp->returnloop("loop_table_row")); // load common parent template $block_no = new Template($this->viewroot, $tmp->returnloop("block_no")); $block_no=$block_no->output(); $loopdata = ""; $c = 0; $thistable = ""; $vars = $tmp->getVariables(); foreach ($table as $item) { $loop_table_row->reload(); $loop_table_row->fill("%c%", $c%2); foreach ($vars as $var) { if ($var) { $loop_table_row->fill( "%".$var."%" , $item->$var); } } $thistable.=$loop_table_row->output(); $c++; } $tmp->fillloop('loop_table_row',$thistable); $tmp->fillloop( "block_no",""); $tmp->fillloop("block_norows",""); $tmp->processfcb(''); $tmp->fill('%imgfolder%', $this->imgfolder); ajax_echo (localize($tmp->output())); } else { $block_norows = new Template($this->viewroot, $tmp->returnloop("block_norows")); $block_norows=$block_norows->output(); ajax_echo (localize($block_norows)); } break; case ("savefield"): $this->model->saveField($json); break; case ('newCustomer'): $leftcontent = new Template($this->viewroot, "editor_customers.htt"); if ($json->ID) { $rec = $this->model->getCustomer($json->ID); } else { $rec = new stdClass; $rec->TypeID = 1; $rec->Firstname = $userdetails->Firstname; $rec->Surname = $userdetails->Surname; $rec->UserID = $userdetails->ID; $rec->HouseTypeID = 1; } $rec->CustomerTypeID = 1; // ajax_echo_r ($rec); /* if ($rec->UserID!=$userid) { $leftcontent->fillloop('block_phone_editor',''); $leftcontent->removeloop('block_phone_hidden'); } else { $leftcontent->removeloop('block_phone_editor'); $leftcontent->fillloop('block_phone_hidden',''); } */ // ajax_echo_r ($rec); $typepicture = array(); $typepicture[1] = $leftcontent->returnloop('block_typepicture_1'); $typepicture[2] = $leftcontent->returnloop('block_typepicture_2'); $typepicture[3] = $leftcontent->returnloop('block_typepicture_3'); $typepicture[4] = $leftcontent->returnloop('block_typepicture_4'); $typepicture[5] = $leftcontent->returnloop('block_typepicture_5'); $typepicture[6] = $leftcontent->returnloop('block_typepicture_6'); $leftcontent->fillloop('block_typepicture_1', ''); $leftcontent->fillloop('block_typepicture_2', ''); $leftcontent->fillloop('block_typepicture_3', ''); $leftcontent->fillloop('block_typepicture_4', ''); $leftcontent->fillloop('block_typepicture_5', ''); $leftcontent->fillloop('block_typepicture_6', ''); if ($userdetails->GroupID!=1) { // $leftcontent->fillloop ('block_phone_editor',''); // $leftcontent->removeloop('block_phone_hidden'); $leftcontent->fillloop ('block_userselector',''); $leftcontent->removeloop('block_nouserselector'); } else { // $leftcontent->removeloop('block_phone_editor'); // $leftcontent->fillloop ('block_phone_hidden',''); $leftcontent->removeloop('block_userselector'); $leftcontent->fillloop ('block_nouserselector',''); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_users")); $list = $this->model->getList('users'); $loopdata = $this->fillList($list, $loop, $rec->UserID); $leftcontent->fillloop('loop_users', $loopdata); } $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("block_district")); $list = $this->model->getList('districts'); $DistrictIDs = explode(";",$rec->DistrictIDs); // ajax_echo_r ($DistrictIDs); foreach ($DistrictIDs as $DistrictID) { if ($DistrictID) { $thisDistrictID = substr($DistrictID, strpos($DistrictID, "_")+1); // echo $thisDistrictID."<br>"; $loop->reload(); $loop->fill('%ID%', $thisDistrictID); $loop->fill('%Description%', $list[$thisDistrictID]->Description); $loopdata.= $loop->output(); } } //$loopdata = $this->fillList($list, $loop, $rec->DistrictIDs); // $leftcontent->loadloop('block_popupdefault',''); $leftcontent->fill( '%Districts%', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_housetypes")); $list = $this->model->getListEx('housetypes', '`Exclude1`=0'); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop('loop_housetypes', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_desiredrooms")); $list = $this->model->getList('desiredrooms'); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->DesiredRoomsIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop('loop_desiredrooms', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_objects")); $list = $this->model->getObjects(false, 1); $loopdata = $this->fillList($list, $loop, $rec->ObjectID); $leftcontent->fillloop('loop_objects', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_methodsofpayment")); $list = $this->model->getMethodsOfPayment(1); $loopdata = $this->fillList($list, $loop, $rec->MethodOfPaymentID); $leftcontent->fillloop('loop_methodsofpayment', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersources")); $list = $this->model->getCustomerSources($rec->CustomerTypeID); $loopdata = $this->fillList($list, $loop, $rec->SourceID); $leftcontent->fillloop('loop_customersources', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_calldirections")); $list = $this->model->getList('calldirections'); $loopdata = $this->fillList($list, $loop, $rec->DirectionID); $leftcontent->fillloop('loop_calldirections', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_customersubtypes")); $list = $this->model->getCustomerSubtypes($rec->CustomerTypeID); $loopdata = $this->fillList($list, $loop, $rec->CustomerSubtypeID); $leftcontent->fillloop('loop_customersubtypes', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_markets")); $list = $this->model->getList('markets'); $loopdata = $this->fillList($list, $loop, $rec->MarketID); $leftcontent->fillloop('loop_markets', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_floors")); $list = $this->model->getListOrdered('floors','Order'); $loopdata = $this->fillList($list, $loop, $rec->CustomerSubtypeID); $leftcontent->fillloop('loop_floors', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts")); // $list = getFromCache('regions'); // $list = json_decode($list); $list = $this->model->getList('districts'); $loopdata = $this->fillList($list, $loop, $rec->DistrictID); $leftcontent->fillloop('loop_districts', $loopdata); if ($rec->ID) { $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_statuses")); $list = $this->model->getStatuses($rec->ID, 'customers'); foreach ($list as $item) { $item->typepicture = $typepicture[$item->TypeID]; } $loopdata = $this->fillList($list, $loop); } else { $loopdata = ""; } $leftcontent->fillloop('loop_statuses', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_statustypes")); $list = $this->model->getList('statustypes'); $loopdata = $this->fillList($list, $loop); $leftcontent->fillloop('loop_statustypes', $loopdata); $leftcontent->removeloop('block_statuses'); $leftcontent->removeloop('loop_addr_default'); $leftcontent->fillloop('loop_addr', ''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); $block_district = new Template($this->viewroot, $leftcontent->returnloop("block_district")); $vars = $leftcontent->getVariables(); // ajax_echo_r ($vars); foreach ($vars as $var) { if ($var) { $leftcontent->fill( "%".$var."%" , brtonl($rec->$var)); } } $leftcontent->fillloop("block_district", $block_district->output()); $leftcontent->processfcb(''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); // $leftcontent->processfcb(''); // ajax_echo (htmlentities(localize($leftcontent->output()))); ajax_echo (localize($leftcontent->output())); break; case ('addCustomer'): // ajax_echo_r ($json); $ret = new stdClass; if (($json->UserID!=$userid) && ($userdetails->GroupID!=1)) { $ret->message = $this->getMessage('error_nouserrights'); $ret->result = 0; $ret->canproceed = 0; } elseif ($json->Phone=='') { $ret->message = $this->getMessage('addcall_error_nophone'); $ret->result = 0; $ret->canproceed = 0; } elseif ((date_create($json->DateTarget)) && ((int)date_format(date_create($json->DateTarget), 'Y')<1985)) { $ret->message = $this->getMessage('addmoney_error_nodate'); $ret->result = 0; $ret->canproceed = 0; } elseif ($json->Status=='') { $ret->message = $this->getMessage('addcall_error_novalue'); $ret->result = 0; $ret->canproceed = 0; } else { // if ($this->model->addCustomer($json)) { $r = $this->model->addCustomer($json); $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; $ret->canproceed = 1; if ($r->lastInsertID) { $ret->ID = $r->lastInsertID; } else { $ret->ID = $json->ID; } /* } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; $ret->canproceed = 1; } */ } // ajax_echo_r ($ret); echo json_encode($ret); break; case ('deleteCustomer'): $this->model->deleteCustomer($json); break; case ('addStatus'): // ajax_echo_r ($json); if ($json->ParentID) { if ($json->Address && $json->Comment) { $ret = $this->model->addStatus($json); // ajax_echo_r ($ret); } $leftcontent = new Template($this->viewroot, "editor_objects.htt"); $typepicture = array(); $typepicture[1] = $leftcontent->returnloop('block_typepicture_1'); $typepicture[2] = $leftcontent->returnloop('block_typepicture_2'); $typepicture[3] = $leftcontent->returnloop('block_typepicture_3'); $typepicture[4] = $leftcontent->returnloop('block_typepicture_4'); $typepicture[5] = $leftcontent->returnloop('block_typepicture_5'); $typepicture[6] = $leftcontent->returnloop('block_typepicture_6'); $leftcontent->loadloop('block_statuses',''); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_statuses")); $list = $this->model->getStatuses($json->ParentID, $json->ParentName); foreach ($list as $item) { $item->typepicture = $typepicture[$item->TypeID]; } $loopdata = $this->fillList($list, $loop); $leftcontent->fillloop('loop_statuses', $loopdata); $leftcontent->fillloop('block_typepicture_1', ''); $leftcontent->fillloop('block_typepicture_2', ''); $leftcontent->fillloop('block_typepicture_3', ''); $leftcontent->fillloop('block_typepicture_4', ''); $leftcontent->fillloop('block_typepicture_5', ''); $leftcontent->fillloop('block_typepicture_6', ''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); $leftcontent->processfcb(''); ajax_echo (localize($leftcontent->output())); } break; case ('fillSelect'): $tmp = new Template($this->viewroot, 'left_objects.htt'); $t = new Template($this->viewroot, $tmp->returnloop("loop_addr")); $req = "http://rosreestr.ru/api/online/regions/".$json->elsid; $f = file_get_contents($req); $j = json_decode($f); sortbyname ($j); $loopitems = $this->fillSelect($t, $j); // $t = new Template($this->viewroot, $tmp->returnloop("loop_addr_default")); // $loop_addr_default = $t->output(); echo localize($loopitems); break; case ('ownlogin'): $key = getvariablereq('key'); // get JSON data from the request $login = $this->model->ownLogin($key); if ($login) { $tmp = new Template($this->viewroot, 'redir.htt'); $tmp->fill('%Link%', '?go=users'); setsecurevariable('userid',$login->ID); setsecurevariable('tmpcnt',0 ); } else { $tmp = new Template($this->viewroot, 'wrong_key.htt'); } echo localize($tmp->output()); break; case ('sendEmail'): $user = $this->model->getUser($json->ID); $tmp = new Template($this->viewroot, 'mail1.htt'); $tmp->fill( "%LoginKey%", $user->LoginKey ); $tmp->fill( "%Firstname%", $user->Firstname ); $mail = localize($tmp->output()); $is_sent = sendmail("Welcome to Izum", $mail, $user->Email); echo "Emails sent: ".$is_sent."<br>"; break; case ('setUserStatus'): if ($json->ID) { $sta = $this->model->setUserStatus($userdetails->ID, $json->ID); } $sta = $this->model->getUserStatus($userdetails->ID); $tmp = new Template($this->viewroot, 'mainparent.htt'); // load common parent template $tmp->loadloop('block_status_'.$sta,''); $tmp->processfcb(''); $tmp->fill( '%imgfolder%' , $this->imgfolder ); $tmp->fill( '%viewroot%' , $this->viewroot ); ajax_echo (localize($tmp->output())); break; case ('getBalance'): $bal = $this->model->getBalance(); $tmp = new Template($this->viewroot, 'left_money.htt'); // load common parent template $tmp->loadloop('block_balance'); $tmp->fill('%balance%', $bal); $tmp->processfcb(''); $tmp->fill( '%imgfolder%' , $this->imgfolder ); $tmp->fill( '%viewroot%' , $this->viewroot ); ajax_echo (localize($tmp->output())); break; case ('exportToExcel'): echo $this->model->backup(); break; default: // for me if I miss something. ajax_echo ("Unknown AJAX action: ".$action); break; } } else { echo "You need to login again."; } } else { // for plain HTML (not an Ajax) if (((int)$userdetails->AccountType==1) && (isset($_GET['admin']))) { // if the admin wants to see his admin-panel $tmp = new Template($this->viewroot, 'adminparent.htt'); // load common parent template $tmp_clean = clone $tmp; $tmp->loadloop('selectcompanymsg'); $selectcompanymsg = $tmp->output(); $tmp = clone $tmp_clean; // load common parent template $tmp->loadloop("adminpage".$_GET['admin']); if ($_GET['admin']==3) { $tmp->fillloop('loop_table', ""); } $thispage = $tmp->output(); $tmp = clone $tmp_clean; // load common parent template $tmp->fillloop("adminpages_parent" , $thispage); $tmp->fillloop( "companydetails","" ); $tmp->fillloop( "agentdetails","" ); $tmp->fillloop("selectcompanymsg","" ); $tmp->fill( "%list_agents%", $selectcompanymsg ); $tmp->fill( "%justlogged%", $userdetails->JustLogged ); // fill template $tmp->fill( "%numoldrecords%", -2 ); // fill the template with actual data // $tmp->fill("%imgfolder%" , "../".$this->settings->imgfolder ); // fill the template with actual data $tmp->fill( "%tableview%", $this->imgfolder ); // fill the template with actual data $tmp->fill( "%agentname%", $userdetails->FirstName." ".$userdetails->LastName ); // fill the template with actual data $tmp->fill( "%projectname%", $this->settings->projectname ); // fill the template with actual data for ($n=0; $n<10; $n++) { $tmp->fill("%".$n."%" , ($n==(int)$_GET['admin']?"active":"")); // fill the template with actual data } $this->processstylesheet($hue,'admin'); echo localize($tmp->output()); // show it } else { // if the user or manager wants to see his/her GUI $id = getvariablereq('id' ); $auxmode = getvariablereq('auxmode'); $go = getvariablereq('go'); if (!$go) $go="objects"; $tmp = new Template($this->viewroot, 'mainparent.htt'); // load common parent template $tmp->fillloop('block_status_1',''); $tmp->fillloop('block_status_2',''); $privileges_this = $this->model->getUserPrivileges($userid); $privileges_all = $this->model->getUserPrivileges(0); if (!$privileges_this[$go]) $go=array_keys($privileges_this)[0]; $allowed = 0; foreach ($privileges_this as $p) { $tmp->removeloop('block_link_'.$p->PageName); if ($go == $p->PageName) $allowed = 1; } foreach ($privileges_all as $p) { $tmp->fillloop('block_link_'.$p->PageName, ''); } if (!$allowed) { $go = $privileges_this[0]->PageName; } $loop_clean = clone $tmp; if ($userid>-1) { $tmp_user_info = clone $loop_clean; $tmp_user_info->loadloop("loop_user_info"); $tmp_user_info->fill("%username%",$userdetails->Username); $loop_user_auth=$tmp_user_info->output(); $tmp->removeloop("loop_globalparent"); $tmp->fillloop("loop_user_auth" , $loop_user_auth ); $tmp->fillloop("loop_user_info" , "" ); $leftcontent = new Template($this->viewroot, 'left_' .$go.'.htt'); // load common parent template $maincontent = new Template($this->viewroot, 'main_' .$go.'.htt'); // load common parent template switch ($go) { case ('objects'): $messages = array('savefirst_nbs'); break; } if ($messages) { if (sizeof($messages)) { $tmp_messages = new Template($this->viewroot, $tmp->returnloop('loop_messages')); foreach ($messages as $message) { $tmp_messages->reload(); $msg = $this->getMessage($message); $tmp_messages->fill("%name%", $message); $tmp_messages->fill("%text%", $msg); $loop_messages.= trim($tmp_messages->output()); } } } $tmp->fillloop('loop_messages' ,$loop_messages); if ($userdetails->GroupID==1) { $leftcontent->removeloop('block_adminonly'); } else { $leftcontent->fillloop('block_adminonly', ''); } $leftcontent->fill('%today%', date("Y-m-d")); switch ($go) { case ('dashboard'): $maincontent->fillloop('block_dashboard', ''); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_users")); $list = $this->model->getUsersLst(); $loopdata = $this->fillList($list, $loop, $rec->UserID); $leftcontent->fillloop('loop_users', $loopdata); break; case ('users'): break; case ('money'): $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_typeids")); $list = $this->model->getList('moneyrecordtypes'); $loopdata = $this->fillList($list, $loop, 0); $leftcontent->fillloop('loop_typeids', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_groupids")); $list = $this->model->getExpenditureGroups(0); $loopdata = $this->fillList($list, $loop, 0); $leftcontent->fillloop('loop_groupids', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_months")); $list = $this->model->getMonths('money','DateAdded'); $loopdata = $this->fillList($list, $loop, 0); $leftcontent->fillloop('loop_months', $loopdata); $leftcontent->fillloop( 'block_popupdefault','' ); $leftcontent->fillloop( 'block_balance','' ); break; case ('tasks'): $block_item = new Template($this->viewroot, $leftcontent->returnloop('block_AssignedTo')); $users=$this->model->getUsers(); $thislist = ""; if (sizeof($users)) { foreach ($users as $item) { $block_item->reload(); $block_item->fill( "%ID%", $item->ID ); $block_item->fill( "%Username%", $item->Username ); $block_item->fill( "%selected%", ($item->ID==$userid)?"selected":"" ); $thislist.=$block_item->output(); } } $leftcontent->fillloop ('block_AssignedTo', $thislist); $ProjectID = getvariable('ProjectID'); setsecurevariable('ProjectID', $ProjectID); $TaskListID = getvariable('TaskListID'); setsecurevariable('TaskListID', $TaskListID); $block_item = new Template($this->viewroot, $leftcontent->returnloop('block_ProjectID')); $users=$this->model->getObjects(); $thislist = ""; if (sizeof($users)) { foreach ($users as $item) { $block_item->reload(); $block_item->fill( "%ID%" , $item->ID ); $block_item->fill( "%Title%" , $item->Title ); $block_item->fill( "%selected%", ($item->ID==$ProjectID)?"selected":"" ); $thislist.=$block_item->output(); } } $leftcontent->fillloop ('block_ProjectID', $thislist); $block_item = new Template($this->viewroot, $leftcontent->returnloop('block_TaskListID')); $users=$this->model->getList('tasklists'); $thislist = ""; if (sizeof($users)) { foreach ($users as $item) { $block_item->reload(); $block_item->fill( "%ID%" , $item->ID ); $block_item->fill( "%Title%" , $item->Title ); $block_item->fill( "%selected%", ($item->ID==$TaskListID)?"selected":"" ); $thislist.=$block_item->output(); } } $leftcontent->fillloop ('block_TaskListID', $thislist); $block_item = new Template($this->viewroot, $leftcontent->returnloop('block_PriorityID')); $users=$this->model->getList('priorities'); $thislist = ""; if (sizeof($users)) { $c=0; foreach ($users as $item) { $block_item->reload(); $block_item->fill( "%ID%" , $item->ID ); $block_item->fill( "%Title%" , $item->Title ); $block_item->fill( "%c%" , $c==2 ); $thislist.=$block_item->output(); $c++; } } $leftcontent->fillloop ('block_PriorityID', $thislist); $loop = clone $maincontent; $loop->loadloop("loop_objects"); $list = $this->model->getObjects(); $loopdata = ""; if (sizeof($list)>0) { foreach ($list as $ik=>$iv) { $loop->reload(); $loop->fill( "%Description%" , $iv->Description ); $loop->fill( "%id%" , $iv->ID ); $loop->fill( "%selected%" , "" ); $loopdata.=$loop->output(); } } $maincontent->fillloop('loop_objects', $loopdata); break; case ('customers'): $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_markets")); $list = $this->model->getList('markets'); $loopdata = $this->fillList($list, $loop, 0); $leftcontent->fillloop('loop_markets', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_desiredrooms")); $list = $this->model->getList('desiredrooms'); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->DesiredRoomsIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop('loop_desiredrooms', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts")); $list = $this->model->getListEx('districts', "`ID`>1"); // ajax_echo_r ($list); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop( 'loop_districts', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts_2")); $list = $this->model->getListEx('districts', "`ParentID`=2"); // ajax_echo_r ($list); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill( '%Desc%', $item->Desc ); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop( 'loop_districts_2', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts_1")); $list = $this->model->getListEx('districts', "`ParentID`=1"); // ajax_echo_r ($list); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop( 'loop_districts_1', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_housetypes")); $list = $this->model->getListEx('housetypes', '`Exclude1`=0'); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop('loop_housetypes', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_users")); $list = $this->model->getUsersFlt('customers'); $loopdata = $this->fillList($list, $loop, $userid); $leftcontent->fillloop('loop_users', $loopdata); case ('objects'): $maincontent->fillloop( "block_dir0","" ); $maincontent->fillloop( "block_dir1","" ); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_markets")); $list = $this->model->getList('markets'); $loopdata = $this->fillList($list, $loop, 0); $leftcontent->fillloop('loop_markets', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_desiredrooms")); $list = $this->model->getList('desiredrooms'); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->DesiredRoomsIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop('loop_desiredrooms', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts_2")); $list = $this->model->getListEx('districts', "`ParentID`=2"); // ajax_echo_r ($list); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill( '%Desc%', $item->Desc ); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop( 'loop_districts_2', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_districts_1")); $list = $this->model->getListEx('districts', "`ParentID`=1"); // ajax_echo_r ($list); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop( 'loop_districts_1', $loopdata); $loopdata = ""; $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_housetypes")); $list = $this->model->getListEx('housetypes', '`Exclude1`=0'); foreach ($list as $item) { $loop->reload(); $loop->fill( '%ID%', $item->ID); $loop->fill('%Description%', $item->Description); $loop->fill('%fcb_checked%', (strpos($rec->HouseTypeIDs, "_".$item->ID.";"))?"1":""); $loopdata.= $loop->output(); } $leftcontent->fillloop('loop_housetypes', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_users")); $list = $this->model->getUsersFlt('objects'); $loopdata = $this->fillList($list, $loop, $userdetails->ID); $leftcontent->fillloop('loop_users', $loopdata); break; } $tmp->fill("%leftcontent%" , $leftcontent->output()); // fill the template with actual data $tmp->fill("%maincontent%" , $maincontent->output()); // fill the template with actual data $tmp->fillloop("loop_menu_toplevel_items" , $menu_toplevel_items); $tmp->fill("%menu_items%" , $menu_items ); $tmp->fill("%fromajax%" , 0 ); $json = getFromCache('settings'); $tmp->fill('%settings_pl_startrow_defvalue%' , $json->settings_pl_startrow ); $tmp->fill('%settings_pl_startcol_defvalue%' , $json->settings_pl_startcol ); $tmp->fill('%settings_pl_namescol_defvalue%' , $json->settings_pl_namescol ); $tmp->fill('%settings_pl_idscol_defvalue%' , $json->settings_pl_idscol ); $tmp->fill('%settings_pl_costscol_defvalue%' , $json->settings_pl_costscol ); $tmp->fill('%settings_o_startrow_defvalue%' , $json->settings_o_startrow ); $tmp->fill('%settings_o_idscol_defvalue%' , $json->settings_o_idscol ); $tmp->fill('%settings_o_qtyscol_defvalue%' , $json->settings_o_qtyscol ); $tmp->fill('%settings_o_costscol_defvalue%' , $json->settings_o_costscol ); $tmp->fill('%settings_o_sumscol_defvalue%' , $json->settings_o_sumscol ); $tmp->fillloop('block_split_none' ,''); $tmp->fillloop('block_split_vertical' ,''); $tmp->fillloop('block_split_horizontal' ,''); switch ($go){ case ('tasks'): $tmp->fillloop('block_notasks',''); $tmp->fillloop('loop_task0' ,''); $tmp->fillloop('loop_task1' ,''); $tmp->fillloop('loop_task2' ,''); $tmp->fillloop('loop_task3' ,''); $tmp->fillloop('block_comment' ,''); break; } $tmp->fillloop('loop_table' ,''); $tmp->fillloop('block_no' ,''); $tmp->fillloop('block_norows' ,''); $tmp->fillloop("block_limited" ,""); $params = new stdClass(); $params->tablename = $objecttype; $params->OfferTypeID = "2"; $tmp->fill("%justlogged%" , $userdetails->JustLogged ); // fill template $tmp->fill("%tableview%" , $this->imgfolder ); // fill the template with actual data $tmp->fill("%agentname%" , $userdetails->FirstName." ".$userdetails->LastName ); // fill the template with actual data } else { $loop_user_auth=$loop_clean->returnloop("loop_user_auth"); $tmp->fillloop("loop_globalparent", $loop_user_auth); } $this->processstylesheet($hue,'style'); $tmp->fill("%theme%" , $userdetails->Theme ); $tmp->fill('%objecttype%' , $objecttype ); $tmp->fill('%SmoothAnimation%' , $SmoothAnimation ); $tmp->fill('%auxmode%' , $auxmode ); if ((int)$userdetails->AccountType!=1) { $tmp->fillloop("adminpanellink",""); } $tmp->fillloop("block_link",""); $tmp->fillloop( "block_no","" ); $tmp->fillloop( "block_norows","" ); $tmp->fillloop( "block_dir0","" ); $tmp->fillloop( "block_dir1","" ); $tmp->fill( "%projectname%", $this->settings->projectname ); // fill the template with actual data $tmp->fill( '%go%' , $go ); $tmp->fill( '%id%' , $id ); $tmp->processfcb(''); $tmp->fill( '%imgfolder%' , $this->imgfolder ); $tmp->fill( '%viewroot%' , $this->viewroot ); echo localize($tmp->output()); // show it } } } }
/** * 更新浏览主题的会员编号集合缓存 */ public function updateTopicLooksCache($tid, $uid) { global $_FANWE; if ($_FANWE['uid'] == 0 || $_FANWE['uid'] == $uid) { return; } $uids = TopicService::getTopicLooksCache($tid); if (!isset($uids[$_FANWE['uid']])) { if (count($uids) > 100) { array_shift($uids); } $uids[$_FANWE['uid']] = 1; setCache('topic/thread/' . getDirsById($tid) . '/looks', $uids); } }
public function setShareIds($uid, $share_id) { $share_ids = UserService::getShareIds($uid); array_push($share_ids, $share_id); setCache('user/' . getDirsById($uid) . '/shares', $share_ids); }
function get_server_load($windows = 0) { $serverload = "n/a"; if (!($serverload = getCache("pool_load"))) { $numberOfCores = 8; $avgLoad = 0; $os = strtolower(PHP_OS); if (strpos($os, "win") === false) { if (file_exists("http://" . $poolname . "/loadavg.html")) { $load = file_get_contents("http://" . $poolname . "/loadavg.html"); $load = explode(' ', $load); $avgLoad = $load[0]; } elseif (function_exists("shell_exec")) { $load = explode(' ', `uptime`); $avgLoad = $load[count($load) - 1]; } //This may need to be adjusted depending on your system. This is assuming a dual core setup. if ($avgLoad > 1.9 * $numberOfCores) { $serverload = "critical"; } else { if ($avgLoad > 1.5 * $numberOfCores) { $serverload = "high"; } else { if ($avgLoad > 0.5 * $numberOfCores) { $serverload = "mid"; } else { if ($avgLoad > 0 * $numberOfCores) { $serverload = "low"; } } } } } elseif ($windows) { if (class_exists("COM")) { $wmi = new COM("WinMgmts:\\\\."); $cpus = $wmi->InstancesOf("Win32_Processor"); $cpuload = 0; $i = 0; while ($cpu = $cpus->Next()) { $cpuload += $cpu->LoadPercentage; $i++; } $cpuload = round($cpuload / $i, 2); $avgLoad = $cpuload; } if ($avgLoad > 90) { $serverload = "critical"; } else { if ($avgLoad > 66) { $serverload = "high"; } else { if ($avgLoad > 33) { $serverload = "mid"; } else { if ($avgLoad > 0) { $serverload = "low"; } } } } } if ($serverload != "n/a") { } setCache("pool_load", $serverload, 60); } return $serverload; }
include "sources/functions.php"; include "sources/functions_menu.php"; $db = NewADOConnection('mysql'); $db->Connect($db_host, $db_user, $db_pass, $db_name); $Obsedb = new Obsedb(); $Obsedb->buildConfig(); require_once "sources/authentication.php"; require_once "sources/templates.class.php"; $spconfig = array(); $Obsedb_configuration = $db->Execute("SELECT * FROM `Obsedb_configuration`"); while ($cfgdata = $Obsedb_configuration->FetchNextObject()) { $spconfig["{$cfgdata->KEY}"] = stripslashes($cfgdata->VALUE); } $title = $spconfig['site_title']; /* Sets whether or not user's browser actually fetches fresh content */ setCache(clean($Obsedb->config['true_refresh'])); function do_header() { global $right, $top, $bottom, $location, $spconfig; global $latest_poll, $userinfo, $template; // Title of the web site $title = $spconfig["site_title"]; // Meta tag description text $meta_description = $spconfig["meta_description"]; // Meta tag keyword text $meta_keywords = $spconfig["meta_keywords"]; // Create a new template object $template = new Template(); // Open the template named "header" from the database $template->open_template('header'); $stylesheet = new Template();
function checkAnnoucements() { global $response; global $userid; global $db; global $messages; global $cookiePrefix; global $notificationsFeature; global $notificationsClub; global $chromeReorderFix; $timestamp = 0; if ($notificationsFeature) { $sql = "select count(id) as count from cometchat_announcements where `to` = '" . mysqli_real_escape_string($GLOBALS['dbh'], $userid) . "' and `recd` = '0'"; $query = mysqli_query($GLOBALS['dbh'], $sql); if (defined('DEV_MODE') && DEV_MODE == '1') { echo mysqli_error($GLOBALS['dbh']); } $count = mysqli_fetch_assoc($query); $count = $count['count']; if ($count > 0) { $sql = "select id,announcement from cometchat_announcements where `to` = '" . mysqli_real_escape_string($GLOBALS['dbh'], $userid) . "' and `recd` = '0' order by id desc limit 1"; $query = mysqli_query($GLOBALS['dbh'], $sql); if (defined('DEV_MODE') && DEV_MODE == '1') { echo mysqli_error($GLOBALS['dbh']); } $announcement = mysqli_fetch_assoc($query); if (!empty($announcement[1])) { $sql = "update cometchat_announcements set `recd` = '1' where `id` <= '" . mysqli_real_escape_string($GLOBALS['dbh'], $announcement[0]) . "' and `to` = '" . mysqli_real_escape_string($GLOBALS['dbh'], $userid) . "'"; $query = mysqli_query($GLOBALS['dbh'], $sql); $response['an'] = array('id' => $announcement[0], 'm' => $announcement[1], 'o' => $count); return; } } } if ($latest_announcement = getCache('latest_announcement', 30)) { $announcement = unserialize($latest_announcement); } else { $sql = "select id,announcement from cometchat_announcements where `to` = '0' or `to` = '-1' order by id desc limit 1"; $query = mysqli_query($GLOBALS['dbh'], $sql); if (defined('DEV_MODE') && DEV_MODE == '1') { echo mysqli_error($GLOBALS['dbh']); } $announcement = mysqli_fetch_assoc($query); $latest_announcements = array(); if (!empty($announcement['id'])) { $latest_announcements = array('id' => $announcement['id'], 'announcement' => $announcement['announcement']); } setCache('latest_announcement', serialize($latest_announcements), 3600); } if (!empty($announcement['announcement']) && (empty($_COOKIE[$cookiePrefix . 'an']) || !empty($_COOKIE[$cookiePrefix . 'an']) && $_COOKIE[$cookiePrefix . 'an'] < $announcement['id'])) { $response['an'] = array('id' => $announcement['id'], 'm' => $announcement['announcement']); } }
function heartbeat() { global $response; global $userid; global $db; global $chatrooms_language; global $chatroomTimeout; global $lastMessages; global $cookiePrefix; global $allowAvatar; global $moderatorUserIDs; global $guestsMode, $crguestsMode, $guestnamePrefix; $usertable = TABLE_PREFIX . DB_USERTABLE; $usertable_username = DB_USERTABLE_NAME; $usertable_userid = DB_USERTABLE_USERID; $time = getTimeStamp(); $chatroomList = array(); $cachedChatrooms = array(); if (isset($_POST['popout']) && $_POST['popout'] == 0) { $_SESSION['cometchat']['cometchat_chatroomspopout'] = $time; } if (!empty($_POST['currentroom']) && $_POST['currentroom'] != 0) { $sql = "insert into cometchat_chatrooms_users (userid,chatroomid,lastactivity,isbanned) values ('" . mysql_real_escape_string($userid) . "','" . mysql_real_escape_string($_POST['currentroom']) . "','" . mysql_real_escape_string($time) . "','0') on duplicate key update chatroomid = '" . mysql_real_escape_string($_POST['currentroom']) . "', lastactivity = '" . mysql_real_escape_string($time) . "'"; $query = mysql_query($sql); } if (empty($_SESSION['cometchat']['cometchat_chatroomslist']) || !empty($_POST['force']) || !empty($_SESSION['cometchat']['cometchat_chatroomslist']) && $time - $_SESSION['cometchat']['cometchat_chatroomslist'] > REFRESH_BUDDYLIST) { if ($cachedChatrooms = getCache($cookiePrefix . 'chatroom_list', 30)) { $cachedChatrooms = unserialize($cachedChatrooms); } else { $sql = "select DISTINCT cometchat_chatrooms.id, cometchat_chatrooms.name, cometchat_chatrooms.type, cometchat_chatrooms.password, cometchat_chatrooms.lastactivity, cometchat_chatrooms.createdby, (SELECT count(userid) online FROM cometchat_chatrooms_users where cometchat_chatrooms_users.chatroomid = cometchat_chatrooms.id and '{$time}'-lastactivity<" . ONLINE_TIMEOUT . " and isbanned<>'1') online from cometchat_chatrooms order by name asc"; $query = mysql_query($sql); while ($chatroom = mysql_fetch_array($query)) { $cachedChatrooms[$chatroom['id']] = array('id' => $chatroom['id'], 'name' => $chatroom['name'], 'online' => $chatroom['online'], 'type' => $chatroom['type'], 'password' => $chatroom['password'], 'lastactivity' => $chatroom['lastactivity'], 'createdby' => $chatroom['createdby']); } setCache($cookiePrefix . 'chatroom_list', serialize($cachedChatrooms), 30); } foreach ($cachedChatrooms as $key => $chatroom) { if ($chatroom['createdby'] == 0 || $chatroom['createdby'] != 0 && $chatroom['type'] != 2 && $time - $chatroom['lastactivity'] < $chatroomTimeout || $chatroom['createdby'] == $userid) { $s = 0; if ($chatroom['createdby'] != $userid) { if (!in_array($userid, $moderatorUserIDs)) { $chatroom['password'] = ''; } else { $s = 2; } } else { $s = 1; } $chatroomList[$chatroom['id']] = array('id' => $chatroom['id'], 'name' => $chatroom['name'], 'online' => $chatroom['online'], 'type' => $chatroom['type'], 'i' => $chatroom['password'], 's' => $s); } } $_SESSION['cometchat']['cometchat_chatroomslist'] = $time; $clh = md5(serialize($chatroomList)); if (empty($_POST['clh']) || !empty($_POST['clh']) && $clh != $_POST['clh']) { if (!empty($chatroomList)) { $response['chatrooms'] = $chatroomList; } $response['clh'] = $clh; } } if (!empty($_POST['currentroom']) && $_POST['currentroom'] != 0) { $users = array(); $messages = array(); if ($cachedUsers = getCache($cookiePrefix . 'chatrooms_users' . $_POST['currentroom'], 30)) { $users = unserialize($cachedUsers); } else { $sql = "select DISTINCT " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " userid, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_NAME . " username, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_LASTACTIVITY . " lastactivity, " . DB_AVATARFIELD . " avatar, cometchat_chatrooms_users.isbanned from " . TABLE_PREFIX . DB_USERTABLE . " left join cometchat_status on " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = cometchat_status.userid inner join cometchat_chatrooms_users on " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = cometchat_chatrooms_users.userid " . DB_AVATARTABLE . " where chatroomid = '" . mysql_real_escape_string($_POST['currentroom']) . "' and ('" . mysql_real_escape_string($time) . "' - cometchat_chatrooms_users.lastactivity < " . ONLINE_TIMEOUT . ") order by username asc"; if ($guestsMode && $crguestsMode) { $sql = getChatroomGuests($_POST['currentroom'], $time, $sql); } $query = mysql_query($sql); while ($chat = mysql_fetch_array($query)) { if (function_exists('processName')) { $chat['username'] = processName($chat['username']); } $avatar = ''; if ($allowAvatar) { $avatar = getAvatar($chat['avatar']); } $users[] = array('id' => $chat['userid'], 'n' => $chat['username'], 'a' => $avatar, 'b' => $chat['isbanned']); } setCache($cookiePrefix . 'chatrooms_users' . $_POST['currentroom'], serialize($users), 30); } $ulh = md5(serialize($users)); if (empty($_POST['ulh']) || !empty($_POST['ulh']) && $ulh != $_POST['ulh']) { $response['ulh'] = $ulh; if (!empty($users)) { $response['users'] = $users; } } if (USE_COMET != 1 || COMET_CHATROOMS != 1) { $limit = $lastMessages; if ($lastMessages == 0) { $limit = 1; } $guestpart = ""; $limitClause = " limit " . $limit . " "; $timestampCondition = ""; if ($_POST['timestamp'] != 0) { $timestampCondition = " and cometchat_chatroommessages.id > '" . mysql_real_escape_string($_POST['timestamp']) . "' "; $limitClause = ""; } if ($guestsMode && $crguestsMode) { $guestpart = " UNION select DISTINCT cometchat_chatroommessages.id id, cometchat_chatroommessages.message, cometchat_chatroommessages.sent, CONCAT('" . $guestnamePrefix . "-',m.name) `from`, cometchat_chatroommessages.userid fromid, m.id userid from cometchat_chatroommessages join cometchat_guests m on m.id = cometchat_chatroommessages.userid where cometchat_chatroommessages.chatroomid = '" . mysql_real_escape_string($_POST['currentroom']) . "' and cometchat_chatroommessages.message not like 'banned_%' and cometchat_chatroommessages.message not like 'kicked_%' " . $timestampCondition; } $sql = "select DISTINCT cometchat_chatroommessages.id id, cometchat_chatroommessages.message, cometchat_chatroommessages.sent, m.{$usertable_username} `from`, cometchat_chatroommessages.userid fromid, m.{$usertable_userid} userid from cometchat_chatroommessages join {$usertable} m on m.{$usertable_userid} = cometchat_chatroommessages.userid where cometchat_chatroommessages.chatroomid = '" . mysql_real_escape_string($_POST['currentroom']) . "' and cometchat_chatroommessages.message not like 'banned_%' and cometchat_chatroommessages.message not like 'kicked_%' " . $timestampCondition . $guestpart . " order by id desc " . $limitClause; $query = mysql_query($sql); while ($chat = mysql_fetch_array($query)) { if (function_exists('processName')) { $chat['from'] = processName($chat['from']); } if ($lastMessages == 0 && $_POST['timestamp'] == 0) { $chat['message'] = ''; } if ($userid == $chat['userid']) { $chat['from'] = $chatrooms_language[6]; } else { if (!empty($_COOKIE[$cookiePrefix . 'lang']) && !(strpos($chat['message'], "CC^CONTROL_") > -1)) { $translated = text_translate($chat['message'], '', $_COOKIE[$cookiePrefix . 'lang']); if ($translated != '') { $chat['message'] = strip_tags($translated) . ' <span class="untranslatedtext">(' . $chat['message'] . ')</span>'; } } } array_unshift($messages, array('id' => $chat['id'], 'from' => $chat['from'], 'fromid' => $chat['fromid'], 'message' => $chat['message'], 'sent' => $chat['sent'] + $_SESSION['cometchat']['timedifference'])); } } else { if ($_POST['timestamp'] == 0) { $comet = new Comet(KEY_A, KEY_B); $history = $comet->history(array('channel' => md5('chatroom_' . $_POST['currentroom'] . KEY_A . KEY_B . KEY_C), 'limit' => $lastMessages + 5)); $moremessages = array(); $count_msg = 0; $i = 0; if (!empty($history)) { foreach ($history as $message) { if (strpos($message['message'], 'CC^CONTROL_') > -1) { continue; } $moremessages[$message['sent']] = array("id" => $message['sent'], "from" => $message['from'], "fromid" => "0", "message" => $message['message'], "old" => 1, 'sent' => round($message['sent'] / 1000) + $_SESSION['cometchat']['timedifference']); } $messages = array_merge($messages, $moremessages); $count_msg = count($messages); usort($messages, 'comparetime'); $messages = $lastMessages > $count_msg ? $messages : array_slice($messages, -$lastMessages); } } } if (!empty($messages)) { $response['messages'] = $messages; } $sql = "select password from cometchat_chatrooms where id = '" . mysql_real_escape_string($_POST['currentroom']) . "' limit 1"; $query = mysql_query($sql); $room = mysql_fetch_array($query); if (!empty($room['password']) && (empty($_POST['currentp']) || $room['password'] != $_POST['currentp'])) { $response['users'] = array(); $response['messages'] = array(); } } header('Content-type: application/json; charset=utf-8'); echo json_encode($response); }
function _build_result() { $server_cluster = $this->config['server_cluster']; if (post("read_json")) { if (post("url_read")) { $json_path = post("url_read"); foreach ($server_cluster as $serv) { //echo $json_path.'<br>'.$this->config['www_url'].'<br>'; $json_path = str_replace(trim($this->config['www_url']), "", trim($json_path)); //echo $serv . 'read-json/' . $json_path; $json = file_get_contents($serv . 'read-json/' . $json_path); $tmp = json_decode($json, true); return '<pre>' . print_r($tmp, true) . '</pre>'; } } elseif (post("id_read")) { $id_news = post("id_read"); $var = $this->news_model->get_news_by_id($id_news); $cat = $this->get_cat_parent_jsview($id_news, $var[0]['news_category']); foreach ($server_cluster as $serv) { $json = file_get_contents($serv . 'read-json/' . $cat['url'] . '/' . $var[0]['news_url'] . '.html'); $tmp = json_decode($json, true); return '<pre>' . print_r($tmp, true) . '</pre>'; } } } else { if (post("read_cache")) { $CC =& load_object('Cache'); $CC->memcache_active = true; $CC->filecache_active = true; setCache("key-key-key", "data cache key", 1800); if (post("url_read")) { $json_path = post("url_read"); //$cache = checkCache($url,true); } elseif (post("id_read")) { $id_news = post("id_read"); $var = $this->news_model->get_news_by_id($id_news); $cat = $this->get_cat_parent_jsview($id_news, $var[0]['news_category']); $url = $this->config['www_url'] . $cat['url'] . '/' . $var[0]['news_url'] . '.html'; //$cache = checkCache($url,true); } $cache = checkCache("key-key-key", true, 1800); var_dump($cache); $CC->memcache_active = false; $CC->filecache_active = false; return $cache; } else { if (post("update_json")) { if (post("url_gen")) { $json_path = post("url_gen"); foreach ($server_cluster as $serv) { //echo $json_path.'<br>'.$this->config['www_url'].'<br>'; $json_path = str_replace(trim($this->config['www_url']), "", trim($json_path)); $json = file_get_contents($serv . 'update-json/' . $json_path); if ($json) { return 'Json Update'; } } } elseif (post("id_gen")) { $id_news = post("id_gen"); $var = $this->news_model->get_news_by_id($id_news); $cat = $this->get_cat_parent_jsview($id_news, $var[0]['news_category']); foreach ($server_cluster as $serv) { $json = file_get_contents($serv . 'update-json/' . $cat['url'] . '/' . $var[0]['news_url'] . '.html'); if ($json) { return 'Json Update'; } } } else { $ret = ''; $cat = post('categori'); $arrCat = array(); if ($cat != '0') { $arrCat[] = $cat; $tmp_name = $this->arr_Categori['id_to_url'][$cat]; $cat_sub = $this->get_sub_cat($tmp_name); if (is_array($cat_sub) && count($cat_sub) > 0) { $arrCat = array_merge($arrCat, $cat_sub); } } $dateFrom = trim(post('startPeriod')); $dateTo = trim(post('endPeriod')); $type_news = post('type_news'); $type_news = $type_news != '' ? $type_news : 'all'; $row = $this->news_model->get_news_by_category($arrCat, $type_news, $dateFrom, $dateTo); if (is_array($row) && count($row) > 0) { foreach ($row as $rs) { $cat = $this->get_cat_parent_jsview($rs['news_id'], $rs['news_category']); foreach ($server_cluster as $serv) { $json = file_get_contents($serv . 'update-json/' . $cat['url'] . '/' . $rs['news_url'] . '.html'); $ret .= $this->config['www_url'] . $cat['url'] . '/' . $rs['news_url'] . '.html<br>'; } } } return $ret; } } } } }
function express(&$content) { global $_FANWE; $express = getCache('emotion_express_cache'); //缓存过的表情hash if (!$express) { $express_rs = FDB::fetchAll("select `emotion`,concat('./public/expression/',`type`,'/',`filename`) as fname from " . FDB::table('expression')); foreach ($express_rs as $k => $row) { $express[0][] = $row['emotion']; $express[1][] = "<img src='" . $row['fname'] . "' title='" . preg_replace("/[\\[\\]]/", '', $row['emotion']) . "' />"; } setCache('emotion_express_cache', $express); } preg_match("/(<html.*?>.*?<\\/head>)/s", $content, $data); $head_html = $data[1]; $content = str_replace($head_html, '<!--TAG_HEADER-->', $content); preg_match_all("/(<textarea.*?>.*?<\\/textarea>)/s", $content, $data); $textareas = $data[1]; if (count($textareas) > 0) { foreach ($textareas as $key => $textarea) { $content = str_replace($textarea, '<!--TAG_TEXTAREA_' . $key . '-->', $content); } } preg_match_all("/@([^\f\n\r\t\v@<> ]{2,20}?)(?:\\:| )/", $content, $users); if (!empty($users[1])) { $patterns = array(); $replace = array(); $users = array_unique($users[1]); $arr = array(); foreach ($users as $user) { if (!empty($user)) { $arr[] = addslashes($user); } } $res = FDB::query('SELECT uid,user_name FROM ' . FDB::table('user') . ' WHERE user_name ' . FDB::createIN($arr)); while ($data = FDB::fetch($res)) { $patterns[] = '/@' . preg_quote($data['user_name']) . '(\\:| )/'; $replace[] = '<a class="u_name GUID" uid="' . $data['uid'] . '" href="' . FU('u/index', array('uid' => $data['uid'])) . '">@' . $data['user_name'] . "</a>\$1"; } $content = preg_replace($patterns, $replace, $content); } preg_match_all("/#([^\f\n\r\t\v]{1,80}?)#/", $content, $events); if (!empty($events[1])) { $patterns = array(); $replace = array(); $events = array_unique($events[1]); $arr = array(); foreach ($events as $event) { if (!empty($event)) { $arr[] = addslashes($event); } } $res = FDB::query('SELECT id,title FROM ' . FDB::table('event') . ' WHERE title ' . FDB::createIN($arr)); while ($data = FDB::fetch($res)) { $patterns[] = '#' . $data['title'] . '#'; $replace[] = '<a href="' . FU("event/detail", array("id" => $data['id'])) . '" target="_blank">#' . $data['title'] . '#</a>'; } $content = str_replace($patterns, $replace, $content); } if (count($_FANWE['tpl_user_formats']) > 0) { $patterns = array(); $replace = array(); $user_ids = array_keys($_FANWE['tpl_user_formats']); $user_ids = implode(',', $user_ids); $user_ids = str_replace(',,', ',', $user_ids); if (!empty($user_ids)) { $res = FDB::query("SELECT uid,user_name,server_code,reg_time,credits,is_daren,is_buyer,follows,fans,collects,\r\n\t\t\t\tfavs,threads,photos,goods,ask,ask_posts,ask_best_posts,shares,forums,forum_posts,\r\n\t\t\t\tseconds,albums,referrals FROM " . FDB::table('user') . ' INNER JOIN ' . FDB::table('user_count') . ' AS uc USING(uid) WHERE uid IN (' . $user_ids . ')'); while ($user = FDB::fetch($res)) { $uid = $user['uid']; $user['url'] = FU('u/index', array('uid' => $uid)); foreach ($_FANWE['tpl_user_formats'][$uid] as $tuf_key => $tuf_val) { $patterns[] = "<!--USER_" . $uid . "_" . $tuf_key . "-->"; $replace[] = getUserFormatHtml($user, $tuf_val); } unset($_FANWE['tpl_user_formats'][$uid]); } $content = str_replace($patterns, $replace, $content); } } $content = str_replace($express[0], $express[1], $content); $content = str_replace('<!--TAG_HEADER-->', $head_html, $content); if (count($textareas) > 0) { foreach ($textareas as $key => $textarea) { $content = str_replace('<!--TAG_TEXTAREA_' . $key . '-->', $textarea, $content); } } return $content; }
function invite() { global $userid; global $avchat_language; global $language; global $embed; global $embedcss; global $lightboxWindows; global $guestsMode; global $cookiePrefix; global $chromeReorderFix; if ($lightboxWindows == '1') { $embed = 'web'; $embedcss = 'embed'; } $status['available'] = $language[30]; $status['busy'] = $language[31]; $status['offline'] = $language[32]; $status['invisible'] = $language[33]; $status['away'] = $language[34]; $id = $_GET['roomid']; if (empty($id)) { exit; } $time = getTimeStamp(); $buddyList = array(); $onlineCacheKey = 'all_online'; if ($userid > 10000000) { $onlineCacheKey .= 'guest'; } if ($onlineUsers = getCache($cookiePrefix . $onlineCacheKey, 30)) { $buddyList = unserialize($onlineUsers); } else { $sql = getFriendsList($userid, $time); if ($guestsMode) { $sql = getGuestsList($userid, $time, $sql); } $query = mysqli_query($GLOBALS['dbh'], $sql); if (defined('DEV_MODE') && DEV_MODE == '1') { echo mysqli_error($GLOBALS['dbh']); } while ($chat = mysqli_fetch_assoc($query)) { if ($time - processTime($chat['lastactivity']) < ONLINE_TIMEOUT && $chat['status'] != 'invisible' && $chat['status'] != 'offline' || $chat['isdevice'] == 1) { if ($chat['status'] != 'busy' && $chat['status'] != 'away') { $chat['status'] = 'available'; } } else { $chat['status'] = 'offline'; } $avatar = getAvatar($chat['avatar']); if (!empty($chat['username'])) { if (function_exists('processName')) { $chat['username'] = processName($chat['username']); } if ($chat['userid'] != $userid) { $buddyList[$chromeReorderFix . $chat['userid']] = array('id' => $chat['userid'], 'n' => $chat['username'], 'a' => $avatar, 's' => $chat['status']); } } } } if (DISPLAY_ALL_USERS == 0 && MEMCACHE != 0) { $tempBuddyList = array(); if ($onlineFrnds = getCache($cookiePrefix . 'friend_ids_of_' . $userid, 30)) { $friendIds = unserialize($onlineFrnds); } else { $sql = getFriendsIds($userid); $res = mysqli_query($GLOBALS['dbh'], $sql); $result = mysqli_fetch_assoc($res); if (!empty($result['friends'])) { $friendIds = explode(',', $result['friends']); } setCache($cookiePrefix . 'friend_ids_of_' . $userid, serialize($friendIds), 30); } foreach ($friendIds as $friendId) { $friendId = $chromeReorderFix . $friendId; if (isset($buddyList[$friendId])) { $tempBuddyList[$friendId] = $buddyList[$friendId]; } } $buddyList = $tempBuddyList; } if (function_exists('hooks_forcefriends') && is_array(hooks_forcefriends())) { $buddyList = array_merge(hooks_forcefriends(), $buddyList); } $s['available'] = ''; $s['away'] = ''; $s['busy'] = ''; $s['offline'] = ''; foreach ($buddyList as $buddy) { $s[$buddy['s']] .= '<div class="invite_1"><div class="invite_2" onclick="javascript:document.getElementById(\'check_' . $buddy['id'] . '\').checked = document.getElementById(\'check_' . $buddy['id'] . '\').checked?false:true;"><img height=30 width=30 src="' . $buddy['a'] . '"></div><div class="invite_3" onclick="javascript:document.getElementById(\'check_' . $buddy['id'] . '\').checked = document.getElementById(\'check_' . $buddy['id'] . '\').checked?false:true;"><span class="invite_name">' . $buddy['n'] . '</span><br/><span class="invite_5">' . $status[$buddy['s']] . '</span></div><input type="checkbox" name="invite[]" value="' . $buddy['id'] . '" id="check_' . $buddy['id'] . '" class="invite_4"></div>'; } $inviteContent = ''; $invitehide = ''; $inviteContent = $s['available'] . "" . $s['away'] . "" . $s['offline']; if (empty($inviteContent)) { $inviteContent = $avchat_language[25]; $invitehide = 'style="display:none;"'; } echo <<<EOD <!DOCTYPE html> <html> <head> <title>{$avchat_language[18]}</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <link type="text/css" rel="stylesheet" media="all" href="../../css.php?type=plugin&name=avchat" /> </head> <body> <form method="post" action="invite.php?action=inviteusers&embed={$embed}"> <div class="container"> \t<div class="container_title {$embedcss}">{$avchat_language[16]}</div> \t<div class="container_body {$embedcss}"> \t\t{$inviteContent} \t\t<div style="clear:both"></div> \t</div> \t<div class="container_sub" {$invitehide}> \t\t<input type=submit value="{$avchat_language[17]}" class="invitebutton"> \t</div> </div>\t <input type="hidden" name="roomid" value="{$id}"> </form> </body> </html> EOD; }
function m_express($obj, $content) { global $_FANWE; $obj['parse_expres'] = array(); $express = getCache('m_emotion_express_cache'); //缓存过的表情hash if ($express === NULL) { $express = array(); $res = FDB::query("select `emotion`,concat('" . $_FANWE['site_url'] . "public/expression/',`type`,'/',`filename`) as fname from " . FDB::table('expression')); while ($data = FDB::fetch($res)) { $express[$data['emotion']] = $data['fname']; } setCache('m_emotion_express_cache', $express); } preg_match_all("/(\\[[^\f\n\r\t\v\\[\\] ]{2,20}?\\])/", $content, $exps); if (!empty($exps[1])) { $exps = array_unique($exps[1]); foreach ($exps as $exp) { if (!empty($exp) && isset($express[$exp])) { //$obj['parse_expres'][$exp] = $express[$exp]; $obj['parse_expres'][] = array('key' => $exp, 'value' => $express[$exp], 'width' => 24, 'height' => 24); } } } $obj['parse_user'] = array(); preg_match_all("/@([^\f\n\r\t\v@<> ]{2,20}?)(?:\\:| )/", $content, $users); if (!empty($users[1])) { $patterns = array(); $replace = array(); $users = array_unique($users[1]); $arr = array(); foreach ($users as $user) { if (!empty($user)) { $arr[] = addslashes($user); } } $res = FDB::query('SELECT uid,user_name FROM ' . FDB::table('user') . ' WHERE user_name ' . FDB::createIN($arr)); while ($data = FDB::fetch($res)) { //$obj['parse_user'][$data['user_name']] = $data['uid']; $obj['parse_user'][] = array('key' => $data['user_name'], 'value' => $data['uid']); } } $obj['parse_events'] = array(); preg_match_all("/#([^\f\n\r\t\v]{1,80}?)#/", $content, $events); if (!empty($events[1])) { $patterns = array(); $replace = array(); $events = array_unique($events[1]); $arr = array(); foreach ($events as $event) { if (!empty($event)) { $arr[] = addslashes($event); } } $res = FDB::query('SELECT id,title FROM ' . FDB::table('event') . ' WHERE title ' . FDB::createIN($arr)); while ($data = FDB::fetch($res)) { //$obj['parse_events'][$data['title']] = $data['id']; $obj['parse_events'][] = array('key' => $data['title'], 'value' => $data['id']); } } }