⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metaweblogapi.php

📁 在综合英文版XOOPS 2.09, 2.091, 2.092 的基础上正式发布XOOPS 2.09中文版 XOOPS 2.09x 版主要是PHP5升级、bug修正和安全补正: 1 全面兼容PHP 5.
💻 PHP
字号:
<?php// $Id: metaweblogapi.php,v 1.7 2003/03/24 03:54:06 okazu Exp $//  ------------------------------------------------------------------------ ////                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                                                //// ------------------------------------------------------------------------- //require_once XOOPS_ROOT_PATH.'/class/xml/rpc/xmlrpcapi.php';class MetaWeblogApi extends XoopsXmlRpcApi{    function MetaWeblogApi(&$params, &$response, &$module)    {        $this->XoopsXmlRpcApi($params, $response, $module);        $this->_setXoopsTagMap('storyid', 'postid');        $this->_setXoopsTagMap('published', 'dateCreated');        $this->_setXoopsTagMap('uid', 'userid');        //$this->_setXoopsTagMap('hometext', 'description');    }    function newPost()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {                        $this->response->add(new XoopsXmlRpcFault(104));        } else {            if (!$fields =& $this->_getPostFields(null, $this->params[0])) {                $this->response->add(new XoopsXmlRpcFault(106));            } else {                $missing = array();                $post = array();                foreach ($fields as $tag => $detail) {                    $maptag = $this->_getXoopsTagMap($tag);                    if (!isset($this->params[3][$maptag])) {                        $data = $this->_getTagCdata($this->params[3]['description'], $maptag, true);                        if (trim($data) == ''){                            if ($detail['required']) {                                $missing[] = $maptag;                            }                        } else {                            $post[$tag] = $data;                        }                    } else {                        $post[$tag] = $this->params[3][$maptag];                    }                }                if (count($missing) > 0) {                    $msg = '';                    foreach ($missing as $m) {                        $msg .= '<'.$m.'> ';echo $m;                    }                    $this->response->add(new XoopsXmlRpcFault(109, $msg));                } else {                    $newparams = array();                    $newparams[0] = $this->params[0];                    $newparams[1] = $this->params[1];                    $newparams[2] = $this->params[2];                    foreach ($post as $key => $value) {                        $newparams[3][$key] =& $value;                        unset($value);                    }                    $newparams[3]['xoops_text'] = $this->params[3]['description'];                    if (isset($this->params[3]['categories']) && is_array($this->params[3]['categories'])) {                        foreach ($this->params[3]['categories'] as $k => $v) {                            $newparams[3]['categories'][$k] = $v;                        }                    }                    $newparams[4] = $this->params[4];                    $xoopsapi =& $this->_getXoopsApi($newparams);                    $xoopsapi->_setUser($this->user, $this->isadmin);                    $xoopsapi->newPost();                }            }        }    }    function editPost()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            if (!$fields =& $this->_getPostFields($this->params[0])) {            } else {                $missing = array();                $post = array();                foreach ($fields as $tag => $detail) {                    $maptag = $this->_getXoopsTagMap($tag);                    if (!isset($this->params[3][$maptag])) {                        $data = $this->_getTagCdata($this->params[3]['description'], $maptag, true);                        if (trim($data) == ''){                            if ($detail['required']) {                                $missing[] = $tag;                            }                        } else {                            $post[$tag] = $data;                        }                    } else {                        $post[$tag] =& $this->params[3][$maptag];                    }                }                if (count($missing) > 0) {                    $msg = '';                    foreach ($missing as $m) {                        $msg .= '<'.$m.'> ';                    }                    $this->response->add(new XoopsXmlRpcFault(109, $msg));                } else {                    $newparams = array();                    $newparams[0] = $this->params[0];                    $newparams[1] = $this->params[1];                    $newparams[2] = $this->params[2];                    foreach ($post as $key => $value) {                        $newparams[3][$key] =& $value;                        unset($value);                    }                    if (isset($this->params[3]['categories']) && is_array($this->params[3]['categories'])) {                        foreach ($this->params[3]['categories'] as $k => $v) {                            $newparams[3]['categories'][$k] = $v;                        }                    }                    $newparams[3]['xoops_text'] = $this->params[3]['description'];                    $newparams[4] = $this->params[4];                    $xoopsapi =& $this->_getXoopsApi($newparams);                    $xoopsapi->_setUser($this->user, $this->isadmin);                    $xoopsapi->editPost();                }            }        }    }    function getPost()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            $xoopsapi =& $this->_getXoopsApi($this->params);            $xoopsapi->_setUser($this->user, $this->isadmin);            $ret =& $xoopsapi->getPost(false);            if (is_array($ret)) {                $struct = new XoopsXmlRpcStruct();                $content = '';                foreach ($ret as $key => $value) {                    $maptag = $this->_getXoopsTagMap($key);                    switch($maptag) {                    case 'userid':                        $struct->add('userid', new XoopsXmlRpcString($value));                        break;                    case 'dateCreated':                        $struct->add('dateCreated', new XoopsXmlRpcDatetime($value));                        break;                    case 'postid':                        $struct->add('postid', new XoopsXmlRpcString($value));                        $struct->add('link', new XoopsXmlRpcString(XOOPS_URL.'/modules/xoopssections/item.php?item='.$value));                        $struct->add('permaLink', new XoopsXmlRpcString(XOOPS_URL.'/modules/xoopssections/item.php?item='.$value));                        break;                    case 'title':                        $struct->add('title', new XoopsXmlRpcString($value));                        break;                    default :                        $content .= '<'.$key.'>'.trim($value).'</'.$key.'>';                        break;                    }                }                $struct->add('description', new XoopsXmlRpcString($content));                $this->response->add($struct);            } else {                $this->response->add(new XoopsXmlRpcFault(106));            }        }    }    function getRecentPosts()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            $xoopsapi =& $this->_getXoopsApi($this->params);            $xoopsapi->_setUser($this->user, $this->isadmin);            $ret =& $xoopsapi->getRecentPosts(false);            if (is_array($ret)) {                $arr = new XoopsXmlRpcArray();                $count = count($ret);                if ($count == 0) {                    $this->response->add(new XoopsXmlRpcFault(106, 'Found 0 Entries'));                } else {                    for ($i = 0; $i < $count; $i++) {                        $struct = new XoopsXmlRpcStruct();                        $content = '';                        foreach($ret[$i] as $key => $value) {                            $maptag = $this->_getXoopsTagMap($key);                            switch($maptag) {                            case 'userid':                                $struct->add('userid', new XoopsXmlRpcString($value));                                break;                            case 'dateCreated':                                $struct->add('dateCreated', new XoopsXmlRpcDatetime($value));                                break;                            case 'postid':                                $struct->add('postid', new XoopsXmlRpcString($value));                                $struct->add('link', new XoopsXmlRpcString(XOOPS_URL.'/modules/news/article.php?item_id='.$value));                                $struct->add('permaLink', new XoopsXmlRpcString(XOOPS_URL.'/modules/news/article.php?item_id='.$value));                                break;                            case 'title':                                $struct->add('title', new XoopsXmlRpcString($value));                                break;                            default :                                $content .= '<'.$key.'>'.trim($value).'</'.$key.'>';                                break;                            }                        }                        $struct->add('description', new XoopsXmlRpcString($content));                        $arr->add($struct);                        unset($struct);                    }                    $this->response->add($arr);                }            } else {                $this->response->add(new XoopsXmlRpcFault(106));            }        }    }    function getCategories()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            $xoopsapi =& $this->_getXoopsApi($this->params);            $xoopsapi->_setUser($this->user, $this->isadmin);            $ret =& $xoopsapi->getCategories(false);            if (is_array($ret)) {                $arr = new XoopsXmlRpcArray();                foreach ($ret as $id => $detail) {                    $struct = new XoopsXmlRpcStruct();                    $struct->add('description', new XoopsXmlRpcString($detail));                    $struct->add('htmlUrl', new XoopsXmlRpcString(XOOPS_URL.'/modules/news/index.php?storytopic='.$id));                    $struct->add('rssUrl', new XoopsXmlRpcString(''));                    $catstruct = new XoopsXmlRpcStruct();                    $catstruct->add($detail['title'], $struct);                    $arr->add($catstruct);                    unset($struct);                    unset($catstruct);                }                $this->response->add($arr);            } else {                $this->response->add(new XoopsXmlRpcFault(106));            }        }    }}?>

⌨️ 快捷键说明

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