for_table() public static method

Despite its slightly odd name, this is actually the factory method used to acquire instances of the class. It is named this way for the sake of a readable interface, ie ORM::for_table('table_name')->find_one()-> etc. As such, this will normally be the first method called in a chain.
public static for_table ( string $table_name, string $connection_name = self::DEFAULT_CONNECTION ) : ORM
$table_name string
$connection_name string Which connection to use
return ORM
Esempio n. 1
0
 public function update($table, $id, $ignore_keys = null)
 {
     if ($_POST) {
         $params = $_POST;
         $this->crud->save($table, $params, $id);
         $this->view = new Create('done');
     } else {
         $fields = \ORM::for_table($table)->raw_query('DESCRIBE ' . $table)->find_array();
         $row = $this->crud->read($table, $id);
         if ($ignore_keys) {
             foreach ($row as $key => $value) {
                 if (in_array($key, $ignore_keys)) {
                     unset($row[$key]);
                 }
             }
             foreach ($fields as $key => $field) {
                 if (in_array($field['Field'], $ignore_keys)) {
                     unset($fields[$key]);
                 }
             }
         }
         $data['fields'] = $fields;
         $data['row'] = $row;
         $this->view = new Update('update', $data);
     }
 }
Esempio n. 2
0
 public function find($tag, $key = "tags")
 {
     // search pages table with pages that has a certain tag
     $r = \ORM::for_table('cms_page')->distinct()->select('cms_page.*')->join('cms_page_meta', array('cms_page.id', '=', 'cms_page_meta.page_id'))->join('cms_page_meta_translation', array('cms_page_meta.id', '=', 'cms_page_meta_translation.meta_id'))->where_equal('cms_page_meta.key', $key)->where_raw("FIND_IN_SET({$tag}, cms_page_meta_translation.value)")->find_many();
     print_r($r);
     print_r(\ORM::get_last_query());
 }
Esempio n. 3
0
 /**
  * Выполним действие
  *
  * @param string $user_email Адрес электронной почты
  *
  * @return array
  *
  * @version 13.09.2016
  * @author Дмитрий Щербаков <*****@*****.**>
  */
 public function run($user_email)
 {
     $result = ['error' => true, 'message' => 'Неизвестная ошибка.'];
     // Сформируем запрос на смену пароля
     $result = $this->di->auth->requestReset($user_email, false);
     if ($result['error'] === false) {
         // Найдем ИД пользователя
         $user_info = \ORM::for_table('users')->select('id')->where_equal('email', $user_email)->find_one();
         if (is_object($user_info)) {
             // Найдем в базе ключ для отправки собственного письма
             $request_info = \ORM::for_table($this->di->auth->config->table_requests)->select('rkey')->where(['uid' => $user_info->id, 'type' => 'reset'])->find_one();
             if (is_object($request_info)) {
                 // Отправим сообщение на почту
                 $send_result = $this->di->mail->send($user_email, 'Запрос на изменение пароля в "' . $this->di->auth->config->site_name . '"', 'USER_LOST', ['[[SITE_NAME]]' => $this->di->auth->config->site_name, '[[SITE_URL]]' => $this->di->auth->config->site_url, '[[USER_EMAIL]]' => $user_email, '[[KEY]]' => $request_info->rkey]);
                 if ($send_result) {
                     return ['error' => false, 'message' => 'Запрос успешно отправлен на электронную почту "' . $user_email . '".'];
                 } else {
                     $result['message'] = 'Произошла ошибка. Пожалуйста, обратитесь к разработчику.';
                 }
             } else {
                 $this->di->log->warning('Для запроса на восстановление пароля не найден ключ восстановления: "' . $user_email . '" (#' . $user_info->id . ', type=reset).');
                 $result['message'] = 'Произошла ошибка. Пожалуйста, обратитесь к разработчику.';
             }
         } else {
             $this->di->log->warning('Для запроса на восстановление пароля не найден пользователь: "' . $user_email . '".');
             $result['message'] = 'Произошла ошибка. Пожалуйста, обратитесь к разработчику.';
         }
     } else {
         $result['message'] = $result['message'];
     }
     return $result;
 }
