Esempio n. 1
0
/**
* 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']);
     }
 }
Esempio n. 3
0
/**
* 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 .= '&amp;msg=' . $msg;
    }
    return COM_refresh($url);
}
Esempio n. 4
0
/**
* 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);
}