Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

De Miarroba A Phpbb

🔓 Foros cerrados y son sólo de lectura

0
No hay votos
 
Votos totales: 0

mimoson999
Observador/a
Mensajes: 6
Registrado: 07 Mar 2007, 16:44

De Miarroba A Phpbb

#1

Mensaje por mimoson999 »

hola, soy nuevo en esto y en la ultimas semanas me esta cautivando esto del phpbb.

el caso es que yo tengo un foro en miarroba(de esos de los suyos en los que no puedes acceder a la base de datos) y queria migrar a uno phpbb(me gusto mucho icy phoenix).
como no queria perder todo en el foro anterior he hecho un codigo en lenguaje C que va tomando todos los temas con sus post (desde los archivos html) y los convierte a sentencias SQL que contienen los datos con los topics y los posts(no se salva nada mas ni los users ni los rangos ni nada). el proceso es el siguiente.

1-te descargas las versiones imprimibles de los temas con algun programa que descarge webs tipo webcopier (yo uso teleport ultra).
2-renombras masivamente todos esos archivos html que has obtenido y los colocas en el directorio raiz de tu disco duro (si las rutas son muy largas el programa se bloquea es por esto el renombrado y lo de usar la raiz del disco duro)
3-le pasas como parametro TODOS los archivos htm a mi programa en C (backup.exe) que no se como hacer para ponerlo disponible (si hay algun interesado lo pedis y ya esta)
4-genera un archivo con codigo SQL para insertar en un icy phoenix los temas y post (supongo que vale para XS pero para phpbb a secas supongo que habria que recompilar el codigo en C haciendo un par de cambios).
5- cambiar el ID de los usuarios para que coincida con los ID que genera el programa (aunque supongo que si alguien lo quiere implementare algo para que genere los usuarios automaticamente en el codigo SQL tambien)


es un poco complicao pero he visto por ahi que hay gente interesada en migrar desde miarroba y no pueden.

PD: si hay gente interesada yo hago las modificaciones pertinentes para que sea mas comodo pero si no nada.

Avatar de Usuario
Zuker
Ex Staff
Mensajes: 1729
Registrado: 27 Jun 2006, 17:19
Edad: 36

Respuesta: De Miarroba A Phpbb

#2

Mensaje por Zuker »

Primero no se si se puede hacer lo que dices...

Segundo, llendo a lo que se refiere al phpbb... los post van asociados a un id de la tabla users... asi que vas a necesitar salvar a los usuarios tambien minimo
Antes de nada, lee las Normas de phpBB-Es, y la siempre útil Guí­a de phpBB en Castellano.
Consulta la Documentación de phpBB 2, la Documentación de phpBB 3 y los FAQS de ayuda para tus problemas.
Quizás esté resuelto, y todos ahorremos tiempo.
Si es sobre cómo Crear una Consulta SQL ya lo tienes explicado en el enlace.
En general, se pide Buscar antes de preguntar para no repetir preguntas y dudas resueltas.
Sólo tendrás Soporte si facilitas los datos correspondientes y si respetas completamente el Copyright de phpBB.
NOTA: No damos Soporte a los foros integrados en Nuke y derivados del mismo. Infórmate AQUÍ.[hr] © Zuker - Taringa! CS - tuRiver

mimoson999
Observador/a
Mensajes: 6
Registrado: 07 Mar 2007, 16:44

Respuesta: De Miarroba A Phpbb

#3

Mensaje por mimoson999 »

ya esta el codigo, ampliado para que capture los usuarios, solo estoy esperando a que salga la version final de icy phoenix para migrar mi foro miarroba (va ser un gran cambio)

Spiderman3
Observador/a
Mensajes: 23
Registrado: 27 Mar 2007, 01:06

Respuesta: De Miarroba A Phpbb

#4

Mensaje por Spiderman3 »

