mirror of
https://github.com/WordPress/WordPress.git
synced 2025-02-01 21:21:24 +01:00
added blogger.getTemplate and blogger.setTemplate
git-svn-id: http://svn.automattic.com/wordpress/trunk@1349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
e61a7ce57e
commit
7feb841ed5
72
xmlrpc.php
72
xmlrpc.php
@ -43,6 +43,8 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||
'blogger.getUserInfo' => 'this:blogger_getUserInfo',
|
||||
'blogger.getPost' => 'this:blogger_getPost',
|
||||
'blogger.getRecentPosts' => 'this:blogger_getRecentPosts',
|
||||
'blogger.getTemplate' => 'this:blogger_getTemplate',
|
||||
'blogger.setTemplate' => 'this:blogger_setTemplate',
|
||||
'demo.sayHello' => 'this:sayHello',
|
||||
'demo.addTwoNumbers' => 'this:addTwoNumbers'
|
||||
));
|
||||
@ -246,7 +248,75 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||
|
||||
return $recent_posts;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* blogger.getTemplate returns your blog_filename */
|
||||
function blogger_getTemplate($args) {
|
||||
|
||||
$blog_ID = $args[1];
|
||||
$user_login = $args[2];
|
||||
$user_pass = $args[3];
|
||||
$template = $args[4]; /* could be 'main' or 'archiveIndex', but we don't use it */
|
||||
|
||||
if (!$this->login_pass_ok($user_login, $user_pass)) {
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
$user_data = get_userdatabylogin($user_login);
|
||||
|
||||
if ($user_data->user_level < 3) {
|
||||
return new IXR_Error(401, 'Sorry, users whose level is less than 3, can not edit the template.');
|
||||
}
|
||||
|
||||
/* warning: here we make the assumption that the weblog's URI is on the same server */
|
||||
$filename = get_settings('home').'/'.get_settings('blogfilename');
|
||||
$filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
|
||||
|
||||
$f = fopen($filename, 'r');
|
||||
$content = fread($f, filesize($filename));
|
||||
fclose($f);
|
||||
|
||||
/* so it is actually editable with a windows/mac client */
|
||||
$content = str_replace("\n", "\r\n", $content);
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
|
||||
/* blogger.setTemplate updates the content of blog_filename */
|
||||
function blogger_setTemplate($args) {
|
||||
|
||||
$blog_ID = $args[1];
|
||||
$user_login = $args[2];
|
||||
$user_pass = $args[3];
|
||||
$content = $args[4];
|
||||
$template = $args[5]; /* could be 'main' or 'archiveIndex', but we don't use it */
|
||||
|
||||
if (!$this->login_pass_ok($user_login, $user_pass)) {
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
$user_data = get_userdatabylogin($user_login);
|
||||
|
||||
if ($user_data->user_level < 3) {
|
||||
return new IXR_Error(401, 'Sorry, users whose level is less than 3, can not edit the template.');
|
||||
}
|
||||
|
||||
/* warning: here we make the assumption that the weblog's URI is on the same server */
|
||||
$filename = get_settings('home').'/'.get_settings('blogfilename');
|
||||
$filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
|
||||
|
||||
if ($f = fopen($filename, 'w+')) {
|
||||
fwrite($f, $content);
|
||||
fclose($f);
|
||||
} else {
|
||||
return new IXR_Error(500, 'Either the file is not writable, or something wrong happened. The file has not been updated.');
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
$wp_xmlrpc_server = new wp_xmlrpc_server();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user