0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
tikiwiki
/
1.9.7-31
/
standard
/
htdocs
/
lib
/
newsreader
/
[
Home
]
File: newslib.php
<?php //this script may only be included - so its better to die if called directly. if (strpos($_SERVER["SCRIPT_NAME"],basename(__FILE__)) !== false) { header("location: index.php"); exit; } require_once "lib/pear/NNTP.php"; class Newslib extends TikiLib { var $db; var $nntp; function Newslib($db) { if (!$db) { die ("Invalid db object passed to NewsLib constructor"); } $this->nntp = new Net_NNTP; $this->db = $db; } function get_server($user, $serverId) { $query = "select * from `tiki_newsreader_servers` where `user`=? and `serverId`=?"; $result = $this->query($query, array($user,(int)$serverId)); $res = $result->fetchRow(); return $res; } function news_mark($user, $serverId, $groupName) { $now = date("U"); if ($this->getOne( "select count(*) from `tiki_newsreader_marks` where `user`=? and `serverId`=? and `groupName`=?",array($user,(int)$serverId,$groupName))) { $query = "update `tiki_newsreader_marks` set `timestamp`=? where `user`=? and `serverId`=? and `groupName`=?"; $this->query($query,array(array((int)$now,$user,(int)$serverId,$groupName))); } else { $query = "insert into `tiki_newsreader_marks`(`user`,`serverId`,`groupName`,`timestamp`) values(?,?,?,?)"; $this->query($query,array($user,(int)$serverId,$groupName,(int)$now)); } } function news_get_mark($user, $serverId, $groupName) { if ($this->getOne( "select count(*) from `tiki_newsreader_marks` where `user`=? and `serverId`=? and `groupName`=?",array($user,(int)$serverId,$groupName))) { return $this->getOne("select `timestamp` from `tiki_newsreader_marks` where `user`='$user' and `serverId`=? and `groupName`=?",array($user,(int)$serverId,$groupName)); } else { return 0; } } function replace_server($user, $serverId, $server, $port, $username, $password) { if ($serverId) { $query = "update `tiki_newsreader_servers` set `server`=?, `port`=?, `username`=?, `password`=? where `user`=? and `serverId`=?"; $this->query($query,array($server,(int)$port,$username,$password,$user,(int)$serverId)); return $serverId; } else { $query = "insert into `tiki_newsreader_servers`(`user`,`serverId`,`server`,`port`,`username`,`password`) values(?,?,?,?,?,?)"; $this->query($query,array($user,(int)$serverId,$server,(int)$port,$username,$password)); $serverId = $this->getOne("select max(`serverId`) from `tiki_newsreader_servers` where `user`=? and `server`=?",array($user,$server)); return $serverId; } } function remove_server($user, $serverId) { $query = "delete from `tiki_newsreader_servers` where `user`=? and `serverId`=?"; $this->query($query,array($user,(int)$serverId)); } function list_servers($user, $offset, $maxRecords, $sort_mode, $find) { $bindvars = array($user); if ($find) { $findesc = '%' . $find . '%'; $mid = " and (`title` like ? or `description` like ?)"; $bindvars[] = $findesc; $bindvars[] = $findesc; } else { $mid = ""; } $query = "select * from `tiki_newsreader_servers` where `user`=? $mid order by ".$this->convert_sortmode("$sort_mode").",".$this->convert_sortmode("serverId_desc"); $query_cant = "select count(*) from `tiki_newsreader_servers` where `user`=? $mid"; $result = $this->query($query,$bindvars,$maxRecords,$offset); $cant = $this->getOne($query_cant,$bindvars); $ret = array(); while ($res = $result->fetchRow()) { $ret[] = $res; } $retval = array(); $retval["data"] = $ret; $retval["cant"] = $cant; return $retval; } function news_select_group($group) { return $this->nntp->selectGroup($group); } function news_split_headers($id) { return $this->nntp->splitHeaders($id); } function news_get_body($id) { return $this->nntp->getBody($id); } function news_set_server($server, $port, $user, $pass) { $ret = $this->nntp->connect($server, $port, $user, $pass); if (PEAR::isError($ret)) { return false; } else { return true; } } function news_get_groups() { return $this->nntp->getGroups(); } } global $dbTiki; $newslib = new Newslib($dbTiki); ?>