Example #1
0
 function blog_trackback_send($ping_urls, $blogentry_id, $blogentry_title, &$blogentry_body)
 {
     global $database, $user, $url, $setting;
     // Trackback class
     $trackback = new Trackback($user->user_displayname . "'s Blog", $user->user_displayname, "UTF-8");
     // Prepare data
     $blogentry_excerpt = strlen($blogentry_body) > 255 ? substr($blogentry_body, 0, 254) : $blogentry_body;
     $blogentry_url = $url->url_create('blog_entry', $user->user_info['user_username'], $blogentry_id);
     // Allow multiple trackbacks
     if (!is_array($ping_urls)) {
         $ping_urls = array($ping_urls);
     }
     // Detect trackbacks
     if ($user->level_info['level_blog_trackbacks_detect']) {
         $detected_trackback_urls = $trackback->auto_discovery($blogentry_body);
         $ping_urls = array_merge($ping_urls, $detected_trackback_urls);
     }
     $ping_urls = array_unique(array_filter($ping_urls));
     // Ping the trackback urls (and generate ping log query)
     $sql = "INSERT INTO se_blogpings (blogping_blogentry_id, blogping_target_url, blogping_source_url, blogping_status, blogping_type, blogping_ip) VALUES ";
     $isFirst = TRUE;
     $trackback_results = array();
     foreach ($ping_urls as $ping_url) {
         $tb_result = $trackback->ping($ping_url, $blogentry_url, $blogentry_title, $blogentry_excerpt);
         if ($tb_result == "1") {
             $trackback_results[$ping_url] = "Could not connect";
         } elseif ($tb_result == "2") {
             $trackback_results[$ping_url] = "Success";
         } elseif ($tb_result == "3") {
             $trackback_results[$ping_url] = "An error occurred";
         } else {
             $trackback_results[$ping_url] = "An unknown error has occurred";
         }
         if (!$isFirst) {
             $sql .= ',';
         }
         $sql .= "('{$blogentry_id}', '" . $database->database_real_escape_string($ping_url) . "', '" . $database->database_real_escape_string($_SERVER['REQUEST_URI']) . "', 1, 1, '{$_SERVER['REMOTE_ADDR']}')";
         $isFirst = FALSE;
     }
     if (!$isFirst) {
         $resource = $database->database_query($sql);
     }
     return array('result' => TRUE, 'trackback_results' => $results);
 }