📄 xoopsstory.php
字号:
<?php
// $Id: xoopsstory.php 1099 2007-10-19 01:08:14Z dugris $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000 XOOPS.org //
// <http://www.xoops.org/> //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //
// Author: Kazumi Ono (AKA onokazu) //
// URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //
// Project: The XOOPS Project //
// ------------------------------------------------------------------------- //
if (!defined('XOOPS_ROOT_PATH')) {
exit();
}
include_once XOOPS_ROOT_PATH."/class/xoopstopic.php";
include_once XOOPS_ROOT_PATH."/class/xoopsuser.php";
class XoopsStory
{
var $table;
var $storyid;
var $topicid;
var $uid;
var $title;
var $hometext;
var $bodytext="";
var $counter;
var $created;
var $published;
var $expired;
var $hostname;
var $nohtml=0;
var $nosmiley=0;
var $ihome=0;
var $notifypub=0;
var $type;
var $approved;
var $topicdisplay;
var $topicalign;
var $db;
var $topicstable;
var $comments;
function Story($storyid=-1)
{
$this->db =& Database::getInstance();
$this->table = "";
$this->topicstable = "";
if ( is_array($storyid) ) {
$this->makeStory($storyid);
} elseif ( $storyid != -1 ) {
$this->getStory(intval($storyid));
}
}
function setStoryId($value)
{
$this->storyid = intval($value);
}
function setTopicId($value)
{
$this->topicid = intval($value);
}
function setUid($value)
{
$this->uid = intval($value);
}
function setTitle($value)
{
$this->title = $value;
}
function setHometext($value)
{
$this->hometext = $value;
}
function setBodytext($value)
{
$this->bodytext = $value;
}
function setPublished($value)
{
$this->published = intval($value);
}
function setExpired($value)
{
$this->expired = intval($value);
}
function setHostname($value)
{
$this->hostname = $value;
}
function setNohtml($value=0)
{
$this->nohtml = $value;
}
function setNosmiley($value=0)
{
$this->nosmiley = $value;
}
function setIhome($value)
{
$this->ihome = $value;
}
function setNotifyPub($value)
{
$this->notifypub = $value;
}
function setType($value)
{
$this->type = $value;
}
function setApproved($value)
{
$this->approved = intval($value);
}
function setTopicdisplay($value)
{
$this->topicdisplay = $value;
}
function setTopicalign($value)
{
$this->topicalign = $value;
}
function setComments($value)
{
$this->comments = intval($value);
}
function store($approved=false)
{
//$newpost = 0;
$myts =& MyTextSanitizer::getInstance();
$title =$myts->censorString($this->title);
$hometext =$myts->censorString($this->hometext);
$bodytext =$myts->censorString($this->bodytext);
$title = $myts->makeTboxData4Save($title);
$hometext = $myts->makeTareaData4Save($hometext);
$bodytext = $myts->makeTareaData4Save($bodytext);
if ( !isset($this->nohtml) || $this->nohtml != 1 ) {
$this->nohtml = 0;
}
if ( !isset($this->nosmiley) || $this->nosmiley != 1 ) {
$this->nosmiley = 0;
}
if ( !isset($this->notifypub) || $this->notifypub != 1 ) {
$this->notifypub = 0;
}
if( !isset($this->topicdisplay) || $this->topicdisplay != 0 ) {
$this->topicdisplay = 1;
}
$expired = !empty($this->expired) ? $this->expired : 0;
if ( !isset($this->storyid) ) {
//$newpost = 1;
$newstoryid = $this->db->genId($this->table."_storyid_seq");
$created = time();
$published = ( $this->approved ) ? $this->published : 0;
$sql = sprintf("INSERT INTO %s (storyid, uid, title, created, published, expired, hostname, nohtml, nosmiley, hometext, bodytext, counter, topicid, ihome, notifypub, story_type, topicdisplay, topicalign, comments) VALUES (%u, %u, '%s', %u, %u, %u, '%s', %u, %u, '%s', '%s', %u, %u, %u, %u, '%s', %u, '%s', %u)", $this->table, $newstoryid, $this->uid, $title, $created, $published, $expired, $this->hostname, $this->nohtml, $this->nosmiley, $hometext, $bodytext, 0, $this->topicid, $this->ihome, $this->notifypub, $this->type, $this->topicdisplay, $this->topicalign, $this->comments);
} else {
if ( $this->approved ) {
$sql = sprintf("UPDATE %s SET title = '%s', published = %u, expired = %u, nohtml = %u, nosmiley = %u, hometext = '%s', bodytext = '%s', topicid = %u, ihome = %u, topicdisplay = %u, topicalign = '%s', comments = %u WHERE storyid = %u", $this->table, $title, $this->published, $expired, $this->nohtml, $this->nosmiley, $hometext, $bodytext, $this->topicid, $this->ihome, $this->topicdisplay, $this->topicalign, $this->comments, $this->storyid);
} else {
$sql = sprintf("UPDATE %s SET title = '%s', expired = %u, nohtml = %u, nosmiley = %u, hometext = '%s', bodytext = '%s', topicid = %u, ihome = %u, topicdisplay = %u, topicalign = '%s', comments = %u WHERE storyid = %u", $this->table, $title, $expired, $this->nohtml, $this->nosmiley, $hometext, $bodytext, $this->topicid, $this->ihome, $this->topicdisplay, $this->topicalign, $this->comments, $this->storyid);
}
$newstoryid = $this->storyid;
}
if (!$result = $this->db->query($sql)) {
return false;
}
if ( empty($newstoryid) ) {
$newstoryid = $this->db->getInsertId();
$this->storyid = $newstoryid;
}
return $newstoryid;
}
function getStory($storyid)
{
$storyid = intval($storyid);
$sql = "SELECT * FROM ".$this->table." WHERE storyid=".$storyid."";
$array = $this->db->fetchArray($this->db->query($sql));
$this->makeStory($array);
}
function makeStory($array)
{
foreach ( $array as $key=>$value ){
$this->$key = $value;
}
}
function delete()
{
$sql = sprintf("DELETE FROM %s WHERE storyid = %u", $this->table, $this->storyid);
if( !$result = $this->db->query($sql) ) {
return false;
}
return true;
}
function updateCounter()
{
$sql = sprintf("UPDATE %s SET counter = counter+1 WHERE storyid = %u", $this->table, $this->storyid);
if ( !$result = $this->db->queryF($sql) ) {
return false;
}
return true;
}
function updateComments($total)
{
$sql = sprintf("UPDATE %s SET comments = %u WHERE storyid = %u", $this->table, $total, $this->storyid);
if ( !$result = $this->db->queryF($sql) ) {
return false;
}
return true;
}
function topicid()
{
return $this->topicid;
}
function topic()
{
return new XoopsTopic($this->topicstable, $this->topicid);
}
function uid()
{
return $this->uid;
}
function uname()
{
return XoopsUser::getUnameFromId($this->uid);
}
function title($format="Show")
{
$myts =& MyTextSanitizer::getInstance();
$smiley = 1;
if ( $this->nosmiley() ) {
$smiley = 0;
}
switch ( $format ) {
case "Show":
$title = $myts->makeTboxData4Show($this->title,$smiley);
break;
case "Edit":
$title = $myts->makeTboxData4Edit($this->title);
break;
case "Preview":
$title = $myts->makeTboxData4Preview($this->title,$smiley);
break;
case "InForm":
$title = $myts->makeTboxData4PreviewInForm($this->title);
break;
}
return $title;
}
function hometext($format="Show")
{
$myts =& MyTextSanitizer::getInstance();
$html = 1;
$smiley = 1;
$xcodes = 1;
if ( $this->nohtml() ) {
$html = 0;
}
if ( $this->nosmiley() ) {
$smiley = 0;
}
switch ( $format ) {
case "Show":
$hometext = $myts->makeTareaData4Show($this->hometext,$html,$smiley,$xcodes);
break;
case "Edit":
$hometext = $myts->makeTareaData4Edit($this->hometext);
break;
case "Preview":
$hometext = $myts->makeTareaData4Preview($this->hometext,$html,$smiley,$xcodes);
break;
case "InForm":
$hometext = $myts->makeTareaData4PreviewInForm($this->hometext);
break;
}
return $hometext;
}
function bodytext($format="Show")
{
$myts =& MyTextSanitizer::getInstance();
$html = 1;
$smiley = 1;
$xcodes = 1;
if ( $this->nohtml() ) {
$html = 0;
}
if ( $this->nosmiley() ) {
$smiley = 0;
}
switch ( $format ) {
case "Show":
$bodytext = $myts->makeTareaData4Show($this->bodytext,$html,$smiley,$xcodes);
break;
case "Edit":
$bodytext = $myts->makeTareaData4Edit($this->bodytext);
break;
case "Preview":
$bodytext = $myts->makeTareaData4Preview($this->bodytext,$html,$smiley, $xcodes);
break;
case "InForm":
$bodytext = $myts->makeTareaData4PreviewInForm($this->bodytext);
break;
}
return $bodytext;
}
function counter()
{
return $this->counter;
}
function created()
{
return $this->created;
}
function published()
{
return $this->published;
}
function expired()
{
return $this->expired;
}
function hostname()
{
return $this->hostname;
}
function storyid()
{
return $this->storyid;
}
function nohtml()
{
return $this->nohtml;
}
function nosmiley()
{
return $this->nosmiley;
}
function notifypub()
{
return $this->notifypub;
}
function type()
{
return $this->type;
}
function ihome()
{
return $this->ihome;
}
function topicdisplay()
{
return $this->topicdisplay;
}
function topicalign($astext=true)
{
if ( $astext ) {
if ( $this->topicalign == "R" ) {
$ret = "right";
} else {
$ret = "left";
}
return $ret;
}
return $this->topicalign;
}
function comments()
{
return $this->comments;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -