Fork me on GitHub




« 1 (2) 3 4 »


Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Y'a un truc que je comprend pas dans le code html qui doit afficher les résultats, sur l'exemple que j'ai pris.

<{foreach item=video_user from=$video_uid}>

C'est le item=Video_user

Je ne retrouve pas video_user pas dans le code php. a quoi cela correspond-il?

Posté le : 08/12/2014 16:13
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
cela n'a rien à voir avec PHP, c'est du SMARTY, en clair on créé une boucle ayant pour nom 'video_user'

Posté le : 08/12/2014 17:33
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Admin Frxoops
Inscrit: 05/03/2005 05:20
De Vaucluse
Messages: 960
Pour la recherche uniquement des doublons tu vas devoir faire une jointure de tables.
Jettes un oeil à ce sujet (a adapter)

Posté le : 08/12/2014 18:27

Open in new window

Xoops 2.5.7.2 - Debian 8.2 - Apache 2.4.10 - MySQL 5.5.47 - Php 5.6.17
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Re

D'accord c'est bien ce que je pensais, ce nom on l'invente il n'a pas de valeur propre.

OK c'est clair.

merci slider, je vais regarder.


Posté le : 08/12/2014 18:27
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Re

J'ai donc été voir cette requête et je l'ai modifié pour qu'elle me sorte toutes les infos des doublons:
SELECT t1.* 
FROM _xoopstube_videos AS t1 
INNER JOIN 

SELECT vidid 
FROM _xoopstube_videos 
GROUP BY vidid 
HAVING count
(vidid) > 

AS 
t2
ON t1
.vidid=t2.vidid 
ORDER BY t1
.vidid ASC


Pas de soucis si on veut l'utiliser directement dans sql, je l'ai fait, j'avais 27 doublons et j'ai donc pu corriger et ramener ce chiffre à 2

Avant ça j'ai essayé de convertir le tout pour xoops mais je n'arrive pas à afficher les infos, je doit couiller quelque part, j'ai pas d'erreur sql ou php juste rien ne s'affiche.

J'ai donc créé un fichier doublon.php
puis un template xoopstube_doublon.html pour pouvoir faire les essais sur une page indépendante.
J'ai ensuite modifié le fichier xoops_version.php pour y inclure le template.

Ensuitre j'ai pris exemple comme j'ai pu sur d'autres fichiers pour m'aider.

Dans un premier temps, je voulais déja éssayer d'afficher les infos sous forme de tableau tel quelles sortent sur sql.

J'ai fait la conversion sql -> php dans mysql (déja ça je suis pas sur que ça soit bon) puis utilisé tel quel en ajoutant juste les éléments xoops.

doublon.php:
<?php
/**
 * $Id: doublon.php
 * Module: XoopsTube
 */

include 'header.php';

$sql " SELECT t1.*n"
    
"FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' AS t1 n"
    
"INNER JOIN n"
    
"( n"
    
"SELECT vididn"
    
"FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' n"
    
"GROUP BY vidid n"
    
"HAVING count(vidid) > 1 n"
    
") n"
    
"AS t2n"
    
"ON t1.vidid=t2.vididn"
    
"ORDER BY t1.vidid ASC ";
$result    $xoopsDB->query($sql);
$video_doublon $xoopsDB->fetchArray($result);

/**
// on verifie si le résultat est un tableau
if (!is_array($video_doublon)) {
    redirect_header('index.php', 1, _MD_XTUBE_NOVIDEOLOAD);
    exit();
}
**/

// On affiche chaque entrée une à une
while ($arr $xoopsDB->fetchArray($result)) {
    
$videouid['title']     = $xtubemyts->htmlSpecialCharsStrip($arr['title']);
    
$videouid['lid']       = $arr['lid'];
    
$videouid['cid']       = $arr['cid'];
    
$videouid['vidsource'] = $arr['vidsource'];
    
$videouid['published'] = xoopstube_time(formatTimestamp($arr['published'], $xoopsModuleConfig['dateformat']));
    
$xoopsTpl->append('video_uid'$videouid);
    }

