<?php
/**
* ç¢è¯twitter
*
* @copyright (c) Emlog All Rights Reserved
* $Id: class.twittter.php 1596 2010-03-02 12:09:48Z Colt.hawkins $
*/
class emTwitter {
/**
* å
鍿°æ®å¯¹è±¡
* @var MySql
*/
private $db;
function __construct() {
$this->db = MySql::getInstance();
}
/**
* åå
¥ç¢è¯
*
* @param array $tData
* @return int
*/
function addTwitter($tData) {
$kItem = array();
$dItem = array();
foreach ($tData as $key => $data) {
$kItem[] = $key;
$dItem[] = $data;
}
$field = implode(',', $kItem);
$values = "'" . implode("','", $dItem) . "'";
$this->db->query("INSERT INTO " . DB_PREFIX . "twitter ($field) VALUES ($values)");
$logid = $this->db->insert_id();
return $logid;
}
/**
* è·åæå®æ¡ä»¶çç¢è¯æ¡æ°
*
* @param int $spot 0:åå° 1:åå°
* @return int
*/
function getTwitterNum($spot = 0) {
$author = ROLE == 'admin' || ROLE == 'visitor' || $spot == 0 ? '' : 'and author=' . UID;
$res = $this->db->query("SELECT id FROM " . DB_PREFIX . "twitter WHERE 1=1 $author");
$twNum = $this->db->num_rows($res);
return $twNum;
}
/**
* è·åç¢è¯å表
*
* @param int $page
* @param int $spot 0:åå° 1:åå°
* @return array
*/
function getTwitters($page = 1, $spot = 0) {
global $index_twnum;
$perpage_num = $spot == 1 ? ADMIN_PERPAGE_NUM : $index_twnum;
$start_limit = !empty($page) ? ($page - 1) * $perpage_num : 0;
$author = ROLE == 'admin' || ROLE == 'visitor' || $spot == 0 ? '' : 'and author=' . UID;
$limit = "LIMIT $start_limit, " . $perpage_num;
$sql = "SELECT * FROM " . DB_PREFIX . "twitter WHERE 1=1 $author ORDER BY id DESC $limit";
$res = $this->db->query($sql);
$tws = array();
while ($row = $this->db->fetch_array($res)) {
$row['id'] = $row['id'];
$row['t'] = $row['content'];
$row['date'] = smartDate($row['date']);
$row['replynum'] = $row['replynum'];
$tws[] = $row;
}
return $tws;
}
/**
* å é¤ç¢è¯
*
* @param int $tid
*/
function delTwitter($tid) {
$author = ROLE == 'admin' ? '' : 'and author=' . UID;
$this->db->query("DELETE FROM " . DB_PREFIX . "twitter where id=$tid $author");
if ($this->db->affected_rows() < 1) {
formMsg('æéä¸è¶³ï¼', './', 0);
}
// delete reply
$this->db->query("DELETE FROM " . DB_PREFIX . "reply where tid=$tid");
}
/**
* æ´æ°ç¢è¯å夿°ç®
*
* @param int $tid
* @param string $do '+1' or '-1'
*/
function updateReplyNum($tid, $do) {
$this->db->query("UPDATE ".DB_PREFIX."twitter SET replynum = replynum $do WHERE id='$tid'");
}
/**
* æ ¼å¼åç¢è¯å
容
*
* @param string $t
*/
function formatTwitter($t) {
//è¯å«URL
$t = htmlspecialchars(preg_replace("/http:\/\/[\w-.?\/=&%:]*/i", "[+@] href=\"\$0\" target=\"_blank\"[@+]\$0[-@+]", $t), ENT_NOQUOTES);
$t = str_replace(array('[+@]','[@+]','[-@+]'), array('<a','>','</a>'), $t);
return $t;
}
}