Es justo el problema que tengo yo pero con iJiJiJi. Si me puedes pasar el programa o poner un link te agradeceria mucho.
El filosofo del rap

Imagen

mimoson999
Observador/a
Mensajes: 6
Registrado: 07 Mar 2007, 16:44

Respuesta: De Miarroba A Phpbb

#5

Mensaje por mimoson999 »

pueeees no creo que funcione con ijijiji (son foros phpbb no?). de todas maneras ponme el enlace y le hecho un vistazo a ver si con un par de adaptaciones del codigo se puede llegar a migrar tu foro.

insisto, esto genera un fichero SQL a partir de archivos html, valido para icy phoenix (se puede adaptar para phpbb supongo) que se ejecuta contra la base de datos insertando los temas y los usuarios.

Spiderman3
Observador/a
Mensajes: 23
Registrado: 27 Mar 2007, 01:06

Respuesta: De Miarroba A Phpbb

#6

Mensaje por Spiderman3 »

Son foros phpbb2 los de ijijiji, pero las paginas del foro se muestran en archivos html.
La direccion es: http://zonafantasmia.foro.ijijiji.com
Te agradeceria mucho si me pudieras ayudar.
El filosofo del rap

Imagen

mimoson999
Observador/a
Mensajes: 6
Registrado: 07 Mar 2007, 16:44

Respuesta: De Miarroba A Phpbb

#7

Mensaje por mimoson999 »

pues por lo que he visto es muy diferente al de miarroba habria que rehacer todo el codigo. sobre todo se basa en la version imprimible de los temas que tienen todos los posts de cada hilo todos juntos y no hay que ir cambiando de pagina. en tu foro no he visto que haya una version imprimible. siento no poder ayudarte. quiza cuando sepa algo mas de programacion....

Spiderman3
Observador/a
Mensajes: 23
Registrado: 27 Mar 2007, 01:06

Respuesta: De Miarroba A Phpbb

#8

Mensaje por Spiderman3 »

Ok, gracias. Igual estoy investigando a full, con varios MODs puedo pasarlos mas facil manualmente aunque es una tarea monotona y larga...
El filosofo del rap

Imagen

Nadiah
Observador/a
Mensajes: 7
Registrado: 05 Sep 2006, 18:32

Respuesta: De Miarroba A Phpbb

#9

Mensaje por Nadiah »

Yo estaría interesada en tu programa pq qiero mudar mi foro q estaba en foros.st a mi propio php. Como podrías pasarmelo? pq me perdi en el paso 2. Gracias.

mimoson999
Observador/a
Mensajes: 6
Registrado: 07 Mar 2007, 16:44

Respuesta: De Miarroba A Phpbb

#10

Mensaje por mimoson999 »

ahora mismo genera codigo SQL para ser insertado en un foro icy phoenix. supongo que tu quieres mudarlo a phpBB estandar (si es asi hazmelo saber y lo codificare cuando tenga un ratillo).

el ejecutable esta aqui
http://illhostit.com/files/2b5e4c741b0d ... racion.rar

funciona arrastrando TODOS los archivos htm de las versiones imprimibles de los temas (uno por cada tema, pero se arrastran todos al mismo tiempo) hacia el ejecutable generando un archivo llamado backup.sql que contiene el codigo SQL que inserta en las tablas de icy phoenix los temas, los post y los usuarios de tu foro miarroba.

te lo pongo aqui para que mires un poco como funciona y me digas si te vale o no para lo que tenias pensado.

PD: el renombrado masivo en windows se hace seleccionando varios archivos y con F2 nombras uno a "(1).htm" por ejemplo y el resto tomaran nombres con los numeros sucesivos

ancafe
Observador/a
Mensajes: 2
Registrado: 17 Ene 2007, 10:25

Respuesta: De Miarroba A Phpbb

#11

Mensaje por ancafe »

¿Podrías compartir el código C?

Muchas gracias

mimoson999
Observador/a
Mensajes: 6
Registrado: 07 Mar 2007, 16:44

