1*0Syaroslav@ivinco.com<?php 2*0Syaroslav@ivinco.com/* 3*0Syaroslav@ivinco.com * To change this template, choose Tools | Templates 4*0Syaroslav@ivinco.com * and open the template in the editor. 5*0Syaroslav@ivinco.com */ 6*0Syaroslav@ivinco.com 7*0Syaroslav@ivinco.comclass PageMapper 8*0Syaroslav@ivinco.com{ 9*0Syaroslav@ivinco.com private $_database = 'sphinxplugin'; 10*0Syaroslav@ivinco.com private $_table = 'pages'; 11*0Syaroslav@ivinco.com private $_db = null; 12*0Syaroslav@ivinco.com public function __construct() 13*0Syaroslav@ivinco.com { 14*0Syaroslav@ivinco.com global $conf; 15*0Syaroslav@ivinco.com $this->_dbpath = DOKU_INC . $conf['savedir'] . '/'.$this->_database; 16*0Syaroslav@ivinco.com 17*0Syaroslav@ivinco.com if (false != ($db = new SQLiteDatabase($this->_dbpath))) { 18*0Syaroslav@ivinco.com $q = @$db->query("SELECT 1 FROM {$this->_table} limit 1"); 19*0Syaroslav@ivinco.com if ($q === false) { 20*0Syaroslav@ivinco.com $db->queryExec("CREATE TABLE {$this->_table} (page varchar(1024), page_crc int(11))"); 21*0Syaroslav@ivinco.com } 22*0Syaroslav@ivinco.com } 23*0Syaroslav@ivinco.com $this->_db = $db; 24*0Syaroslav@ivinco.com } 25*0Syaroslav@ivinco.com 26*0Syaroslav@ivinco.com public function add($page) 27*0Syaroslav@ivinco.com { 28*0Syaroslav@ivinco.com $this->_db->queryExec("REPLACE into {$this->_table}(page, page_crc) values('{$page}', '".crc32($page)."')"); 29*0Syaroslav@ivinco.com } 30*0Syaroslav@ivinco.com 31*0Syaroslav@ivinco.com public function getAll() 32*0Syaroslav@ivinco.com { 33*0Syaroslav@ivinco.com $result = $this->_db->query("select * from {$this->_table}"); 34*0Syaroslav@ivinco.com return $result->fetchAll($query); 35*0Syaroslav@ivinco.com } 36*0Syaroslav@ivinco.com 37*0Syaroslav@ivinco.com public function getByCrc($pageCrcList) 38*0Syaroslav@ivinco.com { 39*0Syaroslav@ivinco.com $sql = sprintf("select * from {$this->_table} where page_crc in (%s)", implode(",", $pageCrcList)); 40*0Syaroslav@ivinco.com $result = $this->_db->query($sql); 41*0Syaroslav@ivinco.com $rows = $result->fetchAll($query); 42*0Syaroslav@ivinco.com $pages = array(); 43*0Syaroslav@ivinco.com foreach($rows as $row){ 44*0Syaroslav@ivinco.com $pages[$row['page_crc']] = $row['page']; 45*0Syaroslav@ivinco.com } 46*0Syaroslav@ivinco.com return $pages; 47*0Syaroslav@ivinco.com } 48*0Syaroslav@ivinco.com} 49