Esempio n. 1
0
 public function set($value, &$node)
 {
     $result = array();
     foreach (preg_split('/[\\r\\n]+/', $value) as $line) {
         if (count($parts = preg_split('/\\s+/', $line, 2, PREG_SPLIT_NO_EMPTY))) {
             $link = array();
             if ($tmp = array_shift($parts)) {
                 $link['href'] = $tmp;
             }
             if ($tmp = array_shift($parts)) {
                 $link['name'] = $tmp;
             }
             if (!empty($link['href'])) {
                 $link['host'] = url::host($link['href']);
             }
             try {
                 $head = http::head($link['href']);
                 if (200 == ($link['status'] = $head['_status'])) {
                     if (!empty($head['Content-Type'])) {
                         $link['type'] = $head['Content-Type'];
                     }
                     if (!empty($head['Content-Length'])) {
                         $link['size'] = intval($head['Content-Length']);
                         $link['sizefm'] = mcms::filesize($link['size']);
                     }
                 }
             } catch (Exception $e) {
             }
             $result[] = $link;
         }
     }
     if (empty($result)) {
         unset($node->{$this->value});
     } else {
         $node->{$this->value} = $result;
     }
 }
Esempio n. 2
0
 /**
  * Affichage page 503
  *
  */
 public function serve503()
 {
     $this->okt->page->module = '503';
     $this->okt->page->action = '503';
     http::head(503);
     header('Retry-After: 3600');
     echo $this->okt->tpl->render('503');
     exit;
 }
Esempio n. 3
0
 /**
  * Обновление конкретного модуля.
  */
 public static function updateModule($name)
 {
     $db = self::getAllModules();
     if (!array_key_exists($name, $db)) {
         throw new RuntimeException(t('Нет информации о модуле %name.', array('%name' => $name)));
     }
     if (empty($db[$name]['url'])) {
         Logger::log("no url for module {$name}, not updated.");
         return false;
     }
     $head = http::head($url = $db[$name]['url']);
     if (200 != $head['_status']) {
         Logger::log('updateModule: file not found: ' . $url);
         return false;
     }
     $tmp = http::fetch($url);
     foreach (array('sha1' => 'sha1_file') as $k => $func) {
         if (!empty($db[$name][$k]) and $db[$name][$k] != $func($tmp)) {
             Logger::log($k . ' hash mismatch for ' . $url);
             return false;
         }
     }
     $existed = is_dir($path = os::path('lib', 'modules', $name));
     zip::unzipToFolder($tmp, $path);
     if ($existed) {
         Logger::log($name . ': updated from v' . $db[$name]['version.local'] . ' to v' . $db[$name]['version'] . '.');
     } else {
         Logger::log($name . ': installed v' . $db[$name]['version'] . '.');
     }
     return true;
 }