Respuesta: De Miarroba A Phpbb

#12

Mensaje por mimoson999 »

aqui teneis el codigo en C para quien lo entienda. ahora mismo genera codigo SQL valido para la RC3 de icy phoenyx

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

FILE * lectura;
int miembros_id[1000];
char miembros_nick[1000][100];
int nmiembros=0;

char posi(int p)
{
     char retorno[2];
     fseek(lectura,p,SEEK_SET);
     fread(retorno,1,sizeof(char),lectura);
     retorno[1]='\0';
     if (strcmp(retorno,"'")==0)
     {
     retorno[0]=' ';                          
     }
     return retorno[0];
     }

int pasame(int p,char cadena[])
{
     int i;
     for(i=0;i<strlen(cadena);i++)
     {
          if(posi(p+i)!=cadena[i])
          {
            return 0;
          }
          }
     return 1;
     }
int generar_id(char cadena[])
{
    int i,resultado=0,id,yalotengo=0;
    for(i=0;i<strlen(cadena);i++)
    {
       resultado=resultado+cadena[i];              
    }
    id=(resultado%10000)+5;
    
    for (i=0;i<nmiembros;i++)
    {
        if(id==miembros_id[i])
        {
           yalotengo=1;
        }
    }
    if (yalotengo==0)
    {
     miembros_id[nmiembros]=id;
     strcpy(miembros_nick[nmiembros],cadena);
     nmiembros++;                    
    }
    
    return id;
    }


