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 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); } }
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()); }
/** * Выполним действие * * @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; }
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'; }
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; } }
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']); } }
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(); } }
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(); }
public function increment($id) { $counter = ORM::for_table('counters')->find_one($id); $counter->count = $counter->count + 1; $counter->save(); return $counter->count; }
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); }
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]; }
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; }
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); }
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"]; }
public static function findByProduct($id) { $stock = ORM::for_table('stock')->where('product_id', $id)->find_one(); if ($stock) { return new Stock($stock); } return null; }
/** * 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(); } }
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(); }
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(); }
function current_user() { if (!is_logged_in()) { return false; } else { return ORM::for_table('users')->find_one($_SESSION['user_id']); } }
function getLoggedInUser() { if (session('user')) { return ORM::for_table('users')->where('url', session('user'))->find_one(); } else { return false; } }
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; }
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); }
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; }
function check_quotation_exists($quotation_id) { $quotation = ORM::for_table('quotation')->find_one($quotation_id); if (!$quotation) { $app->redirect('/quotation_list'); exit; } return $quotation; }
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); }
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; }
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')); }
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']); } }
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(); }