Esempio n. 4
0
 /**
 Receives a trackback and insert it as a comment of given post.
 
 @param	post_id		<b>integer</b>		Post ID
 */
 public function receive($post_id)
 {
     header('Content-Type: text/xml; charset=UTF-8');
     if (empty($_POST)) {
         http::head(405, 'Method Not Allowed');
         echo '<?xml version="1.0" encoding="utf-8"?>' . "\n" . "<response>\n" . "  <error>1</error>\n" . "  <message>POST request needed</message>\n" . "</response>";
         return;
     }
     $post_id = (int) $post_id;
     $title = !empty($_POST['title']) ? $_POST['title'] : '';
     $excerpt = !empty($_POST['excerpt']) ? $_POST['excerpt'] : '';
     $url = !empty($_POST['url']) ? $_POST['url'] : '';
     $blog_name = !empty($_POST['blog_name']) ? $_POST['blog_name'] : '';
     $charset = '';
     $comment = '';
     $err = false;
     $msg = '';
     if ($this->core->blog === null) {
         $err = true;
         $msg = 'No blog.';
     } elseif ($url == '') {
         $err = true;
         $msg = 'URL parameter is required.';
     } elseif ($blog_name == '') {
         $err = true;
         $msg = 'Blog name is required.';
     }
     if (!$err) {
         $post = $this->core->blog->getPosts(array('post_id' => $post_id, 'post_type' => ''));
         if ($post->isEmpty()) {
             $err = true;
             $msg = 'No such post.';
         } elseif (!$post->trackbacksActive()) {
             $err = true;
             $msg = 'Trackbacks are not allowed for this post or weblog.';
         }
         $url = trim(html::clean($url));
         if ($this->pingAlreadyDone($post->post_id, $url)) {
             $err = true;
             $msg = 'The trackback has already been registered';
         }
     }
     if (!$err) {
         $charset = self::getCharsetFromRequest();
         if (!$charset) {
             $charset = self::detectCharset($title . ' ' . $excerpt . ' ' . $blog_name);
         }
         if (strtolower($charset) != 'utf-8') {
             $title = iconv($charset, 'UTF-8', $title);
             $excerpt = iconv($charset, 'UTF-8', $excerpt);
             $blog_name = iconv($charset, 'UTF-8', $blog_name);
         }
         $title = trim(html::clean($title));
         $title = html::decodeEntities($title);
         $title = html::escapeHTML($title);
         $title = text::cutString($title, 60);
         $excerpt = trim(html::clean($excerpt));
         $excerpt = html::decodeEntities($excerpt);
         $excerpt = preg_replace('/\\s+/ms', ' ', $excerpt);
         $excerpt = text::cutString($excerpt, 252);
         $excerpt = html::escapeHTML($excerpt) . '...';
         $blog_name = trim(html::clean($blog_name));
         $blog_name = html::decodeEntities($blog_name);
         $blog_name = html::escapeHTML($blog_name);
         $blog_name = text::cutString($blog_name, 60);
         try {
             $this->addBacklink($post_id, $url, $blog_name, $title, $excerpt, $comment);
         } catch (Exception $e) {
             $err = 1;
             $msg = 'Something went wrong : ' . $e->getMessage();
         }
     }
     $resp = '<?xml version="1.0" encoding="utf-8"?>' . "\n" . "<response>\n" . '  <error>' . (int) $err . "</error>\n";
     if ($msg) {
         $resp .= '  <message>' . $msg . "</message>\n";
     }
     if (!empty($_POST['__debug'])) {
         $resp .= "  <debug>\n" . '    <title>' . $title . "</title>\n" . '    <excerpt>' . $excerpt . "</excerpt>\n" . '    <url>' . $url . "</url>\n" . '    <blog_name>' . $blog_name . "</blog_name>\n" . '    <charset>' . $charset . "</charset>\n" . '    <comment>' . $comment . "</comment>\n" . "  </debug>\n";
     }
     echo $resp . "</response>";
 }
