Fork me on GitHub

Rapport de message :*
 

Re: xoopstube: index : liste alphabetique qui commence par les nombres :0123...

Titre du sujet : Re: xoopstube: index : liste alphabetique qui commence par les nombres :0123...
par blueteen sur 28/06/2013 14:21:43

Avant de passer à la suite, fais une sauvegarde complète de ta base de données.
Tu peux créer une page web du nom que tu voudras, contenant le code suivant, et placer cette page dans ton dossier 'xoopstube'.
<?php
include 'header.php';
include 
XOOPS_ROOT_PATH '/header.php';

//utiliser le type de regroupement souhaité, en commentant l'une ou l'autre des lignes ci-dessous
$regroupement "vidid";
//$regroupement = "title";

if (isset($_GET['op'])) {$op $_GET['op'];}
else {
$_GET['op']="";}

if (
$_GET['op'] == "delete") {
        
// delete video
        
$sql 'DELETE FROM ' $xoopsDB->prefix('xoopstube_videos') . ' WHERE lid=' $_GET['lid'];
        
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        
// delete altcat
        
$sql 'DELETE FROM ' $xoopsDB->prefix('xoopstube_altcat') . ' WHERE lid=' $_GET['lid'];
        
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        
// delete vote data
        
$sql 'DELETE FROM ' $xoopsDB->prefix('xoopstube_votedata') . ' WHERE lid=' $_GET['lid'];
        
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        
// delete comments
        
$sql 'DELETE FROM ' $xoopsDB->prefix('xoopscomments') . ' WHERE (com_modid = "'.$xoopsModule->getVar('mid').'" AND com_itemid = "'.$_GET['lid'].'")';
        
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        
header('Location:'.$_SERVER['PHP_SELF']);
}

else {
    
$sql 'SELECT lid, cid, t1.title, t1.vidid, published
    FROM ' 
.$xoopsDB->prefix('xoopstube_videos').' AS t1
    INNER JOIN 
    ( 
    SELECT '
.$regroupement.
    FROM ' 
.$xoopsDB->prefix('xoopstube_videos').'
    GROUP BY '
.$regroupement.
    HAVING count('
.$regroupement.') > 1 
    ) 
    AS t2
    ON t1.'
.$regroupement.'=t2.'.$regroupement.
    ORDER BY t1.'
.$regroupement.' ASC';

    
$result $xoopsDB->query($sql);

    echo 
"Vidéos regroupées par : ".$regroupement."<br /><br />";
    echo 
"Cliquer sur le titre ou l'id pour accéder à la vidéo.<br /><br />";
    echo 
"<table>";
    echo 
"<tr><td width="25px">&nbsp;</td><td>ID</td><td>Titre</td><td>Vidid</td><td>Catégorie</td><td>Publié le</td></tr>";

    while (
$arr $xoopsDB->fetchArray($result)) {
        
$videouid['title']     = $xtubemyts->htmlSpecialCharsStrip($arr['title']);
        
$videouid['lid']       = $arr['lid'];
        
$videouid['cid']       = $arr['cid'];
        
$videouid['vidid']     = $arr['vidid'];
        
$videouid['published'] = xoopstube_time(formatTimestamp($arr['published'], $xoopsModuleConfig['dateformat']));

        echo 
'<tr><td><a href="' XOOPS_URL '/modules/' $xoopsModule->getVar('dirname') . '/doublons.php?op=delete&amp;lid='
                
$videouid['lid']  . '"><img src="' $xoopsModule->getInfo('icons16') . '/delete.png" alt="'
                
_MD_XTUBE_DELETE '" title="' _MD_XTUBE_DELETE '" style="vertical-align: middle;" /></a></td><td><a href="singlevideo.php?cid='.$videouid['cid'].'&lid='.$videouid['lid'].'" target="_blank">'.$videouid['lid'].'</a></td><td><a href="singlevideo.php?cid='.$videouid['cid'].'&lid='.$videouid['lid'].'" target="_blank">'.$videouid['title'].'</a></td><td>'.$videouid['vidid'] . '</td><td>'.xtube_cattitle($videouid['cid']).'</td><td>'.$videouid['published'].'<td></tr>';
    }
    echo 
"</table>";
}

include 
XOOPS_ROOT_PATH '/footer.php';

?>


Appelle ensuite cette page dans ton navigateur.
Par défaut, la recherche et le regroupement se font sur le vidid (tu peux changer ce comportement en regardant le début du code, tu as juste commenter une ligne, et à décomenter l'autre ligne).

En affichant cette page dans ton navigateur, tu devrais avoir la liste complète des vidéos en doublons.
Tu peux soit cliquer sur le nom de la vidéo, pour y accéder.
Soit supprimer directement la vidéo avec l'image prévue à cet effet.
ATTENTION : la suppression est immédiate et sans confirmation..
Elle supprime la vidéo, les votes et les commentaires associés (comme si tu passais par la suppression habituelle en fait, mais sans confirmation, histoire d'être plus efficace).
Lorsque tu as cliqué pour supprimer une vidéo, ça revient tout seul sur la page (sans l'élément supprimé bien entendu).

Ne donne le lien vers cette page à personne, je n'ai sécurisé aucune étape/requête, donc n'importe qui peut aller supprimer des vidéos, ou même accéder à ta base de données s'il avait accès à cette page).
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

57 Personne(s) en ligne (50 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 57 | Plus ...