$xoopsOption['template_main'] = 'xoopstube_doublon.html';
include 
XOOPS_ROOT_PATH '/header.php';
$xoopsTpl->assign('video_uid'$videouid);
// Displays Back button
$xoopsTpl->assign(
    
'back''<a href="javascript:history.go(-1)"><img src="' XOOPS_URL '/modules/' $xoopsModule->getvar('dirname')
    . 
'/images/icon/back.png" /></a>'
); 
$xoopsTpl->assign('module_dir'$xoopsModule->getVar('dirname'));
include 
XOOPS_ROOT_PATH '/footer.php';
?>


La fin du code n'est pas bon, en fait j'ai laissé tel quel aprés avoir asséyer plusieurs truc, je sais pas trop comment afficher les infos.

et le template:

<link rel="stylesheet" type="text/css" href="<{$smarty.const.xoopstube_url}>/xtubestyle.css"/>
<{if 
$catarray.imageheader != ""}> <br/>
<
div class="xoopstube_header"><{$catarray.imageheader}></div>
<{/if}>



<
br/><br/>

<!-- 
Start loop -->

<
div class="xo-pagact" style="font-weight: bold; font-size: 110%;">&nbsp;liste des doublons
</div>

<
br/>
     

<{foreach 
item=video_doublon from=$video_uid}>
<
div style="margin-left: 10px;">
    <
a href="<{$xoops_url}>/modules/<{$video.module_dir}>/singlevideo.php?cid=<{$video_doublon.cid}>&amp;lid=<{$video_doublon.lid}>"><{$video_doublon.title}></a>
    (<{
$video_doublon.published}>)
</
div>
<{/foreach}>


Le résultat est une page vide.

ça va certainement vous sauter aux yeux, mais moi je capte rien, si vous pouviez me dire ou je foire mon coup, ça pourra m'aider.

Merci d'avance

ps:
A la fin de mon fichier php, est ce qu'il faut sortir chaque entré du tableau avant de pouvoir les afficher?
avec ceci:
$video['imageheader']  = xtube_imageheader();
$video['title']        = $video_doublon['tittle'];
$video['id']           = $video_doublon['lid'];
$video['cid']          = $video_doublon['cid'];
$video['vidsource']    = $video_doublon['vidsource'];


???

Posté le : 09/12/2014 13:20
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Il manque des morceaux de la documentation xoops -> plugin smarty

Posté le : 09/12/2014 18:10
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
MIRACLE

J'ai enfin réussi à afficher le résultat de ma requete, j'ai tout repris depuis le début:

doublon.php
<?php
/**
 * $Id: mirroir.php
 * Module: XoopsTube
 */

include 'header.php';
include 
XOOPS_ROOT_PATH '/header.php';
$sql " SELECT t1.*
         FROM _xoopstube_videos AS t1
         INNER JOIN (
         SELECT `title`
         FROM _xoopstube_videos
         GROUP BY `title`
         HAVING count( `title` ) >1
         ) AS t2 ON t1.`title` = t2.`title`
         ORDER BY `t1`.`title` ASC "
;
$result    $xoopsDB->query($sql);
$video_doublon $xoopsDB->fetchArray($result);

// on verifie si le résultat est un tableau
if (!is_array($video_doublon)) {
    
redirect_header('index.php'1_MD_XTUBE_NOVIDEOLOAD);
    exit();
}
// on scan les entrées 1 par 1
while ($arr $xoopsDB->fetchArray($result)) {
    
$videoduid['title']     = $xtubemyts->htmlSpecialCharsStrip($arr['title']);
    
$videoduid['lid']       = $arr['lid'];
    
$videoduid['cid']       = $arr['cid'];
    
$videoduid['vidsource'] = $arr['vidsource'];
    
$videoduid['published'] = xoopstube_time(formatTimestamp($arr['published'], $xoopsModuleConfig['dateformat']));
    
$xoopsTpl->append('video_duid'$videoduid);
}
// on attribut un template pour affichage
$xoopsOption['template_main'] = 'xoopstube_doublon.html'