Esempio n. 5
0
 public static function post($args)
 {
     if ($args == '') {
         # No entry was specified.
         self::p404();
     } else {
         $_ctx =& $GLOBALS['_ctx'];
         $core =& $GLOBALS['core'];
         $core->blog->withoutPassword(false);
         $params = new ArrayObject();
         $params['post_url'] = $args;
         $_ctx->posts = $core->blog->getPosts($params);
         $_ctx->comment_preview = new ArrayObject();
         $_ctx->comment_preview['content'] = '';
         $_ctx->comment_preview['rawcontent'] = '';
         $_ctx->comment_preview['name'] = '';
         $_ctx->comment_preview['mail'] = '';
         $_ctx->comment_preview['site'] = '';
         $_ctx->comment_preview['preview'] = false;
         $_ctx->comment_preview['remember'] = false;
         $core->blog->withoutPassword(true);
         if ($_ctx->posts->isEmpty()) {
             # The specified entry does not exist.
             self::p404();
         } else {
             $post_id = $_ctx->posts->post_id;
             $post_password = $_ctx->posts->post_password;
             # Password protected entry
             if ($post_password != '' && !$_ctx->preview) {
                 # Get passwords cookie
                 if (isset($_COOKIE['dc_passwd'])) {
                     $pwd_cookie = unserialize($_COOKIE['dc_passwd']);
                 } else {
                     $pwd_cookie = array();
                 }
                 # Check for match
                 if (!empty($_POST['password']) && $_POST['password'] == $post_password || isset($pwd_cookie[$post_id]) && $pwd_cookie[$post_id] == $post_password) {
                     $pwd_cookie[$post_id] = $post_password;
                     setcookie('dc_passwd', serialize($pwd_cookie), 0, '/');
                 } else {
                     self::serveDocument('password-form.html', 'text/html', false);
                     return;
                 }
             }
             $post_comment = isset($_POST['c_name']) && isset($_POST['c_mail']) && isset($_POST['c_site']) && isset($_POST['c_content']) && $_ctx->posts->commentsActive();
             # Posting a comment
             if ($post_comment) {
                 # Spam trap
                 if (!empty($_POST['f_mail'])) {
                     http::head(412, 'Precondition Failed');
                     header('Content-Type: text/plain');
                     echo "So Long, and Thanks For All the Fish";
                     # Exits immediately the application to preserve the server.
                     exit;
                 }
                 $name = $_POST['c_name'];
                 $mail = $_POST['c_mail'];
                 $site = $_POST['c_site'];
                 $content = $_POST['c_content'];
                 $preview = !empty($_POST['preview']);
                 if ($content != '') {
                     if ($core->blog->settings->wiki_comments) {
                         $core->initWikiComment();
                     } else {
                         $core->initWikiSimpleComment();
                     }
                     $content = $core->wikiTransform($content);
                     $content = $core->HTMLfilter($content);
                 }
                 $_ctx->comment_preview['content'] = $content;
                 $_ctx->comment_preview['rawcontent'] = $_POST['c_content'];
                 $_ctx->comment_preview['name'] = $name;
                 $_ctx->comment_preview['mail'] = $mail;
                 $_ctx->comment_preview['site'] = $site;
                 if ($preview) {
                     # --BEHAVIOR-- publicBeforeCommentPreview
                     $core->callBehavior('publicBeforeCommentPreview', $_ctx->comment_preview);
                     $_ctx->comment_preview['preview'] = true;
                 } else {
                     # Post the comment
                     $cur = $core->con->openCursor($core->prefix . 'comment');
                     $cur->comment_author = $name;
                     $cur->comment_site = html::clean($site);
                     $cur->comment_email = html::clean($mail);
                     $cur->comment_content = $content;
                     $cur->post_id = $_ctx->posts->post_id;
                     $cur->comment_status = $core->blog->settings->comments_pub ? 1 : -1;
                     $cur->comment_ip = http::realIP();
                     $redir = $_ctx->posts->getURL();
                     $redir .= strpos($redir, '?') !== false ? '&' : '?';
                     try {
                         if (!text::isEmail($cur->comment_email)) {
                             throw new Exception(__('You must provide a valid email address.'));
                         }
                         # --BEHAVIOR-- publicBeforeCommentCreate
                         $core->callBehavior('publicBeforeCommentCreate', $cur);
                         if ($cur->post_id) {
                             $comment_id = $core->blog->addComment($cur);
                             # --BEHAVIOR-- publicAfterCommentCreate
                             $core->callBehavior('publicAfterCommentCreate', $cur, $comment_id);
                         }
                         if ($cur->comment_status == 1) {
                             $redir_arg = 'pub=1';
                         } else {
                             $redir_arg = 'pub=0';
                         }
                         header('Location: ' . $redir . $redir_arg);
                     } catch (Exception $e) {
                         $_ctx->form_error = $e->getMessage();
                         $_ctx->form_error;
                     }
                 }
             }
             # The entry
             self::serveDocument('post.html');
         }
     }
 }
