本文整理汇总了PHP中iso8601_decode函数的典型用法代码示例。如果您正苦于以下问题:PHP iso8601_decode函数的具体用法?PHP iso8601_decode怎么用?PHP iso8601_decode使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了iso8601_decode函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: php_xmlrpc_decode
/**
* Takes an xmlrpc value in PHP xmlrpcval object format and translates it into native PHP types.
*
* Works with xmlrpc message objects as input, too.
*
* Given proper options parameter, can rebuild generic php object instances
* (provided those have been encoded to xmlrpc format using a corresponding
* option in php_xmlrpc_encode())
* PLEASE NOTE that rebuilding php objects involves calling their constructor function.
* This means that the remote communication end can decide which php code will
* get executed on your server, leaving the door possibly open to 'php-injection'
* style of attacks (provided you have some classes defined on your server that
* might wreak havoc if instances are built outside an appropriate context).
* Make sure you trust the remote server/client before eanbling this!
*
* @author Dan Libby (dan@libby.com)
*
* @param xmlrpcval $xmlrpc_val
* @param array $options if 'decode_php_objs' is set in the options array, xmlrpc structs can be decoded into php objects; if 'dates_as_objects' is set xmlrpc datetimes are decoded as php DateTime objects (standard is
* @return mixed
*/
function php_xmlrpc_decode($xmlrpc_val, $options = array())
{
switch ($xmlrpc_val->kindOf()) {
case 'scalar':
if (in_array('extension_api', $options)) {
reset($xmlrpc_val->me);
list($typ, $val) = each($xmlrpc_val->me);
switch ($typ) {
case 'dateTime.iso8601':
$xmlrpc_val->scalar = $val;
$xmlrpc_val->xmlrpc_type = 'datetime';
$xmlrpc_val->timestamp = iso8601_decode($val);
return $xmlrpc_val;
case 'base64':
$xmlrpc_val->scalar = $val;
$xmlrpc_val->type = $typ;
return $xmlrpc_val;
default:
return $xmlrpc_val->scalarval();
}
}
if (in_array('dates_as_objects', $options) && $xmlrpc_val->scalartyp() == 'dateTime.iso8601') {
// we return a Datetime object instead of a string
// since now the constructor of xmlrpcval accepts safely strings, ints and datetimes,
// we cater to all 3 cases here
$out = $xmlrpc_val->scalarval();
if (is_string($out)) {
$out = strtotime($out);
}
if (is_int($out)) {
$result = new Datetime();
$result->setTimestamp($out);
return $result;
} elseif (is_a($out, 'Datetime')) {
return $out;
}
}
return $xmlrpc_val->scalarval();
case 'array':
$size = $xmlrpc_val->arraysize();
$arr = array();
for ($i = 0; $i < $size; $i++) {
$arr[] = php_xmlrpc_decode($xmlrpc_val->arraymem($i), $options);
}
return $arr;
case 'struct':
$xmlrpc_val->structreset();
// If user said so, try to rebuild php objects for specific struct vals.
/// @todo should we raise a warning for class not found?
// shall we check for proper subclass of xmlrpcval instead of
// presence of _php_class to detect what we can do?
if (in_array('decode_php_objs', $options) && $xmlrpc_val->_php_class != '' && class_exists($xmlrpc_val->_php_class)) {
$obj = @new $xmlrpc_val->_php_class();
while (list($key, $value) = $xmlrpc_val->structeach()) {
$obj->{$key} = php_xmlrpc_decode($value, $options);
}
return $obj;
} else {
$arr = array();
while (list($key, $value) = $xmlrpc_val->structeach()) {
$arr[$key] = php_xmlrpc_decode($value, $options);
}
return $arr;
}
case 'msg':
$paramcount = $xmlrpc_val->getNumParams();
$arr = array();
for ($i = 0; $i < $paramcount; $i++) {
$arr[] = php_xmlrpc_decode($xmlrpc_val->getParam($i));
}
return $arr;
}
}
示例2: htmlentities
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$v = new xmlrpcval(array(new xmlrpcval("ABCDEFHIJ"), new xmlrpcval(1234, 'int'), new xmlrpcval(1, 'boolean')), "array");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$v = new xmlrpcval(array("thearray" => new xmlrpcval(array(new xmlrpcval("ABCDEFHIJ"), new xmlrpcval(1234, 'int'), new xmlrpcval(1, 'boolean'), new xmlrpcval(0, 'boolean'), new xmlrpcval(true, 'boolean'), new xmlrpcval(false, 'boolean')), "array"), "theint" => new xmlrpcval(23, 'int'), "thestring" => new xmlrpcval("foobarwhizz"), "thestruct" => new xmlrpcval(array("one" => new xmlrpcval(1, 'int'), "two" => new xmlrpcval(2, 'int')), "struct")), "struct");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$w = new xmlrpcval(array($v, new xmlrpcval("That was the struct!")), "array");
print "<PRE>" . htmlentities($w->serialize()) . "</PRE>";
$w = new xmlrpcval("Mary had a little lamb,\nWhose fleece was white as snow,\nAnd everywhere that Mary went\nthe lamb was sure to go.\n\nMary had a little lamb\nShe tied it to a pylon\nTen thousand volts went down its back\nAnd turned it into nylon", "base64");
print "<PRE>" . htmlentities($w->serialize()) . "</PRE>";
print "<PRE>Value of base64 string is: '" . $w->scalarval() . "'</PRE>";
$f->method('');
$f->addParam(new xmlrpcval("41", "int"));
print "<h3>Testing request serialization</h3>\n";
$op = $f->serialize();
print "<PRE>" . htmlentities($op) . "</PRE>";
print "<h3>Testing ISO date format</h3><pre>\n";
$t = time();
$date = iso8601_encode($t);
print "Now is {$t} --> {$date}\n";
print "Or in UTC, that is " . iso8601_encode($t, 1) . "\n";
$tb = iso8601_decode($date);
print "That is to say {$date} --> {$tb}\n";
print "Which comes out at " . iso8601_encode($tb) . "\n";
print "Which was the time in UTC at " . iso8601_decode($date, 1) . "\n";
print "</pre>\n";
?>
<hr/>
<em>$Id: vardemo.php,v 1.4 2006/12/28 16:10:42 milosch Exp $</em>
</body>
</html>
示例3: mweditpost
function mweditpost($params)
{
// ($postid, $user, $pass, $content, $publish)
$xpostid = $params->getParam(0);
$xuser = $params->getParam(1);
$xpass = $params->getParam(2);
$xcontent = $params->getParam(3);
$xpublish = $params->getParam(4);
$ID = intval($xpostid->scalarval());
$username = $xuser->scalarval();
$password = $xpass->scalarval();
$contentstruct = php_xmlrpc_decode($xcontent);
$postarr['post_status'] = $xpublish->scalarval() ? 'publish' : 'draft';
// Check login
if (user_pass_ok($username, $password)) {
$postdata = wp_get_single_post($ID, ARRAY_A);
if (!$postdata) {
return new xmlrpcresp(0, $GLOBALS['xmlrpcerruser'] + 2, "No such post '{$ID}'.");
}
$userdata = get_userdatabylogin($username);
if ($userdata->user_level < 1) {
return new xmlrpcresp(0, $GLOBALS['xmlrpcerruser'] + 1, 'Sorry, level 0 users can not edit posts');
}
if ($userdata->ID != $postdata['post_author'] && $userdata->user_level != 10) {
$authordata = get_userdata($postdata['post_author']);
if ($userdata->user_level <= $authordata->user_level) {
return new xmlrpcresp(0, $GLOBALS['xmlrpcerruser'] + 1, 'Sorry, you do not have the right to edit this post');
}
}
$postarr['ID'] = $ID;
if (array_key_exists('title', $contentstruct)) {
$postarr['post_title'] = $contentstruct['title'];
logIO('O', $contentstruct['title']);
}
if (array_key_exists('description', $contentstruct)) {
$postarr['post_content'] = format_to_post($contentstruct['description']);
logIO('O', $contentstruct['description']);
}
if (array_key_exists('mt_excerpt', $contentstruct)) {
$postarr['post_excerpt'] = $contentstruct['mt_excerpt'];
}
if (array_key_exists('mt_text_more', $contentstruct)) {
if (trim(format_to_post($contentstruct['mt_text_more']))) {
$postarr['post_content'] .= "\n<!--more-->\n" . format_to_post($contentstruct['mt_text_more']);
}
}
if (array_key_exists('mt_allow_comments', $contentstruct)) {
$postarr['comment_status'] = $contentstruct['mt_allow_comments'] ? 'open' : 'closed';
}
if (array_key_exists('mt_allow_pings', $contentstruct)) {
$postarr['ping_status'] = $contentstruct['mt_allow_pings'] ? 'open' : 'closed';
}
if (!empty($contentstruct['dateCreated'])) {
$dateCreated = preg_split('/([+\\-Z])/', $contentstruct['dateCreated'], -1, PREG_SPLIT_DELIM_CAPTURE);
if (count($dateCreated) == 3) {
$dateCreated[2] = str_replace(':', '', $dateCreated[2]);
}
if ($dateCreated[1] == '+') {
$dateoffset = intval($dateCreated[2]) * 36;
} else {
if ($dateCreated[1] == '-') {
$dateoffset = -intval($dateCreated[2]) * 36;
} else {
$dateoffset = 0;
}
}
$dateCreated = iso8601_decode($dateCreated[0], 1) - $dateoffset + get_settings('time_difference') * 3600;
} else {
$dateCreated = current_time('timestamp', 0);
}
$postarr['post_date'] = date('Y-m-d H:i:s', $dateCreated);
$postarr['post_category'] = array();
if (array_key_exists('categories', $contentstruct) && is_array($contentstruct['categories'])) {
foreach ($contentstruct['categories'] as $cat) {
$postarr['post_category'][] = get_cat_ID(mb_conv($cat), 'EUC-JP', 'auto');
}
} else {
$postarr['post_category'][] = $GLOBALS['post_default_category'];
}
$post_ID = wp_update_post($postarr);
if (!$post_ID) {
return new xmlrpcresp(0, $GLOBALS['xmlrpcerruser'] + 2, 'For some strange yet very annoying reason, your entry could not be posted.');
}
if (empty($GLOBALS['blog_ID'])) {
$GLOBALS['blog_ID'] = 1;
}
pingWeblogs($GLOBALS['blog_ID']);
pingback($postarr['post_content'], $post_ID);
if (array_key_exists('mt_tb_ping_urls', $contentstruct)) {
trackback_url_list($content_struct['mt_tb_ping_urls'], $post_ID);
}
logIO('O', "(MW) Edited ! ID: {$post_ID}");
$myResp = new xmlrpcval(true, 'boolean');
return new xmlrpcresp($myResp);
} else {
logIO('O', "(MW) Wrong username/password combination <b>{$username} / {$password}</b>");
return new xmlrpcresp(0, $GLOBALS['xmlrpcerruser'] + 3, 'Wrong username/password combination ' . $username . ' / ' . starify($password));
}
}
示例4: mweditpost
function mweditpost($params)
{
// ($postid, $user, $pass, $content, $publish)
global $xmlrpcerruser;
$xpostid = $params->getParam(0);
$xuser = $params->getParam(1);
$xpass = $params->getParam(2);
$xcontent = $params->getParam(3);
$xpublish = $params->getParam(4);
$ID = $xpostid->scalarval();
$username = $xuser->scalarval();
$password = $xpass->scalarval();
$contentstruct = xmlrpc_decode1($xcontent);
$postdata = wp_get_single_post($ID);
if (!$postdata) {
return new xmlrpcresp(0, $xmlrpcerruser + 2, "No such post {$ID}.");
}
$userdata = get_userdatabylogin($username);
$user_ID = $userdata->ID;
$user_level = $userdata->user_level;
$post_author_ID = $postdata->post_author;
$post_authordata = get_userdata($post_author_ID);
if ($user_ID != $post_author_ID && $user_level <= $post_authordata->user_level) {
return new xmlrpcresp(0, $xmlrpcerruser + 1, "Sorry, you do not have the right to edit this post.");
}
// Check login
if (user_pass_ok($username, $password)) {
if ($user_level < 1) {
return new xmlrpcresp(0, $xmlrpcerruser + 1, "Sorry, level 0 users cannot edit posts");
}
extract($postdata);
$post_title = $contentstruct['title'];
$post_content = format_to_post($contentstruct['description']);
$catnames = $contentstruct['categories'];
logIO("O", "Cat Count" . count($catnames));
foreach ($catnames as $cat) {
$post_category[] = get_cat_ID($cat);
}
$post_excerpt = $contentstruct['mt_excerpt'];
$post_more = $contentstruct['mt_text_more'];
$post_status = $xpublish->scalarval() ? 'publish' : 'draft';
if ($post_more) {
$post_content = $post_content . "\n<!--more-->\n" . $post_more;
}
$comment_status = 1 == $contentstruct['mt_allow_comments'] ? 'open' : 'closed';
$ping_status = $contentstruct['mt_allow_pings'] ? 'open' : 'closed';
$time_difference = get_settings("time_difference");
$dateCreated = $contentstruct['dateCreated'];
$dateCreated = $dateCreated ? iso8601_decode($contentstruct['dateCreated']) : time() + $time_difference * 3600;
$post_date = date("Y-m-d H:i:s", $dateCreated);
// We've got all the data -- post it:
$newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'post_date');
$newpost_ID = wp_update_post($newpost);
if (!$newpost_ID) {
return new xmlrpcresp(0, $xmlrpcerruser + 2, "For some strange yet very annoying reason, your entry could not be posted.");
}
if (!isset($blog_ID)) {
$blog_ID = 1;
}
if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
sleep($sleep_after_edit);
}
pingWeblogs($blog_ID);
pingCafelog($cafelogID, $post_title, $post_ID);
pingBlogs($blog_ID);
pingback($content, $post_ID);
trackback_url_list($content_struct['mt_tb_ping_urls'], $post_ID);
logIO("O", "(MW) Edited ! ID: {$post_ID}");
$myResp = new xmlrpcval($ID, "string");
return new xmlrpcresp($myResp);
} else {
logIO("O", "(MW) Wrong username/password combination <b>{$username} / {$password}</b>");
return new xmlrpcresp(0, $xmlrpcerruser + 3, 'Wrong username/password combination ' . $username . ' / ' . starify($password));
}
}
示例5: php_xmlrpc_decode
/**
* Takes an xmlrpc value in PHP xmlrpcval object format and translates it into native PHP types.
*
* Works with xmlrpc message objects as input, too.
*
* Given proper options parameter, can rebuild generic php object instances
* (provided those have been encoded to xmlrpc format using a corresponding
* option in php_xmlrpc_encode())
* PLEASE NOTE that rebuilding php objects involves calling their constructor function.
* This means that the remote communication end can decide which php code will
* get executed on your server, leaving the door possibly open to 'php-injection'
* style of attacks (provided you have some classes defined on your server that
* might wreak havoc if instances are built outside an appropriate context).
* Make sure you trust the remote server/client before eanbling this!
*
* @author Dan Libby (dan@libby.com)
*
* @param xmlrpcval $xmlrpc_val
* @param array $options if 'decode_php_objs' is set in the options array, xmlrpc structs can be decoded into php objects
* @return mixed
*/
function php_xmlrpc_decode($xmlrpc_val, $options=array())
{
switch($xmlrpc_val->kindOf())
{
case 'scalar':
if (in_array('extension_api', $options))
{
reset($xmlrpc_val->me);
list($typ,$val) = each($xmlrpc_val->me);
switch ($typ)
{
case 'dateTime.iso8601':
$xmlrpc_val->scalar = $val;
$xmlrpc_val->xmlrpc_type = 'datetime';
$xmlrpc_val->timestamp = iso8601_decode($val);
return $xmlrpc_val;
case 'base64':
$xmlrpc_val->scalar = $val;
$xmlrpc_val->type = $typ;
return $xmlrpc_val;
default:
return $xmlrpc_val->scalarval();
}
}
return $xmlrpc_val->scalarval();
case 'array':
$size = $xmlrpc_val->arraysize();
$arr = array();
for($i = 0; $i < $size; $i++)
{
$arr[] = php_xmlrpc_decode($xmlrpc_val->arraymem($i), $options);
}
return $arr;
case 'struct':
$xmlrpc_val->structreset();
// If user said so, try to rebuild php objects for specific struct vals.
/// @todo should we raise a warning for class not found?
// shall we check for proper subclass of xmlrpcval instead of
// presence of _php_class to detect what we can do?
if (in_array('decode_php_objs', $options) && $xmlrpc_val->_php_class != ''
&& class_exists($xmlrpc_val->_php_class))
{
$obj = @new $xmlrpc_val->_php_class;
while(list($key,$value)=$xmlrpc_val->structeach())
{
$obj->$key = php_xmlrpc_decode($value, $options);
}
return $obj;
}
else
{
$arr = array();
while(list($key,$value)=$xmlrpc_val->structeach())
{
$arr[$key] = php_xmlrpc_decode($value, $options);
}
return $arr;
}
case 'msg':
$paramcount = $xmlrpc_val->getNumParams();
$arr = array();
for($i = 0; $i < $paramcount; $i++)
{
$arr[] = php_xmlrpc_decode($xmlrpc_val->getParam($i));
}
return $arr;
}
}
示例6: _do_syncwiki
function _do_syncwiki(&$request, $args)
{
global $charset;
longer_timeout(240);
if (!function_exists('wiki_xmlrpc_post')) {
include_once "lib/XmlRpcClient.php";
}
$userid = $request->_user->_userid;
$dbh = $request->getDbh();
$merge_point = $dbh->get('mergepoint');
if (empty($merge_point)) {
$page = $dbh->getPage("ReleaseNotes");
// this is usually the latest official page
$last = $page->getCurrentRevision(false);
$merge_point = $last->get("mtime");
// for testing: 1160396075
$dbh->set('mergepoint', $merge_point);
}
//TODO: remote auth, set session cookie
$pagelist = wiki_xmlrpc_post('wiki.getRecentChanges', iso8601_encode($merge_point, 1), $args['url'], $args);
$html = HTML();
//$html->pushContent(HTML::div(HTML::em("check RPC2 interface...")));
if (gettype($pagelist) === "array") {
//$request->_deferredPageChangeNotification = array();
$request->discardOutput();
StartLoadDump($request, _("Syncing this PhpWiki"));
PrintXML(HTML::strong(fmt("Download all externally changed sources.")));
echo "<br />\n";
PrintXML(fmt("Retrieving from external url %s wiki.getRecentChanges(%s)...", $args['url'], iso8601_encode($merge_point, 1)));
echo "<br />\n";
$ouriter = $dbh->mostRecent(array('since' => $merge_point));
//$ol = HTML::ol();
$done = array();
foreach ($pagelist as $ext) {
$reaction = _("<unknown>");
// compare existance and dates with local page
$extdate = iso8601_decode($ext['lastModified']->scalar, 1);
// TODO: urldecode ???
$name = utf8_decode($ext['name']);
$our = $dbh->getPage($name);
$done[$name] = 1;
$ourrev = $our->getCurrentRevision(false);
$rel = '<=>';
if (!$our->exists()) {
// we might have deleted or moved it on purpose?
// check date of latest revision if there's one, and > mergepoint
if ($ourrev->getVersion() > 1 and $ourrev->get('mtime') > $merge_point) {
// our was deleted after sync, and changed after last sync.
$this->_addConflict('delete', $args, $our, $extdate);
$reaction = _(" skipped") . " (" . "locally deleted or moved" . ")";
} else {
$reaction = $this->_import($args, $our, $extdate);
}
} else {
$ourdate = $ourrev->get('mtime');
if ($extdate > $ourdate and $ourdate < $merge_point) {
$rel = '>';
$reaction = $this->_import($args, $our, $extdate);
} elseif ($extdate > $ourdate and $ourdate >= $merge_point) {
$rel = '>';
// our is older then external but newer than last sync
$reaction = $this->_addConflict('import', $args, $our, $extdate);
} elseif ($extdate < $ourdate and $extdate < $merge_point) {
$rel = '>';
$reaction = $this->_export($args, $our);
} elseif ($extdate < $ourdate and $extdate >= $merge_point) {
$rel = '>';
// our is newer and external is also newer
$reaction = $this->_addConflict('export', $args, $our, $extdate);
} else {
$rel = '==';
$reaction = _("same date");
}
}
/*$ol->pushContent(HTML::li(HTML::strong($name)," ",
$extdate,"<=>",$ourdate," ",
HTML::strong($reaction))); */
PrintXML(HTML::strong($name), " ", $extdate, " {$rel} ", $ourdate, " ", HTML::strong($reaction), HTML::br());
$request->chunkOutput();
}
//$html->pushContent($ol);
} else {
$html->pushContent("xmlrpc error: wiki.getRecentChanges returned " . "(" . gettype($pagelist) . ") " . $pagelist);
trigger_error("xmlrpc error: wiki.getRecentChanges returned " . "(" . gettype($pagelist) . ") " . $pagelist, E_USER_WARNING);
EndLoadDump($request);
return $this->error($html);
}
if (empty($args['noexport'])) {
PrintXML(HTML::strong(fmt("Now upload all locally newer pages.")));
echo "<br />\n";
PrintXML(fmt("Checking all local pages newer than %s...", iso8601_encode($merge_point, 1)));
echo "<br />\n";
while ($our = $ouriter->next()) {
$name = $our->getName();
if ($done[$name]) {
continue;
}
$reaction = _(" skipped");
$ext = wiki_xmlrpc_post('wiki.getPageInfo', $name, $args['url']);
if (is_array($ext)) {
//.........这里部分代码省略.........
示例7: editPage
function editPage($xmlrpcmsg)
{
$sql = e107::getDb();
$blogid = $xmlrpcmsg->getParam(0)->scalarval();
$pageid = $xmlrpcmsg->getParam(1)->scalarval();
$username = $xmlrpcmsg->getParam(2)->scalarval();
$password = $xmlrpcmsg->getParam(3)->scalarval();
if (userLogin($username, $password, 'H') == true) {
$content = $xmlrpcmsg->getParam(4);
$title = $content->structMem('title')->scalarval();
$description = '[html]' . $content->structMem('description')->scalarval() . '[/html]';
//if date is null will be replaced with current datetime (wordpress like)
//check with simplexml for the parameter dateCreated? XMLRPC-PHP seems to not have such functions??
$tempDate = checkXmlElementS($content->serialize(), 'dateCreated');
if ($tempDate == 1) {
$dateCreated = $content->structMem('dateCreated')->serialize();
// Not all clients send dateCreated info. So add if statement here if you want to use it.
$timestamp = iso8601_decode($dateCreated);
// To convert to unix timestamp
} else {
$timestamp = time();
}
//author from e107
$query = 'SELECT u.user_id FROM `#user` AS u WHERE u.user_loginname = \'' . $username . '\' AND u.user_password = \'' . md5($password) . '\'';
$sql->db_Select_gen($query);
$row = $sql->db_Fetch();
$author = $row['user_id'];
//21/08/2009 14.37.49 allow comments
//add comments flag
//check if we have something...
$tempAllowComments = checkXmlElementS($content->serialize(), 'mt_allow_comments');
if ($tempAllowComments == 1) {
$comments = $content->structMem('mt_allow_comments')->scalarval();
}
$published = $xmlrpcmsg->getParam(5)->scalarval();
//edit data with new fuctions
$data['data']['page_id'] = $pageid;
$data['_FIELD_TYPES']['page_id'] = 'int';
$data['data']['page_title'] = $title;
$data['_FIELD_TYPES']['page_title'] = 'todb';
$data['data']['page_text'] = $description;
$data['_FIELD_TYPES']['page_text'] = 'todb';
$data['data']['page_datestamp'] = $timestamp;
$data['_FIELD_TYPES']['page_datestamp'] = 'int';
$data['data']['page_author'] = $author;
$data['_FIELD_TYPES']['page_author'] = 'int';
$data['data']['page_comment_flag'] = $comments;
$data['_FIELD_TYPES']['page_comment_flag'] = 'int';
$data['data']['page_password'] = $wp_password;
$data['_FIELD_TYPES']['page_password'] = 'todb';
$data['data']['page_class'] = 0;
$data['_FIELD_TYPES']['page_class'] = 'int';
$pageid = $sql->db_Update('page', $data);
return new xmlrpcresp(new xmlrpcval(true, 'boolean'));
} else {
return new xmlrpcresp(0, $xmlrpcerruser + 1, 'Login Failed');
}
}
示例8: antispam_poll_abuse
/**
* Request abuse list from central blacklist.
*
* @return boolean true = success, false = error
*/
function antispam_poll_abuse()
{
global $Messages, $Settings, $baseurl, $debug, $antispamsrv_host, $antispamsrv_port, $antispamsrv_uri;
// Construct XML-RPC client:
load_funcs('xmlrpc/model/_xmlrpc.funcs.php');
$client = new xmlrpc_client($antispamsrv_uri, $antispamsrv_host, $antispamsrv_port);
$client->debug = $debug;
// Get datetime from last update, because we only want newer stuff...
$last_update = $Settings->get('antispam_last_update');
// Encode it in the XML-RPC format
$Messages->add(T_('Latest update timestamp') . ': ' . $last_update, 'note');
$startat = mysql2date('Ymd\\TH:i:s', $last_update);
//$startat = iso8601_encode( mktime(substr($m,11,2),substr($m,14,2),substr($m,17,2),substr($m,5,2),substr($m,8,2),substr($m,0,4)) );
// Construct XML-RPC message:
$message = new xmlrpcmsg('b2evo.pollabuse', array(new xmlrpcval(0, 'int'), new xmlrpcval('annonymous', 'string'), new xmlrpcval('nopassrequired', 'string'), new xmlrpcval($startat, 'dateTime.iso8601'), new xmlrpcval(0, 'int')));
$Messages->add(sprintf(T_('Requesting abuse list from %s...'), $antispamsrv_host), 'note');
$result = $client->send($message);
if ($ret = xmlrpc_logresult($result, $Messages)) {
// Response is not an error, let's process it:
$response = $result->value();
if ($response->kindOf() == 'struct') {
// Decode struct:
$response = xmlrpc_decode_recurse($response);
if (!isset($response['strings']) || !isset($response['lasttimestamp'])) {
$Messages->add(T_('Incomplete reponse.'), 'error');
$ret = false;
} else {
// Start registering strings:
$value = $response['strings'];
if (count($value) == 0) {
$Messages->add(T_('No new blacklisted strings are available.'), 'note');
} else {
// We got an array of strings:
$Messages->add(T_('Adding strings to local blacklist:'), 'note');
foreach ($value as $banned_string) {
if (antispam_create($banned_string, 'central')) {
// Creation successed
$Messages->add(T_('Adding:') . ' «' . $banned_string . '»: ' . T_('OK.'), 'note');
} else {
// Was already handled
$Messages->add(T_('Adding:') . ' «' . $banned_string . '»: ' . T_('Not necessary! (Already handled)'), 'note');
antispam_update_source($banned_string, 'central');
}
}
// Store latest timestamp:
$endedat = date('Y-m-d H:i:s', iso8601_decode($response['lasttimestamp']));
$Messages->add(T_('New latest update timestamp') . ': ' . $endedat, 'note');
$Settings->set('antispam_last_update', $endedat);
$Settings->dbupdate();
}
$Messages->add(T_('Done.'), 'success');
}
} else {
$Messages->add(T_('Invalid reponse.'), 'error');
$ret = false;
}
}
return $ret;
}
示例9: uploadSession
function uploadSession ($xmlrpcmsg)
{
$dcdb = new Dcdb;
$return = true;
/* Get the data */
$p1 = $xmlrpcmsg->getParam(0);
$p2 = $xmlrpcmsg->getParam(1);
$p3 = $xmlrpcmsg->getParam(2);
$p4 = $xmlrpcmsg->getParam(3);
$p5 = $xmlrpcmsg->getParam(4);
$p6 = $xmlrpcmsg->getParam(5);
$p7 = $xmlrpcmsg->getParam(6);
$p8 = $xmlrpcmsg->getParam(7);
$userId = $p1->scalarval();
$deviceKey = $p2->scalarval();
$startTime8601 = $p3->scalarval();
$endTime8601 = $p4->scalarval();
$pointInterval = $p5->scalarval();
$totalDist = $p6->scalarval();
$averageVel = $p7->scalarval();
$startTimestamp = iso8601_decode($startTime8601);
$endTimestamp = iso8601_decode($endTime8601);
$startDatetime = date("Y-m-d H:i:s", $startTimestamp);
$endDatetime = date("Y-m-d H:i:s", $endTimestamp);
$velPoints = array();
for ($i = 0; $i < $p8->arraysize(); $i++)
{
$val = $p8->arraymem($i);
$pt = $val->scalarval();
array_push($velPoints, $pt);
}
//need to get the device id from the key
$q = "SELECT `deviceTypeId` from `dcdb_devices` WHERE `key` = '".$deviceKey."'";
$rslt = $dcdb->query($q);
$row = mysql_fetch_row($rslt);
$deviceId = $row[0];
if (mysql_error()){
$return = false;
}
/* Add session to db */
$q = "INSERT INTO `dcdb_sessions` (userId, deviceId, startTime, endTime, "
."pointResolution, distance, averageVelocity) VALUES('".$userId."','".$deviceId."','"
.$startDatetime."','".$endDatetime."','".$pointInterval."','".$totalDist."','".$averageVel."')";
$dcdb->query($q);
$sessionId = mysql_insert_id();
if (mysql_error()){
$return = false;
}
/* Add velocity points to db */
for ($i=0; $i < count($velPoints); $i++)
{
$q = "INSERT INTO `dcdb_sessionVelocityData` (sessionId, pointIndex, velocityPoint) "
."VALUES('".$sessionId."','".$i."','".$velPoints[$i]."')";
$dcdb->query($q);
}
if (mysql_error()){
$return = false;
}
return new xmlrpcresp(new xmlrpcval($return, "boolean"));
}
示例10: buildArticle
protected function buildArticle($title, $alias, $intro, $full, $state, $access, $front,$language,$published_up,$published_down,$dateCreated,$created_by, $created_by_alias,$metakey,$metadesc,$metadata)
{
$date = JFactory::getDate();
$created = joooid_toSQL($date);
$user = JFactory::getUser();
$userid = intval( $user->get('id') );
if(!isset($content['description'])){
$content['description'] = '';
}
$content['title'] = $title;
$content['wp_slug'] = $alias;
$content['alias'] = $alias;
$content['articletext'] = $intro.'<hr id="system-readmore" />'.$full;;
$content['description'] = $intro;
$content['mt_text_more'] = $full;
$content['mt_basename'] = $intro;
if(isset($dateCreated) && $dateCreated != null )
$content['created'] = $dateCreated;
if(!isset($content['mt_keywords'])){
$content['mt_keywords'] = '';
}
$content['metakey'] = $content['mt_keywords'];
if(!isset($content['mt_excerpt'])){
$content['mt_excerpt'] = '';
}
$content['metadesc'] = $content['mt_excerpt'];
if(isset($state))
$content['state'] = $state;
if(isset($access))
$content['access'] = $access;
if(isset($language))
$content['language'] = $language;
if(isset($created_by))
$content['created_by'] = $created_by;
if(isset($created_by_alias))
$content['created_by_alias'] = $created_by_alias;
if(isset($metakey))
$content['metakey'] = $metakey;
if(isset($metadesc))
$content['metadesc'] = $metadesc;
if(isset($metadata))
$content['metadata'] = $metadata;
if(isset($content['dateCreated_gmt'])){
$date = JFactory::getDate(iso8601_decode($content['dateCreated'], 0));
$content['created'] = $content['publish_up'] = joooid_toSQL($date);
} else if(isset($content['created'])){
$date = JFactory::getDate(iso8601_decode($content['created'], 0));
}
if(empty($content['id']) && empty($content['created'])){
$content['created'] = joooid_toSQL(JFactory::getDate());
}
if (isset($published_up) && $published_up!='0') {
$tmp = JFactory::getDate($published_up);
$content['publish_up'] = joooid_toSQL($tmp);
}
if (isset($published_down) && $published_down!='0') {
$tmp = JFactory::getDate($published_down);
$content['publish_down'] = joooid_toSQL($tmp);
}
return $content;
}
示例11: getRecentChanges
function getRecentChanges($params)
{
global $request;
// Get the first parameter as an ISO 8601 date. Assume UTC
$encoded_date = $params->getParam(0);
$datetime = iso8601_decode($encoded_date->scalarval(), 1);
$dbh = $request->getDbh();
$pages = array();
$iterator = $dbh->mostRecent(array('since' => $datetime));
while ($page = $iterator->next()) {
// $page contains a WikiDB_PageRevision object
// no need to url encode $name, because it is already stored in that format ???
$name = short_string($page->getPageName());
$lastmodified = new xmlrpcval(iso8601_encode($page->get('mtime')), "dateTime.iso8601");
$author = short_string($page->get('author'));
$version = new xmlrpcval($page->getVersion(), 'int');
// Build an array of xmlrpc structs
$pages[] = new xmlrpcval(array('name' => $name, 'lastModified' => $lastmodified, 'author' => $author, 'version' => $version), 'struct');
}
return new xmlrpcresp(new xmlrpcval($pages, "array"));
}
示例12: buildData
//.........这里部分代码省略.........
{
$content['alias'] = $content['wp_slug'];
unset($content['wp_slug']);
}
if (!isset($content['mt_text_more']))
{
$content['mt_text_more'] = '';
}
$content['mt_text_more'] = trim($content['mt_text_more']);
if (JString::strlen($content['mt_text_more']) < 1)
{
$temp = explode('<!--more-->', $content['articletext']); //for MetaWeblog
if (count($temp) > 1)
{
$content['articletext'] = $temp[0] . '<hr id="system-readmore" />';
$content['articletext'] .= $temp[1];
}
}
else
{
$content['articletext'] .= '<hr id="system-readmore" />';
$content['articletext'] .= $content['mt_text_more'];
}
unset($content['mt_text_more']);
if (!isset($content['mt_keywords']))
{
$content['mt_keywords'] = '';
}
$content['metakey'] = $content['mt_keywords'];
if (!isset($content['mt_excerpt']))
{
$content['mt_excerpt'] = '';
}
$content['metadesc'] = $content['mt_excerpt'];
$content['state'] = 0;
if ($publish)
{
$content['state'] = 1;
}
$content['language'] = $this->params->get('language', '*');
//date
$basedate = null;
switch(true)
{
case (isset($content['date_created_gmt'])):
$basedate = $content['date_created_gmt'];
break;
case (isset($content['dateCreated_gmt'])):
$basedate = $content['dateCreated_gmt'];
break;
case (isset($content['dateCreated'])):
$basedate = $content['dateCreated'];
break;
}
if($basedate){
$timezone = new DateTimeZone(JFactory::getConfig()->get('offset'));
$now = new DateTime('now', $timezone);
$offsetsecond = $timezone->getOffset($now);
$offset = 0;
if($offsetsecond){
$offset = $offsetsecond / 3600;
}
$date = JFactory::getDate(iso8601_decode($basedate, $offset));
// $date->setTimeZone(new DateTimeZone(JFactory::getConfig()->get('offset')));
$content['created'] = $content['publish_up'] = $date->toSql();
}
if (empty($content['id']) && empty($content['created']))
{
$content['created'] = $content['publish_up'] = JFactory::getDate()->toSql();
}
$content['created_by_alias'] = '';
if(isset($content['wp_author_id']) && $content['wp_author_id'] > 0)
{
$author = JFactory::getUser($content['wp_author_id']);
if($author)
{
$content['created_by_alias'] = $author->get('name');
}
}
return $content;
}
示例13: convertDate
public function convertDate($unixDate)
{
jimport('joomla.utilities.date');
$date = new JDate(iso8601_decode($unixDate));
if (date('Y', $date->toUnix()) == 1970 && date('m', $date->toUnix()) == 1 && date('d', $date->toUnix()) == 1) {
return '0000-00-00 00:00:00';
} else {
return $date->toMySQL();
}
}