Esempio n. 1
0
    case 7:
        // Show trackback
        echo '<div class="voters" id="voters">';
        // AdSense
        do_banner_story();
        print_story_tabs($tab_option);
        echo '<a href="' . $link->get_trackback() . '" title="' . _('URI para trackbacks') . '" class="tab-trackback-url"><img src="' . $globals['base_url'] . 'img/common/permalink.gif" alt="' . _('enlace trackback') . '" width="16" height="9"/> ' . _('dirección de trackback') . '</a>' . "\n";
        echo '<fieldset><legend>' . _('lugares que enlazan esta noticia') . '</legend>';
        echo '<ul class="tab-trackback">';
        $trackbacks = $db->get_col("SELECT trackback_id FROM trackbacks WHERE trackback_link_id={$link->id} AND trackback_type='in' and trackback_status = 'ok' ORDER BY trackback_date DESC limit 50");
        if ($trackbacks) {
            require_once mnminclude . 'trackback.php';
            $trackback = new Trackback();
            foreach ($trackbacks as $trackback_id) {
                $trackback->id = $trackback_id;
                $trackback->read();
                echo '<li class="tab-trackback-entry"><a href="' . $trackback->url . '" rel="nofollow">' . $trackback->title . '</a> [' . preg_replace('/https*:\\/\\/([^\\/]+).*/', "\$1", $trackback->url) . ']</li>' . "\n";
            }
        }
        echo '<li class="tab-trackback-technorati"><a href="http://technorati.com/search/' . urlencode($globals['link_permalink']) . '">' . _('Technorati') . '</a></li>' . "\n";
        echo '<li class="tab-trackback-google"><a href="http://blogsearch.google.com/blogsearch?hl=es&amp;q=link%3A' . urlencode($globals['link_permalink']) . '">' . _('Google') . '</a></li>' . "\n";
        echo '<li class="tab-trackback-askcom"><a href="http://es.ask.com/blogsearch?q=' . urlencode($globals['link_permalink']) . '&amp;t=a&amp;search=Buscar&amp;qsrc=2101&amp;bql=any">' . _('Ask.com') . '</a></li>' . "\n";
        echo '</ul>';
        echo '</fieldset>';
        echo '</div>';
        break;
}
// echo '<div class="story-vertical-completion">&nbsp</div>';
echo '</div>';
echo '<!--' . "\n" . '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"' . "\n";
echo '	xmlns:dc="http://purl.org/dc/elements/1.1/"' . "\n";
Esempio n. 2
0
if (empty($title) && empty($tb_url) && empty($blog_name)) {
    // If it doesn't look like a trackback at all...
    header('Location: ' . getmyFullurl("story", $tb_id));
    exit;
}
if (!empty($tb_url) && !empty($title) && !empty($tb_url)) {
    header('Content-Type: text/xml; charset=UTF-8');
    $title = htmlspecialchars(strip_tags($title));
    $title = strlen($title) > 150 ? substr($title, 0, 150) . '...' : $title;
    $excerpt = strip_tags($excerpt);
    $excerpt = strlen($excerpt) > 200 ? substr($excerpt, 0, 200) . '...' : $excerpt;
    $trackres = new Trackback();
    $trackres->link = $tb_id;
    $trackres->type = 'in';
    $trackres->url = $tb_url;
    $dupe = $trackres->read();
    if ($dupe) {
        trackback_response(1, $main_smarty->get_config_vars('PLIGG_Visual_Trackback_AlreadyPing'));
    }
    $contents = @file_get_contents($tb_url);
    if (!$contents) {
        trackback_response(1, $main_smarty->get_config_vars('PLIGG_Visual_Trackback_BadURL'));
    }
    $permalink = get_permalink($tb_id);
    $permalink_q = preg_quote($permalink, '/');
    $pattern = "/<\\s*a.*href\\s*=[\"'\\s]*" . $permalink_q . "[\"'\\s]*.*>.*<\\s*\\/\\s*a\\s*>/i";
    if (!preg_match($pattern, $contents)) {
        trackback_response(1, $main_smarty->get_config_vars('PLIGG_Visual_Trackback_NoReturnLink'));
    }
    $trackres->title = $title;
    $trackres->content = $excerpt;
Esempio n. 3
0
if ($tbs = $db->get_col("select trackback_id from trackbacks where trackback_link_id = {$link->id} and trackback_status='pendent'")) {
    foreach ($tbs as $tb_id) {
        $tb = new Trackback();
        $tb->id = $tb_id;
        if ($tb->read()) {
            $res = $tb->send($link);
        }
    }
}
// Send pingbacks for link inside the text
preg_match_all('/([\\(\\[:\\.\\s]|^)(https*:\\/\\/[^ \\t\\n\\r\\]\\(\\)\\&]{5,70}[^ \\t\\n\\r\\]\\(\\)]*[^ .\\t,\\n\\r\\(\\)\\"\'\\]\\?])/i', $link->content, $matches);
foreach ($matches[2] as $match) {
    $tb = new Trackback();
    $tb->link = clean_input_url($match);
    $tb->link_id = $link->id;
    $tb->author = $link->author;
    if (!$tb->read()) {
        $tmp = new Link();
        if (!$tmp->get($match, 2000, false)) {
            echo "couldn't get {$match}\n";
            next;
        }
        if (!$tmp->pingback()) {
            echo "couldn't get pingback {$match}\n";
            next;
        }
        $tb->link = clean_input_url($match);
        $tb->url = clean_input_url($tmp->trackback);
        $tb->send($link);
    }
}
Esempio n. 4
0
function do_trackbacks()
{
    global $db, $globals;
    echo '<div id="trackback">';
    echo '<h2><a href="' . get_trackback($globals['link_id']) . '" title="' . _('URI para trackbacks') . '">trackbacks</a></h2>';
    $id = $globals['link_id'];
    $trackbacks = $db->get_col("SELECT trackback_id FROM trackbacks WHERE trackback_link_id={$id} AND trackback_type='in' ORDER BY trackback_date DESC");
    echo '<ul>';
    if ($trackbacks) {
        require_once mnminclude . 'trackback.php';
        $trackback = new Trackback();
        foreach ($trackbacks as $trackback_id) {
            $trackback->id = $trackback_id;
            $trackback->read();
            echo '<li><a href="' . $trackback->url . '" title="' . $trackback->content . '">' . $trackback->title . '</a></li>';
        }
    } else {
        echo '<li>' . _('(sin trackbacks)') . '</li>';
    }
    echo '<li><img src="img/favicons/technorati.png" alt="' . _('enlaces technorati') . '" width="16" height="16"/>&nbsp;<a href="http://technorati.com/search/' . urlencode(get_permalink($globals['link_id'])) . '">' . _('según Technorati') . '</a></li>';
    echo "</ul>\n";
    echo '</div><!--html1:do_trackbacks-->';
}
Esempio n. 5
0
 function pingback_ping($args)
 {
     global $db, $globals;
     $pagelinkedfrom = clean_input_string($args[0]);
     //$pagelinkedfrom = str_replace('&amp;', '&', $pagelinkedfrom);
     $pagelinkedto = clean_input_string($args[1]);
     $title = '';
     $urlfrom = parse_url($pagelinkedfrom);
     $urltest = parse_url($pagelinkedto);
     if (!$urlfrom || !$urltest) {
         return new IXR_Error(0, 'Is there no link to us?');
     }
     if ($urltest['host'] != get_server_name()) {
         return new IXR_Error(0, 'Is there no link to us?');
     }
     $base_uri = preg_quote($globals['base_url'] . $globals['base_story_url'], '/');
     $uri = preg_replace("/^{$base_uri}/", '', $urltest[path]);
     if (check_ban($globals['user_ip'], 'ip')) {
         syslog(LOG_NOTICE, "Meneame: pingback, IP is banned ({$globals['user_ip']}): {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(33, 'IP is banned.');
     }
     // Antispam of sites like xxx.yyy-zzz.info/archives/xxx.php
     if (preg_match('/http:\\/\\/[a-z0-9]\\.[a-z0-9]+-[^\\/]+\\.info\\/archives\\/.+\\.php$/', $pagelinkedfrom)) {
         return new IXR_Error(33, 'Host not allowed.');
     }
     if (check_ban($urlfrom[host], 'hostname', false)) {
         syslog(LOG_NOTICE, "Meneame: pingback, site is banned: {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(33, 'Site is banned.');
     }
     $link = new Link();
     $link->uri = preg_replace('/#[\\w\\-\\_]+$/', '', $uri);
     if (empty($uri) || !$link->read('uri')) {
         syslog(LOG_NOTICE, "Meneame: pingback, story does not exist: {$pagelinkedto}");
         return new IXR_Error(33, 'Story doesn\'t exist.');
     }
     if ($link->get_permalink() == $pagelinkedfrom) {
         syslog(LOG_NOTICE, "Meneame: pingback, points to the same post: {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(48, 'The pingback points to the same post.');
     }
     if ($link->date < time() - 86400 * 15) {
         syslog(LOG_NOTICE, "Meneame: pingback, story is too old: {$pagelinkedto}");
         return new IXR_Error(33, 'Story is too old for pingbacks.');
     }
     $trackres = new Trackback();
     $trackres->link_id = $link->id;
     $trackres->type = 'in';
     $trackres->link = $pagelinkedfrom;
     $trackres->url = $pagelinkedfrom;
     if ($trackres->abuse()) {
         return new IXR_Error(33, 'Don\'t send so many pings.');
     }
     $dupe = $trackres->read();
     if ($dupe) {
         syslog(LOG_NOTICE, "Meneame: pingback, we already have a ping from that URI for this post: {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(48, 'The pingback has already been registered.');
     }
     // very stupid, but gives time to the 'from' server to publish !
     sleep(1);
     // Let's check the remote site
     if (version_compare(phpversion(), '5.1.0') >= 0) {
         $contents = @file_get_contents($pagelinkedfrom, FALSE, NULL, 0, 100000);
     } else {
         $contents = @file_get_contents($pagelinkedfrom);
     }
     if (!$contents) {
         syslog(LOG_NOTICE, "Meneame: pingback, the provided URL does not seem to work: {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(16, 'The source URL does not exist.');
     }
     if (preg_match('/charset=([a-zA-Z0-9-_]+)/i', $contents, $matches)) {
         $this->encoding = trim($matches[1]);
         if (strcasecmp($this->encoding, 'utf-8') != 0) {
             $contents = iconv($this->encoding, 'UTF-8//IGNORE', $contents);
         }
     }
     // Check is links back to us
     $permalink = $link->get_permalink();
     $permalink_q = preg_quote($permalink, '/');
     $pattern = "/<\\s*a[^>]+href=[\"']" . $permalink_q . "[#\\/0-9a-z\\-]*[\"'][^>]*>/i";
     if (!preg_match($pattern, $contents)) {
         syslog(LOG_NOTICE, "Meneame: pingback, the provided URL does not have a link back to us: {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(17, 'The source URL does not contain a link to the target URL, and so cannot be used as a source.');
     }
     // Search Title
     if (preg_match('/<title[^<>]*>([^<>]*)<\\/title>/si', $contents, $matches)) {
         $url_title = clean_text($matches[1]);
         if (mb_strlen($url_title) > 3) {
             $title = $url_title;
         }
     }
     if (empty($title)) {
         syslog(LOG_NOTICE, "Meneame: pingback, cannot find a title on that page: {$pagelinkedfrom} - {$pagelinkedto}");
         return new IXR_Error(32, 'We cannot find a title on that page.');
     }
     $title = mb_strlen($title) > 120 ? mb_substr($title, 0, 120) . '...' : $title;
     $trackres->title = $title;
     $trackres->status = 'ok';
     $trackres->store();
     syslog(LOG_NOTICE, "Meneame: pingback ok: {$pagelinkedfrom} - {$pagelinkedto}");
     return "Pingback from registered. Keep the web talking! :-)";
 }
Esempio n. 6
0
function do_trackbacks()
{
    global $db;
    $id = $_REQUEST['id'];
    echo '<div id="blogged" style="z-index: 10;">';
    echo '<h2>' . PLIGG_Visual_Trackback . '</h2>';
    $trackbacks = $db->get_col("SELECT trackback_id FROM " . table_trackbacks . " WHERE trackback_link_id={$id} AND trackback_type='in' ORDER BY trackback_date DESC");
    if ($trackbacks) {
        echo '<ul>';
        require_once mnminclude . 'trackback.php';
        $trackback = new Trackback();
        foreach ($trackbacks as $trackback_id) {
            $trackback->id = $trackback_id;
            $trackback->read();
            echo '<li><a href="' . $trackback->url . '" title="' . htmlspecialchars($trackback->content) . '">' . $trackback->title . '</a></li>';
        }
        echo "</ul>\n";
    }
    echo '<br /></div>';
}