différence Oscommerce MS2 classique et OSCSS !!! (quant aux reviews)

Archive

Messagepar Mali » Mer 05 Sep 2007, 17:12

Je viens de me rendre compte que l'option CRITIQUE (reviews) de le MS2 n'est pas dispo sur celle d'OSCSS ????

les fichiers

product_reviews_info.php
product_reviews_write.php

ne sont pas présents sur OSCSS.

Je souhaite réaliser ce type de fichier :
http://www.babywell.fr/product_info.php?products_id=293

avec le bouton "commentaire" qui ouvre une nouvelle page.

sur Oscss, on a :

http://www.boutique-medievale.com/produ ... cts_id=342

"Critiques actuelles : 0. Vous devez ètre enregistré pour commenter un article"

Et quand on se connecte on a tout qui apparait endessous...

Je souhaiterai, comme dans le premier exemple, qu'une nouvelle page s'ouvre pour pouvoir soit lire les commentaires, soit me connecter pour les inscrire...

Comment faire désormais sur OSCSS pour obtenir ce résultat ?

merci

Mali
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Mer 05 Sep 2007, 21:00

de nombreuses erreurs (enfin je pense) dans le fichier modules/product_reviews.php

Certains "reviews" sont remplacés par des "reveiws" dans le texte.

Sinon comment faire une light box ou popup avec ce fichier afin que quand on clique sur un bouton, on puisse renseigner et lire les commentaires ?