Esempio n. 4
0
function start()
{
    if (!empty($_POST)) {
        if (!isset($_POST['id'])) {
            createUser($_POST);
        } else {
            editUser($_POST);
        }
        require '../views/list.php';
        return;
    }
    if (!isset($_GET['id']) && !isset($_GET['page'])) {
        $people = getPeople();
        require '../views/list.php';
        return;
    }
    if (isset($_GET['page']) && $_GET['page'] === 'add') {
        require '../views/add.php';
        return;
    }
    if (isset($_GET['page']) && $_GET['page'] === 'edit') {
        if (!isset($_GET['id'])) {
            die('veuillez spécifier un id d\'utilisateur');
        }
        $id = $_GET['id'];
        $editable = ORM::for_table('users')->find_one($id);
        require '../views/edit.php';
        return;
    }
    $user = getUser();
    require '../views/show.php';
}
Esempio n. 5
0
 private function idiorm($path)
 {
     if (!mapi_include_abs_path($path, 'lib')) {
         return null;
     }
     if (!isset(MSettings::$db_host) || !strlen(MSettings::$db_host) > 0) {
         return false;
     }
     if (!isset(MSettings::$db) || !strlen(MSettings::$db) > 0) {
         return false;
     }
     if (!isset(MSettings::$db_user) || !strlen(MSettings::$db_user) > 0) {
         return false;
     }
     if (!isset(MSettings::$db_pass) || !strlen(MSettings::$db_pass) > 0) {
         return false;
     }
     try {
         ORM::configure('mysql:host=' . MSettings::$db_host . ';dbname=' . MSettings::$db);
         ORM::configure('username', MSettings::$db_user);
         ORM::configure('password', MSettings::$db_pass);
         ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
         $test = ORM::for_table('preferences')->create();
         if ($test) {
             return true;
         } else {
             return false;
         }
     } catch (PDOException $e) {
         return false;
     }
 }
Esempio n. 6
0
function require_login(&$app, $redirect = true)
{
    $params = $app->request()->params();
    if (array_key_exists('token', $params)) {
        try {
            $data = JWT::decode($params['token'], Config::$jwtSecret);
            $_SESSION['user_id'] = $data->user_id;
            $_SESSION['me'] = $data->me;
        } catch (DomainException $e) {
            if ($redirect) {
                header('X-Error: DomainException');
                $app->redirect('/', 301);
            } else {
                return false;
            }
        } catch (UnexpectedValueException $e) {
            if ($redirect) {
                header('X-Error: UnexpectedValueException');
                $app->redirect('/', 301);
            } else {
                return false;
            }
        }
    }
    if (!array_key_exists('user_id', $_SESSION)) {
        if ($redirect) {
            $app->redirect('/');
        }
        return false;
    } else {
        return ORM::for_table('users')->find_one($_SESSION['user_id']);
    }
}
Esempio n. 7
0
 private function to_url_alias()
 {
     $existing = $this->get_url_alias();
     if (!$existing) {
         \ORM::for_table($this->table('url_alias'))->create(array('query' => join('=', array($this->id_field, $this->id())), 'keyword' => strtolower($this->name)))->save();
     }
 }
Esempio n. 8
0
function dbInsert($row, $user)
{
    ORM::configure(array('connection_string' => 'mysql:host=localhost;dbname=qiita', 'username' => 'xxxx', 'password' => 'xxxx', 'driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'), 'error_mode', PDO::ERRMODE_WARNING, 'logging', true));
    //記事登録
    $items = ORM::for_table('items')->where_equal('item_id', $row['item_id'])->find_one();
    if (!$items) {
        //未登録の記事は登録
        $items = ORM::for_table('items')->create();
        $items->set($row);
        $items->save();
    }
    //ユーザ情報登録
    $users = ORM::for_table('users')->where_equal('user_id', $user['user_id'])->find_one();
    print_r($user);
    echo $user['user_id'];
    if (!$users) {
        //未登録のユーザは登録
        $users = ORM::for_table('users')->create();
        $users->set($user);
        echo " 登録<br>";
    } else {
        //登録済のユーザは更新
        $users->set($user);
        echo " 更新<br>";
    }
    $users->save();
}
Esempio n. 9
0
 public function increment($id)
 {
     $counter = ORM::for_table('counters')->find_one($id);
     $counter->count = $counter->count + 1;
     $counter->save();
     return $counter->count;
 }
