<?php
							 | 
						|
								namespace db;
							 | 
						|
								use \ORM;
							 | 
						|
								
							 | 
						|
								function random_hash() {
							 | 
						|
								  $len = 32;
							 | 
						|
								  $alpha_numeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
							 | 
						|
								  return substr(str_shuffle(str_repeat($alpha_numeric, $len)), 0, $len);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function now() {
							 | 
						|
								  return date('Y-m-d H:i:s');
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function set_updated(&$record) {
							 | 
						|
								  $record->date_updated = now();
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function find_or_create($table, $where, $defaults, $autosave=false) {
							 | 
						|
								  $item = ORM::for_table($table);
							 | 
						|
								
							 | 
						|
								  // Where is an associative array of key/val combos
							 | 
						|
								  foreach($where as $c=>$v) {
							 | 
						|
								    $item = $item->where($c, $v);
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  $item = $item->find_one();
							 | 
						|
								
							 | 
						|
								  if(!$item) {
							 | 
						|
								    $item = ORM::for_table($table)->create();
							 | 
						|
								    $item->date_created = now();
							 | 
						|
								    foreach($defaults as $k=>$v) {
							 | 
						|
								      $item->{$k} = $v;
							 | 
						|
								    }
							 | 
						|
								    foreach($where as $k=>$v) {
							 | 
						|
								      $item->{$k} = $v;
							 | 
						|
								    }
							 | 
						|
								    if($autosave)
							 | 
						|
								      $item->save();
							 | 
						|
								  }
							 | 
						|
								  return $item;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function find($table, $where) {
							 | 
						|
								  $item = ORM::for_table($table);
							 | 
						|
								
							 | 
						|
								  // Where is an associative array of key/val combos
							 | 
						|
								  foreach($where as $c=>$v) {
							 | 
						|
								    $item = $item->where($c, $v);
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  return $item->find_one();
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function feed_from_url($url) {
							 | 
						|
								  return ORM::for_table('feeds')->where('feed_url', $url)->find_one();
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function get_by_id($table, $id) {
							 | 
						|
								  return ORM::for_table($table)->where('id', $id)->find_one();
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function get_by_col($table, $col, $val) {
							 | 
						|
								  return ORM::for_table($table)->where($col, $val)->find_one();
							 | 
						|
								}
							 |