Annonce

Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

grosbin
2005-10-23 11:57:32

Hép hép, je n'arrive pas à appliquer de méthode javascript qui envoie le formulaire de vote en cliquant sur les boutons ..
Je ne sais pas comment gérer le #form_action ..

Merci à celui qui saura me répondre ;)

grosbin
2005-07-27 10:05:07

Re, je me permet de revenir, afin de savoir s'il était possible d'afficher cette page des mieux notées / plus controversées, en affichage normal pour la version 1.3, merci d'avance pour celui qui aura un élément de réponse http://ben.lolopage.org/forum/images/smiles/jap.gif

grosbin
2005-07-07 23:37:20

Salut, j'ai un petit problème ...
J'essaye tant bien que mal de faire passer le submit via du javascript, mais ça veut pas du tout !

<input onclick="document.form.submit()" type="radio" value="3" name="note">2 </input>
Je précise que je comprend mal les templates, ainsi que l'action "form_action" qui passe par je ne sait quel formatage ...

milou
2004-10-27 10:42:17

Bonjour à tous ! je viens d'ajouter vos script pour le systeme de vote Bravo !
par contre il est impossible de revenir en arrière quand on clic sur "Les images les lpus controversées" !!
pourriez-vous m'aider ou me dire comment supprimer le lien vers cette page .. je suis débutant !
merci à tous

treddo
2004-08-31 13:18:28

Voici une modif qui permet de revenir sur la page picture.php:

Dans category.php après :

// recent pictures
$url = './category.php?cat=recent&amp;expand='.$page['expand'];
$vtp->setGlobalVar( $handle, 'recent_url', add_session_id( $url ) );

inserer :

// Meilleur notes
$url = './meilleurnote.php?';
$vtp->setGlobalVar( $handle, 'meilleurnote_url', add_session_id( $url ) );

dans category.vtp changer la ligne que j'avais mise dans ma modif :

