Oui effectivement tu dois écrire l’URL du fichier copierrubriqu.php dans ton navigateur. Ne pas oublier non plus de remplacer dans le code le nom des tables (spip2_article) par le nom de tes tables spip.
Par ailleurs, voici un code mis à jour. Je n’ai pas trouvé comment copier les logos des articles ou des sites syndiqués...
<?php
mysql_connect("localhost", "irg", "XXXXXX");
mysql_select_db("irg");
function copiedocrub($id_rubfrom,$id_rubto)
{
//sélection de tous les documents de la rubrique de départ
$querya = "select id_document from spip2_documents_rubriques where id_rubrique=$id_rubfrom";
$resulta = mysql_query($querya);
while($rowa=mysql_fetch_array($resulta))
{
$id_doc = $rowa[0];
//copie du document
$queryb = "select fichier from spip2_documents where id_document=$id_doc";
$resultb = mysql_query($queryb);
$fichier = mysql_fetch_array($resultb);
$newfichier = str_replace(substr($fichier[0],-4),'_copie'.substr($fichier[0],-4),$fichier[0]);
copy('/home/irg/www/'.$fichier[0],'/home/irg/www/'.$newfichier);
$subquerya = "insert into spip2_documents (id_vignette,id_type,titre,date,descriptif,fichier,taille,largeur,hauteur,mode,distant,idx,maj from spip2_documents where id_document=$id_doc";
$subresulta = mysql_query($subquerya);
// identifiant du document inséré
$subqueryb = "select LAST_INSERT_ID()";
$subresultb = mysql_query($subqueryb);
$subrowb = mysql_fetch_array($subresultb);
$newid_doc= $subrowb[0];
$subqueryc = "insert into spip2_documents_rubriques values ($newid_doc, $id_rubto)";
$subresultc = mysql_query($subqueryc);
$subqueryd = "update spip2_documents set fichier='$newfichier' where id_document=$newid_doc";
$subresultd = mysql_query($subqueryd);
}mysql_free_result($resulta);
}
function copiedocart($id_artfrom,$id_artto)
{
//sélection de tous les documents de la rubrique de départ
$queryi = "select id_document from spip2_documents_liens where id_objet=$id_artfrom";
echo $queryi;
$resulti = mysql_query($queryi);
while($rowi=mysql_fetch_array($resulti))
{
$id_doc = $rowi[0];
//copie du document
$queryj = "select fichier from spip2_documents where id_document=$id_doc";
$resultj = mysql_query($queryj);
$fichier = mysql_fetch_array($resultj);
$newfichier = str_replace(substr($fichier[0],-4),'_copie'.substr($fichier[0],-4),$fichier[0]);
copy('/home/irg/www/IMG/'.$fichier[0],'/home/irg/www/IMG/'.$newfichier);
$subqueryk = "INSERT INTO spip2_documents (extension,titre,date,descriptif,fichier,taille,largeur,hauteur,mode,distant,maj) SELECT extension,titre,date,descriptif,fichier,taille,largeur,hauteur,mode,distant,maj FROM spip2_documents WHERE id_document=$id_doc";
$subresultk = mysql_query($subqueryk);
// identifiant du document inséré
$subqueryl = "select LAST_INSERT_ID()";
$subresultl = mysql_query($subqueryl);
$subrowl = mysql_fetch_array($subresultl);
$newid_doc= $subrowl[0];
$subqueryz = "INSERT INTO spip2_documents_liens (id_document,id_objet,objet,vu) VALUES ($newid_doc,$id_artto,'article','non')";
$subresultz = mysql_query($subqueryz);
$subqueryg = "update spip2_documents set fichier='$newfichier' where id_document=$newid_doc";
$subresultg = mysql_query($subqueryg);
}mysql_free_result($resulti);
}
function copiesite($id_rubfrom,$id_rubto,$id_secteurto)
{
//sélection de tous les sites de la rubrique de départ
$querysite = "SELECT * FROM spip2_syndic WHERE id_rubrique = $id_rubfrom";
$resultsite = mysql_query($querysite);
while ($rows = mysql_fetch_array($resultsite))
{
$id_site = $rows[0];
//copie du site dans la nouvelle rubrique
$subquerysite = "INSERT INTO spip2_syndic (id_rubrique,id_secteur,nom_site,url_site,url_syndic,descriptif,maj,syndication,statut,date,date_syndic,date_index,extra,moderation,miroir,oubli,resume) SELECT id_rubrique,id_secteur,nom_site,url_site,url_syndic,descriptif,maj,syndication,statut,date,date_syndic,date_index,extra,moderation,miroir,oubli,resume FROM spip2_syndic WHERE id_syndic=$id_site";
$subresultsite = mysql_query($subquerysite);
// identifiant de la rubrique insérée
$subquerysyndic = "select LAST_INSERT_ID()";
$subresultsyndic = mysql_query($subquerysyndic);
$subrowsyndic = mysql_fetch_array($subresultsyndic);
$newid_site= $subrowsyndic[0];
$subqueryh = "UPDATE spip2_syndic SET id_rubrique =$id_rubto,id_secteur=$id_secteurto WHERE id_syndic=$newid_site";
$subresulth = mysql_query($subqueryh);
}mysql_free_result($resultsite);
}
function copieart($id_rubfrom,$id_rubto)
{
//sélection de tous les articles de la rubrique de départ
$querye = "SELECT * FROM spip2_articles WHERE id_rubrique = $id_rubfrom";
$resulte = mysql_query($querye);
while ($rowe = mysql_fetch_array($resulte))
{
$id_art = $rowe[0];
//copie de l' article dans la nouvelle rubrique
$subqueryf = "insert into spip2_articles (surtitre,titre,soustitre,id_rubrique,descriptif,chapo,texte,ps,date,statut,id_secteur, maj,export,date_redac,visites,referers,popularite,accepter_forum,date_modif,lang,langue_choisie,id_trad,extra,id_version,nom_site,url_site) select surtitre,titre,soustitre,id_rubrique,descriptif,chapo,texte,ps,date,statut,id_secteur, maj,export,date_redac,visites,referers,popularite,accepter_forum,date_modif,lang,langue_choisie,id_trad,extra,id_version,nom_site,url_site from spip2_articles where id_article=$id_art";
$subresultf = mysql_query($subqueryf);
// identifiant de la rubrique insérée
$subqueryg = "select LAST_INSERT_ID()";
$subresultg = mysql_query($subqueryg);
$subrowg = mysql_fetch_array($subresultg);
$newid_art= $subrowg[0];
$subqueryh = "update spip2_articles set id_rubrique =$id_rubto where id_article=$newid_art";
$subresulth = mysql_query($subqueryh);
//copie des documents de l'article
copiedocart($id_art,$newid_art);
}mysql_free_result($resulte);
}
function copierub($id_rubfrom,$id_rubto)
{
echo $id_rubfrom;
$query = "select id_rubrique from spip2_rubriques where id_parent = $id_rubfrom";
$result = mysql_query($query);
$query_s = "select id_secteur from spip2_rubriques where id_rubrique = $id_rubto";
$result_s = mysql_query($query_s);
$subrow_s = mysql_fetch_array($result_s);
$id_secteurto= $subrow_s[0];
/*copie des documents de la rubrique
copiedocrub($id_rubfrom,$id_rubto);*/
copieart($id_rubfrom,$id_rubto);
copiesite($id_rubfrom,$id_rubto,$id_secteurto);
while($row=mysql_fetch_array($result))
{
$id_rub = $row[0];
//copie de la rubrique dans la nouvelle
$subquery = "insert into spip2_rubriques (id_parent,titre,descriptif,texte,id_secteur,maj,export, id_import, statut, date, lang, langue_choisie,extra, statut_tmp ,date_tmp) select $id_rubto, titre, descriptif, texte, $id_secteurto, maj, export, id_import, statut, date, lang, langue_choisie, extra, statut_tmp, date_tmp from spip2_rubriques where id_rubrique=$id_rub";
$subresult = mysql_query($subquery);
// identifiant de la rubrique insérée
$subquery2 = "select LAST_INSERT_ID()";
$subresult2 = mysql_query($subquery2);
$subrow = mysql_fetch_array($subresult2);
$newid_rub= $subrow[0];
copierub($id_rub,$newid_rub);
}mysql_free_result($result);
}
if (isset($_GET['depart'])) {
$depart = $_GET['depart'];
}
if (isset($_GET['arrivee'])) {
$arrivee = $_GET['arrivee'];
}
copierub($depart,$arrivee);
?>