int main(int argc, char *argv[])
{
  int i,f,t,tengotitulo,tengopost1,postid=50;// en orden: contador de archivos, recorredor de cada archivo, boolean para sabar si se tiene el titulo del post, para saber si se tiene el primer post, el postid para insertar en la tabla que empieza en 50
  
  FILE * escritura;// le manejador para backup.sql
  char titulo_topic[1000],posteador[100],post[1000000];
  char directorio[1000];
  int topic_poster_id,first_post_id,last_post_id;
  strcpy(directorio,argv[0]);
  for (i=strlen(directorio)-1;i>0;i--)
     {
         if(directorio[i]=='\\')
         {
           directorio[i+1]='\0';
           i=0;
           }
     }
  strcat(directorio,"backup.sql");
  for (i=1;i<argc;i++)
  {  
     printf("se va a tratar el archivo: %s\n",argv[i]);
     if ((lectura=fopen(argv[i],"r"))==NULL)
     {
         printf("NO SE PUDO ABRIR %s",argv[i]);      
     }
     else
     {
         if ((escritura=fopen(directorio,"a+"))==NULL)
         {
            printf("NO SE PUDO ABRIR backup.sql");      
         }
         else
         {
             
             tengotitulo=0;
             for (f=0;tengotitulo==0;f++)
             {
                 if (pasame(f,"<b>")==1)
                 {
                     f+=3;
                     for (t=0;pasame(f,"</b>")==0;t++)
                     {
                           titulo_topic[t]=posi(f);
                           f++;
                     } 
                     titulo_topic[t]='\0';
                     tengotitulo=1;               
                 }
             }
             tengopost1=0;
             for(;tengopost1==0;f++)
             {
                if (pasame(f,"<hr>Autor: ")==1)
                {
                   f+=strlen("<hr>Autor: ");
                   for (t=0;pasame(f,",")==0;t++)
                   {
                       posteador[t]=posi(f);
                       f++;   
                   }
                   posteador[t]='\0';

                   for (;pasame(f,"<br><br> <b></b><br><br>")==0;f++)
                   {}
                   f+=strlen("<br><br> <b></b><br><br>");
                   for(t=0;(pasame(f,"<hr>Autor: ")==0) && pasame(f,"<tr id")==0;t++)
                   {
                       post[t]=posi(f);
                       f++;
                   }
                   post[t]='\0';
                   first_post_id=postid;
                   last_post_id=postid;
                   topic_poster_id=generar_id(posteador);
                   fprintf(escritura,"INSERT INTO `ip_posts` (`post_id`, `topic_id`, `forum_id`, `poster_id`, `post_time`, `poster_ip`, `post_username`, `enable_bbcode`, `enable_html`, `enable_smilies`, `enable_sig`, `post_edit_time`, `post_edit_count`, `post_attachment`, `post_bluecard`, `enable_autolinks_acronyms`) VALUES (%d, %d, 1, %d, %d, '7F000001', '', 1, 1, 1, 0, NULL, 0, 0, NULL, 1);\n",postid,50+i,generar_id(posteador),1137567600+postid);
                   fprintf(escritura,"INSERT INTO `ip_posts_text` (`post_id`, `bbcode_uid`, `post_subject`, `post_text`, `post_text_compiled`, `edit_notes`) VALUES (%d, '', '%s','', '%s', NULL);\n",postid,titulo_topic,post);
                   postid++;
                   tengopost1=1;
                   
                }          
             }
             //EMPIEZA A COGER TODOS LOS POSTS A PARTIR DEL PRIMERO
             f--;
             
             for(;pasame(f,"<tr id")==0;)
             {
                
                f+=strlen("<hr>Autor: "); 
                for (t=0;pasame(f,",")==0;t++)
                   {
                       posteador[t]=posi(f);
                       f++;   
                   }
                posteador[t]='\0';  
                for (;pasame(f,"<br><br> <b></b><br><br>")==0;f++)
                {}
                f+=strlen("<br><br> <b></b><br><br>");
                for(t=0;(pasame(f,"<hr>Autor: ")==0) && pasame(f,"<tr id")==0;t++)
                   {
                       post[t]=posi(f);
                       f++;
                   }
                post[t]='\0';       
                
                last_post_id=postid; 
                fprintf(escritura,"INSERT INTO `ip_posts` (`post_id`, `topic_id`, `forum_id`, `poster_id`, `post_time`, `poster_ip`, `post_username`, `enable_bbcode`, `enable_html`, `enable_smilies`, `enable_sig`, `post_edit_time`, `post_edit_count`, `post_attachment`, `post_bluecard`, `enable_autolinks_acronyms`) VALUES (%d, %d, 1, %d, %d, '7F000001', '', 1, 1, 1, 0, NULL, 0, 0, NULL, 1);\n",postid,50+i,generar_id(posteador),1137567600+postid);
                fprintf(escritura,"INSERT INTO `ip_posts_text` (`post_id`, `bbcode_uid`, `post_subject`, `post_text`, `post_text_compiled`, `edit_notes`) VALUES (%d, '', 'Respuesta: %s','', '%s', NULL);\n",postid,titulo_topic,post);
                postid++;        
             }
             fprintf(escritura,"INSERT INTO `ip_topics` (`topic_id`, `forum_id`, `topic_title`, `topic_desc`, `topic_poster`, `topic_time`, `topic_views`, `topic_replies`, `topic_status`, `topic_vote`, `topic_type`, `topic_first_post_id`, `topic_last_post_id`, `topic_moved_id`, `topic_attachment`, `title_compl_infos`, `news_id`, `topic_calendar_time`, `topic_calendar_duration`, `topic_rating`, `topic_show_portal`) VALUES (%d, 1, '%s', '', %d, %d, 0, 0, 0, 0, 0, 1, 1, 0, 0, NULL, 0, NULL, NULL, 0, 0);\n",50+i,titulo_topic,topic_poster_id,1137567600+i,first_post_id,last_post_id);
         }
         fclose(lectura);
         fclose(escritura);
  }
  }
  //ESCRIBIR LOS USUARIOS
  if ((escritura=fopen(directorio,"a+"))==NULL)
  {
     printf("NO SE PUDO ABRIR backup.sql");      
  }
  else
  {
      for(i=0;i<nmiembros;i++)
      {
                      
       fprintf(escritura,"INSERT INTO `ip_users` VALUES (%d, 1, '%s', '5f4dcc3b5aa765d61d8327deb882cf99', 0, 0, '', 0, 1176084330, 0, 0, 0, 0.00, 1, 'english', 'Y/m/d - H:i', 0, 0, 0, NULL, NULL, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, -2, -2, -2, NULL, 0, 'yo@yo.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'user_actkey', NULL, 1, 1, 1, 1, 1, 1, 1, '0.0.0.0', 1, 0, 1, 0, 0, '0.0.0.0', 999999, 0, 1, 1, 1, 2, 2, 0, '', 0, 0, 0, 0, 0, 0, 0, 1, 5, 1, 1, 0, 5, 60, '0', NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 0, 1, 1, 0, 0, 0, 0, NULL, NULL, NULL, 1, 0, 0, 1, 1, 1, 0);\n",miembros_id[i],miembros_nick[i]);

      }    
  }
  system("PAUSE");	
  return 0;
}