<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<a href="./meilleurnote.php"><span title="Les mieux notées" style="font-weight:bold;">Les mieux notées</span></a> {#icon_short}

par :

<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<a href="{#meilleurnote_url}"><span title="Les mieux notées" style="font-weight:bold;">Les mieux notées</span></a> {#icon_short}


Dans meilleurnote.php apres la modif que tu as ajouté :
// lien vers la photo dans la page picture.php
$lien_photo = './picture.php?cat='.$row'storage_category_id'].'&amp;image_id='.$row['id'];

il faut rajouter :

$lien_photo = add_session_id($lien_photo);

Si vous voulez Historiser le clic sur ce lien, il suffit de mettre dans le fichier meilleurnote.php avant :

include('include/page_tail.php');

la ligne suivante :

pwg_log( 'category', 'Les meilleurs notes, '' );

plg
2004-08-30 21:33:34

In fact, I won't call the feature "vote" but "rate". When you vote, you make a choice between several possibilities, that's not the case here, you give a rate to a picture.

Victor
2004-08-30 14:43:58

Une idée pour m'aider ??

Victor
2004-08-29 19:27:38

Oui, mais ça me donné une erreur et j'ai donc testé ça :

//----------------------------------------------------- template initialization
$vtp = new VTemplate;
$handle = $vtp->Open( './template/'.$user['template'].'/picture.vtp' );
initialize_template();

$tpl = array( 'back','submit','comments_title','comments_del','delete',
              'comments_add','author','slideshow','slideshow_stop',
              'period_seconds' );
templatize_array( $tpl, 'lang', $handle );
$vtp->setGlobalVar( $handle, 'user_template', $user['template'] );
$vtp->setGlobalVar( $handle, 'text_color', $user['couleur_text'] );

Treddo
2004-08-29 18:54:45

As tu bien laissé les lignes suivantes dans le fichier meilleurnote.php ?

//----------------------------------------------------- template initialization
include('include/page_header.php');
$handle = $vtp->Open( './template/'.$user['template'].'/category.vtp' );
initialize_template();

Victor
2004-08-29 18:01:23

Definitivement...
Ma page reste avec un fond blanc...

Treddo
2004-08-29 17:19:22

Tu la perds definitivement ou juste le temps de l'affichage ?

Victor
2004-08-29 16:55:14

Merci beaucoup Treddo pour ce mod, ça marche parfaitement, même si j'ai du faire quelques modifs car j'ai une version antérieure de PWG à la tienne (enfin je pense...)

Persiste un problème:

Quand je clique sur Les mieux notées, la page s'affiche très bien mais je perds mon template, et je me retrouve avec une page avec fond blanc... ce qui n'est pas très agréable...

Une solution ?

Merci d'avance

Treddo
2004-08-29 12:19:06

Attention Dimdim, si on applique cette modif, on se retrouve déconnecté puisqu'on retourne sur la page picture sans le numero de session

dimdim
2004-08-29 11:45:32

Et pour obtenir le lien de la miniature vers la photo dans la page picture.php, après avoir appliqué le mod de Treddo ci-dessus:

Dans votre page meilleurnote.php (et également les même modifs dans la page controverses.php)


après

Code:

$query.= PREFIX_TABLE."images.author, ";

ajoutez

Code:

$query.= PREFIX_TABLE."images.id, ";

après

Code:

// afficher auteur
  $auteur = 'Photographe: <b>'.$row['author'].'</b>';

ajoutez

Code:

// lien vers la photo dans la page picture.php
  $lien_photo = './picture.php?cat='.$row['storage_category_id'].'&amp;image_id='.$row['id'];

remplacez

Code:

echo '<tr><td rowspan="2" width="165" height="165"> <p align="center"><img src="' .$thumbnail_url .'" ';

par

Code:

echo '<tr><td rowspan="2" width="165" height="165"><p align="center"><a href="' .$lien_photo .'"><img src="' .$thumbnail_url .'"</a> ';
Treddo
2004-08-29 11:32:43

#####################################
# MOD permettant de voter pour une photo           #
# Désolé je ne parle pas un mot d'anglais             #
# Si vous voulez voir ce que ca donne, je l'ai mis   #
# place sur mon site http://galerie1.free.fr            #
# Attention, ca e marche pas pour les visiteurs       #
#####################################

Voici les modifs à ajouter derrière les lignes suivante dans "picture.php":

// calculation of width and height
if ( $page['width'] == "" )
{
  $taille_image = @getimagesize( $lien_image );
  //$original_width = $taille_image[0];
  $original_height = $taille_image[1];
}
else
{
  $original_width = $page['width'];
  $original_height = $page['height'];
}




// SOURCE POUR LE VOTE----------------------------------------------

if ( $user['is_the_guest'])
{
  //Ici je mets des petites images pour les visiteurs
  //     et il ne peuvent pas voter
  $picture_size = get_picture_size( $original_width, $original_height,
                  150, 150 );
  $final_width  = $picture_size[0];
  $final_height = $picture_size[1];
}
else
{
  $picture_size = get_picture_size( $original_width, $original_height,
                  $user['maxwidth'], $user['maxheight'] );
  $final_width  = $picture_size[0];
  $final_height = $picture_size[1];

  if ( isset( $_POST['vote'] ))
  {
       $date=date("Y/m/d H:i:s");
       mysql_query("INSERT INTO ".PREFIX_TABLE."pc_vote(Vote_Id,Vote_Id_Image,Vote_Id_User,Vote_Choix,Vote_Date)
             VALUES('', " .$_GET['image_id']. ",'" .$user['username']. "'," .$_POST['note']. ",'$date')");
       echo mysql_error();
   }

  $query = 'SELECT Vote_ID_Image';
  $query.= ' FROM '.PREFIX_TABLE.'pc_vote';
  $query.= ' WHERE Vote_ID_Image = ' .$_GET['image_id'];
  $query.= " AND Vote_ID_User = '" .$user['username'] . "'";
  $result = mysql_query( $query );
  $row = mysql_fetch_array( $result,MYSQL_ASSOC );

  if ( $row['Vote_ID_Image'])
  {
    $query = 'SELECT Vote_Choix';
    $query.= ' FROM '.PREFIX_TABLE.'pc_vote';
    $query.= ' WHERE Vote_ID_Image = ' .$_GET['image_id'];
    $result = mysql_query( $query );

    $NbVotant = 0;
    $voteresultat = 0;
    while ( $row = mysql_fetch_array( $result ) )
    {
        $NbVotant = $NbVotant + 1;
        $voteresultat = $voteresultat + $row['Vote_Choix'];
    }
    if ($NbVotant == 0)
    {
        $voteresultat = 0;
    }
    else
    {
        $voteresultat = round($voteresultat / $NbVotant, 2);
    }
    $vtp->addSession( $handle, 'voteeff' );
    $vtp->setGlobalVar( $handle, 'vote', $voteresultat );
    $vtp->setGlobalVar( $handle, 'nbvote', $NbVotant );
    $vtp->closeSession( $handle, 'voteeff' );
  }
  else
  {

  $vtp->addSession( $handle, 'vote' );
  $vtp->setGlobalVar( $handle, 'form_action', str_replace( '&', '&amp;', $_SERVER['REQUEST_URI'] ) );
  $vtp->closeSession( $handle, 'vote' );
  }
}
// FIN SOURCE POUR LE VOTE------------------------------------------

Il faut aussi mettre en commentaire les lignes qui suivent le le code original cité plus haut :

//$picture_size = get_picture_size( $original_width, $original_height,
//                  $user['maxwidth'], $user['maxheight'] );
//$final_width  = $picture_size[0];
//$final_height = $picture_size[1];

Voici ensuite ce qu'il faut rajouter dans le fichier "picture.vtp" après les lignes suivantes

          <!--/VTP_modification-->
          {#frame_end}
          <div style="text-align:center;">{#back}</div>


Mon sources :

         <!--VTP_vote-->
                  <div style="text-align:center;margin-bottom:5px;">
                        <form name="form" method="post" action="{#form_action}">
                        <p><select size="1" name="note">
                        <option selected value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
                        <option value="10">10</option>
                        </select>
                        <input type="submit" name="vote" value="Votez" lang="fr" />
                        </p>
                  </div>
         <!--/VTP_vote-->


        <!--VTP_voteeff-->

             <div class="NBvote">
             </BR>
             <span style=font-size:10pt;>
             <font color=yellow face=verdana>
             Nb Votant    : {#nbvote}
             Resultat     : {#vote}/10</div>
             </p></font>
             </BR>

            </div>
         <!--/VTP_voteeff-->

Bon ensuite il faut allez dans la partie administration des tables et executer la requette suivante:(attention, changer phpwebgallery par le nom de votre table)

CREATE TABLE `phpwebgallery_pc_vote` (
  `Vote_Id` int(11) unsigned NOT NULL auto_increment,
  `Vote_Id_Image` mediumint(8) unsigned NOT NULL default '0',
  `Vote_Id_User` varchar(15) NOT NULL default '',
  `Vote_Choix` int(1) unsigned NOT NULL default '0',
  `Vote_Date` datetime NOT NULL default '0000-00-00 00:00:00',
  UNIQUE KEY `Vote_Id` (`Vote_Id`),
  UNIQUE KEY `Vote_Clef_IdImag_IdUser` (`Vote_Id_Image`,`Vote_Id_User`),
  KEY `Vote_Id_Image` (`Vote_Id_Image`,`Vote_Id_User`)
) TYPE=MyISAM;

------------------------------------------------------------------------
Voici après deux petites modif pour avoir 100 photos les mieux notées et les 100 photos les plus controversées
vous pourrez donc mettre l'une ou l'autre ou les deux si ca vous interresse. Merci à dimdim d'avoir rajouté l'auteur dans le tableau
------------------------------------------------------------------------

1> dans .\template\default\category.vtp après les lignes suivantes :

              <!--/VTP_favorites-->
              <br />&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<span style="font-weight:bold;">{#stats}</span>
              <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<a href="{#most_visited_url}"><span title="{#most_visited_cat_hint}" style="font-weight:bold;">{#top_number}&nbsp;{#most_visited_cat}</span></a>
              <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<a href="{#recent_url}"><span title="{#recent_cat_hint}" style="font-weight:bold;">{#recent_cat}</span></a> {#icon_short}


Ajouter :

               <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<a href="./meilleurnote.php"><span title="Les mieux notées" style="font-weight:bold;">Les mieux notées</span></a> {#icon_short}
               <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="{#lien_collapsed}" alt="&gt;" />&nbsp;<a href="./controverse.php"><span title="Les plus controversées" style="font-weight:bold;">Les plus controversées</span></a> {#icon_short}

2> créer un fichier .\controverse.php pour les + controversées avec ceci comme code:

<?php
$title = "Les Notes";
include_once( './include/init.inc.php' );
initialize_category();

//----------------------------------------------------- template initialization
include('include/page_header.php');
$handle = $vtp->Open( './template/'.$user['template'].'/category.vtp' );
initialize_template();

//------------------------------------------------------------------
//Les meilleurs
//------------------------------------------------------------------

  $array_cat_directories = array();
  $query = "SELECT ".PREFIX_TABLE."pc_vote.Vote_Id_Image, ";
  $query.= "COUNT(  ".PREFIX_TABLE."pc_vote.Vote_Choix )  AS Note_Votes, ";
  $query.= "AVG(  ".PREFIX_TABLE."pc_vote.Vote_Choix )  AS Note_Moyenne, ";
  $query.= "STD(  ".PREFIX_TABLE."pc_vote.Vote_Choix )  AS Note_Ecart, ";
  $query.= "MIN(  ".PREFIX_TABLE."pc_vote.Vote_Choix )  AS Note_Min, ";
  $query.= "MAX(  ".PREFIX_TABLE."pc_vote.Vote_Choix )  AS Note_Max, ";
  $query.= PREFIX_TABLE."images.name, ";
  $query.= PREFIX_TABLE."images.author, ";
  $query.= PREFIX_TABLE."images.file, ";
  $query.= PREFIX_TABLE."images.filesize, ";
  $query.= PREFIX_TABLE."images.tn_ext, ";
  $query.= PREFIX_TABLE."images.storage_category_id ";
  $query.= "FROM   ".PREFIX_TABLE."pc_vote ";
  $query.= "INNER JOIN   ".PREFIX_TABLE."images ON   ".PREFIX_TABLE."pc_vote.Vote_Id_Image =  ".PREFIX_TABLE."images.id ";
  $query.= "GROUP  BY  `Vote_Id_Image`";
  $query.= "ORDER BY Note_Ecart DESC LIMIT 0,100";
  $result = mysql_query( $query );

  while ( $row = mysql_fetch_array( $result ) )
  {
    // retrieving the storage dir of the picture
    if ( !isset($array_cat_directories[$row['storage_category_id']]))
    {
      $array_cat_directories[$row['storage_category_id']] =
        get_complete_dir( $row['storage_category_id'] );
    }
    $cat_directory = $array_cat_directories[$row['storage_category_id']];

    $file = get_filename_wo_extension( $row['file'] );

    // thumbnail url
    $thumbnail_url = $cat_directory;
    $thumbnail_url.= 'thumbnail/'.$conf['prefix_thumbnail'];
    $thumbnail_url.= $file.'.'.$row['tn_ext'];
    // afficher auteur
    $auteur = 'Photographe: <b>'.$row['author'].'</b>';

    echo '<p align="center">';
    echo '<table border>';
    echo '<tr><td rowspan="2" width="165" height="165"> <p align="center"><img src="' .$thumbnail_url .'" ';
    echo '<br />';
    echo '<br />';
    echo ''.$auteur ;
    echo '</td></p>';
    echo '<td width="300"><p align="center">';
    if ($row['name'] != '')
    {
        echo $row['name'] ;
    }
    else
    {
        echo $row['file'] ;
    }
    echo '</p></td></tr>';

    echo '<tr><td width="300">';
    echo '<blockquote>';
    echo '<br /><br />  Nb Votes  = ' .$row['Note_Votes'] ;
    echo '<br />  Moyenne   = ' .round($row['Note_Moyenne'] ,2) ;
    echo '<br />  Ecart     = ' .round($row['Note_Ecart'] ,2) ;
    echo '<br />  Min       = ' .$row['Note_Min'] ;
    echo '<br />  Max       = ' .$row['Note_Max'] .'</td>';
    echo '</blockquote>';
    echo '</td>    </tr>';
    echo '</table>';
    echo '</p>';

  }

include('include/page_tail.php');

?>

3> créer un fichier ./meilleurnote.php pour les mieux notées identique au précédent sauf la ligne :

  $query.= "ORDER BY Note_Ecart DESC LIMIT 0,100";

qu'il faut remplacer par :

  $query.= "ORDER BY Note_Moyenne DESC LIMIT 0,100";

Voila ca marche si vous voulez + ou moins de photos vous changez la LIMIT.

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact