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); }