예제 #1
0
 public static function GetInstance()
 {
     if (!isset(self::$instance)) {
         self::$instance = new self();
     }
     return self::$instance;
 }
예제 #2
0
 function __construct()
 {
     // Get setting from registry
     $registry = TRegistry::GetInstance();
     $this->extrenal_libs = 0;
     $this->minified_libs = 1;
     $this->template = $registry->GetValue(ROOT_SYSTEM, 'template');
 }
예제 #3
0
 public function Save($setting)
 {
     //        error_reporting(0);
     $reg = TRegistry::GetInstance();
     if ($reg->GetValue(ROOT_SYSTEM, $setting) === FALSE) {
         $reg->AddValue(ROOT_SYSTEM, $setting, serialize($_POST[$setting]));
     } else {
         $reg->SetValue(ROOT_SYSTEM, $setting, serialize($_POST[$setting]));
     }
     //echo serialize($_POST[$setting]);
     if (is_array($_FILES)) {
         foreach ($_FILES as $key => $value) {
             $fname = str_replace('__', '.', $key);
             move_uploaded_file($_FILES[$key]['tmp_name'], '../assets/images/' . $fname);
         }
     }
     GoBack();
 }
예제 #4
0
 /**
  * send new password 
  * @input post data
  * @return mixed  [0] 1:success | 2:login failed | 3:spamer [max|try|time] 
  */
 public function CheckEmail()
 {
     $registry = TRegistry::GetInstance();
     $trylog = new TTryLog();
     $time = $registry->GetValue(ROOT_SYSTEM, 'login_ignore_time');
     // check login try
     $try = $trylog->Check(TRY_PASSWORD, $time);
     // get max try ;
     $max_try = $registry->GetValue(ROOT_SYSTEM, 'login_max_try');
     // check is try more than max try
     if ($try <= $max_try) {
         // can login
         // log try
         $trylog->Log(TRY_PASSWORD);
         // check input length
         if (strlen($_POST['manager_username']) < 3 || empty($_POST['manager_email'])) {
             // take access
             $ret[0] = 2;
             return $ret;
         }
         $sql = "SELECT * FROM %table% WHERE \n                manager_username = :username AND manager_email = :email ;";
         $result = $this->db->Select($sql, array('manager'), array('type' => 'ss', ":username" => $_POST['manager_username'], ":email" => $_POST['manager_email']));
         //manager access control init
         if (count($result) == 1) {
             //sending
             $ret['passwd'] = THash::SaltGenerator(8);
             // update last login
             $this->db->Update('manager', array('type' => 'i', "manager_password" => Password($ret['passwd'])), "manager_id = '{$result[0]['manager_id']}'");
             $ret[0] = 1;
             return $ret;
         } else {
             //not send
             $ret[0] = 2;
             return $ret;
         }
     } else {
         // can't login
         $ret[0] = 3;
         $ret['max'] = $max_try;
         $ret['time'] = $time;
         // and show error
         return $ret;
     }
 }
예제 #5
0
 /**
  * @todo Read record list from table
  * @param string $colums list of required colum in list
  * @return accotied array
  * @category general
  */
 public function Read($colums, $limit = null, $table_name = null, $prefix = null)
 {
     if ($limit == null) {
         // set defualt limit
         $registry = TRegistry::GetInstance();
         $limit = $registry->GetValue(ROOT_SYSTEM, 'record_list_limit');
     }
     if ($table_name == null) {
         $table_name = 'comment';
     }
     if ($prefix == null) {
         $prefix = 'comment_';
     }
     if (isset($_GET['page'])) {
         $start = abs(intval($_GET['page']));
         $start--;
         $start *= $limit;
     } else {
         $start = 0;
     }
     if (isset($_GET['order']) && strpos($colums, $_GET['order']) !== false) {
         $order = $_GET['order'] . ' ASC';
     } else {
         $order = $prefix . 'id DESC';
     }
     // if not have filter
     if (!isset($_GET['filter'])) {
         $sql = "SELECT {$colums}\r\n            , m.member_name, f.manager_displayname , t.topic_title\r\n            FROM " . DB_PREFIX . "comment c\r\n            LEFT JOIN " . DB_PREFIX . "member m on m.member_id = c.comment_member_id\r\n            LEFT JOIN " . DB_PREFIX . "topic t on t.topic_id = c.comment_topic_id\r\n            LEFT JOIN " . DB_PREFIX . "manager f on f.manager_id = c.comment_member_id*-1 ORDER BY {$order} " . " LIMIT {$start},{$limit};";
         //die($sql);
         $result = $this->db->Select($sql, array('comment'));
     } else {
         // else have filter apply fillter
         $filter = explode(',', $_GET['filter']);
         $sql = "SELECT {$colums}\r\n            , m.member_name, f.manager_displayname , t.topic_title\r\n            FROM " . DB_PREFIX . "comment c\r\n            LEFT JOIN " . DB_PREFIX . "member m on m.member_id = c.comment_member_id\r\n            LEFT JOIN " . DB_PREFIX . "topic t on t.topic_id = c.comment_topic_id\r\n            LEFT JOIN " . DB_PREFIX . "manager f on f.manager_id = c.comment_member_id*-1 WHERE " . " {$filter[0]} =  :{$filter[0]} ORDER BY {$order} " . " LIMIT {$start},{$limit};";
         // die($sql);
         // get count
         $result = $this->db->Select($sql, array('comment'), array($filter[0] => $filter[1]));
     }
     return $result;
 }