Code: Tout sélectionner
<?php

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_REVIEWS);

  $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$_GET['products_id'] . "'");
  $reviews = tep_db_fetch_array($reviews_query);
  $reviews_query_average = tep_db_query("select (avg(reviews_rating)) as average_rating from " . TABLE_REVIEWS . " where products_id = '" . (int)$_GET['products_id'] . "'");
  $reviews_average = tep_db_fetch_array($reviews_query_average);
  $reviews_stars = $reviews_average['average_rating'];
  $reviews_rating = number_format($reviews_stars,0);


  if ($reviews['count'] > 0) {
?>       
  <div id="currentReviews">
    <p class="currentReviews"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></p>
    <p class="averageReviews"><?php echo TEXT_REVIEW_AVERAGE . tep_image(DIR_WS_IMAGES . 'stars/stars_' . $reviews_rating . '.gif'); ?></p>
  </div>

<?php
  } else {
?>

  <div id="currentReviews">
    <p><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></p>
  </div>

<?php
  }

  $reviews_query = tep_db_query("select r.reviews_id, (rd.reviews_text) as reviews_text, r.reviews_rating, r.date_added, r.customers_name from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$_GET['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "' order by r.reviews_id desc");
  while ($reviews = tep_db_fetch_array($reviews_query)) {

?>

  <div>
    <blockquote class="review">
    <p class="review"><?php echo tep_output_string_protected($reviews['reviews_text']) ; ?></p>
    <p><cite><?php echo sprintf(TEXT_REVIEW_BY, tep_output_string_protected($reviews['customers_name'])) ; ?> <span class="reviewDate"><?php echo sprintf(tep_date_long($reviews['date_added'])); ?></span> <span class="reviewRate"><?php echo tep_image(DIR_WS_IMAGES . 'stars/stars_' . $reviews['reviews_rating'] . '.gif') ;?></span></cite></p>
    </blockquote>
  </div>

<?php
  }

  if (!tep_session_is_registered('customer_id')) {
    echo sprintf( TEXT_REVIEWS_UNREGISTERED_USER,tep_href_link(FILENAME_LOGIN) );
  } else {
?>

  <div>

  <?php echo tep_draw_form('product_reviews_write', tep_href_link(FILENAME_PRODUCT_INFO, 'action=process&amp;products_id=' . $_GET['products_id']), 'post', 'onsubmit="return checkForm();"'); ?>

  <fieldset>
    <legend><?php echo SUB_TITLE_REVIEW; ?></legend>
   
      <?php echo tep_draw_textarea_field('review', 'review', 60, 15); ?>
      <p><?php echo TEXT_NO_HTML; ?></p>
   

      <h4><?php echo SUB_TITLE_RATING ;?></h4>
      <p><?php echo TEXT_BAD . ' ' . tep_draw_radio_field('rating', '1', '1') . ' ' . tep_draw_radio_field('rating', '2', '2') . ' ' . tep_draw_radio_field('rating', '3', '3') . ' ' . tep_draw_radio_field('rating', '4', '4') . ' ' . tep_draw_radio_field('rating', '5', '5') . ' ' . TEXT_GOOD; ?></p>


      <p><input class="submitBt" type="submit" value="<?php echo IMAGE_BUTTON_CONTINUE; ?>"  /></p>
  </fieldset>

  </form>

</div>

<?php
  }
?>

J'ai bien compris que la ligne :
Code: Tout sélectionner
if (!tep_session_is_registered('customer_id')) {
    echo sprintf( TEXT_REVIEWS_UNREGISTERED_USER,tep_href_link(FILENAME_LOGIN) );
  } else {

est celle que l'on voit quand on est pas connecté et nous invitant à nous rendre sur la plage login.php. Ca OK.

Maintenant, une fois connecté, comment faire pour qu'un bouton lance une lightbox avec tout le reste (formulaire, etc...). J'ai essayé, mais j'ai plein de message d'erreur.

Emmanuel, j'ai bien essayé, mais en vain... mes lacunes sont trop importantes...

Si quelqu'un veut bien se pencher dessus et m'aider...

Mali
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar cymbeline » Jeu 06 Sep 2007, 10:34

Bonjour Mali,

Qu'est-ce que tu as essayé au juste ?

Ce n'est qu'une SUPPOSITION, une piste a exploré, mais peut-être essayé de créer une nouvelle page avec ses FILENAME ; DEFINE ....... ; pourquoi pas la nommée : product_reviews_write.php et mettre ceci dedans (c'est dans products_reviews.php)

Code: Tout sélectionner
  <div>

  <?php echo tep_draw_form('product_reviews_write', tep_href_link(FILENAME_PRODUCT_INFO, 'action=process&amp;products_id=' . $_GET['products_id']), 'post', 'onsubmit="return checkForm();"'); ?>

  <fieldset>
    <legend><?php echo SUB_TITLE_REVIEW; ?></legend>
   
      <?php echo tep_draw_textarea_field('review', 'review', 60, 15); ?>
      <p><?php echo TEXT_NO_HTML; ?></p>
   

      <h4><?php echo SUB_TITLE_RATING ;?></h4>
      <p><?php echo TEXT_BAD . ' ' . tep_draw_radio_field('rating', '1', '1') . ' ' . tep_draw_radio_field('rating', '2', '2') . ' ' . tep_draw_radio_field('rating', '3', '3') . ' ' . tep_draw_radio_field('rating', '4', '4') . ' ' . tep_draw_radio_field('rating', '5', '5') . ' ' . TEXT_GOOD; ?></p>


      <p><input class="submitBt" type="submit" value="<?php echo IMAGE_BUTTON_CONTINUE; ?>"  /></p>
  </fieldset>

  </form>

</div>

et appelé cette page après ça (dans products_reviews.php) :

Code: Tout sélectionner
 if (!tep_session_is_registered('customer_id')) {
    echo sprintf( TEXT_REVIEWS_UNREGISTERED_USER,tep_href_link(FILENAME_LOGIN) );
  } else {

avec par exemple, quelque chose comme ça, qui ferait un lien "commenté":

Code: Tout sélectionner
 <?php echo tep_href_link(FILENAME_PRODUCTS_REVIEWS_WRITE)?>

Je pense qu'il faudrait re-créer les 2 pages : product_reviews_info.php et
product_reviews_write.php a partir du fichier actuel product_reviews.php après il reste le problème des boucles et des requêtes.:/

Si cela peut aider ;)

++
cymbeline
Membre très actif
 
Messages: 265
Inscription: Mer 06 Sep 2006, 20:01
Localisation: Nevers

Messagepar Mali » Jeu 06 Sep 2007, 10:43

Code: Tout sélectionner
il reste le problème des boucles et des requêtes.

merci à toi de t'y être pencher... en effet, reste ce gros problème.

Pour résumer il y a deux cas, celui qui est connecté et le simple visiteur.


Actuellement, le connecté voit les commentaires en bas de page et peut rajouter les siens sans souci. Le visiteur se voit proposer une phrase l'invitant à se logguer.

Maintenant, je souhaiterais qu'il y ait un bouton, qui une fois cliquer ouvre une lightbox proposant soit de se connecter soit de remplir les commentaire, soit de lire les commentaires... et ca je ne vois pas du tout comment cela peut s'articuler car il faut garder le lien produit entre la page product_info et celle des reviews... ce que je treouve dommage c'est que dans la MS2 classique ca existe sans aucun souci, et en faire une lightbox devrait etre assez simple. Les fiches product_review_write et product_review_info, n'existent plus et ont été complilé dans Oscss en une seule page, et je ne sais comment la diviser tout en gardant le lien entre elle...

Je ne suis pas persuadé d'avoir éte très clair... Merci à toi Cymbeline d'avoir passer du temps dessus.
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar cymbeline » Jeu 06 Sep 2007, 10:52

Si si c'est assez clair. :)

EN fait
Tu as dans product_reviews.php

Code: Tout sélectionner
 
<div id="currentReviews">
    <p><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></p>
  </div>

<?php
  }

Ce qui est au dessus permet d'afficher s'il y a 1 commentaire (pour tous le monde) et ce qu'il y a en dessous gère les otpions en fonction de : si tu es logué ou pas et affiche le formulaire.

Après reflexion, j'essayerais déjà de prendre tous le code du bas et de le mettre dans une nouvelle page (avec boucle et requête) et de l'appeler en suivant l'exemple cité dans mon autre post.

++
cymbeline
Membre très actif
 
Messages: 265
Inscription: Mer 06 Sep 2006, 20:01
Localisation: Nevers

Messagepar Mali » Jeu 06 Sep 2007, 10:58

en fait j'ai à peut prêt saisi comment fonctionne le product_reviews... quant aux boucles et autres requêtes, ca c'est un niveau que j'ai pas encore atteint, "moi petit sacarabé" :lol:

hier j'ai creusé quelques heures mais rien n'a fonctionné, donc pour l'instant, avec mon niveau actuel, je laisse tomber. Si quelqu'un souhaite placer sur son site cette option, et qu'il souhaite partager, je suis preneur :P

Encore merci Cymbeline
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39


Retourner vers osCSS 1.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron