function receiveTrackback($blogid, $entry, $title, $url, $excerpt, $site)
{
    global $database, $blog, $defaultURL;
    if (empty($url)) {
        return 5;
    }
    $post = new Post();
    if (!$post->doesAcceptTrackback($entry)) {
        return 3;
    }
    $filtered = 0;
    if (!Filter::isAllowed($url)) {
        if (Filter::isFiltered('ip', $_SERVER['REMOTE_ADDR']) || Filter::isFiltered('url', $url)) {
            $filtered = 1;
        } else {
            if (Filter::isFiltered('content', $excerpt)) {
                $filtered = 1;
            } else {
                if (!fireEvent('AddingTrackback', true, array('entry' => $entry, 'url' => $url, 'site' => $site, 'title' => $title, 'excerpt' => $excerpt))) {
                    $filtered = 1;
                }
            }
        }
    }
    $title = correctTTForXmlText($title);
    $excerpt = correctTTForXmlText($excerpt);
    $url = UTF8::lessenAsEncoding($url);
    $site = UTF8::lessenAsEncoding($site);
    $title = UTF8::lessenAsEncoding($title);
    $excerpt = UTF8::lessenAsEncoding($excerpt);
    $trackback = new Trackback();
    $trackback->entry = $entry;
    $trackback->url = $url;
    $trackback->site = $site;
    $trackback->title = $title;
    $trackback->excerpt = $excerpt;
    if ($filtered > 0) {
        $trackback->isfiltered = true;
    }
    if ($trackback->add()) {
        if ($filtered == 0) {
            CacheControl::flushDBCache('trackback');
        }
        return $filtered == 0 ? 0 : 3;
    } else {
        return 4;
    }
    return 0;
}
Exemple #2
0
/// Copyright (c) 2004-2015, Needlworks  / Tatter Network Foundation
/// All rights reserved. Licensed under the GPL.
/// See the GNU General Public License for more details. (/documents/LICENSE, /documents/COPYRIGHT)
$IV = array('GET' => array('rss' => array('url')));
require ROOT . '/library/preprocessor.php';
importlib('model.blog.link');
if (!empty($_GET['rss'])) {
    list($st, $header, $body, $lmdate, $rval) = @xml_parser($_GET['rss'], '');
    $result = array();
    if ($rval) {
        list($title, $link) = str_dbi_check(@get_siteinfo($rval));
        if (Utils_Unicode::validate($title, true)) {
            $result['name'] = correctTTForXmlText(Utils_Unicode::correct(htmlspecialchars(trim($title))));
        } else {
            $result['name'] = correctTTForXmlText(Utils_Unicode::bring(htmlspecialchars(trim($title))));
        }
        if (Utils_Unicode::validate($link, true)) {
            $result['url'] = correctTTForXmlText(Utils_Unicode::correct(htmlspecialchars(trim($link))));
        } else {
            $result['url'] = correctTTForXmlText(Utils_Unicode::bring(htmlspecialchars(trim($link))));
        }
        Respond::PrintResult($result);
    } else {
        $result['url'] = $_GET['rss'];
        $result['name'] = '';
        Respond::PrintResult($result);
    }
    exit;
} else {
    Respond::ResultPage(-1);
}