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

📄 bloggerapi.php

📁 在综合英文版XOOPS 2.09, 2.091, 2.092 的基础上正式发布XOOPS 2.09中文版 XOOPS 2.09x 版主要是PHP5升级、bug修正和安全补正: 1 全面兼容PHP 5.
💻 PHP
字号:
<?php// $Id: bloggerapi.php,v 1.7 2004/12/26 19:11:50 onokazu 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 BloggerApi extends XoopsXmlRpcApi{    function BloggerApi(&$params, &$response, &$module)    {        $this->XoopsXmlRpcApi($params, $response, $module);        $this->_setXoopsTagMap('storyid', 'postid');        $this->_setXoopsTagMap('published', 'dateCreated');        $this->_setXoopsTagMap('uid', 'userid');    }    function newPost()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            if (!$fields =& $this->_getPostFields(null, $this->params[1])) {                $this->response->add(new XoopsXmlRpcFault(106));            } else {                $missing = array();                $post = array();                foreach ($fields as $tag => $detail) {                    $maptag = $this->_getXoopsTagMap($tag);                    $data = $this->_getTagCdata($this->params[4], $maptag, true);                    if (trim($data) == ''){                        if ($detail['required']) {                            $missing[] = $maptag;                        }                    } else {                        $post[$tag] = $data;                    }                }                if (count($missing) > 0) {                    $msg = '';                    foreach ($missing as $m) {                        $msg .= '<'.$m.'> ';                    }                    $this->response->add(new XoopsXmlRpcFault(109, $msg));                } else {                    $newparams = array();                    // Xoops Api ignores App key                    $newparams[0] = $this->params[1];                    $newparams[1] = $this->params[2];                    $newparams[2] = $this->params[3];                    foreach ($post as $key => $value) {                        $newparams[3][$key] =& $value;                        unset($value);                    }                    $newparams[3]['xoops_text'] =& $this->params[4];                    $newparams[4] = $this->params[5];                    $xoopsapi =& $this->_getXoopsApi($newparams);                    $xoopsapi->_setUser($this->user, $this->isadmin);                    $xoopsapi->newPost();                }            }        }    }    function editPost()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            if (!$fields =& $this->_getPostFields($this->params[1])) {            } else {                $missing = array();                $post = array();                foreach ($fields as $tag => $detail) {                    $data = $this->_getTagCdata($this->params[4], $tag, true);                    if (trim($data) == ''){                        if ($detail['required']) {                            $missing[] = $tag;                        }                    } else {                        $post[$tag] = $data;                    }                }                if (count($missing) > 0) {                    $msg = '';                    foreach ($missing as $m) {                        $msg .= '<'.$m.'> ';                    }                    $this->response->add(new XoopsXmlRpcFault(109, $msg));                } else {                    $newparams = array();                    // XOOPS API ignores App key (index 0 of params)                    $newparams[0] = $this->params[1];                    $newparams[1] = $this->params[2];                    $newparams[2] = $this->params[3];                    foreach ($post as $key => $value) {                        $newparams[3][$key] =& $value;                        unset($value);                    }                    $newparams[3]['xoops_text'] =& $this->params[4];                    $newparams[4] = $this->params[5];                    $xoopsapi =& $this->_getXoopsApi($newparams);                    $xoopsapi->_setUser($this->user, $this->isadmin);                    $xoopsapi->editPost();                }            }        }    }    function deletePost()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            // XOOPS API ignores App key (index 0 of params)            array_shift($this->params);            $xoopsapi =& $this->_getXoopsApi($this->params);            $xoopsapi->_setUser($this->user, $this->isadmin);            $xoopsapi->deletePost();        }    }    function getPost()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            // XOOPS API ignores App key (index 0 of params)            array_shift($this->params);            $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));                        break;                    default :                        $content .= '<'.$key.'>'.trim($value).'</'.$key.'>';                        break;                    }                }                $struct->add('content', new XoopsXmlRpcString($content));                $this->response->add($struct);            } else {                $this->response->add(new XoopsXmlRpcFault(106));            }        }    }    function getRecentPosts()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            // XOOPS API ignores App key (index 0 of params)            array_shift($this->params);            $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));                                break;                            default :                                $content .= '<'.$key.'>'.trim($value).'</'.$key.'>';                                break;                            }                        }                        $struct->add('content', new XoopsXmlRpcString($content));                        $arr->add($struct);                        unset($struct);                    }                    $this->response->add($arr);                }            } else {                $this->response->add(new XoopsXmlRpcFault(106));            }        }    }    function getUsersBlogs()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            $arr = new XoopsXmlRpcArray();            $struct = new XoopsXmlRpcStruct();            $struct->add('url', new XoopsXmlRpcString(XOOPS_URL.'/modules/'.$this->module->getVar('dirname').'/'));            $struct->add('blogid', new XoopsXmlRpcString($this->module->getVar('mid')));            $struct->add('blogName', new XoopsXmlRpcString('XOOPS Blog'));            $arr->add($struct);            $this->response->add($arr);        }    }    function getUserInfo()    {        if (!$this->_checkUser($this->params[1], $this->params[2])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            $struct = new XoopsXmlRpcStruct();            $struct->add('nickname', new XoopsXmlRpcString($this->user->getVar('uname')));            $struct->add('userid', new XoopsXmlRpcString($this->user->getVar('uid')));            $struct->add('url', new XoopsXmlRpcString($this->user->getVar('url')));            $struct->add('email', new XoopsXmlRpcString($this->user->getVar('email')));            $struct->add('lastname', new XoopsXmlRpcString(''));            $struct->add('firstname', new XoopsXmlRpcString($this->user->getVar('name')));            $this->response->add($struct);        }    }    function getTemplate()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            switch ($this->params[5]) {            case 'main':                $this->response->add(new XoopsXmlRpcFault(107));                break;            case 'archiveIndex':                $this->response->add(new XoopsXmlRpcFault(107));                break;            default:                $this->response->add(new XoopsXmlRpcFault(107));                break;            }        }    }    function setTemplate()    {        if (!$this->_checkUser($this->params[2], $this->params[3])) {            $this->response->add(new XoopsXmlRpcFault(104));        } else {            $this->response->add(new XoopsXmlRpcFault(107));        }    }}?>

⌨️ 快捷键说明

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