• User Attivo

    Migrazione Snitz a vBulletin. Problema immagini.

    Ciao ragazzi,
    ho un problema che mi sta facendo impazzire.
    Ho migrato il mio forum da Snitz a Vbulletin e tutto è andato bene. Il problema è che tutte le immagini inserite dagli utenti nei loro messaggi ( e sono moltissime) non vengono visualizzate. Viene visualizzata solo la stringa.... ad esempio:

    il sito è [...]
    tutte le foto si trovano nella cartella /public/data/user

    In pratica dovrei dire al forum di trasformare [img]/public/data/ in www .domain.ext/public/data

    In questo modo dovrei risolvere o no?
    Se si come devo fare?
    Altrimenti avetr altre soluzioni?

    Vi prego di darmi una mano!!!!


  • User Attivo

    Non so come è strutturato il database di vbulletin, ma avrà sicuramente una tabella dei posts.
    Dovresti fare uno script che preleva il contenuto del campo testo_posts,_poi una reg exp per le vecchie immagini, dovresti vedere come sono strutturate nel database, magari hanno un id del bbcode (come per phpbb3).
    Un preg_replace con la nuova stringa e poi una query per aggiornare la tabella.


  • User Attivo

    Mi è stato suggerito di lanciare questo file php nella root del nuovo forum, aprendo il file nel browser dovrebbe effettuare questo cambio di percorso, ma purtroppo non funziona: mi direste dov'e' l'errore?

    [php]
    <?php
    $connessione = @mysql_connect("Indirizzo IP","Nome Utente","Passw")or die("Connessione non riuscita: " . @mysql_error());

    @mysql_select_db("Nome Db") or die("Errore nella selezione del database");
    $query = @mysql_query("SELECT * FROM post WHERE pagetext LIKE '%[img]/Public/data/%'");
    while ($result = @mysql_fetch_assoc($query))
    {
    $variabile2 = str_replace("/Public/data/", "w ww. scaricone.it/Public/data/", $result['pagetext']);
    $variabile ="UPDATE post SET pagetext = '".addslashes($variabile2)."' WHERE ID = ".$result['ID'];
    echo $result['ID'].'<br />';
    // echo $variabile;
    @mysql_query($variabile) or die ('<br />Non riuscito');
    $variabile2 = '';
    $variabile = '';
    }
    if ($query==FALSE) die("errore nella composizione della query");
    @mysql_close($connessione);
    ?>
    [/php]Per favore qualcuno di cuore buono mi da' una mano??

    Grazie mile!


  • Consiglio Direttivo

    Salve ragazzi, dato che è utile conoscere la struttura di vBulletin sposto il thread nell'area apposita.
    :ciauz:


  • Super User

    Non avendo competenze particolari in merito alla modifica dei database l'unico consiglio che posso darti, se si tratta semplicemente di sostituire l'url delle immagini aggiungendo www. dominio.ext, è quello di creare un bbcode che operi ciò in automatico ogni volta che in un post compare quella stringa.


  • User Attivo

    Grazie Karapoto,
    ma mi sapresti dire come?
    Io sinceramente non saprei come fare ...


  • Super User

    Quel file per il cambio delle url lo utilizzai io per cambiarle quando cambiai il dominio e funzionava bene.
    Per il fatto del BBCode... come funziona? 😄 Non l'ho mai utilizzato e mi piacerebbe sapere come si fa 😄


  • Super User

    Faccio un passo indietro, perchè il bbcode agirebbe solo se inserito su ogni singola immagine e quindi dovrebbero essere gli utenti a provvedere.

    Per farlo in maniera del tutto automatizzata, bisognerebbe costruire un plugin ed è un pò più complesso.

    Senti, per caso hai vbseo installato?
    Perchè forse si potrebbe inserire una regola.
    In alternativa, l'altra soluzione che mi viene in mente è modificare il template e mettere il prefisso del sito prima della variabile che richiama le immagini nei post.

    Sicuramente sto facendo le cose più complicate, basterebbe far vedere il database a qualcuno che ne capisce ed in pochi minuti risolverebbe tutto.


  • User Attivo

    Karapoto grazie per avermi risposto ancora!

    Vbseo non ce l'ho.
    Ovviamente non posso ne' fare modifiche io ad ogni singolo post ne' possiamo chiederlo agli utenti poiche' i messaggi e foto sono davvero tante.
    Vi prego di darmi una mano. Grazie


  • Consiglio Direttivo

    Per quello che ho capito sul campo devi sostituire

    [img ]/public/data/....
    

    con:

    [img ]www.domain.ext/public/data/...
    ```Fatto salvo che non ho minimamente idea di quale sia la tabella ed il campo da intercettare ti posto la sintassi per fare un replace:
    

    update nome_tabella set nome_campo = replace(nome_campo,'[img]','[img ]www.domain.ext');