2001-03-10 11:07:52 +00:00
< ? php
2000-11-03 08:11:19 +00:00
2001-01-20 12:20:31 +00:00
// Security check:
if ( strstr ( $id , " " ) || strstr ( $pid , " " ) || strstr ( $lid , " " ) || strstr ( $mode , " " ) || strstr ( $order , " " ) || strstr ( $threshold , " " )) {
2001-01-20 12:58:47 +00:00
watchdog ( " error " , " comment: attempt to provide malicious input through URI " );
2001-01-20 12:20:31 +00:00
exit ();
}
$cmodes = array ( 1 => " List - min " , 2 => " List - max " , 3 => " Threaded - min " , 4 => " Threaded - max " );
2001-01-21 09:26:06 +00:00
$corder = array ( 1 => " Date - new " , 2 => " Date - old " , 3 => " Rate - high " , 4 => " Rate - low " );
2001-01-20 12:20:31 +00:00
2000-11-03 08:11:19 +00:00
class Comment {
2001-01-25 15:29:45 +00:00
function Comment ( $userid , $subject , $comment , $timestamp , $url , $fake_email , $score , $votes , $cid , $lid ) {
2000-11-03 08:11:19 +00:00
$this -> userid = $userid ;
$this -> subject = $subject ;
$this -> comment = $comment ;
$this -> timestamp = $timestamp ;
$this -> url = $url ;
$this -> fake_email = $fake_email ;
$this -> score = $score ;
$this -> votes = $votes ;
$this -> cid = $cid ;
2001-01-25 15:29:45 +00:00
$this -> lid = $lid ;
2000-11-03 08:11:19 +00:00
}
}
2001-01-20 12:20:31 +00:00
function comment_moderate ( $moderate ) {
global $user , $comment_votes ;
if ( $user -> id && $moderate ) {
$none = $comment_votes [ key ( $comment_votes )];
foreach ( $moderate as $id => $vote ) {
2001-05-16 20:54:37 +00:00
if ( $vote != $comment_votes [ $none ]) {
2001-06-27 18:06:36 +00:00
$id = check_output ( $id );
$vote = check_output ( $vote );
2001-05-16 20:54:37 +00:00
$comment = db_fetch_object ( db_query ( " SELECT * FROM comments WHERE cid = ' $id ' " ));
2001-05-17 20:50:15 +00:00
if ( $comment && ! field_get ( $comment -> users , $user -> userid )) {
2001-05-17 19:14:50 +00:00
$result = db_query ( " UPDATE comments SET score = score $vote , votes = votes + 1, users = ' " . field_set ( $comment -> users , $user -> userid , $vote ) . " ' WHERE cid = ' $id ' " );
2001-05-16 20:54:37 +00:00
}
2001-01-20 12:20:31 +00:00
}
}
}
}
function comment_settings ( $mode , $order , $threshold ) {
global $user ;
2001-02-18 15:14:56 +00:00
if ( $user -> id ) $user = user_save ( $user , array ( " mode " => $mode , " sort " => $order , " threshold " => $threshold ));
2001-01-20 12:20:31 +00:00
}
2001-06-15 12:09:37 +00:00
function comment_form ( $edit ) {
global $REQUEST_URI , $user ;
2001-06-20 20:00:40 +00:00
// name field:
2001-06-15 12:09:37 +00:00
$form .= form_item ( t ( " Your name " ), format_username ( $user -> userid ));
2001-06-20 20:00:40 +00:00
// subject field:
2001-06-30 07:47:50 +00:00
$form .= form_textfield ( t ( " Subject " ), " subject " , $edit [ subject ], 50 , 64 );
2001-06-15 12:09:37 +00:00
2001-06-20 20:00:40 +00:00
// comment field:
2001-06-30 07:47:50 +00:00
$form .= form_textarea ( t ( " Comment " ), " comment " , $edit [ comment ] ? $edit [ comment ] : $user -> signature , 70 , 10 , t ( " Allowed HTML tags " ) . " : " . htmlspecialchars ( variable_get ( " allowed_html " , " " )));
2001-06-15 12:09:37 +00:00
2001-06-20 20:00:40 +00:00
// preview button:
2001-06-30 07:47:50 +00:00
$form .= form_hidden ( " pid " , $edit [ pid ]);
$form .= form_hidden ( " id " , $edit [ id ]);
2001-06-15 12:09:37 +00:00
2001-06-26 06:59:46 +00:00
if ( ! $edit [ comment ]) {
2001-06-15 12:09:37 +00:00
$form .= form_submit ( t ( " Preview comment " ));
}
else {
$form .= form_submit ( t ( " Preview comment " ));
$form .= form_submit ( t ( " Post comment " ));
}
2001-06-17 18:31:25 +00:00
2001-06-26 06:59:46 +00:00
return form ( $REQUEST_URI , $form );
2001-06-15 12:09:37 +00:00
}
2001-01-20 12:20:31 +00:00
function comment_reply ( $pid , $id ) {
2001-06-15 12:09:37 +00:00
global $theme ;
2001-01-20 12:20:31 +00:00
if ( $pid ) {
2001-03-07 21:29:40 +00:00
$item = db_fetch_object ( db_query ( " SELECT comments.*, users.userid FROM comments LEFT JOIN users ON comments.author = users.id WHERE comments.cid = ' $pid ' " ));
2001-03-01 21:34:09 +00:00
comment_view ( new Comment ( $item -> userid , $item -> subject , $item -> comment , $item -> timestamp , $item -> url , $item -> fake_email , comment_score ( $comment ), $comment -> votes , $item -> cid , $item -> lid ), t ( " reply to this comment " ));
2001-01-20 12:20:31 +00:00
}
This a rather large commit that needs a lot of fine-tuning. If you
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
2001-06-10 15:01:20 +00:00
else {
node_view ( node_get_object ( array ( " nid " => $id )));
$pid = 0 ;
}
2001-01-20 12:20:31 +00:00
2001-06-29 22:08:57 +00:00
if ( user_access ( " post comments " )) {
2001-06-20 20:00:40 +00:00
$theme -> box ( t ( " Reply " ), comment_form ( array ( pid => $pid , id => $id )));
}
else {
$theme -> box ( t ( " Reply " ), t ( " You are not authorized to post comments. " ));
}
2001-01-20 12:20:31 +00:00
}
2001-06-15 12:09:37 +00:00
function comment_preview ( $edit ) {
2001-05-20 13:51:40 +00:00
global $REQUEST_URI , $theme , $user ;
2001-01-20 12:20:31 +00:00
// Preview comment:
2001-06-15 12:09:37 +00:00
comment_view ( new Comment ( $user -> userid , check_preview ( $edit [ subject ]), check_preview ( $edit [ comment ]), time (), check_preview ( $user -> url ), check_preview ( $user -> fake_email ), 0 , 0 , 0 , 0 ), t ( " reply to this comment " ));
2001-01-20 12:20:31 +00:00
2001-06-15 12:09:37 +00:00
$theme -> box ( t ( " Reply " ), comment_form ( $edit ));
2001-01-20 12:20:31 +00:00
}
2001-06-15 12:09:37 +00:00
function comment_post ( $edit ) {
2001-03-24 16:46:11 +00:00
global $theme , $user ;
2001-01-20 12:20:31 +00:00
2001-06-29 22:08:57 +00:00
if ( user_access ( " post comments " )) {
2001-06-20 20:00:40 +00:00
// check comment submission rate:
throttle ( " post comment " , variable_get ( max_comment_rate , 60 ));
2001-04-06 14:14:16 +00:00
2001-06-20 20:00:40 +00:00
// check for duplicate comments:
$duplicate = db_result ( db_query ( " SELECT COUNT(cid) FROM comments WHERE pid = ' " . check_input ( $edit [ pid ]) . " ' AND lid = ' " . check_input ( $edit [ id ]) . " ' AND subject = ' " . check_input ( $edit [ subject ]) . " ' AND comment = ' " . check_input ( $edit [ comment ]) . " ' " ), 0 );
2001-01-20 12:20:31 +00:00
2001-06-20 20:00:40 +00:00
if ( $duplicate != 0 ) {
2001-06-25 20:39:04 +00:00
watchdog ( " warning " , " comment: duplicate ' $edit[subject] ' " );
2001-06-20 20:00:40 +00:00
}
else {
// validate subject:
2001-06-25 20:39:04 +00:00
$edit [ subject ] = $edit [ subject ] ? $edit [ subject ] : substr ( $edit [ comment ], 0 , 29 );
2001-01-20 12:20:31 +00:00
2001-06-20 20:00:40 +00:00
// add watchdog entry:
2001-06-25 20:39:04 +00:00
watchdog ( " special " , " comment: added ' $edit[subject] ' " );
2001-01-20 12:20:31 +00:00
2001-06-20 20:00:40 +00:00
// add comment to database:
db_query ( " INSERT INTO comments (lid, pid, author, subject, comment, hostname, timestamp, score) VALUES (' " . check_input ( $edit [ id ]) . " ', ' " . check_input ( $edit [ pid ]) . " ', ' $user->id ', ' " . check_input ( $edit [ subject ]) . " ', ' " . check_input ( $edit [ comment ]) . " ', ' " . getenv ( " REMOTE_ADDR " ) . " ', ' " . time () . " ', ' " . ( $user -> userid ? 1 : 0 ) . " ') " );
2001-06-30 20:23:33 +00:00
// clear cache:
cache_clear ();
2001-06-20 20:00:40 +00:00
}
2001-01-20 12:20:31 +00:00
}
}
function comment_score ( $comment ) {
$value = ( $comment -> votes ) ? ( $comment -> score / $comment -> votes ) : (( $comment -> score ) ? $comment -> score : 0 );
return (( strpos ( $value , " . " )) ? substr ( $value . " 00 " , 0 , 4 ) : $value . " .00 " );
}
function comment_num_replies ( $id , $count = 0 ) {
2001-03-07 21:29:40 +00:00
$result = db_query ( " SELECT COUNT(cid) FROM comments WHERE pid = ' $id ' " );
2001-01-20 12:20:31 +00:00
return ( $result ) ? db_result ( $result , 0 ) : 0 ;
}
2001-01-25 15:29:45 +00:00
2001-01-20 12:20:31 +00:00
function comment_moderation ( $comment ) {
global $comment_votes , $op , $user ;
if ( $op == " reply " ) {
2001-03-01 21:34:09 +00:00
// preview comment:
2001-01-20 12:20:31 +00:00
$output .= " " ;
}
2001-05-17 20:50:15 +00:00
else if ( $user -> id && $user -> userid != $comment -> userid && ! field_get ( $comment -> users , $user -> userid )) {
2001-03-01 21:34:09 +00:00
// comment hasn't been moderated yet:
foreach ( $comment_votes as $key => $value ) $options .= " <OPTION VALUE= \" $value\ " > $key </ OPTION > \n " ;
$output .= " <SELECT NAME= \" moderate[ $comment->cid ] \" > $options </SELECT> \n " ;
2001-01-20 12:20:31 +00:00
}
else {
2001-03-01 21:34:09 +00:00
// comment has already been moderated:
2001-06-13 06:34:44 +00:00
$output .= " <TABLE BORDER= \" 0 \" CELLSPACING= \" 1 \" CELLPADDING= \" 1 \" ><TR><TD ALIGN= \" right \" > " . t ( " score " ) . " :</TD><TD> " . check_output ( $comment -> score ) . " </TD></TR><TR><TD ALIGN= \" right \" > " . t ( " votes " ) . " :</TD><TD> " . check_output ( $comment -> votes ) . " </TD></TR></TABLE> \n " ;
2001-01-20 12:20:31 +00:00
}
return $output ;
}
2001-01-21 09:26:06 +00:00
function comment_controls ( $threshold = 1 , $mode = 3 , $order = 1 ) {
global $REQUEST_URI , $user ;
2001-04-21 17:35:29 +00:00
$output .= " <DIV ALIGN= \" CENTER \" > \n " ;
2001-01-20 12:20:31 +00:00
$output .= " <FORM METHOD= \" post \" ACTION= \" $REQUEST_URI\ " > \n " ;
2001-01-21 09:26:06 +00:00
$output .= comment_mode (( $user -> id ? $user -> mode : $mode ));
$output .= comment_order (( $user -> id ? $user -> sort : $order ));
$output .= comment_threshold (( $user -> id ? $user -> threshold : $threshold ));
2001-02-17 12:59:24 +00:00
$output .= " <INPUT TYPE= \" submit \" NAME= \" op \" VALUE= \" " . t ( " Update settings " ) . " \" > \n " ;
2001-04-16 18:21:22 +00:00
$output .= " <INPUT TYPE= \" submit \" NAME= \" op \" VALUE= \" " . t ( " Add comment " ) . " \" > \n " ;
2001-01-20 12:20:31 +00:00
$output .= " </FORM> \n " ;
2001-04-21 17:35:29 +00:00
$output .= " </DIV> \n " ;
2001-01-20 12:20:31 +00:00
return $output ;
}
function comment_threshold ( $threshold ) {
2001-03-01 21:34:09 +00:00
for ( $i = - 1 ; $i < 6 ; $i ++ ) $options .= " <OPTION VALUE= \" $i\ " " . ( $threshold == $i ? " SELECTED " : " " ) . " > " . t( " Filter " ) . " - $i </ OPTION > " ;
return " <SELECT NAME= \" threshold \" > $options </SELECT> \n " ;
2001-01-20 12:20:31 +00:00
}
function comment_mode ( $mode ) {
global $cmodes ;
2001-03-01 21:34:09 +00:00
foreach ( $cmodes as $key => $value ) $options .= " <OPTION VALUE= \" $key\ " " . ( $mode == $key ? " SELECTED " : " " ) . " > $value </ OPTION > \n " ;
return " <SELECT NAME= \" mode \" > $options </SELECT> \n " ;
2001-01-20 12:20:31 +00:00
}
function comment_order ( $order ) {
global $corder ;
2001-03-01 21:34:09 +00:00
foreach ( $corder as $key => $value ) $options .= " <OPTION VALUE= \" $key\ " " . ( $order == $key ? " SELECTED " : " " ) . " > $value </ OPTION > \n " ;
return " <SELECT NAME= \" order \" > $options </SELECT> \n " ;
2001-01-20 12:20:31 +00:00
}
2001-03-24 16:46:11 +00:00
function comment_query ( $lid , $order , $pid = - 1 ) {
$query .= " SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.lid = ' $lid ' " ;
2001-03-07 21:29:40 +00:00
if ( $pid >= 0 ) $query .= " AND pid = ' $pid ' " ;
2001-01-20 12:20:31 +00:00
if ( $order == 1 ) $query .= " ORDER BY c.timestamp DESC " ;
2001-01-21 09:26:06 +00:00
else if ( $order == 2 ) $query .= " ORDER BY c.timestamp " ;
else if ( $order == 3 ) $query .= " ORDER BY c.score DESC " ;
else if ( $order == 4 ) $query .= " ORDER BY c.score " ;
2001-01-20 12:20:31 +00:00
return db_query ( $query );
}
function comment_visible ( $comment , $threshold = 0 ) {
if ( $comment -> votes == 0 && $comment -> score >= $threshold ) return 1 ;
else if ( $comment -> votes > 0 && $comment -> score / $comment -> votes >= $threshold ) return 1 ;
else return 0 ;
}
function comment_uri ( $args = 0 ) {
2001-03-24 16:46:11 +00:00
global $mod ;
if ( $args ) return ( $mod ) ? " module.php?mod= $mod ; $args " : " node.php? $args " ;
else return ( $mod ) ? " module.php?mod= $mod " : " node.php " ;
2001-01-20 12:20:31 +00:00
}
2001-06-29 22:08:57 +00:00
function comment_links ( $comment , $return = 1 ) {
2001-03-24 16:46:11 +00:00
global $theme ;
if ( $return ) return " <A HREF= \" " . comment_uri ( " id= $comment->lid # $comment->cid " ) . " \" ><FONT COLOR= \" $theme->type\ " > " . t( " return " ) . " </ FONT ></ A > | < A HREF = \ " " . comment_uri ( " op=reply&id= $comment->lid &pid= $comment->cid " ) . " \" ><FONT COLOR= \" $theme->type\ " > " . t( " reply to this comment " ) . " </ FONT ></ A > " ;
else return " <A HREF= \" " . comment_uri ( " op=reply&id= $comment->lid &pid= $comment->cid " ) . " \" ><FONT COLOR= \" $theme->type\ " > " . t( " reply to this comment " ) . " </ FONT ></ A > " ;
2001-01-20 12:20:31 +00:00
}
2001-03-01 21:34:09 +00:00
function comment_view ( $comment , $folded = 0 ) {
2001-03-24 16:46:11 +00:00
global $theme ;
2001-03-01 21:34:09 +00:00
// calculate comment's score:
$comment -> score = comment_score ( $comment );
// display comment:
2001-01-20 12:20:31 +00:00
if ( $folded ) $theme -> comment ( $comment , $folded );
2001-03-01 21:34:09 +00:00
else print " <A HREF= \" " . comment_uri ( " id= $comment->lid &cid= $comment->cid # $comment->cid " ) . " \" > " . check_output ( $comment -> subject ) . " </A> by " . format_username ( $comment -> userid ) . " <SMALL>( $comment->score )</SMALL><P> " ;
2001-01-20 12:20:31 +00:00
}
function comment_thread_min ( $cid , $threshold ) {
2001-03-01 21:34:09 +00:00
global $user ;
2001-01-20 12:20:31 +00:00
2001-03-07 21:29:40 +00:00
$result = db_query ( " SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.pid = ' $cid ' ORDER BY c.timestamp, c.cid " );
2001-01-20 12:20:31 +00:00
while ( $comment = db_fetch_object ( $result )) {
2001-06-13 08:47:35 +00:00
print " <UL> " ;
2001-06-17 18:31:25 +00:00
print comment_view ( $comment );
2001-01-20 12:20:31 +00:00
comment_thread_min ( $comment -> cid , $threshold );
2001-06-13 08:47:35 +00:00
print " </UL> " ;
2001-01-20 12:20:31 +00:00
}
}
function comment_thread_max ( $cid , $mode , $threshold , $level = 0 , $dummy = 0 ) {
2001-03-24 16:46:11 +00:00
global $user ;
2001-01-20 12:20:31 +00:00
2001-03-24 16:46:11 +00:00
$result = db_query ( " SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.pid = ' $cid ' ORDER BY c.timestamp, c.cid " );
2001-01-20 12:20:31 +00:00
while ( $comment = db_fetch_object ( $result )) {
2001-06-13 08:47:35 +00:00
print " <UL> " ;
2001-06-29 22:08:57 +00:00
comment_view ( $comment , ( comment_visible ( $comment , $threshold ) ? comment_links ( $comment , 0 ) : 0 ));
2001-01-20 12:20:31 +00:00
comment_thread_max ( $comment -> cid , $mode , $threshold , $level + 1 , $dummy + 1 );
print " </UL> " ;
2001-06-13 08:47:35 +00:00
}
2001-01-20 12:20:31 +00:00
}
function comment_render ( $lid , $cid ) {
2001-06-20 20:00:40 +00:00
global $user , $theme , $REQUEST_URI ;
2001-01-20 12:20:31 +00:00
2001-06-29 22:08:57 +00:00
if ( user_access ( " access comments " )) {
2001-01-20 12:20:31 +00:00
2001-06-20 20:00:40 +00:00
// Pre-process variables:
$lid = empty ( $lid ) ? 0 : $lid ;
$cid = empty ( $cid ) ? 0 : $cid ;
$mode = ( $user -> id ) ? $user -> mode : variable_get ( default_comment_mode , 4 );
$order = ( $user -> id ) ? $user -> sort : variable_get ( default_comment_order , 1 );
$threshold = ( $user -> id ) ? $user -> threshold : variable_get ( default_comment_threshold , 3 );
2001-01-21 09:26:06 +00:00
2001-06-20 20:00:40 +00:00
if ( $user -> id ) {
// Comment control:
$theme -> box ( t ( " Comment control " ), comment_controls ( $threshold , $mode , $order ));
2001-01-20 12:20:31 +00:00
2001-06-20 20:00:40 +00:00
// Print moderation form:
print " <FORM METHOD= \" post \" ACTION= \" $REQUEST_URI\ " > \n " ;
2001-01-20 12:20:31 +00:00
}
2001-06-20 20:00:40 +00:00
if ( $cid > 0 ) {
$result = db_query ( " SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE cid = ' $cid ' " );
if ( $comment = db_fetch_object ( $result )) {
2001-06-29 22:08:57 +00:00
comment_view ( $comment , comment_links ( $comment ));
2001-01-20 12:20:31 +00:00
}
}
2001-06-20 20:00:40 +00:00
else {
if ( $mode == 1 ) {
$result = comment_query ( $lid , $order );
print " <TABLE BORDER= \" 0 \" CELLPADDING= \" 2 \" CELLSPACING= \" 2 \" > \n " ;
print " <TR><TH>Subject</TH><TH>Author</TH><TH>Date</TH><TH>Score</TH></TR> \n " ;
while ( $comment = db_fetch_object ( $result )) {
if ( comment_visible ( $comment , $threshold )) {
print " <TR><TD><A HREF= \" " . comment_uri ( " id= $comment->lid &cid= $comment->cid # $comment->cid " ) . " \" > " . check_output ( $comment -> subject ) . " </A></TD><TD> " . format_username ( $comment -> userid ) . " </TD><TD> " . format_date ( $comment -> timestamp , " small " ) . " </TD><TD> " . comment_score ( $comment ) . " </TD></TR> \n " ;
}
}
print " </TABLE> \n " ;
2001-01-20 12:20:31 +00:00
}
2001-06-20 20:00:40 +00:00
else if ( $mode == 2 ) {
$result = comment_query ( $lid , $order );
while ( $comment = db_fetch_object ( $result )) {
2001-06-29 22:08:57 +00:00
comment_view ( $comment , ( comment_visible ( $comment , $threshold ) ? comment_links ( $comment , 0 ) : 0 ));
2001-06-20 20:00:40 +00:00
}
2001-01-20 12:20:31 +00:00
}
2001-06-20 20:00:40 +00:00
else if ( $mode == 3 ) {
$result = comment_query ( $lid , $order , 0 );
while ( $comment = db_fetch_object ( $result )) {
comment_view ( $comment );
comment_thread_min ( $comment -> cid , $threshold );
}
}
else {
$result = comment_query ( $lid , $order , 0 );
while ( $comment = db_fetch_object ( $result )) {
2001-06-29 22:08:57 +00:00
comment_view ( $comment , ( comment_visible ( $comment , $threshold ) ? comment_links ( $comment , 0 ) : 0 ));
2001-06-20 20:00:40 +00:00
comment_thread_max ( $comment -> cid , $mode , $threshold , $level + 1 );
}
2001-01-20 12:20:31 +00:00
}
}
2001-01-25 15:29:45 +00:00
2001-06-20 20:00:40 +00:00
if ( $user -> id ) {
// Print moderation form:
print " <INPUT TYPE= \" hidden \" NAME= \" id \" VALUE= \" $lid\ " > \n " ;
print " <INPUT TYPE= \" submit \" NAME= \" op \" VALUE= \" " . t ( " Moderate comments " ) . " \" > \n " ;
print " </FORM> \n " ;
}
2001-01-20 12:20:31 +00:00
}
}
2001-05-17 19:14:50 +00:00
?>