Esempio n. 6
0
            echo "\t\t\t<link href=\"" . htmlentities($url) . "\" rel=\"alternate\" type=\"text/html\" title=\"" . $titre . "\" />\n";
            echo "\t\t\t<summary type=\"html\">" . str_replace(array("\r\n", "\r", "\n"), " ", $desc) . "</summary>\n";
            echo "\t\t\t<content type=\"html\"><![CDATA[" . $item . "]]></content>\n";
            echo "\t\t</entry>\n";
        }
    }
    if ($_GET['type'] == "rss") {
        echo "\t\t</channel>\n";
        echo "\t</rss>";
    } elseif ($_GET['type'] == "atom") {
        echo "\t</feed>";
    }
    /* On termine le cache */
    finCache();
} else {
    http::head(301);
    http::redirect(BP_PLANET_URL . "/feed.php?type=rss");
}
$root_url = BP_PLANET_URL;
$analytics = $blog_settings->get('planet_analytics');
if (!empty($analytics)) {
    $analyzed_url = $root_url . '/feed/' . $_GET['type'];
    if (!empty($tags)) {
        $analyzed_url .= '/tags/' . implode(',', $tags);
    }
    if (!empty($users)) {
        $analyzed_url .= '/users/' . implode(',', $users);
    }
    if (!empty($period)) {
        $analyzed_url .= '/period/' . $period;
    }
Esempio n. 7
0
 /**
 Receives a trackback and insert it as a comment of given post.
 
 @param	post_id		<b>integer</b>		Post ID
 */
 public function receive($post_id)
 {
     header('Content-Type: text/xml; charset=UTF-8');
     if (empty($_POST)) {
         http::head(405, 'Method Not Allowed');
         echo '<?xml version="1.0" encoding="utf-8"?>' . "\n" . "<response>\n" . "  <error>1</error>\n" . "  <message>POST request needed</message>\n" . "</response>";
         return;
     }
     $post_id = (int) $post_id;
     $title = !empty($_POST['title']) ? $_POST['title'] : '';
     $excerpt = !empty($_POST['excerpt']) ? $_POST['excerpt'] : '';
     $url = !empty($_POST['url']) ? $_POST['url'] : '';
     $blog_name = !empty($_POST['blog_name']) ? $_POST['blog_name'] : '';
     $charset = '';
     $comment = '';
     $err = false;
     $msg = '';
     if ($this->core->blog === null) {
         $err = true;
         $msg = 'No blog.';
     } elseif ($url == '') {
         $err = true;
         $msg = 'URL parameter is required.';
     } elseif ($blog_name == '') {
         $err = true;
         $msg = 'Blog name is required.';
     }
     if (!$err) {
         $post = $this->core->blog->getPosts(array('post_id' => $post_id, 'post_type' => ''));
         if ($post->isEmpty()) {
             $err = true;
             $msg = 'No such post.';
         } elseif (!$post->trackbacksActive()) {
             $err = true;
             $msg = 'Trackbacks are not allowed for this post or weblog.';
         }
     }
     if (!$err) {
         $charset = self::getCharsetFromRequest();
         if (!$charset) {
             $charset = mb_detect_encoding($title . ' ' . $excerpt . ' ' . $blog_name, 'UTF-8,ISO-8859-1,ISO-8859-2,ISO-8859-3,' . 'ISO-8859-4,ISO-8859-5,ISO-8859-6,ISO-8859-7,ISO-8859-8,' . 'ISO-8859-9,ISO-8859-10,ISO-8859-13,ISO-8859-14,ISO-8859-15');
         }
         if (strtolower($charset) != 'utf-8') {
             $title = iconv($charset, 'UTF-8', $title);
             $excerpt = iconv($charset, 'UTF-8', $excerpt);
             $blog_name = iconv($charset, 'UTF-8', $blog_name);
         }
         $title = trim(html::clean($title));
         $title = html::decodeEntities($title);
         $title = html::escapeHTML($title);
         $title = text::cutString($title, 60);
         $excerpt = trim(html::clean($excerpt));
         $excerpt = html::decodeEntities($excerpt);
         $excerpt = preg_replace('/\\s+/ms', ' ', $excerpt);
         $excerpt = text::cutString($excerpt, 252);
         $excerpt = html::escapeHTML($excerpt) . '...';
         $blog_name = trim(html::clean($blog_name));
         $blog_name = html::decodeEntities($blog_name);
         $blog_name = html::escapeHTML($blog_name);
         $blog_name = text::cutString($blog_name, 60);
         $url = trim(html::clean($url));
         if (!$blog_name) {
             $blog_name = 'Anonymous blog';
         }
         $comment = "<!-- TB -->\n" . '<p><strong>' . ($title ? $title : $blog_name) . "</strong></p>\n" . '<p>' . $excerpt . '</p>';
         $cur = $this->core->con->openCursor($this->core->prefix . 'comment');
         $cur->comment_author = (string) $blog_name;
         $cur->comment_site = (string) $url;
         $cur->comment_content = (string) $comment;
         $cur->post_id = $post_id;
         $cur->comment_trackback = 1;
         $cur->comment_status = $this->core->blog->settings->trackbacks_pub ? 1 : -1;
         $cur->comment_ip = http::realIP();
         try {
             # --BEHAVIOR-- publicBeforeTrackbackCreate
             $this->core->callBehavior('publicBeforeTrackbackCreate', $cur);
             if ($cur->post_id) {
                 $comment_id = $this->core->blog->addComment($cur);
                 # --BEHAVIOR-- publicAfterTrackbackCreate
                 $this->core->callBehavior('publicAfterTrackbackCreate', $cur, $comment_id);
             }
         } catch (Exception $e) {
             $err = 1;
             $msg = 'Something went wrong : ' . $e->getMessage();
         }
     }
     $debug_trace = "  <debug>\n" . '    <title>' . $title . "</title>\n" . '    <excerpt>' . $excerpt . "</excerpt>\n" . '    <url>' . $url . "</url>\n" . '    <blog_name>' . $blog_name . "</blog_name>\n" . '    <charset>' . $charset . "</charset>\n" . '    <comment>' . $comment . "</comment>\n" . "  </debug>\n";
     $resp = '<?xml version="1.0" encoding="utf-8"?>' . "\n" . "<response>\n" . '  <error>' . (int) $err . "</error>\n";
     if ($msg) {
         $resp .= '  <message>' . $msg . "</message>\n";
     }
     if (!empty($_POST['__debug'])) {
         $resp .= $debug_trace;
     }
     echo $resp . "</response>";
 }
Esempio n. 8
0
    http::head(404, 'Not Found');
    exit;
}
$allow_types = array('png', 'jpg', 'jpeg', 'gif', 'css', 'js', 'swf');
$pf = path::clean($_GET['pf']);
$paths = array_reverse(explode(PATH_SEPARATOR, DC_PLUGINS_ROOT));
# Adding admin/res folder here to load some stuff
$paths[] = dirname(__FILE__) . '/swf';
foreach ($paths as $m) {
    $PF = path::real($m . '/' . $pf);
    if ($PF !== false) {
        break;
    }
}
unset($paths);
if ($PF === false || !is_file($PF) || !is_readable($PF)) {
    header('Content-Type: text/plain');
    http::head(404, 'Not Found');
    exit;
}
if (!in_array(files::getExtension($PF), $allow_types)) {
    header('Content-Type: text/plain');
    http::head(404, 'Not Found');
    exit;
}
http::$cache_max_age = 7200;
http::cache(array_merge(array($PF), get_included_files()));
header('Content-Type: ' . files::getMimeType($PF));
header('Content-Length: ' . filesize($PF));
readfile($PF);
exit;
 /**
  * Добавление файлов с удалённого сервера (обработка).
  */
 public static function on_post_remote(Context $ctx)
 {
     $files = array();
     foreach ($ctx->post('files') as $url) {
         if (!empty($url)) {
             $head = http::head(str_replace(' ', '+', $url));
             if ($head['_status'] == 200) {
                 $file = array('type' => $head['Content-Type'], 'size' => $head['Content-Length'], 'remove' => true, 'url' => $url);
                 if (!$ctx->post('symlink')) {
                     $file['tmp_name'] = http::fetch($url);
                 }
                 $tmp = parse_url($url);
                 $file['name'] = basename($tmp['path']);
                 if ('application/octet-stream' == $file['type'] and !empty($file['tmp_name'])) {
                     $file['type'] = os::getFileType($file['tmp_name'], $file['name']);
                 }
                 $files[] = $file;
             }
         }
     }
     return self::add_files($ctx, $files);
 }
