From 4d31d27ff0d9270f03456d17f5387f60bc99c22d Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Tue, 27 Feb 2001 07:45:03 +0000
Subject: [PATCH] - added comment index for performance sake - improved comment
 module - code revision - improved backend module - moreover headlines now
 work - (automatically) stripped tabs and trailing whitespaces from   Jeroen's
 theme.

---
 CHANGELOG                      |  2 +-
 database/database.mysql        |  1 +
 modules/backend.class          | 11 ++---------
 modules/comment.module         | 24 ++++++++----------------
 modules/comment/comment.module | 24 ++++++++----------------
 themes/jeroen/jeroen.theme     | 26 +++++++++++++-------------
 updates/1.00-to-1.xx           |  4 ++++
 7 files changed, 37 insertions(+), 55 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index b1b3b5b64ead..3c14299a5b8c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -24,7 +24,7 @@ drupal 1.xx, xx/xx/2001
     * improved diary module:
         + diary can be deleted
     * improved headline module:
-        + improved parser to support RDF/RSS/XML backend
+        + improved parser to support more "generic" RDF/RSS/XML backend
     * improved module module
     * improved watchdog module
     * added CREDITS file
diff --git a/database/database.mysql b/database/database.mysql
index e91d313eb467..792edd7ab5e3 100644
--- a/database/database.mysql
+++ b/database/database.mysql
@@ -67,6 +67,7 @@ CREATE TABLE comments (
   timestamp int(11) DEFAULT '0' NOT NULL,
   score int(6) DEFAULT '0' NOT NULL,
   votes int(6) DEFAULT '0' NOT NULL,
+  INDEX lid_link (lid, link),
   PRIMARY KEY (cid)
 );
 
