trackback.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 128 行

PHP
128
字号
<?php
/**
 * Article management
 *
 * @copyright	The XOOPS project http://www.xoops.org/
 * @license		http://www.fsf.org/copyleft/gpl.html GNU public license
 * @author		Taiwen Jiang (phppp or D.J.) <php_pp@hotmail.com>
 * @since		1.00
 * @version		$Id$
 * @package		module::article
 */
 
if (!defined("XOOPS_ROOT_PATH")) {
	exit();
}
include_once dirname(dirname(__FILE__))."/include/vars.php";
mod_loadFunctions("parse", $GLOBALS["artdirname"]);

if(!class_exists("Trackback")){
class Trackback extends ArtObject
{
    //var $db;
    //var $table;

    function Trackback($id = null)
    {
	    $this->ArtObject();
        //$this->db =& Database::getInstance();
        $this->table = art_DB_prefix("trackback");
        $this->initVar("tb_id", XOBJ_DTYPE_INT, null);
        $this->initVar("art_id", XOBJ_DTYPE_INT, 0, true);
        $this->initVar("tb_status", XOBJ_DTYPE_INT, 0);
        $this->initVar("tb_time", XOBJ_DTYPE_INT);
        $this->initVar("tb_title", XOBJ_DTYPE_TXTBOX);
        $this->initVar("tb_url", XOBJ_DTYPE_TXTBOX);
        $this->initVar("tb_excerpt", XOBJ_DTYPE_TXTBOX);
        $this->initVar("tb_blog_name", XOBJ_DTYPE_TXTBOX);
        $this->initVar("tb_ip", XOBJ_DTYPE_INT);
    }

    function getTime($format ="s")
    {
		mod_loadFunctions("time", $GLOBALS["artdirname"]);
	    $time = art_formatTimestamp($this->getVar("tb_time"), $format);
		return $time;
    }

    function getIp()
    {
	    return long2ip($this->getVar("tb_ip"));
    }
}
}

art_parse_class('
class [CLASS_PREFIX]TrackbackHandler extends  ArtObjectHandler
{
    function [CLASS_PREFIX]TrackbackHandler(&$db) {
        $this->ArtObjectHandler($db, art_DB_prefix("trackback", true), "Trackback", "tb_id", "tb_url");
    }

    function &getByArticle($art_id, $isApproved = true)
    {
        $sql = "SELECT * FROM " . art_DB_prefix("trackback") . " WHERE art_id = ". intval($art_id);
        if ($isApproved) {
            $sql .= " AND tb_status>0";
        }
        $result = $this->db->query($sql);
        $ret = array();
        while ($myrow = $this->db->fetchArray($result)) {
            $trackback =& $this->create(false);
            $trackback->assignVars($myrow);
            $ret[$myrow["tb_id"]] = $trackback;
            unset($trackback);
        }
        return $ret;
    }

    function deleteIds($ids)
    {
	    $ids = array_map("intval", $ids);

        $sql = "DELETE FROM ".art_DB_prefix("trackback")." WHERE tb_id IN (". implode(",",$ids).")";
        if (!$result = $this->db->queryF($sql)) {
            xoops_error("delete trackbacks error:" . $sql);
            return false;
        }
        return true;
    }

    function approveIds($ids)
    {
	    $ids = array_map("intval", $ids);

        $sql = "UPDATE ".art_DB_prefix("trackback")." SET tb_status=1 WHERE tb_id IN (". implode(",",$ids).")";
        if (!$result = $this->db->queryF($sql)) {
            xoops_error("approve trackback error:" . $sql);
            return false;
        }
        return true;
    }

    function deleteByArticle($art_id)
    {
	    $trackbacks = $this->getByArticle($art_id);
	    if(count($trackbacks)>0){
			$this->deleteIds(array_keys($trackbacks));
	    }
	    return true;
    }

    function getStatus()
    {
	    return 1;
    }

    /**
     * clean orphan items from database
     * 
     * @return 	bool	true on success
     */
    function cleanOrphan()
    {
	    parent::cleanOrphan(art_DB_prefix("article"), "art_id");
    }
}
');
?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?