db->select('ArticleID, ArticleTitle, ArticleSlug'); $this->db->from($this->articles_table_name); //$this->db->where('SiteID', 1); $this->db->where('ArticleStatus', 'live'); $this->db->limit($start,$stop); $this->db->order_by("ArticleID", "desc"); $query = $this->db->get(); if ( $query->num_rows() > 0 ) { $results = array(); $i = 0; foreach ($query->result_array() as $row) { $results[$i]["ArticleID"] = $row['ArticleID']; $results[$i]["ArticleTitle"] = $row['ArticleTitle']; $results[$i]["ArticleSlug"] = $row['ArticleSlug']; $i++; } return $results; //return $query->result(); } return false; } public function get_last_ten_entries_containing_images($start = 0, $stop = 20) { //$queryStatement = "SELECT * FROM ". $this->articles_table_name . " WHERE (ArticleBody LIKE '%.gif%' OR ArticleBody LIKE '%.png%' OR ArticleBody LIKE '%.jpg%' OR ArticleBody LIKE '%.jpeg%') AND ArticleStatus = 'live' ORDER BY ArticleID DESC LIMIT ".$start.", ".$stop; $queryStatement = "SELECT * FROM ". $this->articles_table_name . " WHERE ArticleStatus = 'live' AND ArticleImage <> '' ORDER BY ArticleID DESC LIMIT ".$start.", ".$stop; $query = $this->db->query($queryStatement); // $this->db->select('*'); // $this->db->from($this->articles_table_name); // // $this->db->where('SiteID', 1); // //$this->db->where('ArticleImage IS NOT NULL'); // $this->db->where("ArticleImage <> ''"); // $this->db->where('ArticleStatus', 'live'); // //$this->db->where("ArticleBody LIKE '%.gif%' OR ArticleBody LIKE '%.png%' OR ArticleBody LIKE '%.jpg%' OR ArticleBody LIKE '%.jpeg%'"); // $this->db->limit($start,$stop); // $this->db->order_by("ArticleID", "desc"); // $query = $this->db->get(); //echo $query->num_rows()."<>--"; //exit; if ( $query && $query->num_rows() > 0 ) { $results = array(); $COLUMNS = $this->fetch_column_names($this->articles_table_name); $i = 0; foreach ($query->result_array() as $row) { foreach($COLUMNS as $COLUMN) { $results[$i][$COLUMN] = $row[$COLUMN]; } $i++; } return $results; //return $query->result(); } return false; } public function get_last_ten_entries() { //$queryStatement = "SELECT ArticleID, ArticleTitle, ArticleBody FROM". $sites_table_name . "WHERE SiteID = '1' ORDER BY ArticleID DESC" //$query = $this->db->query($queryStatement); $this->db->from($this->articles_table_name); //$this->db->where('SiteID', 1); $this->db->where('ArticleStatus', 'live'); $this->db->limit(0,10); $this->db->order_by("ArticleID", "desc"); $query = $this->db->get(); if ($query && $query->num_rows() > 0 ) { $results = array(); $COLUMNS = $this->fetch_column_names($this->articles_table_name); $i = 0; foreach ($query->result_array() as $row) { foreach($COLUMNS as $COLUMN) { $results[$i][$COLUMN] = $row[$COLUMN]; } $i++; } return $results; //return $query->result(); } return false; } function insert_article(array $data) { $sql = $this->db->insert_string($this->articles_table_name, $data) . ' ON DUPLICATE KEY UPDATE ArticleID=LAST_INSERT_ID(ArticleID)'; $this->db->query($sql); $insert_id = $this->db->insert_id(); return $insert_id; } function get_article_by_id($id) { $this->db->from($this->articles_table_name); //$this->db->where('SiteID', 1); $this->db->where('ArticleID', $id); $this->db->where('ArticleStatus', 'live'); $this->db->limit(0,1); $query = $this->db->get(); if ($query && $query->num_rows() > 0 ) { $row = $query->row_array(); return $row; } return false; } public function get_url_by_id($id, $status="live") { $where = array('ID' => $id,'status' => $status); $query = $this->db->get_where($this->url_table_name, $where, 0, 1); if ($query && $query->num_rows() > 0 ) { foreach ($query->result_array() as $row) { $url = $row['url']; return $url; } } return FALSE; } public function get_single_article_by_slug($slug, $status="live") { $where = array('ArticleSlug' => $slug, 'SiteID' => 1,'ArticleStatus' => $status); $query = $this->db->get_where($this->articles_table_name, $where, 0, 1); if ($query && $query->num_rows() > 0 ) { $COLUMNS = $this->fetch_column_names($this->articles_table_name); $articles = array (); foreach ($query->result_array() as $row) { foreach($COLUMNS as $COLUMN) { $articles[$COLUMN] = $row[$COLUMN]; } return $articles; } } return FALSE; } public function fetch_column_names($table) { $sql = "SHOW COLUMNS FROM ".$table; $query = $this->db->query($sql); if ($query && $query->num_rows() > 0 ) { $fieldnames = array(); foreach ($query->result_array() as $row) { $fieldnames[] = $row['Field']; } return $fieldnames; } return false; } function documentExists($url) { $query = $this->db->get_where($this->articles_table_name, array('orig_url' => $url)); if($query && $query->num_rows() > 0) { return true; } return false; } function get_id_for_url($url) { $url = trim($url); if($url == ""){ return false; } $result = filter_var($url, FILTER_VALIDATE_URL); if($result){ $data = array(); $data["ID"] = ""; $data["url"] = $url; $data["status"] = "live"; $sql = $this->db->insert_string($this->url_table_name, $data) . ' ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID)'; $this->db->query($sql); $insert_id = $this->db->insert_id(); return $insert_id; } return false; } function get_id_for_image($url) { $url = trim($url); if($url == ""){ return false; } $data = array(); $data["ID"] = ""; $data["url"] = $url; $sql = $this->db->insert_string($this->images_table_name, $data) . ' ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID)'; $result = $this->db->query($sql); $insert_id = $this->db->insert_id(); return $insert_id; } function get_url_from_shortcode($short_code) { $query = $this->db->get_where($this->url_table_name, array('short_code' => $short_code), 0, 1); if($query && $query->num_rows() > 0) { $results = array(); foreach ($query->result_array() as $row) { $url = $row['url']; return $url; } } return false; } function get_short_code($url, $x="urls") { $table = $this->url_table_name; $where = array('url' => $url); if($x=="images") { $table = $this->images_table_name; } $query = $this->db->get_where($table, $where, 0, 1); if ($query && $query->num_rows() > 0 ) { foreach ($query->result_array() as $row) { if($row['status'] == 'draft'){ return false; } $short_code = $row['short_code']; return $short_code; } }else{ $data = array(); $data['ID'] = ""; $data['url'] = $url; $data['short_code'] = ""; $data['status'] = $url; $data['created'] = date("Y-m-d H:i:s"); $sql = $this->db->insert_string($table, $data) . ' ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID)'; $result = $this->db->query($sql); $insert_id = $this->db->insert_id(); $short_code = $this->alphaID($insert_id, false, 6, $this->private_key); $sql = "UPDATE ".$table." SET short_code = '".$short_code."' WHERE ID = '".$insert_id."'"; $this->db->query($sql); return $short_code; } return false; } function get_snippet($str, $n = 200, $end_char = '…') { $str = $this->trim_all(strip_tags($str)); if (strlen($str) < $n) { return $str; } $str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str)); if (strlen($str) <= $n) { return $str; } $out = ""; foreach (explode(' ', trim($str)) as $val) { $out .= $val.' '; if (strlen($out) >= $n) { $out = trim($out); return (strlen($out) == strlen($str)) ? $out : $out.$end_char; } } return trim($out); } function trim_all($str, $what = NULL, $with = " ") { if($what === NULL) { /*         //  Character      Decimal      Use         //  "\0"            0           Null Character         //  "\t"            9           Tab         //  "\n"           10           New line         //  "\x0B"         11           Vertical Tab         //  "\r"           13           New Line in Mac         //  " "            32           Space */ $what = "\\x00-\\x20"; } return trim( preg_replace( "/[".$what."]+/" , $with , $str ) , $what ); } /** * Translates a number to a short alhanumeric version * *http://kvz.io/blog/2009/06/10/create-short-ids-with-php-like-youtube-or-tinyurl/ * * Translated any number up to 9007199254740992 * to a shorter version in letters e.g.: * 9007199254740989 --> PpQXn7COf * * specifiying the second argument true, it will * translate back e.g.: * PpQXn7COf --> 9007199254740989 * // Show // * echo $number_out." => ".$alpha_out."\n"; * echo $alpha_in." => ".$number_out."\n"; * echo alphaID(238328, false)." => ".alphaID(alphaID(238328, false), true)."\n"; * * // expects: * // 2188847690240 => SpQXn7Cb * // SpQXn7Cb => 2188847690240 * // aaab => 238328 * * * * @author Kevin van Zonneveld * @author Simon Franz * @author Deadfish * @copyright 2008 Kevin van Zonneveld (http://kevin.vanzonneveld.net) * @license http://www.opensource.org/licenses/bsd-license.php New BSD Licence * @version SVN: Release: $Id: alphaID.inc.php 344 2009-06-10 17:43:59Z kevin $ * @link http://kevin.vanzonneveld.net/ * * @param mixed $in String or long input to translate * @param boolean $to_num Reverses translation when true * @param mixed $pad_up Number or boolean padds the result up to a specified length * @param string $passKey Supplying a password makes it harder to calculate the original ID * * @return mixed string or long */ function alphaID($in, $to_num = false, $pad_up = false, $passKey = null) { $index = "bcdfghjklmnpqrstvwxyz0123456789BCDFGHJKLMNPQRSTVWXYZ"; if ($passKey !== null) { // Although this function's purpose is to just make the // ID short - and not so much secure, // with this patch by Simon Franz (http://blog.snaky.org/) // you can optionally supply a password to make it harder // to calculate the corresponding numeric ID for ($n = 0; $n 0) { $out -= pow($base, $pad_up); } } $out = sprintf('%F', $out); $out = substr($out, 0, strpos($out, '.')); } else { // Digital number -->> alphabet letter code if (is_numeric($pad_up)) { $pad_up--; if ($pad_up > 0) { $in += pow($base, $pad_up); } } $out = ""; for ($t = floor(log($in, $base)); $t >= 0; $t--) { $bcp = bcpow($base, $t); $a = floor($in / $bcp) % $base; $out = $out . substr($index, $a, 1); $in = $in - ($a * $bcp); } $out = strrev($out); // reverse } return $out; } public function generate_author() { $fnames = array( 'Allison', 'Arthur', 'Ana', 'Alex', 'Arlene', 'Alberto', 'Barry', 'Bertha', 'Bill', 'Bonnie', 'Bret', 'Beryl', 'Chantal', 'Cristobal', 'Claudette', 'Charley', 'Cindy', 'Chris', 'Dean', 'Dolly', 'Danny', 'Danielle', 'Dennis', 'Debby', 'Erin', 'Edouard', 'Erika', 'Earl', 'Emily', 'Ernesto', 'Felix', 'Fay', 'Fabian', 'Frances', 'Franklin', 'Florence', 'Gabielle', 'Gustav', 'Grace', 'Gaston', 'Gert', 'Gordon', 'Humberto', 'Hanna', 'Henri', 'Hermine', 'Harvey', 'Helene', 'Iris', 'Isidore', 'Isabel', 'Ivan', 'Irene', 'Isaac', 'Jerry', 'Josephine', 'Juan', 'Jeanne', 'Jose', 'Joyce', 'Karen', 'Kyle', 'Kate', 'Karl', 'Katrina', 'Kirk', 'Lorenzo', 'Lili', 'Larry', 'Lisa', 'Lee', 'Leslie', 'Michelle', 'Marco', 'Mindy', 'Maria', 'Michael', 'Noel', 'Nana', 'Nicholas', 'Nicole', 'Nate', 'Nadine', 'Olga', 'Omar', 'Odette', 'Otto', 'Ophelia', 'Oscar', 'Pablo', 'Paloma', 'Peter', 'Paula', 'Philippe', 'Patty', 'Rebekah', 'Rene', 'Rose', 'Richard', 'Rita', 'Rafael', 'Sebastien', 'Sally', 'Sam', 'Shary', 'Stan', 'Sandy', 'Tanya', 'Teddy', 'Teresa', 'Tomas', 'Tammy', 'Tony', 'Van', 'Vicky', 'Victor', 'Virginie', 'Vince', 'Valerie', 'Wendy', 'Wilfred', 'Wanda', 'Walter', 'Wilma', 'William', 'Kumiko', 'Aki', 'Miharu', 'Chiaki', 'Michiyo', 'Itoe', 'Nanaho', 'Reina', 'Emi', 'Yumi', 'Ayumi', 'Kaori', 'Sayuri', 'Rie', 'Miyuki', 'Hitomi', 'Naoko', 'Miwa', 'Etsuko', 'Akane', 'Kazuko', 'Miyako', 'Youko', 'Sachiko', 'Mieko', 'Toshie', 'Junko'); $lnames = array( 'Abbott', 'Acevedo', 'Acosta', 'Adams', 'Adkins', 'Aguilar', 'Aguirre', 'Albert', 'Alexander', 'Alford', 'Allen', 'Allison', 'Alston', 'Alvarado', 'Alvarez', 'Anderson', 'Andrews', 'Anthony', 'Armstrong', 'Arnold', 'Ashley', 'Atkins', 'Atkinson', 'Austin', 'Avery', 'Avila', 'Ayala', 'Ayers', 'Bailey', 'Baird', 'Baker', 'Baldwin', 'Ball', 'Ballard', 'Banks', 'Barber', 'Barker', 'Barlow', 'Barnes', 'Barnett', 'Barr', 'Barrera', 'Barrett', 'Barron', 'Barry', 'Bartlett', 'Barton', 'Bass', 'Bates', 'Battle', 'Bauer', 'Baxter', 'Beach', 'Bean', 'Beard', 'Beasley', 'Beck', 'Becker', 'Bell', 'Bender', 'Benjamin', 'Bennett', 'Benson', 'Bentley', 'Benton', 'Berg', 'Berger', 'Bernard', 'Berry', 'Best', 'Bird', 'Bishop', 'Black', 'Blackburn', 'Blackwell', 'Blair', 'Blake', 'Blanchard', 'Blankenship', 'Blevins', 'Bolton', 'Bond', 'Bonner', 'Booker', 'Boone', 'Booth', 'Bowen', 'Bowers', 'Bowman', 'Boyd', 'Boyer', 'Boyle', 'Bradford', 'Bradley', 'Bradshaw', 'Brady', 'Branch', 'Bray', 'Brennan', 'Brewer', 'Bridges', 'Briggs', 'Bright', 'Britt', 'Brock', 'Brooks', 'Brown', 'Browning', 'Bruce', 'Bryan', 'Bryant', 'Buchanan', 'Buck', 'Buckley', 'Buckner', 'Bullock', 'Burch', 'Burgess', 'Burke', 'Burks', 'Burnett', 'Burns', 'Burris', 'Burt', 'Burton', 'Bush', 'Butler', 'Byers', 'Byrd', 'Cabrera', 'Cain', 'Calderon', 'Caldwell', 'Calhoun', 'Callahan', 'Camacho', 'Cameron', 'Campbell', 'Campos', 'Cannon', 'Cantrell', 'Cantu', 'Cardenas', 'Carey', 'Carlson', 'Carney', 'Carpenter', 'Carr', 'Carrillo', 'Carroll', 'Carson', 'Carter', 'Carver', 'Case', 'Casey', 'Cash', 'Castaneda', 'Castillo', 'Castro', 'Cervantes', 'Chambers', 'Chan', 'Chandler', 'Chaney', 'Chang', 'Chapman', 'Charles', 'Chase', 'Chavez', 'Chen', 'Cherry', 'Christensen', 'Christian', 'Church', 'Clark', 'Clarke', 'Clay', 'Clayton', 'Clements', 'Clemons', 'Cleveland', 'Cline', 'Cobb', 'Cochran', 'Coffey', 'Cohen', 'Cole', 'Coleman', 'Collier', 'Collins', 'Colon', 'Combs', 'Compton', 'Conley', 'Conner', 'Conrad', 'Contreras', 'Conway', 'Cook', 'Cooke', 'Cooley', 'Cooper', 'Copeland', 'Cortez', 'Cote', 'Cotton', 'Cox', 'Craft', 'Craig', 'Crane', 'Crawford', 'Crosby', 'Cross', 'Cruz', 'Cummings', 'Cunningham', 'Curry', 'Curtis', 'Dale', 'Dalton', 'Daniel', 'Daniels', 'Daugherty', 'Davenport', 'David', 'Davidson', 'Davis', 'Dawson', 'Day', 'Dean', 'Decker', 'Dejesus', 'Delacruz', 'Delaney', 'Deleon', 'Delgado', 'Dennis', 'Diaz', 'Dickerson', 'Dickson', 'Dillard', 'Dillon', 'Dixon', 'Dodson', 'Dominguez', 'Donaldson', 'Donovan', 'Dorsey', 'Dotson', 'Douglas', 'Downs', 'Doyle', 'Drake', 'Dudley', 'Duffy', 'Duke', 'Duncan', 'Dunlap', 'Dunn', 'Duran', 'Durham', 'Dyer', 'Eaton', 'Edwards', 'Elliott', 'Ellis', 'Ellison', 'Emerson', 'England', 'English', 'Erickson', 'Espinoza', 'Estes', 'Estrada', 'Evans', 'Everett', 'Ewing', 'Farley', 'Farmer', 'Farrell', 'Faulkner', 'Ferguson', 'Fernandez', 'Ferrell', 'Fields', 'Figueroa', 'Finch', 'Finley', 'Fischer', 'Fisher', 'Fitzgerald', 'Fitzpatrick', 'Fleming', 'Fletcher', 'Flores', 'Flowers', 'Floyd', 'Flynn', 'Foley', 'Forbes', 'Ford', 'Foreman', 'Foster', 'Fowler', 'Fox', 'Francis', 'Franco', 'Frank', 'Franklin', 'Franks', 'Frazier', 'Frederick', 'Freeman', 'French', 'Frost', 'Fry', 'Frye', 'Fuentes', 'Fuller', 'Fulton', 'Gaines', 'Gallagher', 'Gallegos', 'Galloway', 'Gamble', 'Garcia', 'Gardner', 'Garner', 'Garrett', 'Garrison', 'Garza', 'Gates', 'Gay', 'Gentry', 'George', 'Gibbs', 'Gibson', 'Gilbert', 'Giles', 'Gill', 'Gillespie', 'Gilliam', 'Gilmore', 'Glass', 'Glenn', 'Glover', 'Goff', 'Golden', 'Gomez', 'Gonzales', 'Gonzalez', 'Good', 'Goodman', 'Goodwin', 'Gordon', 'Gould', 'Graham', 'Grant', 'Graves', 'Gray', 'Green', 'Greene', 'Greer', 'Gregory', 'Griffin', 'Griffith', 'Grimes', 'Gross', 'Guerra', 'Guerrero', 'Guthrie', 'Gutierrez', 'Guy', 'Guzman', 'Hahn', 'Hale', 'Haley', 'Hall', 'Hamilton', 'Hammond', 'Hampton', 'Hancock', 'Haney', 'Hansen', 'Hanson', 'Hardin', 'Harding', 'Hardy', 'Harmon', 'Harper', 'Harrell', 'Harrington', 'Harris', 'Harrison', 'Hart', 'Hartman', 'Harvey', 'Hatfield', 'Hawkins', 'Hayden', 'Hayes', 'Haynes', 'Hays', 'Head', 'Heath', 'Hebert', 'Henderson', 'Hendricks', 'Hendrix', 'Henry', 'Hensley', 'Henson', 'Herman', 'Hernandez', 'Herrera', 'Herring', 'Hess', 'Hester', 'Hewitt', 'Hickman', 'Hicks', 'Higgins', 'Hill', 'Hines', 'Hinton', 'Hobbs', 'Hodge', 'Hodges', 'Hoffman', 'Hogan', 'Holcomb', 'Holden', 'Holder', 'Holland', 'Holloway', 'Holman', 'Holmes', 'Holt', 'Hood', 'Hooper', 'Hoover', 'Hopkins', 'Hopper', 'Horn', 'Horne', 'Horton', 'House', 'Houston', 'Howard', 'Howe', 'Howell', 'Hubbard', 'Huber', 'Hudson', 'Huff', 'Huffman', 'Hughes', 'Hull', 'Humphrey', 'Hunt', 'Hunter', 'Hurley', 'Hurst', 'Hutchinson', 'Hyde', 'Ingram', 'Irwin', 'Jackson', 'Jacobs', 'Jacobson', 'James', 'Jarvis', 'Jefferson', 'Jenkins', 'Jennings', 'Jensen', 'Jimenez', 'Johns', 'Johnson', 'Johnston', 'Jones', 'Jordan', 'Joseph', 'Joyce', 'Joyner', 'Juarez', 'Justice', 'Kane', 'Kaufman', 'Keith', 'Keller', 'Kelley', 'Kelly', 'Kemp', 'Kennedy', 'Kent', 'Kerr', 'Key', 'Kidd', 'Kim', 'King', 'Kinney', 'Kirby', 'Kirk', 'Kirkland', 'Klein', 'Kline', 'Knapp', 'Knight', 'Knowles', 'Knox', 'Koch', 'Kramer', 'Lamb', 'Lambert', 'Lancaster', 'Landry', 'Lane', 'Lang', 'Langley', 'Lara', 'Larsen', 'Larson', 'Lawrence', 'Lawson', 'Le', 'Leach', 'Leblanc', 'Lee', 'Leon', 'Leonard', 'Lester', 'Levine', 'Levy', 'Lewis', 'Lindsay', 'Lindsey', 'Little', 'Livingston', 'Lloyd', 'Logan', 'Long', 'Lopez', 'Lott', 'Love', 'Lowe', 'Lowery', 'Lucas', 'Luna', 'Lynch', 'Lynn', 'Lyons', 'Macdonald', 'Macias', 'Mack', 'Madden', 'Maddox', 'Maldonado', 'Malone', 'Mann', 'Manning', 'Marks', 'Marquez', 'Marsh', 'Marshall', 'Martin', 'Martinez', 'Mason', 'Massey', 'Mathews', 'Mathis', 'Matthews', 'Maxwell', 'May', 'Mayer', 'Maynard', 'Mayo', 'Mays', 'Mcbride', 'Mccall', 'Mccarthy', 'Mccarty', 'Mcclain', 'Mcclure', 'Mcconnell', 'Mccormick', 'Mccoy', 'Mccray', 'Mccullough', 'Mcdaniel', 'Mcdonald', 'Mcdowell', 'Mcfadden', 'Mcfarland', 'Mcgee', 'Mcgowan', 'Mcguire', 'Mcintosh', 'Mcintyre', 'Mckay', 'Mckee', 'Mckenzie', 'Mckinney', 'Mcknight', 'Mclaughlin', 'Mclean', 'Mcleod', 'Mcmahon', 'Mcmillan', 'Mcneil', 'Mcpherson', 'Meadows', 'Medina', 'Mejia', 'Melendez', 'Melton', 'Mendez', 'Mendoza', 'Mercado', 'Mercer', 'Merrill', 'Merritt', 'Meyer', 'Meyers', 'Michael', 'Middleton', 'Miles', 'Miller', 'Mills', 'Miranda', 'Mitchell', 'Molina', 'Monroe', 'Montgomery', 'Montoya', 'Moody', 'Moon', 'Mooney', 'Moore', 'Morales', 'Moran', 'Moreno', 'Morgan', 'Morin', 'Morris', 'Morrison', 'Morrow', 'Morse', 'Morton', 'Moses', 'Mosley', 'Moss', 'Mueller', 'Mullen', 'Mullins', 'Munoz', 'Murphy', 'Murray', 'Myers', 'Nash', 'Navarro', 'Neal', 'Nelson', 'Newman', 'Newton', 'Nguyen', 'Nichols', 'Nicholson', 'Nielsen', 'Nieves', 'Nixon', 'Noble', 'Noel', 'Nolan', 'Norman', 'Norris', 'Norton', 'Nunez', 'Obrien', 'Ochoa', 'Oconnor', 'Odom', 'Odonnell', 'Oliver', 'Olsen', 'Olson', 'Oneal', 'Oneil', 'Oneill', 'Orr', 'Ortega', 'Ortiz', 'Osborn', 'Osborne', 'Owen', 'Owens', 'Pace', 'Pacheco', 'Padilla', 'Page', 'Palmer', 'Park', 'Parker', 'Parks', 'Parrish', 'Parsons', 'Pate', 'Patel', 'Patrick', 'Patterson', 'Patton', 'Paul', 'Payne', 'Pearson', 'Peck', 'Pena', 'Pennington', 'Perez', 'Perkins', 'Perry', 'Peters', 'Petersen', 'Peterson', 'Petty', 'Phelps', 'Phillips', 'Pickett', 'Pierce', 'Pittman', 'Pitts', 'Pollard', 'Poole', 'Pope', 'Porter', 'Potter', 'Potts', 'Powell', 'Powers', 'Pratt', 'Preston', 'Price', 'Prince', 'Pruitt', 'Puckett', 'Pugh', 'Quinn', 'Ramirez', 'Ramos', 'Ramsey', 'Randall', 'Randolph', 'Rasmussen', 'Ratliff', 'Ray', 'Raymond', 'Reed', 'Reese', 'Reeves', 'Reid', 'Reilly', 'Reyes', 'Reynolds', 'Rhodes', 'Rice', 'Rich', 'Richard', 'Richards', 'Richardson', 'Richmond', 'Riddle', 'Riggs', 'Riley', 'Rios', 'Rivas', 'Rivera', 'Rivers', 'Roach', 'Robbins', 'Roberson', 'Roberts', 'Robertson', 'Robinson', 'Robles', 'Rocha', 'Rodgers', 'Rodriguez', 'Rodriquez', 'Rogers', 'Rojas', 'Rollins', 'Roman', 'Romero', 'Rosa', 'Rosales', 'Rosario', 'Rose', 'Ross', 'Roth', 'Rowe', 'Rowland', 'Roy', 'Ruiz', 'Rush', 'Russell', 'Russo', 'Rutledge', 'Ryan', 'Salas', 'Salazar', 'Salinas', 'Sampson', 'Sanchez', 'Sanders', 'Sandoval', 'Sanford', 'Santana', 'Santiago', 'Santos', 'Sargent', 'Saunders', 'Savage', 'Sawyer', 'Schmidt', 'Schneider', 'Schroeder', 'Schultz', 'Schwartz', 'Scott', 'Sears', 'Sellers', 'Serrano', 'Sexton', 'Shaffer', 'Shannon', 'Sharp', 'Sharpe', 'Shaw', 'Shelton', 'Shepard', 'Shepherd', 'Sheppard', 'Sherman', 'Shields', 'Short', 'Silva', 'Simmons', 'Simon', 'Simpson', 'Sims', 'Singleton', 'Skinner', 'Slater', 'Sloan', 'Small', 'Smith', 'Snider', 'Snow', 'Snyder', 'Solis', 'Solomon', 'Sosa', 'Soto', 'Sparks', 'Spears', 'Spence', 'Spencer', 'Stafford', 'Stanley', 'Stanton', 'Stark', 'Steele', 'Stein', 'Stephens', 'Stephenson', 'Stevens', 'Stevenson', 'Stewart', 'Stokes', 'Stone', 'Stout', 'Strickland', 'Strong', 'Stuart', 'Suarez', 'Sullivan', 'Summers', 'Sutton', 'Swanson', 'Sweeney', 'Sweet', 'Sykes', 'Talley', 'Tanner', 'Tate', 'Taylor', 'Terrell', 'Terry', 'Thomas', 'Thompson', 'Thornton', 'Tillman', 'Todd', 'Torres', 'Townsend', 'Tran', 'Travis', 'Trevino', 'Trujillo', 'Tucker', 'Turner', 'Tyler', 'Tyson', 'Underwood', 'Valdez', 'Valencia', 'Valentine', 'Valenzuela', 'Vance', 'Vang', 'Vargas', 'Vasquez', 'Vaughan', 'Vaughn', 'Vazquez', 'Vega', 'Velasquez', 'Velazquez', 'Velez', 'Villarreal', 'Vincent', 'Vinson', 'Wade', 'Wagner', 'Walker', 'Wall', 'Wallace', 'Waller', 'Walls', 'Walsh', 'Walter', 'Walters', 'Walton', 'Ward', 'Ware', 'Warner', 'Warren', 'Washington', 'Waters', 'Watkins', 'Watson', 'Watts', 'Weaver', 'Webb', 'Weber', 'Webster', 'Weeks', 'Weiss', 'Welch', 'Wells', 'West', 'Wheeler', 'Whitaker', 'White', 'Whitehead', 'Whitfield', 'Whitley', 'Whitney', 'Wiggins', 'Wilcox', 'Wilder', 'Wiley', 'Wilkerson', 'Wilkins', 'Wilkinson', 'William', 'Williams', 'Williamson', 'Willis', 'Wilson', 'Winters', 'Wise', 'Witt', 'Wolf', 'Wolfe', 'Wong', 'Wood', 'Woodard', 'Woods', 'Woodward', 'Wooten', 'Workman', 'Wright', 'Wyatt', 'Wynn', 'Yang', 'Yates', 'York', 'Young', 'Zamora', 'Zimmerman'); //Generate a random forename. $random_fname = $fnames[mt_rand(0, sizeof($fnames) - 1)]; $random_lname = $lnames[mt_rand(0, count($lnames) -1)]; return $random_fname." ".$random_lname; } public function _create_tables() { $sql = "CREATE TABLE IF NOT EXISTS `".$this->sites_table_name."` ( `SiteID` int(11) NOT NULL AUTO_INCREMENT, `SiteUrl` varchar(100) NOT NULL, `RegDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `ExpDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `SiteLive` enum('y','n') NOT NULL DEFAULT 'y', PRIMARY KEY (`SiteID`), UNIQUE KEY `SiteUrl` (`SiteUrl`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $this->db->query($sql); $sql = "CREATE TABLE IF NOT EXISTS `".$this->articles_table_name."` ( `ArticleID` int(11) NOT NULL AUTO_INCREMENT, `SiteID` int(11) NOT NULL DEFAULT '1', `ArticleTitle` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `ArticleSlug` varchar(255) COLLATE utf8_unicode_ci, `ArticleBody` text COLLATE utf8_unicode_ci NOT NULL, `ArticleSummary` text COLLATE utf8_unicode_ci NOT NULL, `ArticleKeywords` varchar(255) COLLATE utf8_unicode_ci, `ArticleAuthor` text COLLATE utf8_unicode_ci, `ArticleImage` text COLLATE utf8_unicode_ci, `ArticleStatus` enum('draft','live') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'draft', `orig_url` varchar(300) COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`ArticleID`), UNIQUE KEY `ID` (`ArticleID`,`SiteID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $this->db->query($sql); $sql = "CREATE TABLE IF NOT EXISTS `".$this->url_table_name."` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `url` varchar(300) COLLATE utf8_unicode_ci NOT NULL, `short_code` varchar(100), `status` enum('draft','live') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'draft', `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`ID`), UNIQUE KEY `url` (`url`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $this->db->query($sql); $sql = "CREATE TABLE IF NOT EXISTS `".$this->images_table_name."` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `url` varchar(300) COLLATE utf8_unicode_ci NOT NULL, `short_code` varchar(100), `status` enum('draft','live') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'draft', `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`ID`), UNIQUE KEY `url` (`url`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $this->db->query($sql); } }