Esempio n. 10
0
 public function query()
 {
     if (!isset($this->table)) {
         throw new \Exception("Database Error", "Database queries require a table to be set");
     }
     return Query::for_table($this->table);
 }
Esempio n. 11
0
 function getOrm()
 {
     if (!$this->orm) {
         $this->orm = \ORM::for_table('');
     }
     return $this->orm;
 }
 public function for_table($tableName)
 {
     if (!isset($this->tables[$tableName])) {
         $this->tables[$tableName] = \ORM::for_table($tableName, $this->connectionName);
     }
     return $this->tables[$tableName];
 }
Esempio n. 13
0
 public function get_many($day = null)
 {
     $items = \ORM::for_table($this->tableName);
     // Search
     $query = $this->bcms->request->get('query');
     $query = filter_var($query, FILTER_SANITIZE_STRING);
     if ($query) {
         $items = $items->where_like('title', '%' . $query . '%');
         $this->bcms->view->appendData(array('query' => $query));
     }
     // Where
     $where = $this->bcms->request->get('where');
     $where = filter_var($where, FILTER_SANITIZE_STRING);
     if ($where) {
         $items = $items->where_like('where', $where . '%');
         $this->bcms->view->appendData(array('where' => $where));
     }
     // day
     if (!$day) {
         $day = $this->bcms->request->get('day');
         $day = filter_var($day, FILTER_SANITIZE_STRING);
     }
     if ($day) {
         $items = $items->where_gte('date_created', $day);
         $nextDayTime = strtotime($day) + 60 * 60 * 24;
         $items = $items->where_lt('date_created', date('Y-m-d', $nextDayTime));
         $this->bcms->view->appendData(array('day' => $day));
     }
     $items = $items->order_by_desc('date_created');
     $items = $items->find_array();
     if (!$items) {
         return false;
     }
     return $items;
 }
Esempio n. 14
0
 private static function find_type($id)
 {
     $record = ORM::for_table('contents')->select('type')->find_one(intval($id));
     if (!$record) {
         return null;
     }
     return ucfirst($record->type);
 }
Esempio n. 15
0
 public function loadBySuburb($suburb)
 {
     $location = \ORM::for_table('location')->where('suburb', $suburb)->find_one();
     $this->_suburb = trim(strpos($suburb, " (") !== false ? substr($suburb, 0, strpos($suburb, " (")) : $suburb);
     $this->_district = $location["district"];
     $this->_region = $location["region"];
     $this->_state = $location["state"];
 }
Esempio n. 16
0
 public static function findByProduct($id)
 {
     $stock = ORM::for_table('stock')->where('product_id', $id)->find_one();
     if ($stock) {
         return new Stock($stock);
     }
     return null;
 }
Esempio n. 17
0
 /**
  * Delete a song in the database
  * Please note: this is just an example! In a real application you would not simply let everybody
  * add/update/delete stuff!
  * @param int $song_id Id of song
  */
 public function deleteSong($song_id)
 {
     //$sql = "DELETE FROM song WHERE id = :song_id";
     $query = ORM::for_table($this->_table)->find_one($song_id);
     if ($query) {
         $query->delete();
     }
 }
