Modify Utopia News Pro comment display method

The script I’m using for news posting is designed so the comments for each news item are displayed with links like “/news/comments.php?action=list&newsid=1” but I’d like to have the comments displayed below each post, rather than on a separate page. There doesn’t seem to be a variable to do this with the templates, so how can I accomplish it? The script is available for download at … p&mirror=1

Perhaps there’s a better script I should use instead? I don’t need a cms script though, just a way to include blog posts on an otherwise static website.

The comments are probably stored somewhere, you can just retrieve them in PHP’s default way (SQL query, fopen(), whichever is appropriate for your script), and display them on the same page.

Since this is a third-party script, we don’t know the ins and outs though, and no, I won’t download it and do your work for you ;)

Ok well I hacked parted of the news.php script to include sections from comments.php relevant to listing comments. I’m using the $comments_list_commentbit variable in the news_newsbit_commentslink template, but I’m only getting one comment out of 5 in the database showing up, and it’s showing on the wrong newsid. Any ideas?

if ($action == '') { define('ISPRINTABLEPAGE', false); define('WILLTRUNCATE', true); define('ISRSS', false); $templatesused = 'news_newsbit,news_newsbit_commentslink,news_avatarbit,news_newsbit_readmorelink,comments_list_commentbit'; unp_cacheTemplates($templatesused); $getnews = $DB->query("SELECT * FROM `unp_news` ORDER BY `date` DESC LIMIT $newslimit"); while ($news = $DB->fetch_array($getnews)) { $catid = $news['catid']; $category = $categorycache["$catid"]; $newsid = $news['newsid']; $subject = $news['subject']; $newstext = $news['news']; $poster = $news['poster']; $posterid = $news['posterid']; $date = $news['date']; $postdate = unp_date($dateformat, $date); $posttime = unp_date($timeformat, $date); $avatar = unp_checkAvatar($posterid); if (!$avatar) { $useravatar = ''; } else { eval('$useravatar = "'.unp_printTemplate('news_avatarbit').'";'); } if ($commentsallowance == '1') { $comments = $news['comments']; eval('$commentsinfo = "'.unp_printTemplate('news_newsbit_commentslink').'";'); } else { $commentsinfo = ' '; } $comments = $news['comments']; //$newstext = $n->unp_doNewsTrim($newstext); // Move to unp_doNewsFormat $newstext = $n->unp_doNewsFormat($newstext); $subject = $n->unp_doSubjectFormat($subject); // NewsBit eval('$news_newsbit = "'.unp_printTemplate('news_newsbit').'";'); unp_echoTemplate($news_newsbit); // NewsBit echo "nn"; $getcomments = $DB->query("SELECT * FROM `unp_comments` WHERE newsid='$newsid'"); if ($DB->num_rows($getcomments) > 0) { while ($comments = $DB->fetch_array($getcomments)) { // grab and fix up comments $c_id = $comments['id']; $c_title = htmlspecialchars(stripslashes($comments['title'])); $c_name = htmlspecialchars(stripslashes($comments['name'])); $c_email = htmlspecialchars(stripslashes($comments['email'])); $c_date = unp_date($dateformat, $comments['date']); $c_time = unp_date($timeformat, $comments['date']); $c_text = nl2br(htmlspecialchars(stripslashes($comments['comments']))); $c_ipaddress = $comments['ipaddress']; $c_proxy = $comments['proxy']; $c_text = $n->unp_doSmilies($c_text); eval('$comments_list_commentbit = "'.unp_printTemplate('comments_list_commentbit').'";'); } } else { $comments_list_commentbit = ''; } } unset($news); }

What’s the value of your $newslimit variable, and where are you initializing $categorycache?

$newslimit is set to 5, $categorycache is initialized in the section above the code I pasted:

$getcats = $DB->query("SELECT * FROM `unp_category` ORDER BY `catid` ASC"); $categorycache = array(); // Create a cache of category names to limit database queries while ($catslist = $DB->fetch_array($getcats)) { $catid = $catslist['catid']; $categorycache["$catid"] = $catslist['catname']; }

Using unp_echoTemplate($comments_list_commentbit); actually outputs all the comments (but not in the location I want them). I’ve also discovered that only the most recent comment is the one getting displayed.

Sponsor our Newsletter | Privacy Policy | Terms of Service