예제 #6
0
    $url = array(0 => 'index.php');
}
require './libs/Smarty.class.php';
require './libs/TDatabasePDO.php';
$pdbc = new TModel('topic', 'topic_');
$model = new TModel('topic', 'topic_');
require_once './libs/TMagicFunctions.php';
require_once './inc/fnc.php';
$smarty = new Smarty();
$smarty->caching = 0;
$smarty->template_dir = './soh3il/template/';
$smarty->compile_dir = './soh3il/compile/';
$smarty->config_dir = './soh3il/config/';
$smarty->cache_dir = './soh3il/cash/';
//$smarty->debugging = true;
$reg = TRegistry::GetInstance();
$title = $reg->GetValue(ROOT_SYSTEM, 'title');
$footer = $reg->GetValue(ROOT_SYSTEM, 'footer');
$links = $reg->GetValue(ROOT_SYSTEM, 'links');
$smarty->assign('footer', $footer);
$smarty->assign('links', $links);
$cat = TCategory::GetInstance();
$smarty->assign('cat_list', $cat->CategoryUL());
$menu = new TDropDownMenu();
$tmp = $menu->DropDownUL();
$smarty->assign('menu', $tmp);
$smarty->assign('memberz', GetCount('member'));
$smarty->assign('likez', GetCount('relation', ' typ = 4 '));
$smarty->assign('frnz', GetCount('relation', ' typ = 5 '));
$smarty->assign('topiczz', GetCount('topic', ' topic_status > 0 '));
$smarty->assign('stopic', GetCount('topic', ' topic_status = 2 '));
예제 #7
0
global $database_handle;
define('__MP__', FALSE);
// include all required libs
include_once '../tconstant.php';
include_once '../tconfig.php';
include_once '../libs/TDatabasePDO.php';
include_once '../libs/THash.php';
include_once '../libs/TFunction.php';
include_once '../libs/TRegistry.php';
function _hk()
{
}
// try to connect with posted value that sure before write on config.
try {
    $database_handle = new TDatabase(DB_TYPE, DB_HOST, DB_NAME, DB_USER, DB_PASSWORD);
    $reg = new TRegistry();
} catch (Exception $exc) {
    echo $exc->getTraceAsString();
    die('<br /> We can connect to Database please check your input');
}
// else install system
$sqls = glob('./sql/*.sql');
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title> Toos system install - Finalize</title>
        <link type="text/css" rel="stylesheet" href="assets/css/install.css" />
        <link type="text/css" rel="stylesheet" href="../tcm/assets/css/element.css" />
        <script type="text/javascript" src="../tcm/assets/js/jquery.min.js"></script>
예제 #8
0
 /**
  * extension finalizer | run once on extension unstialling 
  * @return boolean
  */
 public static function Finalizer()
 {
     $registry = TRegistry::GetInstance();
     $registry->RemoveValue(ROOT_EXTENSION, __CLASS__);
     return true;
 }
예제 #9
0
 /**
  * system default by manager date
  * @param string $format
  * @param int $time_stamp
  * @return string
  */
 public function SDate($format, $time_stamp = "now")
 {
     // Pre hook
     _hk('P' . ':' . __CLASS__ . ':' . __FUNCTION__, $this, $format, $time_stamp);
     // get registry value default system time
     $registry = TRegistry::GetInstance();
     $type = $registry->GetValue(ROOT_SYSTEM, 'system_time_type') . 'Date';
     $result = $this->{$type}($format, $time_stamp);
     // result hook
     _hk('R' . ':' . __CLASS__ . ':' . __FUNCTION__, $this, $result);
     return $result;
 }
