- Home
- Categorie
- Coding e Sistemistica
- Gestione di Forum
- Migrazione Snitz a vBulletin. Problema immagini.
-
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/userIn 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!!!!
-
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.
-
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!
-
Salve ragazzi, dato che è utile conoscere la struttura di vBulletin sposto il thread nell'area apposita.
-
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.
-
Grazie Karapoto,
ma mi sapresti dire come?
Io sinceramente non saprei come fare ...
-
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
-
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.
-
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
-
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');