Esempio n. 10
0
 public static function pages($args)
 {
     if ($args == '') {
         # No page was specified.
         self::p404();
     } else {
         $_ctx =& $GLOBALS['_ctx'];
         $core =& $GLOBALS['core'];
         $core->blog->withoutPassword(false);
         $params = new ArrayObject(array('post_type' => 'page', 'post_url' => $args));
         $core->callBehavior('publicPagesBeforeGetPosts', $params, $args);
         $_ctx->posts = $core->blog->getPosts($params);
         $_ctx->comment_preview = new ArrayObject();
         $_ctx->comment_preview['content'] = '';
         $_ctx->comment_preview['rawcontent'] = '';
         $_ctx->comment_preview['name'] = '';
         $_ctx->comment_preview['mail'] = '';
         $_ctx->comment_preview['site'] = '';
         $_ctx->comment_preview['preview'] = false;
         $_ctx->comment_preview['remember'] = false;
         $core->blog->withoutPassword(true);
         if ($_ctx->posts->isEmpty()) {
             # The specified page does not exist.
             self::p404();
         } else {
             $post_id = $_ctx->posts->post_id;
             $post_password = $_ctx->posts->post_password;
             # Password protected entry
             if ($post_password != '' && !$_ctx->preview) {
                 # Get passwords cookie
                 if (isset($_COOKIE['dc_passwd'])) {
                     $pwd_cookie = json_decode($_COOKIE['dc_passwd']);
                     if ($pwd_cookie === NULL) {
                         $pwd_cookie = array();
                     } else {
                         $pwd_cookie = (array) $pwd_cookie;
                     }
                 } else {
                     $pwd_cookie = array();
                 }
                 # Check for match
                 # Note: We must prefix post_id key with '#'' in pwd_cookie array in order to avoid integer conversion
                 # because MyArray["12345"] is treated as MyArray[12345]
                 if (!empty($_POST['password']) && $_POST['password'] == $post_password || isset($pwd_cookie['#' . $post_id]) && $pwd_cookie['#' . $post_id] == $post_password) {
                     $pwd_cookie['#' . $post_id] = $post_password;
                     setcookie('dc_passwd', json_encode($pwd_cookie), 0, '/');
                 } else {
                     self::serveDocument('password-form.html', 'text/html', false);
                     return;
                 }
             }
             $post_comment = isset($_POST['c_name']) && isset($_POST['c_mail']) && isset($_POST['c_site']) && isset($_POST['c_content']) && $_ctx->posts->commentsActive();
             # Posting a comment
             if ($post_comment) {
                 # Spam trap
                 if (!empty($_POST['f_mail'])) {
                     http::head(412, 'Precondition Failed');
                     header('Content-Type: text/plain');
                     echo "So Long, and Thanks For All the Fish";
                     # Exits immediately the application to preserve the server.
                     exit;
                 }
                 $name = $_POST['c_name'];
                 $mail = $_POST['c_mail'];
                 $site = $_POST['c_site'];
                 $content = $_POST['c_content'];
                 $preview = !empty($_POST['preview']);
                 if ($content != '') {
                     # --BEHAVIOR-- publicBeforeCommentTransform
                     $buffer = $core->callBehavior('publicBeforeCommentTransform', $content);
                     if ($buffer != '') {
                         $content = $buffer;
                     } else {
                         if ($core->blog->settings->system->wiki_comments) {
                             $core->initWikiComment();
                         } else {
                             $core->initWikiSimpleComment();
                         }
                         $content = $core->wikiTransform($content);
                     }
                     $content = $core->HTMLfilter($content);
                 }
                 $_ctx->comment_preview['content'] = $content;
                 $_ctx->comment_preview['rawcontent'] = $_POST['c_content'];
                 $_ctx->comment_preview['name'] = $name;
                 $_ctx->comment_preview['mail'] = $mail;
                 $_ctx->comment_preview['site'] = $site;
                 if ($preview) {
                     # --BEHAVIOR-- publicBeforeCommentPreview
                     $core->callBehavior('publicBeforeCommentPreview', $_ctx->comment_preview);
                     $_ctx->comment_preview['preview'] = true;
                 } else {
                     # Post the comment
                     $cur = $core->con->openCursor($core->prefix . 'comment');
                     $cur->comment_author = $name;
                     $cur->comment_site = html::clean($site);
                     $cur->comment_email = html::clean($mail);
                     $cur->comment_content = $content;
                     $cur->post_id = $_ctx->posts->post_id;
                     $cur->comment_status = $core->blog->settings->system->comments_pub ? 1 : -1;
                     $cur->comment_ip = http::realIP();
                     $redir = $_ctx->posts->getURL();
                     $redir .= $core->blog->settings->system->url_scan == 'query_string' ? '&' : '?';
                     try {
                         if (!text::isEmail($cur->comment_email)) {
                             throw new Exception(__('You must provide a valid email address.'));
                         }
                         # --BEHAVIOR-- publicBeforeCommentCreate
                         $core->callBehavior('publicBeforeCommentCreate', $cur);
                         if ($cur->post_id) {
                             $comment_id = $core->blog->addComment($cur);
                             # --BEHAVIOR-- publicAfterCommentCreate
                             $core->callBehavior('publicAfterCommentCreate', $cur, $comment_id);
                         }
                         if ($cur->comment_status == 1) {
                             $redir_arg = 'pub=1';
                         } else {
                             $redir_arg = 'pub=0';
                         }
                         header('Location: ' . $redir . $redir_arg);
                     } catch (Exception $e) {
                         $_ctx->form_error = $e->getMessage();
                         $_ctx->form_error;
                     }
                 }
             }
             # The entry
             if ($_ctx->posts->trackbacksActive()) {
                 header('X-Pingback: ' . $core->blog->url . $core->url->getURLFor("xmlrpc", $core->blog->id));
             }
             $tplset = $core->themes->moduleInfo($core->blog->settings->system->theme, 'tplset');
             if (!empty($tplset) && is_dir(dirname(__FILE__) . '/default-templates/' . $tplset)) {
                 $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__) . '/default-templates/' . $tplset);
             } else {
                 $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__) . '/default-templates/' . DC_DEFAULT_TPLSET);
             }
             self::serveDocument('page.html');
         }
     }
 }
Esempio n. 11
0
<?php

# -- BEGIN LICENSE BLOCK ----------------------------------
#
# This file is part of Dotclear 2.
#
# Copyright (c) 2003-2009 Olivier Meunier and contributors
# Licensed under the GPL version 2.0 license.
# See LICENSE file or
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- END LICENSE BLOCK ------------------------------------
require dirname(__FILE__) . '/../inc/prepend.php';
if (isset($_SERVER['PATH_INFO'])) {
    $blog_id = trim($_SERVER['PATH_INFO']);
    $blog_id = preg_replace('#^/#', '', $blog_id);
} elseif (!empty($_GET['b'])) {
    $blog_id = $_GET['b'];
}
if (empty($blog_id)) {
    header('Content-Type: text/plain');
    http::head(412);
    echo 'No blog ID given';
    exit;
}
# Loading plugins
$core->plugins->loadModules(DC_PLUGINS_ROOT);
# Start XML-RPC server
$server = new dcXmlRpc($core, $blog_id);
$server->serve();