예제 #10
0
 /**
  * @todo give access with set values
  * @param array $UserDetails
  * @param bool $remenber
  */
 public static function GiveAccess($user_details = array(), $remenber = FALSE)
 {
     // pre hook
     _hk('P' . ':' . __CLASS__ . ':' . __FUNCTION__, __CLASS__, $user_details, $remenber);
     self::SetSession('MN_ID', $user_details['manager_id']);
     self::SetSession('MN_TYPE', $user_details['manager_type']);
     self::SetSession('MN_UA', md5($_SERVER['HTTP_USER_AGENT']));
     self::SetSession('MN_PR', explode(',', $user_details['manager_permission']));
     self::SetSession('MN_LK', LOGIN_KEY);
     // set cookie if need
     if ($remenber) {
         // get registry value Reminber time how many min.
         $registry = TRegistry::GetInstance();
         $min = $registry->GetValue(ROOT_SYSTEM, 'remenber_time');
         self::SetCookie('MN_ID', $UserDetails['manager_id'], $min);
         self::SetCookie('MN_TYPE', $UserDetails['manager_type'], $min);
         self::SetCookie('MN_UA', md5($_SERVER['HTTP_USER_AGENT']), $min);
         self::SetCookie('MN_PR', explode(',', $user_details['manager_permission']), $min);
         self::SetCookie('MN_LK', LOGIN_KEY, $min);
     }
 }
예제 #11
0
 public function GetPageCount($limit = null)
 {
     if ($limit == null) {
         // set defualt limit
         $registry = TRegistry::GetInstance();
         $limit = $registry->GetValue(ROOT_SYSTEM, 'record_list_limit');
     }
     $cond = '1';
     // if not have filter
     if (!isset($_GET['filter'], $_GET['search'])) {
         $where = array();
     }
     if (isset($_GET['filter'])) {
         $filter = explode(',', $_GET['filter']);
         // else have filter apply fillter
         $term = substr($filter[1], 1);
         //           die($term);
         switch ($filter[1][0]) {
             case '<':
                 $cond .= " AND {$filter[0]}  <  :{$filter[0]}  ";
                 break;
             case '>':
                 $cond .= " AND {$filter[0]}  >  :{$filter[0]}  ";
                 break;
             case '%':
                 $term = '%' . $term . '%';
                 $cond .= " AND {$filter[0]}  LIKE  :{$filter[0]}  ";
                 break;
             case '$':
                 $term = '^.*' . $term . '.*$';
                 $cond .= " AND {$filter[0]}   REGEXP   :{$filter[0]}  ";
                 break;
             default:
                 $term = $filter[1];
                 $cond .= " AND {$filter[0]}  =  :{$filter[0]}  ";
                 break;
         }
         $where[$filter[0]] = $term;
     }
     if (isset($_GET['search']) && $_GET['search'] != '') {
         $prf = 'AND ( ';
         foreach (explode(',', $_GET['fields']) as $col) {
             $term = '^.*' . $_GET['search'] . '.*$';
             $cond .= " {$prf}  {$col}   REGEXP   :{$col}  ";
             $where[$col] = $term;
             $prf = 'OR';
         }
         $cond .= ')';
     }
     if (isset($_GET['rel'], $_GET['typ']) && $_GET['rel'] != 0) {
         $sql = "SELECT COUNT(*) AS 'count' \n        FROM " . DB_PREFIX . $this->table_name . " as t LEFT JOIN " . DB_PREFIX . "relation r \n        ON r.dst = t." . $this->prefix . "id WHERE r.typ =  :t  AND r.src = :s  AND {$cond} ";
         $where[':s'] = $_GET['rel'];
         $where[':t'] = $_GET['typ'];
     } else {
         $sql = "SELECT COUNT(*) AS 'count' FROM %table% WHERE " . " {$cond} ";
     }
     //    print_r($sql);die;
     // get count
     $result = $this->db->Select($sql, array($this->table_name), $where);
     $mod = $result[0]['count'] % $limit;
     // page count
     $result = floor($result[0]['count'] / $limit);
     // check mod and inc
     if ($mod > 0) {
         $result++;
     }
     return $result;
 }