コード例 #1
0
 public static function byEqLogic_id($_eqLogic_id)
 {
     $values = array('eqLogic_id' => $_eqLogic_id);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM energy
             WHERE eqLogic_id=:eqLogic_id';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #2
0
ファイル: viewZone.class.php プロジェクト: GaelGRIFFON/core
 public static function byView($_view_id)
 {
     $value = array('view_id' => $_view_id);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM viewZone
             WHERE view_id=:view_id';
     return DB::Prepare($sql, $value, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #3
0
 public static function byId($_id)
 {
     $values = array('id' => $_id);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM ' . __CLASS__ . '
     WHERE id=:id';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #4
0
ファイル: connection.class.php プロジェクト: GaelGRIFFON/core
 public static function byIp($_ip)
 {
     $value = array('ip' => $_ip);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM `connection`
             WHERE ip=:ip';
     return DB::Prepare($sql, $value, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #5
0
ファイル: jeeNetwork.class.php プロジェクト: GaelGRIFFON/core
 public static function byPlugin($_plugin)
 {
     $values = array('plugin' => '%' . $_plugin . '%');
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM jeeNetwork
     WHERE plugin LIKE :plugin';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #6
0
 public static function byElement($_element_id)
 {
     $values = array('expression' => $_element_id);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM ' . __CLASS__ . '
     WHERE expression=:expression
     AND `type`= "element"';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #7
0
ファイル: rights.class.php プロジェクト: GaelGRIFFON/core
 public static function byuserIdAndEntity($_user_id, $_entity)
 {
     $values = array('user_id' => $_user_id, 'entity' => $_entity);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM `rights`
             WHERE entity=:entity
                 AND user_id=:user_id';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #8
0
ファイル: eqReal.class.php プロジェクト: GaelGRIFFON/core
 public static function byId($_id)
 {
     $values = array('id' => $_id);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM eqReal
             WHERE id=:id';
     $class = self::getClass($_id);
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, $class);
 }
コード例 #9
0
ファイル: listener.class.php プロジェクト: GaelGRIFFON/core
 public static function searchEvent($_event)
 {
     if (strpos($_event, '#') !== false) {
         $value = array('event' => '%' . $_event . '%');
     } else {
         $value = array('event' => '%#' . $_event . '#%');
     }
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM listener
             WHERE `event` LIKE :event';
     return DB::Prepare($sql, $value, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #10
0
ファイル: dataStore.class.php プロジェクト: GaelGRIFFON/core
 public static function byTypeLinkId($_type, $_link_id = '')
 {
     $values = array('type' => $_type);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM dataStore
             WHERE type=:type';
     if ($_link_id != '') {
         $values['link_id'] = $_link_id;
         $sql .= ' AND link_id=:link_id';
     }
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #11
0
 public static function byScenarioElementId($_scenarioElementId, $_type = '')
 {
     $values = array('scenarioElement_id' => $_scenarioElementId);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '  
             FROM ' . __CLASS__ . ' 
             WHERE scenarioElement_id=:scenarioElement_id ';
     if ($_type != '') {
         $values['type'] = $_type;
         $sql .= ' AND type=:type ';
         return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
     }
     $sql .= ' ORDER BY `order`';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #12
0
ファイル: cache.class.php プロジェクト: GaelGRIFFON/core
 public static function search($_search, $_noRemove = false)
 {
     $values = array('key' => '%' . $_search . '%');
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM cache
     WHERE `key` LIKE :key';
     $caches = DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
     if (!$_noRemove) {
         foreach ($caches as $cache) {
             if ($cache->hasExpired()) {
                 $cache->remove();
             }
         }
     }
     return $caches;
 }
コード例 #13
0
 public static function searchByQuery($_query)
 {
     $values = array('query' => '%' . $_query . '%');
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM interactDef
     WHERE query LIKE :query';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #14
0
ファイル: object.class.php プロジェクト: GaelGRIFFON/core
 public function getChild($_visible = true)
 {
     $values = array('id' => $this->id);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM object
             WHERE father_id=:id';
     if ($_visible) {
         $sql .= ' AND isVisible=1 ';
     }
     $sql .= ' ORDER BY position';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #15
0
ファイル: interactQuery.class.php プロジェクト: saez0pub/core
 public static function recognize($_query)
 {
     $values = array('query' => $_query);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
 FROM interactQuery
 WHERE LOWER(query)=LOWER(:query)';
     $query = DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
     if (is_object($query)) {
         log::add('interact', 'debug', 'Je prend : ' . $query->getQuery());
         return $query;
     }
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . ', MATCH query AGAINST (:query IN NATURAL LANGUAGE MODE) as score
 FROM interactQuery
 GROUP BY id
 HAVING score > 1';
     $queries = DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
     if (count($queries) == 0) {
         $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM interactQuery
     WHERE query=:query';
         $queries = DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
         if (is_object($queries)) {
             return $queries;
         }
         $queries = self::all();
     }
     $caracteres = array('À' => 'a', 'Á' => 'a', 'Â' => 'a', 'Ä' => 'a', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ä' => 'a', '@' => 'a', 'È' => 'e', 'É' => 'e', 'Ê' => 'e', 'Ë' => 'e', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', '€' => 'e', 'Ì' => 'i', 'Í' => 'i', 'Î' => 'i', 'Ï' => 'i', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'Ò' => 'o', 'Ó' => 'o', 'Ô' => 'o', 'Ö' => 'o', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'ö' => 'o', 'Ù' => 'u', 'Ú' => 'u', 'Û' => 'u', 'Ü' => 'u', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'µ' => 'u', 'Œ' => 'oe', 'œ' => 'oe', '$' => 's');
     $shortest = 999;
     $closest = null;
     $_query = strtolower(preg_replace('#[^A-Za-z0-9 \\n\\.\'=\\*:]+#', '', strtr($_query, $caracteres)));
     foreach ($queries as $query) {
         $input = strtolower(preg_replace('#[^A-Za-z0-9 \\n\\.\'=\\*:]+#', '', strtr($query->getQuery(), $caracteres)));
         preg_match_all("/#(.*?)#/", $input, $matches);
         foreach ($matches[1] as $match) {
             $input = str_replace('#' . $match . '#', '', $input);
         }
         $lev = levenshtein($input, $_query);
         log::add('interact', 'debug', 'Je compare : ' . $_query . ' avec ' . $input . ' => ' . $lev);
         if ($lev == 0) {
             $shortest = 0;
             $closest = $query;
             break;
         }
         if ($lev <= $shortest || $shortest < 0) {
             $closest = $query;
             $shortest = $lev;
         }
     }
     if (str_word_count($_query) == 1 && config::byKey('interact::confidence1') > 0 && $shortest > config::byKey('interact::confidence1')) {
         log::add('interact', 'debug', 'Correspondance trop éloigné : ' . $shortest);
         return null;
     } else {
         if (str_word_count($_query) == 2 && config::byKey('interact::confidence2') > 0 && $shortest > config::byKey('interact::confidence2')) {
             log::add('interact', 'debug', 'Correspondance trop éloigné : ' . $shortest);
             return null;
         } else {
             if (str_word_count($_query) == 3 && config::byKey('interact::confidence3') > 0 && $shortest > config::byKey('interact::confidence3')) {
                 log::add('interact', 'debug', 'Correspondance trop éloigné : ' . $shortest);
                 return null;
             } else {
                 if (str_word_count($_query) > 3 && config::byKey('interact::confidence') > 0 && $shortest > config::byKey('interact::confidence')) {
                     log::add('interact', 'debug', 'Correspondance trop éloigné : ' . $shortest);
                     return null;
                 }
             }
         }
     }
     return $closest;
 }
コード例 #16
0
ファイル: cmd.class.php プロジェクト: jimibi/core
    public static function byTypeSubType($_type, $_subType = '')
    {
        $values = array('type' => $_type);
        $sql = 'SELECT ' . DB::buildField(__CLASS__, 'c') . '
		FROM cmd c
		WHERE c.type=:type';
        if ($_subType != '') {
            $values['subtype'] = $_subType;
            $sql .= ' AND c.subtype=:subtype';
        }
        return self::cast(DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__));
    }
コード例 #17
0
ファイル: history.class.php プロジェクト: GaelGRIFFON/core
    public static function getPlurality($_cmd_id, $_startTime = null, $_endTime = null, $_period = 'day', $_offset = 0)
    {
        $values = array('cmd_id' => $_cmd_id);
        if ($_startTime != null) {
            $values['startTime'] = $_startTime;
        }
        if ($_endTime != null) {
            $values['endTime'] = $_endTime;
        }
        switch ($_period) {
            case 'day':
                if ($_offset == 0) {
                    $select = 'SELECT cmd_id,MAX(`value`) as `value`,DATE_FORMAT(`datetime`,"%Y-%m-%d 00:00:00") as `datetime`';
                } elseif ($_offset > 0) {
                    $select = 'SELECT cmd_id,MAX(`value`) as `value`,DATE_FORMAT(DATE_ADD(`datetime`, INTERVAL ' . $_offset . ' HOUR),"%Y-%m-%d 00:00:00") as `datetime`';
                } else {
                    $select = 'SELECT cmd_id,MAX(`value`) as `value`,DATE_FORMAT(DATE_SUB(`datetime`, INTERVAL ' . abs($_offset) . ' HOUR),"%Y-%m-%d 00:00:00") as `datetime`';
                }
                break;
            case 'month':
                $select = 'SELECT cmd_id,MAX(`value`) as `value`,DATE_FORMAT(`datetime`,"%Y-%m-01 00:00:00") as `datetime`';
                break;
            case 'year':
                $select = 'SELECT cmd_id,MAX(`value`) as `value`,DATE_FORMAT(`datetime`,"%Y-01-01 00:00:00") as `datetime`';
                break;
            default:
                $select = 'SELECT ' . DB::buildField(__CLASS__);
                break;
        }
        switch ($_period) {
            case 'day':
                if ($_offset == 0) {
                    $groupBy = ' GROUP BY date(`datetime`)';
                } elseif ($_offset > 0) {
                    $groupBy = ' GROUP BY date(DATE_ADD(`datetime`, INTERVAL ' . $_offset . ' HOUR))';
                } else {
                    $groupBy = ' GROUP BY date(DATE_SUB(`datetime`, INTERVAL ' . abs($_offset) . ' HOUR))';
                }
                break;
            case 'month':
                $groupBy = ' GROUP BY month(DATE_ADD(`datetime`, INTERVAL ' . $_offset . ' DAY))';
                break;
            case 'year':
                $groupBy = ' GROUP BY YEAR(DATE_ADD(`datetime`, INTERVAL ' . $_offset . ' MONTH))';
                break;
            default:
                $groupBy = '';
                break;
        }
        $sql = $select . '
	FROM (
		' . $select . '
		FROM history
		WHERE cmd_id=:cmd_id ';
        if ($_startTime != null) {
            $sql .= ' AND datetime>=:startTime';
        }
        if ($_endTime != null) {
            $sql .= ' AND datetime<=:endTime';
        }
        $sql .= $groupBy;
        $sql .= ' UNION ALL
		' . $select . '
		FROM historyArch
		WHERE cmd_id=:cmd_id';
        if ($_startTime != null) {
            $sql .= ' AND `datetime`>=:startTime';
        }
        if ($_endTime != null) {
            $sql .= ' AND `datetime`<=:endTime';
        }
        $sql .= $groupBy;
        $sql .= ' ) as dt ';
        $sql .= $groupBy;
        $sql .= ' ORDER BY `datetime` ASC ';
        return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
    }
コード例 #18
0
ファイル: planHeader.class.php プロジェクト: GaelGRIFFON/core
 public static function all()
 {
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM planHeader';
     return DB::Prepare($sql, array(), DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #19
0
ファイル: scenario.class.php プロジェクト: GaelGRIFFON/core
 public static function byObjectNameGroupNameScenarioName($_object_name, $_group_name, $_scenario_name)
 {
     $values = array('scenario_name' => html_entity_decode($_scenario_name));
     if ($_object_name == __('Aucun', __FILE__)) {
         if ($_group_name == __('Aucun', __FILE__)) {
             $sql = 'SELECT ' . DB::buildField(__CLASS__, 's') . '
         FROM scenario s
         WHERE s.name=:scenario_name
         AND (`group` IS NULL OR `group`=""  OR `group`="Aucun" OR `group`="None")
         AND s.object_id IS NULL';
         } else {
             $values['group_name'] = $_group_name;
             $sql = 'SELECT ' . DB::buildField(__CLASS__, 's') . '
         FROM scenario s
         WHERE s.name=:scenario_name
         AND s.object_id IS NULL
         AND `group`=:group_name';
         }
     } else {
         $values['object_name'] = $_object_name;
         if ($_group_name == __('Aucun', __FILE__)) {
             $sql = 'SELECT ' . DB::buildField(__CLASS__, 's') . '
         FROM scenario s
         INNER JOIN object ob ON s.object_id=ob.id
         WHERE s.name=:scenario_name
         AND ob.name=:object_name
         AND (`group` IS NULL OR `group`=""  OR `group`="Aucun" OR `group`="None")';
         } else {
             $values['group_name'] = $_group_name;
             $sql = 'SELECT ' . DB::buildField(__CLASS__, 's') . '
         FROM scenario s
         INNER JOIN object ob ON s.object_id=ob.id
         WHERE s.name=:scenario_name
         AND ob.name=:object_name
         AND `group`=:group_name';
         }
     }
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #20
0
ファイル: update.class.php プロジェクト: GaelGRIFFON/core
    /**
     *
     * @return array de tous les utilisateurs
     */
    public static function all($_filter = '')
    {
        $values = array();
        $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
		FROM `update`';
        if ($_filter != '') {
            $values['type'] = $_filter;
            $sql .= ' WHERE `type`=:type';
        }
        $sql .= ' ORDER BY FIELD( `status`, "update","ok","depreciated") ASC,FIELD( `type`,"plugin","core") DESC, `name` ASC';
        return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
    }
コード例 #21
0
ファイル: cron.class.php プロジェクト: saez0pub/core
 public static function searchClassAndFunction($_class, $_function, $_option = '')
 {
     $value = array('class' => $_class, 'function' => $_function);
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM cron
     WHERE class=:class
     AND function=:function';
     if ($_option != '') {
         $value['option'] = '%' . $_option . '%';
         $sql .= ' AND `option` LIKE :option';
     }
     return DB::Prepare($sql, $value, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #22
0
ファイル: message.class.php プロジェクト: GaelGRIFFON/core
 public static function all()
 {
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
             FROM message
             ORDER BY date DESC
             LIMIT 500';
     return DB::Prepare($sql, array(), DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #23
0
ファイル: user.class.php プロジェクト: GaelGRIFFON/core
 public static function searchByRight($_rights)
 {
     $values = array('rights' => '%"' . $_rights . '":1%', 'rights2' => '%"' . $_rights . '":"1"%');
     $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
     FROM user
     WHERE rights LIKE :rights
     OR rights LIKE :rights2';
     return DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
 }
コード例 #24
0
ファイル: eqLogic.class.php プロジェクト: saez0pub/core
 public static function byObjectNameEqLogicName($_object_name, $_eqLogic_name)
 {
     if ($_object_name == __('Aucun', __FILE__)) {
         $values = array('eqLogic_name' => $_eqLogic_name);
         $sql = 'SELECT ' . DB::buildField(__CLASS__) . '
         FROM eqLogic
         WHERE name=:eqLogic_name
         AND object_id IS NULL';
     } else {
         $values = array('eqLogic_name' => $_eqLogic_name, 'object_name' => $_object_name);
         $sql = 'SELECT ' . DB::buildField(__CLASS__, 'el') . '
         FROM eqLogic el
         INNER JOIN object ob ON el.object_id=ob.id
         WHERE el.name=:eqLogic_name
         AND ob.name=:object_name';
     }
     return self::cast(DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__));
 }