diff --git a/modules/backend.class b/modules/backend.class
index 7cdaa328b2f9..6339afd5352c 100644
--- a/modules/backend.class
+++ b/modules/backend.class
@@ -51,24 +51,17 @@ class backend {
     if ($this->file) {
       // Decode URL:
       $url = parse_url($this->file);
-      $host = $url[host];
-      $port = $url[port] ? $url[port] : 80;
-      $path = $url[path];
-
-      // print "<PRE><B>Debug:</B> $url - $host - $port - $path</PRE>";
 
       // Retrieve data from website:
-      $fp = fsockopen($host, $port, &$errno, &$errstr, $timout);
+      $fp = fsockopen($url[host], ($url[port] ? $url[port] : 80), &$errno, &$errstr, $timout);
 
       if ($fp) {
         // Request data via URL:
-        fputs($fp, "GET $path HTTP/1.0\nUser-Agent: $site_name\nHost: $host\nAccept: */*\n\n");
+        fputs($fp, "GET $url[path]?$url[query] HTTP/1.0\nUser-Agent: $site_name\nHost: $url[host]\nAccept: */*\n\n");
 
         // Read data from socket:
         while(!feof($fp)) $data .= fgets($fp, 128);
 
-        // print "<PRE>$data</PRE><HR>";
-
         if (strstr($data, "200 OK")) {
 
           // Remove existing entries:
diff --git a/modules/comment.module b/modules/comment.module
index ef0bce34a4e6..6038d5ed275d 100644
--- a/modules/comment.module
+++ b/modules/comment.module
@@ -26,24 +26,16 @@ function comment_edit($id) {
 
   $output .= "<FORM ACTION=\"admin.php?mod=comment&op=save&id=$id\" METHOD=\"post\">\n";
 
-  $output .= "<P>\n";
-  $output .= " <B>Author:</B><BR>\n";
-  $output .= " ". format_username($comment->userid) ."\n";
-  $output .= "</P>\n";
+  $output .= "<B>Author:</B><BR>\n";
+  $output .= format_username($comment->userid) ."<P>\n";
 
-  $output .= "<P>\n";
-  $output .= " <B>Subject:</B><BR>\n";
-  $output .= " <INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" VALUE=\"". check_textfield($comment->subject) ."\">\n";
-  $output .= "</P>\n";
+  $output .= "<B>Subject:</B><BR>\n";
+  $output .= "<INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" VALUE=\"". check_textfield($comment->subject) ."\"><P>\n";
 
-  $output .= "<P>\n";
   $output .= "<B>Comment:</B><BR>\n";
-  $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">". check_textarea($comment->comment) ."</TEXTAREA>\n";
-  $output .= "</P>\n";
+  $output .= "<TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">". check_textarea($comment->comment) ."</TEXTAREA><P>\n";
 
-  $output .= "<P>\n";
-  $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save comment\">\n";
-  $output .= "</P>\n";
+  $output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save comment\">\n";
   $output .= "</FORM>\n";
 
   print $output;
@@ -51,7 +43,7 @@ function comment_edit($id) {
 
 function comment_save($id, $subject, $comment) {
   db_query("UPDATE comments SET subject = '". check_input($subject) ."', comment = '". check_input($comment) ."' WHERE cid = $id");
-  watchdog("message", "comment: modified `$subject'");
+  watchdog("message", "comment: modified '$subject'");
 }
 
 function comment_display($order = "date") {
@@ -105,7 +97,7 @@ function comment_admin() {
       break;
     case "Save comment":
       comment_save($id, $subject, $comment);
-      comment_edit($id);
+      comment_display();
       break;
     case "Update":
       comment_display($order);
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index ef0bce34a4e6..6038d5ed275d 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -26,24 +26,16 @@ function comment_edit($id) {
 
   $output .= "<FORM ACTION=\"admin.php?mod=comment&op=save&id=$id\" METHOD=\"post\">\n";
 
-  $output .= "<P>\n";
-  $output .= " <B>Author:</B><BR>\n";
-  $output .= " ". format_username($comment->userid) ."\n";
-  $output .= "</P>\n";
+  $output .= "<B>Author:</B><BR>\n";
+  $output .= format_username($comment->userid) ."<P>\n";
 
-  $output .= "<P>\n";
-  $output .= " <B>Subject:</B><BR>\n";
-  $output .= " <INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" VALUE=\"". check_textfield($comment->subject) ."\">\n";
-  $output .= "</P>\n";
+  $output .= "<B>Subject:</B><BR>\n";
+  $output .= "<INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" VALUE=\"". check_textfield($comment->subject) ."\"><P>\n";
 
-  $output .= "<P>\n";
   $output .= "<B>Comment:</B><BR>\n";
-  $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">". check_textarea($comment->comment) ."</TEXTAREA>\n";
-  $output .= "</P>\n";
+  $output .= "<TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">". check_textarea($comment->comment) ."</TEXTAREA><P>\n";
 
-  $output .= "<P>\n";
-  $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save comment\">\n";
-  $output .= "</P>\n";
+  $output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save comment\">\n";
   $output .= "</FORM>\n";
 
   print $output;
@@ -51,7 +43,7 @@ function comment_edit($id) {
 
 function comment_save($id, $subject, $comment) {
   db_query("UPDATE comments SET subject = '". check_input($subject) ."', comment = '". check_input($comment) ."' WHERE cid = $id");
-  watchdog("message", "comment: modified `$subject'");
+  watchdog("message", "comment: modified '$subject'");
 }
 
 function comment_display($order = "date") {
@@ -105,7 +97,7 @@ function comment_admin() {
       break;
     case "Save comment":
       comment_save($id, $subject, $comment);
-      comment_edit($id);
+      comment_display();
       break;
     case "Update":
       comment_display($order);
diff --git a/themes/jeroen/jeroen.theme b/themes/jeroen/jeroen.theme
index c294188431bb..e40aa75dbf94 100644
--- a/themes/jeroen/jeroen.theme
+++ b/themes/jeroen/jeroen.theme
@@ -83,11 +83,11 @@ function abstract($story) {
                 <TR>
                   <TD></TD>
                   <TD>
-        	    <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" BGCOLOR="#000000" WIDTH="100%">
-        	      <TR>
-        	        <TD>
-        	          <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
-        	           <TR>
+              <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" BGCOLOR="#000000" WIDTH="100%">
+                <TR>
+                  <TD>
+                    <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
+                     <TR>
                             <TD ALIGN="left" BACKGROUND="themes/jeroen/images/menutitle.gif" NOWRAP>
                     &nbsp;
                     <FONT COLOR="<? echo $this->fgc2; ?>">
@@ -137,10 +137,10 @@ function abstract($story) {
                 </TR>
               </TABLE>
                 </TD>
-  			</TR>  
-  			</TABLE> 
-  			</TD>
-  		</TR>
+        </TR>
+        </TABLE>
+        </TD>
+      </TR>
               </TABLE>
              <BR>
 <?
@@ -250,10 +250,10 @@ function comment($comment, $link = "", $thread = "") {
      echo "     <TR>";
      echo "       <TD>";
      echo "         <TABLE BORDER=\"0\" CELLPADDING=\"1\" CELLSPACING=\"0\" BGCOLOR=\"#000000\" WIDTH=\"100%\">";
-     echo "   	      <TR>";
-     echo "   	        <TD>";
-     echo "   	          <TABLE BACKGROUND=\"themes/jeroen/images/menutitle.gif\" BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"0\" WIDTH=\"100%\">";
-     echo "	            <TR>";
+     echo "           <TR>";
+     echo "             <TD>";
+     echo "               <TABLE BACKGROUND=\"themes/jeroen/images/menutitle.gif\" BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"0\" WIDTH=\"100%\">";
+     echo "              <TR>";
      echo "       </TR>";
      echo "       <TD>";
      echo "         <TABLE BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"2\"WIDTH=\"100%\">";
diff --git a/updates/1.00-to-1.xx b/updates/1.00-to-1.xx
index c579c79460be..98209523b027 100644
--- a/updates/1.00-to-1.xx
+++ b/updates/1.00-to-1.xx
@@ -1,4 +1,8 @@
+# 26/02/2001: performance optimization
+ALTER TABLE comments ADD INDEX lid_link (lid, link);
+
 # 19/02/2001: internationalization / translation
+alter table users add language varchar(2) DEFAULT '0' NOT NULL;
 CREATE TABLE locales (
   id int(11) DEFAULT '0' NOT NULL auto_increment,
   location varchar(128) DEFAULT '' NOT NULL,
-- 
GitLab