Index: joomla.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/joomla/joomla.info,v
retrieving revision 1.11
diff -u -p -r1.11 joomla.info
--- joomla.info	16 Jul 2008 04:01:11 -0000	1.11
+++ joomla.info	9 Jun 2009 08:39:39 -0000
@@ -1,7 +1,6 @@
 ; $Id: joomla.info,v 1.11 2008/07/16 04:01:11 thenicespider Exp $
 name = Joomla
-description = "This module used for import Joomla to Drupal."
-package = Merdeka
-version = "5.x-2.1"
-project = "drupal"
-
+description = "This module is used for importing Joomla content into Drupal."
+dependencies[] = profile
+dependencies[] = taxonomy
+core = 6.x
Index: joomla.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/joomla/joomla.module,v
retrieving revision 1.14
diff -u -p -r1.14 joomla.module
--- joomla.module	17 Jul 2008 11:37:22 -0000	1.14
+++ joomla.module	9 Jun 2009 08:39:41 -0000
@@ -9,8 +9,8 @@
 /**
  * Implementation of hook_help().
  */
-function joomla_help($section) {
-  switch ($section) {
+function joomla_help($path, $arg) {
+  switch ($path) {
     case 'admin/help#joomla':
       $output = "The joomla module used for migrate Joomla to Drupal.";
 	return $output;
@@ -30,24 +30,38 @@ function joomla_perm() {
  * Menu callback. Prints a listing of active nodes on the site.
  */
 
-function joomla_menu($may_cache) {
+function joomla_menu() {
   $items = array();
   
-  $items[] = array(
-    'path' => 'joomla/import/'.arg(2),
-    'title' => t('Joomla'),
-    'callback' => 'joomla_import',
-    'callback arguments' => array(arg(2)),
-    'access' => user_access('administer joomla'),
+  $items['joomla/import/user'] = array(
+    'title' => 'Joomla user import',
+    'page callback' => 'joomla_import',
+    'page arguments' => array('user'),
+    'access arguments' => array('administer joomla'),
     'type' => MENU_CALLBACK
   );
   
-  $items[] = array(
-    'path' => 'admin/settings/joomla',
+  $items['joomla/import/section'] = array(
+    'title' => 'Joomla section import',
+    'page callback' => 'joomla_import',
+    'page arguments' => array('section'),
+    'access arguments' => array('administer joomla'),
+    'type' => MENU_CALLBACK
+  );
+
+  $items['joomla/import/content'] = array(
+    'title' => 'Joomla content import',
+    'page callback' => 'joomla_import',
+    'page arguments' => array('content'),
+    'access arguments' => array('administer joomla'),
+    'type' => MENU_CALLBACK
+  );
+  
+  $items['admin/settings/joomla'] = array(
     'title' => 'Joomla to Drupal',
-    'callback' => 'drupal_get_form',
-    'callback arguments' => array('joomla_admin_settings'),
-    'access' => user_access('administer joomla'),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('joomla_admin_settings'),
+    'access arguments' => array('administer joomla'),
     'description' => 'Migrate Joomla to Drupal.'
   );
   
@@ -187,11 +201,9 @@ function joomla_import($import_type) {  
 		  return $output;
 		}
 
-        //Add Realname to Profile
-        $results_realname = db_query("SELECT name FROM {profile_fields} WHERE name='profile_realname'");
-        if (!db_num_rows($results_realname)) {
-		  db_query(" INSERT INTO {profile_fields} (title,name,type,weight) VALUES "
-		          ." ('Real Name','profile_realname','textfield','0')");	
+    //Add Realname to Profile
+    if(db_result(db_query("SELECT COUNT(*) FROM {profile_fields} WHERE name='profile_realname'")) == 0) {
+      db_query(" INSERT INTO {profile_fields} (title,name,type,weight) VALUES ('Real Name','profile_realname','textfield','0')");	
 		}
 		$results_fid = db_query("SELECT fid from {profile_fields} WHERE name='profile_realname'");
 		$data_fid = db_fetch_object($results_fid);
@@ -199,10 +211,9 @@ function joomla_import($import_type) {  
 		
 		//Check Users
 				        
-        $sql_text   = " SELECT * FROM $table_user ORDER BY id";
         $i  = 0;
         
-        $results_user = db_query($sql_text);
+        $results_user = db_query("SELECT * FROM %s ORDER BY id", $table_user);
         
         while ( $data = db_fetch_object($results_user) ) {
           $i++;
@@ -214,12 +225,12 @@ function joomla_import($import_type) {  
 	      $registerdate =  strtotime($data->registerDate); 
 	      $lastvisitdate = strtotime($data->lastvisitDate);
 	      
-		  $results_check_user = db_query("SELECT uid,name FROM {users} WHERE name='$username'");
+		  $results_check_user = db_query("SELECT uid,name FROM {users} WHERE name='%s'", $username);
           $data_user = db_fetch_object($results_check_user);
           $uid = $data_user->uid;
           
           $rec_status = 'Exist';
-          if (!db_num_rows($results_check_user)) {
+          if (!$data_user) {
             $rec_status = 'New';
             
             $sql_uid = " SELECT uid FROM {users} ORDER BY uid DESC LIMIT 1";
@@ -227,21 +238,16 @@ function joomla_import($import_type) {  
 		    $data_last_uid = db_fetch_object($results_last_uid);
 		    $last_uid = $data_last_uid->uid;
 		    $new_uid = $data_last_uid->uid + 1;
-		    //this is redundancy but need if the process not completed!
-		    update_sequences() ;
 	        
-		    $sql_insert = " INSERT INTO {users} (uid,name,mail,status,created,access,language,timezone) "
-			             ." values ('$new_uid','$username','$email','$status','$registerdate','$lastvisitdate','en',0)";
-		    db_query($sql_insert);
+		    db_query("INSERT INTO {users} (uid,name,mail,status,created,access,language,timezone) values (%d,'%s','%s',%d,%d,%d,'en',0)", $new_uid, $username, $email, $status, $registerdate, $lastvisitdate);
 		  } 
 		  
 		  //Check and Update Realname
-		  $results_profile_values = db_query("SELECT * FROM {profile_values} WHERE fid='$fid' AND uid='$uid'");
-		  if (!db_num_rows($results_profile_values)) {
-		    db_query("INSERT INTO {profile_values} (fid,uid,value) VALUES ('$fid','$uid','$realname')"); 
+		  $results_profile_values = db_query("SELECT COUNT(*) FROM {profile_values} WHERE fid=%d AND uid=%d", $fid, $uid);
+		  if (db_result($results_profile_values) == 0) {
+		    db_query("INSERT INTO {profile_values} (fid,uid,value) VALUES (%d,%d,'%s')", $fid, $uid, $realname); 
 		  }
 		  
-		  update_sequences();
           //delay
           if ($i % $joomla_delay_row ==0 ) {sleep($joomla_delay_sec);}
           
@@ -262,76 +268,51 @@ function joomla_import($import_type) {  
         $output  = "";
         $output .= "<h2>Import Joomla Sections and Categories</h2>";
         
-		$results_joomla_sec = db_query("SELECT * FROM $joomla_database.".$joomla_prefix."sections");
-		
-		$sql_text   = "SELECT * FROM $joomla_database.".$joomla_prefix."sections";
-        $results_joomla_sec = db_query($sql_text);
+        $results_joomla_sec = db_query("SELECT * FROM %s.%ssections", $joomla_database, $joomla_prefix);
 
         $i = 1;
   	    
   	    //Joomla Sections to Drupal
         while ( $data = db_fetch_object($results_joomla_sec) ) {
           $i++;
-		  //Required if process not completed!
-          update_sequences();
 		  
 		  //Get data         
           $sec_id     = $data->id;
 	      $sec_title  = addslashes($data->title);
 	      $sec_name	  = addslashes($data->name);
 	        
-          $sql_check = "SELECT name FROM {vocabulary} WHERE name='$sec_title'";
-          $results_check = db_query($sql_check);
+          $results_check = db_query("SELECT COUNT(*) FROM {vocabulary} WHERE name='%s'", $sec_title);
           
           $rec_status = 'Exist';
           //Insert Sections
-          if (!db_num_rows($results_check)) {
+          if (db_result($results_check) == 0) {
             $rec_status = 'New';
             
-		    $sql_insert = " INSERT INTO {vocabulary} (name,description,hierarchy,weight) "
-			             ." values ('$sec_title','$sec_name',1,0)";
-		    db_query($sql_insert);      	
+            db_query("INSERT INTO {vocabulary} (name,description,hierarchy,weight) values ('%s','%s',1,0)", $sec_title, $sec_name);
 		  }
 		  
 		  //Take Vocabulary ID
-		  $sql_vid = "SELECT vid FROM {vocabulary} WHERE name='$sec_title'";
-          $results_vid = db_query($sql_vid); 
-          $data_vid = db_fetch_object($results_vid);
-          $vid = $data_vid->vid;
+      $vid = db_result(db_query("SELECT vid FROM {vocabulary} WHERE name='%s'", $sec_title));
 		  
 		  //Retrieve and Insert categories		  
-		  $sql_cat = " SELECT id,title,name,section FROM $joomla_database.".$joomla_prefix."categories "
-		            ." WHERE section='$sec_id'";
-          $results_cat = db_query($sql_cat);
+      $results_cat = db_query("SELECT id,title,name,section FROM %s.%scategories WHERE section='%s'", $joomla_database, $joomla_prefix, $sec_id);
           
           while ( $data_cat = db_fetch_object($results_cat) ) {
             $cat_id       = $data_cat->id;
 	        $cat_title    = addslashes($data_cat->title);
 	        $cat_name	  = addslashes($data_cat->name);
             
-            //Check if cat exist on certain section
-            $sql_check_cat     = "SELECT name FROM {term_data} WHERE name='$cat_title' AND vid='$vid'";
-            $results_check_cat = db_query($sql_check_cat);
-            
-            if (!db_num_rows($results_check_cat)) {
-		      $sql_insert_cat = " INSERT INTO {term_data} (vid,name,description,weight) "
-			                   ." values ('$vid','$cat_title','$cat_name',0)";
-		      db_query($sql_insert_cat);   
+          //Check if cat exist on certain section
+          if (db_result(db_query("SELECT COUNT(*) FROM {term_data} WHERE name='%s' AND vid=%d", $cat_title, $vid)) == 0) {
+		      db_query("INSERT INTO {term_data} (vid,name,description,weight) values (%d,'%s','%s',0)", $vid, $cat_title, $cat_name);
 			  
-			  //Take Term ID
-		      $sql_tid = "SELECT tid FROM {term_data} WHERE vid='$vid' AND name='$cat_title'";
-              $results_tid = db_query($sql_tid); 
-              $data_tid = db_fetch_object($results_tid);
-              $tid = $data_tid->tid;
+          //Take Term ID
+          $tid = db_result(db_query("SELECT tid FROM {term_data} WHERE vid=%d AND name='%s'", $vid, $cat_title));
 			  
-			  $sql_insert_hierarchy = " INSERT INTO {term_hierarchy} (tid,parent) "
-			                         ." values ('$tid','0')";
-		      db_query($sql_insert_hierarchy);      	   	
+		      db_query("INSERT INTO {term_hierarchy} (tid,parent) values (%d,'0')", $tid);
 		    }
 		  }
           
-          //Update id
-		  update_sequences();
           if ($i % $joomla_delay_row ==0 ) {sleep($joomla_delay_sec);}
         }
         return "Total imported Sections: ". $i;
@@ -345,27 +326,24 @@ function joomla_import($import_type) {  
         
         $input_format = $joomla_input_format + 1;
         
-        $sql_text   = " SELECT * FROM $table_content";
-        $results_joomla = db_query($sql_text);
+        $results_joomla = db_query("SELECT * FROM %s", $table_content);
         
         $i = 1;
   	    $images = array();
         
         while ( $data_joomla = db_fetch_object($results_joomla) ) {
           $i++;
-          //Required if process not completed!
-          update_sequences();
           
 		  //Check if content title already exists
 		  $joomla_nid   = $data_joomla->id;
 		  $joomla_title = $data_joomla->title;
 		  //Get Username
 		  $joomla_uid   = $data_joomla->created_by;
-		  $results_user  = db_query(" SELECT * FROM $table_user WHERE id='$joomla_uid' ");
-          $data_user = db_fetch_object($results_user);
+		  $results_user  = db_query(" SELECT * FROM %s WHERE id = %d", $table_user, $joomla_uid);
+      $data_user = db_fetch_object($results_user);
 		  $joomla_name  = $data_user->username;
 		  //Get Drupal uid
-		  $results_get_uid = db_query("SELECT uid from {users} WHERE name= '$joomla_name'");  
+		  $results_get_uid = db_query("SELECT uid from {users} WHERE name= '%s'", $joomla_name);  
 		  $data_get_uid    = db_fetch_object($results_get_uid);
 		  $drupal_uid     = $data_get_uid->uid;		  
 		  
@@ -397,110 +375,55 @@ function joomla_import($import_type) {  
 		  $joomla_body   = addslashes($joomla_body);
 		  
 		  //Check Frontpage
-		  $sql_check_fp     = " SELECT content_id FROM $joomla_database.".$joomla_prefix."content_frontpage "
-		                     ." WHERE content_id='$joomla_nid'";
-          $results_check_fp = db_query($sql_check_fp);
+      $results_check_fp = db_query("SELECT COUNT(*) FROM %s.%scontent_frontpage WHERE content_id='%d'", $joomla_database, $joomla_prefix, $joomla_nid);
             
-          if (db_num_rows($results_check_fp)) { $joomla_promote = 1; }
-          else { $joomla_promote = 0;}
+      if (db_result($results_check_fp) > 0) {
+        $joomla_promote = 1;
+      }
+      else { 
+        $joomla_promote = 0;
+      }
            
 		  //Check content/node exists
 		  $rec_status = 'Ignore';
 		  
-		  $results_check_content = db_query("SELECT title FROM {node} WHERE title='$joomla_title'");
+		  $results_check_content = db_query("SELECT COUNT(*) FROM {node} WHERE title='%s'", $joomla_title);
             
-          if (!db_num_rows($results_check_content)) { 
+      if (db_result($results_check_content) == 0) { 
 			$rec_status = 'Insert';
 			//get last nid
 			$results_last_id = db_query("SELECT nid AS id from {node} ORDER BY nid DESC LIMIT 1");  
 			$data_last_id = db_fetch_object($results_last_id);
 			$last_nid = $data_last_id->id +1;
 			
-			$sql_insert_content = " INSERT INTO {node} "
-			                ."(nid,vid,type,title,uid,status, "
-			      		    ." created,changed,comment,promote,moderate,sticky) "
-		                    ." values ($last_nid,$last_nid,'$joomla_type','$joomla_title','$drupal_uid',"
-			         	    ." '$joomla_status',"
-						  	." '$joomla_created','$joomla_changed','$joomla_comment','$joomla_promote', "
-							." '$joomla_moderate','$joomla_sticky')";
-		    db_query($sql_insert_content); 			 
+		  db_query("INSERT INTO {node} (nid,vid,type,title,uid,status,created,changed,comment,promote,moderate,sticky) values (%d,%d,'%s','%s',%d,%d,%d,%d,%d,%d,%d,%d)", $last_nid, $last_nid, $joomla_type, $joomla_title, $drupal_uid, $joomla_status, $joomla_created, $joomla_changed, $joomla_comment, $joomla_promote, $joomla_moderate, $joomla_sticky);
 		    
 		    //Intro and Body
-		    $sql_insert_rev = " INSERT INTO {node_revisions} "
-			                 ."(nid,vid,uid,title,body,teaser,timestamp,format) "
-		                     ." values ('$last_nid','$last_nid','$drupal_uid','$joomla_title','$joomla_body', "
-						     ." '$joomla_teaser',"
-						     ." '$joomla_changed','$input_format')";
-		    db_query($sql_insert_rev); 	
+		    db_query( " INSERT INTO {node_revisions} (nid,vid,uid,title,body,teaser,timestamp,format) values (%d,%d,%d,'%s','%s','%s',%d,%d)", $last_nid, $last_nid, $drupal_uid, $joomla_title, $joomla_body, $joomla_teaser, $joomla_changed, $input_format);
 			$rows[] = array(
               $i++,
               $joomla_nid."/".$last_nid, l(t("$joomla_title"),"node/$last_nid"), $rec_status 
             ); 	
 			} else {
 			  $rec_status = 'Ignore duplicate items.';
-			  $results_last_id = db_query("SELECT nid AS id from {node} WHERE title='$joomla_title' ");  
+			  $results_last_id = db_query("SELECT nid AS id from {node} WHERE title='%s'", $joomla_title);  
 		      $data_last_id = db_fetch_object($results_last_id);
 		      $last_nid = $data_last_id->id;
 		
 			  if ($joomla_update_duplicate) {
 			    $rec_status = 'Update';
 			    
-			    $sql_update_content = " UPDATE {node} "
-			                         ." SET  type='$joomla_type', uid='$drupal_uid', status='$joomla_status', "
-				    	  	         ." created='$joomla_created', changed='$joomla_changed', promote='$joomla_promote' "
-							         ." WHERE nid='$last_nid'";
-		        db_query($sql_update_content); 			 
+		      db_query("UPDATE {node} SET type='%s', uid=%d, status=%d, created=%d, changed=%d, promote=%d  WHERE nid=%d", $joomla_type, $drupal_uid, $joomla_status, $joomla_created, $joomla_changed, $joomla_promote, $last_nid) ;
 		    
 		        //Intro and Body
-		        $sql_update_rev = " UPDATE {node_revisions} "
-			                     ." SET uid='$drupal_uid', "
-				  			     ." body='$joomla_body', teaser='$joomla_teaser',timestamp='$joomla_changed', "
-							     ." format='$input_format' "
-							     ." WHERE nid='$last_nid'";
-							  
-		        db_query($sql_update_rev);	
-		      }
+		        db_query("UPDATE {node_revisions} SET uid=%d, body='%s', teaser='%s',timestamp=%d, format=%d WHERE nid=%d", $drupal_uid, $joomla_body, $joomla_teaser, $joomla_changed, $input_format, $last_nid);
 		    }
+		  }
           if ($i % $joomla_delay_row ==0 ) {sleep($joomla_delay_sec);}
 		}
-		//Update id
-		update_sequences();
 		return "Total imported Contents: $i. Action: $rec_status";
         break;
   }
-
-  return NULL;
-}
-
-function update_sequences() {
-  $results_last_id = db_query("SELECT nid AS id from {node} ORDER BY nid DESC LIMIT 1");  
-  $data_last_id = db_fetch_object($results_last_id);  
-  $last_id = $data_last_id->id;
-  if (trim($last_id) <> '') {
-    db_query("UPDATE {sequences} SET id='$last_id' WHERE name='node_nid' "); 
-    db_query("UPDATE {sequences} SET id='$last_id' WHERE name='node_revisions_vid' "); 			
-  }
-  
-  $results_last_id = db_query("SELECT uid AS id FROM {users} ORDER BY uid DESC LIMIT 1"); 
-  $data_last_id = db_fetch_object($results_last_id);
-  $last_id = $data_last_id->id;
-  if (trim($last_id) <> '') {
-    db_query("UPDATE {sequences} SET id='$last_id' WHERE name='users_uid' ");  
-  }
-  
-  $results_last_id = db_query("SELECT vid AS last_id from {vocabulary} ORDER BY vid DESC LIMIT 1");  
-  $data_last_id = db_fetch_object($results_last_id);
-  $last_id = $data_last_id->last_id;
-  if (trim($last_id) <> '') {
-    db_query("UPDATE {sequences} SET id='$last_id' WHERE name='vocabulary_vid' "); 	
-  }
-  		  
-  $results_last_id = db_query("SELECT tid AS last_id from {term_data} ORDER BY tid DESC LIMIT 1");  
-  $data_last_id = db_fetch_object($results_last_id);
-  $last_id = $data_last_id->last_id;
-  if (trim($last_id) <> '') {
-    db_query("UPDATE {sequences} SET id='$last_id' WHERE name='term_data_tid' "); 
-  }  
 }
 
 function replace_mos_image($images_source,$text_source) {
