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 ownLogin($key) { $sql=" SELECT `ID` FROM `users` WHERE (`LoginKey`='".$key."') ; "; $listitems=$this->db->query($sql); if ($listitems) { setsecurevariable('userid' ,$listitems[0]->ID); setsecurevariable('justlogged',1 ); // echo_r ($listitems); $sql=" UPDATE `users` SET `JustLogged`=1, `SessionID`='".session_id()."', `LastAccess`='".date("Y-m-d H:i:s")."' WHERE (`LoginKey`='".$key."') ; "; $r=$this->db->exec($sql); if ($r->rowsAffected) { $this->addEvent('UserLoggedByLink','users','ID',$listitems[0]->ID,$listitems[0]->ID); } } return $listitems[0]; }
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 = ajaxdecode($data); // fix some escaped paths (if any) // echo htmlspecialchars($data); if ($data) { $json=json_decode($data); // parse Json data came from AJAX (if any) } $userid = getvariable('userid' ,0); if (!$userid) { $userid = getsecurevariable('userid' ,0); } // ajax_echo_r ($userid); // ajax_echo_r (session_id()); // ajax_echo_r ($_SESSION); // ajax_echo_r ($this->userdetails); // $hue = getvariable ('hue' ); $hue = getsecurevariable ('hue' ,-1); $theme = getsecurevariable ('theme' ,-1); $SmoothAnimation = getsecurevariable ('SmoothAnimation',-1); $this->userdetails = $this->model->getUserDetails($userid); $isadmin = $this->userdetails->usergroup->Password==2; // ajax_echo_r ($this->userdetails); 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 = $this->userdetails->SmoothAnimation; // get hue value from user details } else { // if the user is came for the first time $SmoothAnimation = 0; // set the default value } } // $this->userdetails = new stdClass(); // $this->model->setUserDetails($this->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"); } if (sizeof($_FILES)>0) { // file upload // echo "Fileupload..."; // echo session_id(); // 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"; $rslt = move_uploaded_file($file['tmp_name'], $fname); $this->model->loadBalance($fname); break; case ('integration'): $ext = substr($file['name'], strrpos($file['name'], ".")); $fname = $this->settings->temppath.'/'.session_id().$ext; // echo $fname; $rslt = move_uploaded_file($file['tmp_name'], $fname); switch ($ext) { case ('.csv'): // import youtube stats $this->model->importYoutubeStats($fname); break; } //$this->model->loadBalance($fname); break; case ('steps'): $ext = substr($file['name'], strrpos($file['name'], ".")); $dir = sdir($this->settings->temppath, "full_".session_id().'_*.*'); // ajax_echo_r ($dir); if ($dir) { foreach ($dir as $f) { $pos0 = strrpos($f,"_")+1; $pos1 = strrpos($f,"."); $fid = (int)substr($f, $pos0, $pos1-$pos0); if ($fid>$thisid) $thisid = $fid; // echo $fid."<br>"; } } $thisid++; $filef = $this->settings->temppath.'/full_'.session_id()."_".$thisid.$ext; $filet = $this->settings->temppath.'/thb_' .session_id()."_".$thisid.$ext; // $fname = $this->settings->temppath.'/'.session_id().$ext; // echo $filef."<br>"; // echo $filet."<br>"; $rslt = move_uploaded_file($file['tmp_name'], $filef); // echo $rslt; $pic = $this->model->preparePic($filef, $filet, 0); // echo $this->showTempPics(); $ajax_fileupload_img_str = $this->fillAttachments($action, $this->settings->temppath."/", session_id()); echo $ajax_fileupload_img_str; break; } if (($file['error']==0) && $rslt) { // echo localize("<en>File uploaded successfully</en><ru>Файл загружен успешно</ru>"); } else { echo localize($this->getMessage('error_upload')); } } else { // no file upload $go = getvariablereq('go'); $key = getvariablereq('key').getvariablereq('k'); // get JSON data from the request if ($key) { $go="ownlogin"; // echo strlen($key); // $key = str_replace(".", "", $key); $key = substr($key, 0, 32); // echo $key; } if ($go=='ownlogin') { $login = $this->model->ownLogin($key); if ($login) { //$tmp = new Template($this->viewroot, 'redir.htt'); //$tmp->fill('%Link%', '?go=users'); // ajax_echo_r($login); if ($login->IsProject) { $virtuser = new stdClass; $virtuser->ID = -2; $virtuser->Name = $login->Firstname." ".$login->Surname; $virtuser->usergroup = $this->model->getUserGroup(0); setsecurevariable('userid',$virtuser->ID); setsecurevariable('tmpcnt',0 ); // session_write_close(); $this->sess->close(); $this->userdetails = $virtuser; $this->projectdetails = $login; $userid = $virtuser->ID; } else { setsecurevariable('userid',$login->ID); setsecurevariable('tmpcnt',0 ); // session_write_close(); $this->sess->close(); $this->userdetails = $login; $userid = $login->ID; } } else { //$tmp = new Template($this->viewroot, 'wrong_key.htt'); } } $isadmin = $this->userdetails->usergroup->Password==2; // $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"); // echo $action; if (($userid>-1) || ($action=='dologin') || ($action=='dologout') || ($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'): // ajax_echo_r ($this->userdetails->usergroup); $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 ($this->userdetails->GroupID!=1) $id = $this->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, $this->userdetails); 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) { // echo $isadmin; if ($isadmin) { $tmp_src = new Template($this->viewroot, 'main_'.$json->go.'.htt'); // load common parent template } else { $tmp_src = new Template($this->viewroot, 'main_'.$json->go.'_manager.htt'); // load common parent template } } } $tmp_src = $this->fillStricts($tmp_src, 1); $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 ('ads'): $t = $this->model->getStats('ads','', $json->s_UserID); $c = 0; $loop1 = new Template($this->viewroot, $tmp_src->returnloop('loop_cell1')); $loop2 = new Template($this->viewroot, $tmp_src->returnloop('loop_cell2')); $loop3 = new Template($this->viewroot, $tmp_src->returnloop('loop_cell3')); $loopstr = ""; if ($t) { foreach ($t as $k=>$v) { $loop1->reload(); $loop2->reload(); $loop3->reload(); $loop1->fill( "%h1%", (int)($v->Cnt*10 )); $loop2->fill( "%h2%", (int)($v->Value/1000)); $loop3->fill( "%h3%", (int)($v->Views/10)); $loopstr1.= $loop1->output(); $loopstr2.= $loop2->output(); $loopstr3.= $loop3->output(); $c++; // echo (int)($v->Views)."<br>"; } } else { $block_norows = new Template($this->viewroot, $tmp_src->returnloop('block_norows')); $loopstr = $block_norows->output(); } $tmp_src->fillloop( 'loop_cell1', $loopstr1 ); $tmp_src->fillloop( 'loop_cell2', $loopstr2 ); $tmp_src->fillloop( 'loop_cell3', $loopstr3 ); $vars = $tmp_src->getVariables(); // ajax_echo_r ($t); echo sizeof($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 ('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(); $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 = ""; $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 = ""; $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; default: $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_no = new Template($this->viewroot, $tmp_src->returnloop('block_no')); $block_no=$block_no->output(); $c = 0; $thistable = ""; if (sizeof($table[1])) { $thisidcolumnname = $json->tablename."_ID"; foreach ($table[1] as $item) { $loop_table_row->reload(); $loop_table_row->fill("%c%", $c%2); foreach ($vars as $vn) { if ($vn!=="Children") { $loop_table_row->fill("%".$vn."%", ($item->$vn)?$item->$vn:$block_no); } } $thistable.=$loop_table_row->output(); $c++; } } else { $block_norows = new Template($this->viewroot, $tmp_src->returnloop('block_norows')); $thistable = $block_norows->output(); } $looptmp->fillloop( 'loop_table_row', $thistable); $tmp_src->fillloop( "loop_table", $looptmp->output()); $tmp_src->fillloop( "block_norows", "" ); $tmp_src->fillloop( "block_no", "" ); $tmp_src->fill("%numrows%",sizeof($table[1])); break; } $tmp_src = $this->fillStricts($tmp_src); $tmp_src->processfcb(''); $tmp_src->fill( '%imgfolder%' , $this->imgfolder ); $tmp_src->fill( '%viewroot%' , $this->viewroot ); ajax_echo(sup($tmp_src->output())); } 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 ('newProject'): // ajax_echo_r($json); $leftcontent = new Template($this->viewroot, "editor_projects.htt"); if ($json->ID) { $rec = $this->model->getProject($json->ID); $leftcontent->fill('%mode%', 'edit'); } else { $rec = new stdClass; $rec->TypeID = 1; $rec->SendSMS = 1; $rec->HasDoors = 1; $leftcontent->fill('%mode%', 'create'); } // ajax_echo_r ($rec); // $leftcontent->processfcb(); $leftcontent = $this->fillStricts($leftcontent, $json->ID); if (!$rec->City ) $rec->City = "Санкт-Петербург"; if (!$rec->DateFinish ) $rec->DateFinish = date('Y-m-d', strtotime('+2 weeks')); // date_add dateadd if (!$rec->DateMeasure ) $rec->DateMeasure = date('Y-m-d H:i:s'); if (!$rec->DateInstall ) $rec->DateInstall = date('Y-m-d H:i:s'); // ajax_echo_r ($rec); $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("block_Customer")); $loopdata = $this->fillList($list, $loop, $rec->CustomerID); $leftcontent->fillloop('block_Customer', $loopdata); $loop = new Template($this->viewroot, $leftcontent->returnloop("block_AssignedTo")); $loopdata = $this->fillList($list, $loop, $rec->AssignedTo); $leftcontent->fillloop('block_AssignedTo', $loopdata); $loopdata = $this->getParticipants($json); $leftcontent->fillloop('block_participants', $loopdata); // ajax_echo_r ($json); // ajax_echo_r ($rec); // ajax_echo_r ($this->userdetails); $json->IsFull = $this->getIsFull(); $loopdata = $this->getProjectSteps($json); $leftcontent->fillloop('loop_step', $loopdata); $leftcontent->fillloop('loop_stepa', ''); // echo htmlentities($loopdata); $vars = $leftcontent->getVariables(); foreach ($vars as $var) { if ($var) { $leftcontent->fill( "%".$var."%" , $rec->$var); } } $leftcontent->processfcb(''); $leftcontent->fill( '%imgfolder%' , $this->imgfolder ); $leftcontent->fill( '%viewroot%' , $this->viewroot ); ajax_echo (localize($leftcontent->output())); // $users=$this->model->getList('users'); break; case ('closeProject'): // ajax_echo_r ($json); $ret = $this->model->closeProject($json); ajax_echo_r ($ret); break; case ('addProject'): $json->DateMeasure = dateTimeAdaptWrite($json->DateMeasure); $json->DateInstall = dateTimeAdaptWrite($json->DateInstall); if (!$json->ID) { $json->AddedBy = $this->userdetails->ID; $json->DateAdded = date("Y-m-d H:i:s"); } // ajax_echo_r ($json); // if (substr_count($json->DateMeasure,":")==1) $json->DateMeasure.=":00"; // if (substr_count($json->DateInstall,":")==1) $json->DateInstall.=":00"; $ret = new stdClass; if ((gettype($json->Firstname)!="NULL") && ($json->Firstname=='')) { $ret->message = $this->getMessage('addproject_error_nofirstname'); $ret->result = 0; } elseif ($json->lastid=='div_Email' && !$json->City ) { $ret->message = $this->getMessage('addproject_error_nocity'); $ret->result = 0; } elseif ($json->lastid=='div_OrderNumber' && (!$json->PhoneMain || $json->PhoneMain=='+7(___) ___-____') ) { $ret->message = $this->getMessage('addproject_error_nophone'); $ret->result = 0; } elseif ($json->lastid=='div_Email' && !$json->Street ) { $ret->message = $this->getMessage('addproject_error_nostreet'); $ret->result = 0; } elseif ($json->lastid=='div_OrderNumber' && !$json->PhoneMain ) { $ret->message = $this->getMessage('addproject_error_nophone'); $ret->result = 0; } elseif ($json->lastid=='div_DateFinish' && !$json->OrderNumber ) { $ret->message = $this->getMessage('addproject_error_noordernumber'); $ret->result = 0; } elseif ($json->lastid=='div_Doors' && !$json->Cost ) { $ret->message = $this->getMessage('addproject_error_nocost'); $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 ($json->ID) { $rec = $this->model->getProject($json->ID); // echo gettype($json->Cost); // ajax_echo_r ($json); if ($json->PhoneMain) $rec->PhoneMain = $json->PhoneMain; if ($json->Email ) $rec->Email = $json->Email; // ajax_echo_r ($rec); if ( (!$rec->IsCompleted) && ( ($json->lastid=='div_Finish') || ($json->lastid=='0') ) ) { // echo "send now<br>"; $json->IsCompleted = 1; $params = new stdClass; $params->ProjectID = $json->ID; $params->StepID = 1; $params->DateTarget = date("Y-m-d H:i:s"); $this->model->addProjectStep($params); $this->sendStepMessages(1, $rec); } } unset ($json->lastid); $r = $this->model->addProject($json, $userid); if ($r) { $ret->message = $this->getMessage('addmoney_success'); $ret->result = 1; } else { $ret->message = $this->getMessage('addmoney_error_unknown'); $ret->result = 0; } } $ret->ID = $r; echo json_encode($ret); 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 ('loadProjectParticipants'): // ajax_echo_r($json); echo $this->getParticipants($json); break; case ('addProjectParticipant'): $this->model->addProjectParticipant($json); echo $this->getParticipants($json); break; case ('removeProjectParticipant'): // ajax_echo_r($json); $this->model->removeProjectParticipant($json); echo $this->getParticipants($json); break; case ('addProjectStep'): if ($json->StepID) { $json->DateTarget = date("Y-m-d H:i:s"); $step = $this->model->getStep($json->StepID); // ajax_echo_r ($json); // ajax_echo_r ($step); $success = 1; $usr = $this->model->getCustomerFromProject($json->ProjectID); $project = $this->model->getProject($json->ProjectID); if ($json->DateMeasure || $json->DateInstall) { if ($json->DateMeasure) { $project->DateMeasure = $json->DateMeasure; unset ($json->DateMeasure); } if ($json->DateInstall) { $project->DateInstall = $json->DateInstall; unset ($json->DateInstall); } $r = $this->model->addProject($project, $userid); } if (($step->NeedDate)) { switch ($step->ID) { case (2): $project->DateAux = dateAdaptRead($project->DateMeasure).", ".$daynames[dayWeekAdaptRead($project->DateMeasure)]; $project->TimeAux = timeAdaptRead($project->DateMeasure); break; case (13): $project->DateAux = dateAdaptRead($project->DateInstall).", ".$daynames[dayWeekAdaptRead($project->DateInstall)]; $project->TimeAux = timeAdaptRead($project->DateInstall); break; } if (($project->DateAux==0) || ($project->DateAux=='')) { switch ($step->ID) { case (2): echo localize($this->getMessage('error_nodatemeasure')); break; case (13): echo localize($this->getMessage('error_nodateinstall')); break; } $success = 0; } } if ($step->NeedImg) { $rslt = $this->moveUploads('steps', $json); // echo $rslt; if ($rslt==0) { $success = 0; echo localize($this->getMessage('error_nopictures')); } } // ajax_echo_r ($usr); if ($success) { switch ($step->ID) { case (14): $project->DateFinished = date("Y-m-d H:i:s"); unset ($project->DateAux); unset ($project->TimeAux); $r = $this->model->addProject($project, $userid); break; } $this->model->addProjectStep($json); $this->sendStepMessages($step->ID, $project); } } $json->IsFull = $this->getIsFull(); echo $this->getProjectSteps($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 ($this->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', ''); } $loop = new Template($this->viewroot, $leftcontent->returnloop("loop_usergroups")); $list = $this->model->getList('usergroups'); // ajax_echo_r ($list); // ajax_echo_r ($rec); $loopdata = $this->fillList($list, $loop, $rec->GroupID); $leftcontent->fillloop('loop_usergroups', $loopdata); $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=='') && ($this->userdetails->ID!=1)) { // $ret->message = $this->getMessage('adduser_error_nousername'); // $ret->result = 0; // } elseif (($json->Email=='') && ($this->userdetails->ID!=1)) { // $ret->message = $this->getMessage('adduser_error_noemail'); // $ret->result = 0; // } else { // ajax_echo_r ($json); $d = dateAdaptWrite($json->DateBirth); if ($d!="1970-01-01") { $json->DateBirth = $d; } $d = dateAdaptWrite($json->DateRemoved); if ($d!="1970-01-01") { $json->DateRemoved = $d; } // ajax_echo_r ($json->DateBirth); 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 ("savefield"): $this->model->saveField($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').getvariablereq('k'); // 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 Alchemy", $mail, $user->Email); echo "Emails sent: ".$is_sent."<br>"; break; case ('setUserStatus'): if ($json->ID) { $sta = $this->model->setUserStatus($this->userdetails->ID, $json->ID); } $sta = $this->model->getUserStatus($this->userdetails->ID); $tmp = new Template($this->viewroot, 'adminparent.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; case ('deleteAttachment'): $json->filename = $json->id; if (strpos($json->id,"?")) { $json->filename = substr($json->id,0,strpos($json->id,"?")); } // ajax_echo_r ($json); unlink ($json->filename); unlink (str_replace("full_", "thb_", $json->filename)); // unlink (str_replace("full_", "dst_", $json->filename)); case ('fullUploads'): $action = "steps"; $ajax_fileupload_img_str = $this->fillAttachments($action, $this->settings->temppath."/", session_id()); echo $ajax_fileupload_img_str; 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) $privileges_this = $this->model->getUserPrivileges($userid); // ajax_echo_r ($privileges_this); // ajax_echo_r ($this->userdetails); // ajax_echo_r ($userid); $mode = getvariablereq ('mode', 0); // echo $mode; // echo $userid; // echo $this->userdetails->usergroup->ID>0; // echo !$this->userdetails->usergroup; // echo sizeof($privileges_this); if (((sizeof($privileges_this)!=0) || ($userid==-1) || ($userid==-2 && !$this->userdetails->usergroup) || ($this->userdetails->usergroup->ID>0)) && ($mode==0)) { // if the admin wants to see his admin-panel $id = getvariablereq('id' ); $auxmode = getvariablereq('auxmode'); // echo "isadmin: ".$isadmin; if ($isadmin) { $go = getvariablereq('go'); if (!$go) $go="projects"; $tmp = new Template($this->viewroot, 'adminparent.htt'); // load common parent template } else { if ($userid>-1) { $go="projects"; } else { $go="login"; } $tmp = new Template($this->viewroot, 'managerparent.htt'); // load common parent template } $tmp->fill( "%Title%", $this->userdetails->usergroup->Title ); $tmp->fillloop('block_status_1',''); $tmp->fillloop('block_status_2',''); if ($this->userdetails->usergroup->Password) { $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; } } if (!$go) $go="projects"; $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%",$this->userdetails->Username ); $tmp_user_info->fill( "%Firstname%",$this->userdetails->Firstname ); $tmp_user_info->fill( "%Surname%",$this->userdetails->Surname ); $loop_user_auth=$tmp_user_info->output(); $tmp->removeloop("loop_globalparent"); $tmp->fillloop("loop_user_auth" , $loop_user_auth ); $tmp->fillloop("loop_user_info" , "" ); if ($isadmin) { $leftcontent = new Template($this->viewroot, 'left_' .$go.'.htt'); // load common parent template $maincontent = new Template($this->viewroot, 'main_' .$go.'.htt'); // load common parent template } else { $leftcontent = new Template($this->viewroot, 'left_' .$go.'_manager.htt'); // load common parent template $maincontent = new Template($this->viewroot, 'main_' .$go.'_manager.htt'); // load common parent template } if ($this->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 ('projects'): break; } $tmp->fill("%leftcontent%" , $leftcontent->output()); // fill the template with actual data $tmp->fill("%maincontent%" , $maincontent->output()); // fill the template with actual data $tmp->fill("%fromajax%" , 0 ); $json = getFromCache('settings'); $tmp->fillloop('block_split_none' ,''); $tmp->fillloop('block_split_vertical' ,''); $tmp->fillloop('block_split_horizontal' ,''); $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%" , $this->userdetails->JustLogged ); // fill template $tmp->fill("%tableview%" , $this->imgfolder ); // fill the template with actual data $tmp->fill("%agentname%" , $this->userdetails->FirstName." ".$this->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); } if ($isadmin) { $this->processstylesheet($hue,'admin'); } else { $this->processstylesheet($hue,'manager'); } $tmp->fill("%theme%" , $this->userdetails->Theme ); $tmp->fill('%objecttype%' , $objecttype ); $tmp->fill('%SmoothAnimation%' , $SmoothAnimation ); $tmp->fill('%auxmode%' , $auxmode ); if ((int)$this->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 = $this->fillStricts($tmp); $tmp->fill( '%imgfolder%' , $this->imgfolder ); $tmp->fill( '%viewroot%' , $this->viewroot ); echo localize($tmp->output()); // show it } else { $tmp = new Template($this->viewroot, 'mainparent.htt'); // load common parent template $tmp->fill( "%username%", $this->userdetails->Username ); $tmp->fill( "%Firstname%", $this->projectdetails->Firstname ); $tmp->fill( "%Surname%", $this->projectdetails->Surname ); $tmp->fill( "%ID%", $this->projectdetails->ID ); $tmp->fill( "%OrderNumber%", $this->projectdetails->OrderNumber ); // ajax_echo_r ($this->projectdetails); $tmp_loop_project = $tmp->returnloop("loop_project"); $loop_project = new Template($this->viewroot, $tmp_loop_project); // ajax_echo_r ($this->userdetails); if ($this->projectdetails) { $projects = array(); $projects[] = $this->projectdetails; } else { $projects = $this->model->getProjectsFromCustomer($this->userdetails->ID); } // ajax_echo_r ($projects); // $projects = $this->model->getProjectPictures($projects); if (!$json) $json = new stdClass; $json->IsFull = $this->getIsFull(); $loop_projects = ""; foreach ($projects as $project) { $loop_project->reload(); $loop_project->fill('%Title%', $project->Street); $loopdata = $this->getProjectSteps($project, $tmp_loop_project); $loop_project->fillloop('loop_step', $loopdata); $loop_project->fillloop('loop_stepa', ''); $loop_projects.=$loop_project->output(); } $tmp->fillloop('loop_project', $loop_projects); $tmp->fill( '%go%' , $go ); $tmp->fill( '%id%' , $id ); $tmp->processfcb(''); $tmp = $this->fillStricts($tmp); $this->processstylesheet($hue,'style'); $tmp->fill( '%imgfolder%' , $this->imgfolder ); $tmp->fill( '%viewroot%' , $this->viewroot ); echo localize($tmp->output()); // show it } } } }