Mercurial > epgrec.yaz
view Keyword.class.php @ 94:12ed8ad837fc
fix: ¤µ¤é¤Ë½¤Àµ
author | epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp> |
---|---|
date | Tue, 02 Mar 2010 23:35:28 +0900 |
parents | cb7da56c4198 |
children | 57676bb30f64 |
line wrap: on
line source
<?php include_once('config.php'); include_once( INSTALL_PATH . "/DBRecord.class.php" ); include_once( INSTALL_PATH . "/reclib.php" ); include_once( INSTALL_PATH . "/Reservation.class.php" ); include_once( INSTALL_PATH . '/Settings.class.php' ); class Keyword extends DBRecord { public function __construct($property = null, $value = null ) { try { parent::__construct(KEYWORD_TBL, $property, $value ); } catch( Exception $e ) { throw $e; } } private function getPrograms() { if( $this->id == 0 ) return false; // ã¡ã‚‡ã£ã¨å…ˆã‚’検索ã™ã‚‹ $options = " WHERE starttime > '".date("Y-m-d H:i:s", time() + $this->settings->padding_time + 120 )."'"; if( $this->keyword != "" ) { if( $this->use_regexp ) { $options .= " AND CONCAT(title,description) REGEXP '".mysql_real_escape_string($this->keyword)."'"; } else { $options .= " AND CONCAT(title,description) like '%".mysql_real_escape_string($this->keyword)."%'"; } } if( $this->type != "*" ) { $options .= " AND type = '".$this->type."'"; } if( $this->category_id != 0 ) { $options .= " AND category_id = '".$this->category_id."'"; } if( $this->channel_id != 0 ) { $options .= " AND channel_id = '".$this->channel_id."'"; } if( $this->weekofday != 7 ) { $options .= " AND WEEKDAY(starttime) = '".$this->weekofday."'"; } $options .= " ORDER BY starttime ASC"; $recs = array(); try { $recs = DBRecord::createRecords( PROGRAM_TBL, $options ); } catch( Exception $e ) { throw $e; } return $recs; } public function reservation() { if( $this->id == 0 ) return; $precs = array(); try { $precs = $this->getPrograms(); } catch( Exception $e ) { throw $e; } if( count($precs) < 300 ) { // 一気ã«éŒ²ç”»äºˆç´„ foreach( $precs as $rec ) { try { if( $rec->autorec ) { Reservation::simple( $rec->id, $this->id, $this->autorec_mode ); usleep( 100 ); // ã‚ã‚“ã¾ã‚Šæ™‚間を空ã‘ãªã„ã®ã‚‚ã©ã†? } } catch( Exception $e ) { // 無視 } } } else { throw new Exception( "300件以上ã®è‡ªå‹•éŒ²ç”»ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“" ); } } public function delete() { if( $this->id == 0 ) return; $precs = array(); try { $precs = $this->getPrograms(); } catch( Exception $e ) { throw $e; } // 一気ã«ã‚ャンセル foreach( $precs as $rec ) { try { $reserve = new DBRecord( RESERVE_TBL, "program_id", $rec->id ); // 自動予約ã•ã‚ŒãŸã‚‚ã®ã®ã¿å‰Šé™¤ if( $reserve->autorec ) { Reservation::cancel( $reserve->id ); usleep( 100 ); // ã‚ã‚“ã¾ã‚Šæ™‚間を空ã‘ãªã„ã®ã‚‚ã©ã†? } } catch( Exception $e ) { // 無視 } } try { parent::delete(); } catch( Exception $e ) { throw $e; } } // staticãªãƒ•ã‚¡ãƒ³ã‚¯ã‚·ãƒ§ãƒ³ã¯ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ããªã„ static function createKeywords( $options = "" ) { $retval = array(); $arr = array(); try{ $tbl = new self(); $sqlstr = "SELECT * FROM ".$tbl->table." " .$options; $result = $tbl->__query( $sqlstr ); } catch( Exception $e ) { throw $e; } if( $result === false ) throw new exception("レコードãŒå˜åœ¨ã—ã¾ã›ã‚“"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { array_push( $retval, new self('id', $row['id']) ); } return $retval; } public function __destruct() { parent::__destruct(); } } ?>