no lo he posteado antes porque tenia cierto miedo que al verlo, alguien de miarroba bloquease esta posibilidad antes de que yo migrara mi foro. Ahora ya tengo todo mi foro de miarroba funcionando en icy phoenyx la mar de bien

PD: las contraseñas de los usuarios se establecen todas a "password"

kUcHilla
Observador/a
Mensajes: 6
Registrado: 07 Ene 2008, 10:07

Re: [SOLUCIONADO] De Miarroba A Phpbb

#13

Mensaje por kUcHilla »

Hola Mimosón! gracias de antemano por compartir tu script con la comunidad. Yo pretendo hacer lo mismo.Mi idea era hacerlo con wget y awk, a partir de la versión imprimible del foro. A ver que consigo :)

Gracias!
URL: http://www.xcitingclub.es
Migrado de: http://xciting.mforos.com
Hosting: godaddy
CMS: Icy Phoenix 1.1.0.15d

kUcHilla
Observador/a
Mensajes: 6
Registrado: 07 Ene 2008, 10:07

Miarroba2icyphoenix.c Y Lanzador.sh

#14

Mensaje por kUcHilla »

Hola de nuevo. He cogido y he adaptado el código de mimoson para hacerlo funcionar con la versión imprimible actual de miarroba. He añadido un poco de código para algunos detalles que se pasaban por alto y he añadido un lanzador en bash que utiliza httrack para automatizarlo todo.

Ahora mismo con equipo linux se puede realizar la migración de un subforo completo tan solo diciendo la url del subforo,el forum_id, el post_id mínimo y el topic_id mínimo.

Si hay alguien interesado en el nuevo código que lo diga, pero tengo la duda "moral" de compartir de nuevo el código actualizado y automatizado porque he visto en algún sitio que se intenta hacer negocio con el y eso no me parece correcto ya que es robarles el trabajo a miarroba.

Considero a miarroba como una empresa española que lo ha hecho bien en internet y lo último que quiero es perjudicarla, solo compartiría el código para que la información fluya en la red y que profesionales de la red, como considero que somos aquí, podamos hacer buen uso de ella sin pisarnos unos a otros.
URL: http://www.xcitingclub.es
Migrado de: http://xciting.mforos.com
Hosting: godaddy
CMS: Icy Phoenix 1.1.0.15d

Avatar de Usuario
AMateos
Ex Staff
Mensajes: 132
Registrado: 05 Jul 2006, 02:09
Género:
Edad: 33

Re: [SOLUCIONADO] De Miarroba A Phpbb

#15

Mensaje por AMateos »

Hola mimoson999,
Tienes un MP de mi parte.
Nicalia | Hosting España de alta calidad.

Hosting Individual & Multisitio, VPS administrados y servidores dedicados

Cerrado

Volver a “Archivo phpBB 2.0”