Esempio n. 18
0
function rate_limit_tick($ip, $email)
{
    // Create a new record in the login attempt table
    $login_attempt = ORM::for_table('reg_login_attempt')->create();
    $login_attempt->email = $email;
    $login_attempt->ip = sprintf("%u", ip2long($ip));
    $login_attempt->save();
}
Esempio n. 19
0
function getPostsForParentID($parentID)
{
    return ORM::for_table('posts')->raw_query('
    SELECT *, GREATEST(1, TIMESTAMPDIFF(HOUR, date_submitted, NOW())) AS age
    FROM posts
    ORDER BY date_submitted DESC
  ')->find_many();
}
Esempio n. 20
0
function current_user()
{
    if (!is_logged_in()) {
        return false;
    } else {
        return ORM::for_table('users')->find_one($_SESSION['user_id']);
    }
}
Esempio n. 21
0
function getLoggedInUser()
{
    if (session('user')) {
        return ORM::for_table('users')->where('url', session('user'))->find_one();
    } else {
        return false;
    }
}
Esempio n. 22
0
 public static function validateUserPass($username, $password)
 {
     //self::configure();
     $user = ORM::for_table(static::$_table)->where('username', $username)->find_one();
     if ($user->password == md5($password)) {
         return true;
     }
     return false;
 }
Esempio n. 23
0
 public function data()
 {
     $id = $_GET['id'];
     $name = ORM::for_table('name')->raw_query("SELECT  * FROM lessons x   JOIN  units y  on x.id = y.l_id WHERE y.l_id = " . $id)->find_many();
     foreach ($name as $names) {
         $nam['units'][] = array('cname' => $names->u_name, 'id' => $names->id, 'vpath' => $names->v_url, 'ipath' => $names->v_image, "dur" => $names->v_dur);
     }
     echo json_encode($nam);
 }
Esempio n. 24
0
 public function loadByTagId($userId, $tagId)
 {
     $tag = ORM::for_table('insightengine_tags')->where_equal('user_id', $userId)->where_equal('tag_id', $tagId)->find_one();
     if (!$tag) {
         throw new Exception("Wasn't able to find tag: {$tag}");
     }
     $this->_tagModel = $tag;
     return $this;
 }
Esempio n. 25
0
function check_quotation_exists($quotation_id)
{
    $quotation = ORM::for_table('quotation')->find_one($quotation_id);
    if (!$quotation) {
        $app->redirect('/quotation_list');
        exit;
    }
    return $quotation;
}
Esempio n. 26
0
 public function data()
 {
     $id = $_GET['id'];
     $name = ORM::for_table('name')->raw_query("SELECT  * FROM course  x  INNER JOIN  lessons  y  on x.id = y.c_id WHERE y.c_id = " . $id)->find_many();
     foreach ($name as $names) {
         $nam['lesson'][] = array('cname' => $names->cname, 'clesson' => $names->lesson_name, 'id' => $names->id, 'thum' => $names->c_thumb, 'nov' => $names->c_nv, 'clevel' => $names->c_level, 'cid' => $names->c_id, 'vpath' => $names->l_vpath, "dur" => $names->l_dur);
     }
     echo json_encode($nam);
 }
Esempio n. 27
0
function render_option_defaut_value($data_keys)
{
    $data = array();
    foreach ($data_keys as $k => $v) {
        $tmp = ORM::for_table('option')->where('option_key', $k)->find_one();
        $data[$k] = $tmp ? $tmp->option_value : '請輸入' . $v;
    }
    return $data;
}
Esempio n. 28
0
function remove_rss_feed($id = null)
{
    $app = \Slim\Slim::getInstance();
    if ($id !== null) {
        $feed = ORM::for_table('feeds')->find_one($id);
        $feed->delete();
    }
    $app->redirect($app->urlFor('admin'));
}
Esempio n. 29
0
function require_login(&$app)
{
    if (!array_key_exists('user_id', $_SESSION)) {
        $app->redirect('/');
        return false;
    } else {
        return ORM::for_table('users')->find_one($_SESSION['user_id']);
    }
}
Esempio n. 30
0
function addUser()
{
    $newUser = ORM::for_table('users')->create();
    $newUser->nom = $_POST['nom'];
    $newUser->prenom = $_POST['prenom'];
    $newUser->tel = $_POST['tel'];
    $newUser->naissance = $_POST['naissance'];
    $newUser->save();
}