include 
XOOPS_ROOT_PATH '/footer.php';
?>


le template:
<link rel="stylesheet" type="text/css" href="<{$smarty.const.xoopstube_url}>/xtubestyle.css"/>
<{if 
$catarray.imageheader != ""}> <br/>
<
div class="xoopstube_header"><{$catarray.imageheader}></div>
<{/if}>

<
br/><br/>

<!-- 
Start loop -->
<
div class="xo-pagact" style="font-weight: bold; font-size: 110%;">&nbsp;liste des doublons
</div>

<
br/>
     
<{foreach 
item=video_doublon from=$video_duid}>
<
div style="margin-left: 10px;">
    <
a href="<{$xoops_url}>/modules/<{$video.module_dir}>/singlevideo.php?cid=<{$video_doublon.cid}>&amp;lid=<{$video_doublon.lid}>"><{$video_doublon.title}></a>
    (<{
$video_doublon.published}>)<img src="<{$xoops_url}>/images/icons/<{$video_doublon.vidsource}>.png">
</
div>
<{/foreach}>


Résultat:
Open in new window


Il y a tout de même quelque chose de bizarre car la première ligne est apparemment seul.(alors quil existe bien un mirroir)
La requête est censé afficher les autres vidéos donc la première entrée qui sert de modéle n'est pas pris en compte, du moins j'imagine que c'est ça.

C'est pas ce que je veut faire mais c'est pas grave, je voulais déja au moins afficher les résultats d'une requête.

donc ici j'ai la liste de toutes les vidéos qui ont un doublon de titre.

Maintenant il faut que trouve seulement les vidéos miroir de la page courante et ne pas afficher le lien de la vidéo courante qui à servi à faire la recherche de manière à obtenir une liste des miroir disponible.(à intégrer dans la page singlevideo.php)
.

Posté le : 10/12/2014 14:29
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
RE

J'ai encore perdu mon temps, j'avais pas fait gaffe à la suite du post que m'a donné slider, j'avais seulement récup la requête et en fait sur les pages suivante du post y'avais déja la solution toute faite par blueteen.( pour la liste complète des doublons du moins)

Bon ben tant pis.


Posté le : 11/12/2014 03:20
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
Du temps perdu ?
Si tu en as appris quelques choses, ce n'est pas du temps de perdu, c'est du temps de formation

Posté le : 11/12/2014 07:47
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Re

Oui c'est vrai j'ai appris quelques petites choses en plus j'arrive pratiquement à lire le code php et a le comprendre. je comprend mieux smarty aussi, mais quand il s'agit de créer un truc à partir de rien, je sais pas par quel bout y prendre et ça ça s'append en pratiquant jours aprés jours, chose que je ne fait pas.

Je bricole moi c'est tout et je peut rester 2 mois sans toucher un bout de code,à partir de la c'est difficile d'apprendre.ce qui aurais du me prendre 6 mois, je l'ai appris en plus longtemps et j'ai vite fait d'oublier aussi.

En plus faut que j'apprenne tout en même temps jquery,php, PDO, sql, javascript, etc...

ça fait beaucoup pour juste ajouter 1 ou 2 fonctionnalité.

Mais bon pas le choix, si je veut améliorer un peu mon site car je me vois mal payer un gars pour juste faire ça.

Enfin bref t'a pas tors c'est pas vraiment du temps perdu, je trouvais juste bête d'avoir passé 3 jours à chercher et potassé a droite à gauche alors que 2 pages plus loin dans le sujet y'avais tout déja tout fait.au final j'ai pas fait exactement pareil mais ça se ressemble bien.

Bah tant pis

Maintenant faut inclure les variables dans la requête pour rendre ça dynamique, j'y ai déja passé quelques heures sans succès pour l'instant.(retour de tableau vide )

Moi en train de programmer:

Posté le : 11/12/2014 08:41
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 (2) 3 4 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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