Author: cyb
Date: Thu Jun  7 11:31:54 2007
New Revision: 524

URL: http://svn.gna.org/viewcvs/phplinker?rev=524&view=rev
Log:
#153:
 - Migration des tags done
 - Migration des associations tag/categorie done
 - Migration du champs hidden done
 - Migration des logins et email done

Modified:
    trunk/doc/catalog2phplinker.php

Modified: trunk/doc/catalog2phplinker.php
URL: 
http://svn.gna.org/viewcvs/phplinker/trunk/doc/catalog2phplinker.php?rev=524&r1=523&r2=524&view=diff
==============================================================================
--- trunk/doc/catalog2phplinker.php (original)
+++ trunk/doc/catalog2phplinker.php Thu Jun  7 11:31:54 2007
@@ -1,4 +1,5 @@
 <?php
+
 /*
     This file is part of PHPLinker.
 
@@ -19,14 +20,79 @@
 
 $urls=array();
 $categories=array();
+$webmasters=array();
+$tags=array();
+
+function url2login($url) {
+
+  if(strpos($url, 'http://www.chez.com/') !== false) {
+    $login=str_replace('http://www.chez.com/', '', $url);
+  }
+  elseif(strpos($url, 'http://chez.com/') !== false) {
+    $login=str_replace('http://chez.com/', '', $url);
+  }
+  elseif(strpos($url, 'http://chez.tiscali.fr/') !== false) {
+    $login=str_replace('http://chez.tiscali.fr/', '', $url);
+  }
+  elseif(preg_match('/http:\/\/.*\.chez\.tiscali\.fr/', $url)) {
+    $login=preg_replace('/http:\/\/(.*)\.chez\.tiscali\.fr/', '$1', $url);
+  }
+  elseif(strpos($url, 'http://perso.respublica.fr/') !== false) {
+    $login=str_replace('http://perso.respublica.fr/', '', $url);
+  }
+  elseif(strpos($url, 'http://perso.libertysurf.fr/') !== false) {
+    $login=str_replace('http://perso.libertysurf.fr/', '', $url);
+  }
+  else {
+    echo "UNKNOWN URL $url !\n";
+  }
+
+  $login=str_replace('/', '', $login);
+
+  if(empty($login)) {
+    echo "Empty login !\n";
+    exit(1);
+  }
+
+  return $login;
+}
+
+function create_tag($tag) {
+  global $tags;
+
+  $insert=sprintf("INSERT INTO ad_tag (description) VALUES ('%s')", $tag);
+
+  mysql_query($insert)
+    or die("Database connection failed : " . mysql_error() . "\n");
+
+  $tags[$tag]=mysql_insert_id();
+
+}
+
+function create_webmaster($login, $email) {
+  global $webmasters;
+
+  $insert=sprintf("INSERT INTO webmaster (login, email) VALUES ('%s', '%s')",
+                 $login, $email);
+
+  mysql_query($insert)
+    or die("Database connection failed : " . mysql_error() . "\n");
+
+  $webmasters[$login]=mysql_insert_id();
+
+}
 
 function create_category($pathname) {
   global $categories;
 
   $parentid=0;
   $full_path='/';
+  $visible=1;
 
   foreach(explode('/', $pathname) as $category) {
+
+    if($category == 'Charme')
+      $visible=0;
 
     if(empty($category))
       continue;
@@ -38,9 +104,10 @@
       continue;
     }
 
-    $insert=sprintf("INSERT INTO category (id_parent, name) VALUES (%d, '%s')",
+    $insert=sprintf("INSERT INTO category (id_parent, name, visible) VALUES 
(%d, '%s', '%s')",
                    $parentid,
-                   utf8_decode(str_replace('_', ' ', $category)));
+                   utf8_decode(str_replace('_', ' ', $category)),
+                   $visible);
 
     mysql_query($insert)
       or die("Database connection failed : " . mysql_error() . "\n");
@@ -48,6 +115,7 @@
     $categories[$full_path]=mysql_insert_id();
 
     $parentid=$categories[$full_path];
+
   }
 
 }
@@ -62,20 +130,26 @@
 mysql_query("UPDATE catalog_path_chezcatalog SET 
pathname='/Musique/Artistes,_genres_musicaux/Pop_Rock/Depeche_Mode/' WHERE 
pathname='/Depeche_Mode/'")
   or die("Database connection failed : " . mysql_error());
 
-$req=mysql_query('SELECT nomsite, pathname, descriptif FROM 
catalog_entry2category_chezcatalog, chezcat, catalog_category_chezcatalog, 
catalog_path_chezcatalog WHERE 
chezcat.rowid=catalog_entry2category_chezcatalog.row AND 
category=catalog_category_chezcatalog.rowid AND 
catalog_category_chezcatalog.rowid=catalog_path_chezcatalog.id')
+$req=mysql_query('SELECT nomsite, pathname, descriptif, email FROM 
catalog_entry2category_chezcatalog, chezcat, catalog_category_chezcatalog, 
catalog_path_chezcatalog WHERE 
chezcat.rowid=catalog_entry2category_chezcatalog.row AND 
category=catalog_category_chezcatalog.rowid AND 
catalog_category_chezcatalog.rowid=catalog_path_chezcatalog.id')
   or die("Database connection failed : " . mysql_error());
 
 while($row=mysql_fetch_array($req)) {
 
   if(!isset($urls[$row['nomsite']])) {
 
-    $insert=sprintf("INSERT INTO url (url, description, state) VALUES ('%s', 
'%s', '%s')",
+    mysql_select_db($config_sql_base)
+      or die("Database connection failed : " . mysql_error());
+
+    $login=url2login($row['nomsite']);
+
+    if(!isset($webmasters[$login]))
+      create_webmaster($login, $row['email']);
+
+    $insert=sprintf("INSERT INTO url (url, description, state, id_webmaster) 
VALUES ('%s', '%s', '%s', %d)",
                    $row['nomsite'],
                    addslashes(utf8_decode($row['descriptif'])),
-                   'moderated');
-
-    mysql_select_db($config_sql_base)
-      or die("Database connection failed : " . mysql_error());
+                   'moderated',
+                   $webmasters[$login]);
 
     mysql_query($insert)
       or die("Database connection failed : " . mysql_error() . "\n");
@@ -96,4 +170,28 @@
 
 }
 
+mysql_select_db('catalog')
+  or die("Database connection failed : " . mysql_error());
+
+$req=mysql_query('SELECT nom, pathname FROM catalog_path_chezcatalog, 
correspondance, urlpub WHERE catalog_path_chezcatalog.id=correspondance.id_cat 
AND urlpub.id=correspondance.id_url')
+  or die("Database connection failed : " . mysql_error());
+
+mysql_select_db($config_sql_base)
+  or die("Database connection failed : " . mysql_error());
+
+while($row=mysql_fetch_array($req)) {
+
+  if(!isset($tags[$row['nom']]))
+    create_tag($row['nom']);
+
+  $update=sprintf('UPDATE category SET id_ad_tag=%d WHERE id=%d',
+                 $tags[$row['nom']],
+                 $categories[$row['pathname']]
+                 );
+
+  mysql_query($update)
+    or die("Database connection failed : " . mysql_error() . "\n");
+
+}
+
 ?>


_______________________________________________
PHPLinker-commits mailing list
[email protected]
https://mail.gna.org/listinfo/phplinker-commits

Reply via email to