/** * Render all the trackback comments for a specific entry * * @param string $sid entry id * @param string $type type of entry ('article' = story, etc.) * @param string $title the entry's title * @param string $permalink link to the entry * @param string trackback_url trackback URL for this entry * @return string HTML (formatted list of trackback comments) * */ function TRB_renderTrackbackComments($sid, $type, $title, $permalink, $trackback_url = '') { global $_CONF, $_TABLES, $LANG_TRB; $link_and_title = COM_createLink($title, $permalink); if (empty($trackback_url)) { $trackback_url = TRB_makeTrackbackUrl($sid, $type); } $template = COM_newTemplate($_CONF['path_layout'] . 'trackback'); $template->set_file(array('trackback' => 'trackback.thtml', 'comment' => 'trackbackcomment.thtml')); $template->set_var('lang_trackback', $LANG_TRB['trackback']); $template->set_var('lang_trackback_url', $LANG_TRB['this_trackback_url']); $template->set_var('permalink', $permalink); $template->set_var('permalink_and_title', $link_and_title); $template->set_var('trackback_url', $trackback_url); $result = DB_query("SELECT cid,url,title,blog,excerpt,ipaddress,UNIX_TIMESTAMP(date) AS day " . "FROM {$_TABLES['trackback']} WHERE sid = '{$sid}' AND type = '{$type}' ORDER BY date"); $numrows = DB_numRows($result); $template->set_var('trackback_comment_count', $numrows); $num_comments = sprintf($LANG_TRB['num_comments'], $numrows); $template->set_var('trackback_comment_text', $num_comments); if ($numrows == 0) { $template->set_var('lang_trackback_comments', $LANG_TRB['no_comments']); $template->set_var('lang_trackback_comments_no_link', $LANG_TRB['no_comments']); } else { $template->set_var('lang_trackback_comments', sprintf($LANG_TRB['intro_text'], $link_and_title)); $template->set_var('lang_trackback_comments_no_link', sprintf($LANG_TRB['intro_text'], $title)); } $delete_option = TRB_allowDelete($sid, $type); $token = ''; if ($delete_option && $numrows > 0) { $token = SEC_createToken(); } for ($i = 0; $i < $numrows; $i++) { $A = DB_fetchArray($result); $comment = TRB_formatComment($A['url'], $A['title'], $A['blog'], $A['excerpt'], $A['day'], $delete_option, $A['cid'], $A['ipaddress'], $token); $template->set_var('formatted_comment', $comment); $template->parse('trackback_comments', 'comment', true); } $template->parse('output', 'trackback'); return $template->finish($template->get_var('output')); }
/** * Deletes a given trackback comment * * @param int $cid Comment ID * @param string $sid ID of object comment belongs to * @param string $type Comment type (e.g. article, poll, etc) * @return void * */ function deltrackback($cid, $sid, $type) { global $_TABLES, $LANG_SX00; if (TRB_allowDelete($sid, $type)) { TRB_deleteTrackbackComment($cid); if ($type == 'article') { $tbcount = DB_count($_TABLES['trackback'], array('type', 'sid'), array('article', $sid)); DB_query("UPDATE {$_TABLES['stories']} SET trackbacks = {$tbcount} WHERE sid = '{$sid}'"); } SPAMX_log($LANG_SX00['spamdeleted']); } }
/** * Deletes a trackback comment. Checks if the current user has proper * permissions first. * * @param int $id ID of the trackback comment to delete * @return string HTML redirect * */ function deleteTrackbackComment($id) { global $_TABLES; $cid = DB_escapeString($id); $result = DB_query("SELECT sid,type FROM {$_TABLES['trackback']} WHERE cid = '{$cid}'"); list($sid, $type) = DB_fetchArray($result); $url = PLG_getItemInfo($type, $sid, 'url'); if (TRB_allowDelete($sid, $type)) { TRB_deleteTrackbackComment($id); if ($type == 'article') { DB_query("UPDATE {$_TABLES['stories']} SET trackbacks = trackbacks - 1 WHERE (sid = '{$sid}')"); } $msg = 62; } else { $msg = 63; } if (strpos($url, '?') === false) { $url .= '?msg=' . $msg; } else { $url .= '&msg=' . $msg; } return COM_refresh($url); }
/** * Deletes a trackback comment. Checks if the current user has proper * permissions first. * * @param int $id ID of the trackback comment to delete * @return string HTML redirect * */ function TRACKBACK_delete($id) { global $_TABLES; $cid = DB_escapeString($id); $result = DB_query("SELECT sid,type FROM {$_TABLES['trackback']} WHERE cid = '{$cid}'"); list($sid, $type) = DB_fetchArray($result); $url = TRACKBACK_getItemInfo($type, $sid, 'url'); if (TRB_allowDelete($sid, $type)) { TRB_deleteTrackbackComment($id); if ($type == 'article') { DB_query("UPDATE {$_TABLES['stories']} SET trackbacks = trackbacks - 1 WHERE (sid = '{$sid}')"); CACHE_remove_instance('story_' . $sid); } $msg = 62; } else { $msg = 63; } COM_setMessage($msg); return COM_refresh($url); }