osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Plusieurs mainpage aléatoires, suggestion
zoumok
posté 29 Mar 2005, 15:41
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 218
Inscrit : 29-October 04
Membre no 3624



Bonjour,

j'ai pensé à une astuce qui je pense pourrai en ravir plus d'un:

Imaginez une page d'accueil "mainpage.php" aléatoire, c'est à dire que par exemple vous auriez trois pages mainpage.php (1,2 et 3) ce qui permet d'avoir plus de produits présentés sur la page d'accueil sans pour autant faire un page trop lourde, et ainsi ne pas lasser l'aspect visuel des clients (ce qui n'empèche pas les mises à jours, mais offre plus de possibilités)
Et l'idéal serait d'afficher une page ou l'autre de façon aléatoire au chargement de l'accueil du site.

L'idée est là, la réalisation est un autre problème, avis aux amateurs smile.gif

Christian


--------------------
Cre Loaded 6
Go to the top of the page
 
Phocea
posté 30 Mar 2005, 08:38
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1448
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



C est plus facile a realiser en changeant un peu le code de products_new et en le mettant en mainpage.
J ai change le mien pour afficher 9 produits d'une poule de 100 recuperes aleatoirement dans la base, ca casse effectivement la monotonie smile.gif
Go to the top of the page
 
zoumok
posté 30 Mar 2005, 09:41
Message #3


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 218
Inscrit : 29-October 04
Membre no 3624



Idée en effet à retenir,

je vais faire des tests dans ce sens.

Christian


--------------------
Cre Loaded 6
Go to the top of the page
 
Phocea
posté 30 Mar 2005, 13:18
Message #4


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1448
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Voila l integralite de mon fichier new_products.php
Vu que tu es en creloaded egalement, il est situes dans le rep \catalogue\templates\TA TEMPLATE\mainpage_modules\

J utilise 2 varibles que je configure dans l admin, met les en dur dans ton code pour le moment ca sera plus simple (MAX_RANDOM_SELECT_NEW et MAX_DISPLAY_NEW_PRODUCTS)

CODE
<?php
/*
 $Id: new_products.php,v 1.35 2003/09/08 13:25:44 project3000 Exp $
 
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/
?>
<!-- new_products //-->
<?php

if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {  // in index.php
  $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit " . MAX_RANDOM_SELECT_NEW);

} else {   // in a category

$cats[] = $new_products_category_id; // current catID as starting value
// put cat-IDs of all cats nested in current branch into $cats array, go through all subbranches
for($i=0;$i<count($cats);$i++) {
 $categorie_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$cats[$i] . "'");
 while ($categorie = tep_db_fetch_array($categorie_query)) {
  $cats[] = $categorie['categories_id'];
 }
 $cats=array_unique($cats); // sort out doubles
}

//$num = (int) MAX_DISPLAY_NEW_PRODUCTS;
$num = (int) MAX_RANDOM_SELECT_NEW;
$new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id in (".implode(', ', $cats).") and p.products_status = '1' order by p.products_date_added desc limit " . $num);
}

if (tep_db_num_rows($new_products_query) > 0) {
// start random new products
 // To configure:
 //
 // Under Admin - Configuration - Maximum Values
 // Set the following:
 //  'Selection of Random New Products'
 //   (MAX_RANDOM_SELECT_NEW) - Sets how many of the most recent new product entries are queried
 //  'New Products Module'
 //   (MAX_DISPLAY_NEW_PRODUCTS) - Sets how many random new products are displayed on screen
 //
$info_box_contents = array();
$info_box_contents[] = array('text' => sprintf(TABLE_HEADING_NEW_PRODUCTS, strftime('%B')));
new infoBoxHeading($info_box_contents, false, false, tep_href_link(FILENAME_PRODUCTS_NEW));

$row = 0;
$col = 0;
   $pCount = 0;
   $found_products = array();
   $num_rows = tep_db_num_rows($new_products_query);
   if (MAX_DISPLAY_NEW_PRODUCTS > MAX_RANDOM_SELECT_NEW) {
     // don't allow more new products than will be queried
     $max_new_products = MAX_RANDOM_SELECT_NEW;
   } else {
     $max_new_products = MAX_DISPLAY_NEW_PRODUCTS;
   }
   if ($num_rows < $max_new_products) {
    $max_new_products = $num_rows;
   }
// while ($new_products = tep_db_fetch_array($new_products_query)) {

   while ($pCount < $max_new_products) {    
     // choose a random row
     $random_product = '';
     $random_row = tep_rand(0, ($num_rows - 1));
     tep_db_data_seek($new_products_query, $random_row);
     $random_product = tep_db_fetch_array($new_products_query);
     // see if found already, if not use else skip
     $found = 0;
     for ($ii=0; $ii < $pCount; $ii++) {
       if ($found_products[$ii] == $random_product['products_id']) {
         $found = 1;
         break;
       }
     }
     if ($found == 0) {
       // keep track of found id's
       $found_products[$pCount] += $random_product['products_id'];
       $pCount ++;
 
        $special_price = tep_get_products_special_price($random_product['products_id']);
        if ($special_price) {
          $products_price = '<s>' .  $currencies->display_price($random_product['products_price'], tep_get_tax_rate($random_product['products_tax_class_id'])) . '</s><br><span class="productSpecialPrice">' . $currencies->display_price($special_price, tep_get_tax_rate($random_product['products_tax_class_id'])) . '</span>';
        } else {
          $products_price = $currencies->display_price($random_product['products_price'], tep_get_tax_rate($random_product['products_tax_class_id']));
        }
  $random_product['products_name'] = tep_get_products_name($random_product['products_id']);
  $info_box_contents[$row][$col] = array('align' => 'center',
                                'params' => 'class="smallText" width="33%" valign="top"',
           'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $random_product['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $random_product['products_image'], $random_product['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $random_product['products_id']) . '">' . $random_product['products_name'] . '</a><br>' . $products_price);

      $col ++;
       if ($col > 2) {
         $col = 0;
         $row ++;
       }
     } // found
   } // while pCount

new contentBox($info_box_contents);
if (MAIN_TABLE_BORDER == 'yes'){
$info_box_contents = array();
 $info_box_contents[] = array('align' => 'left',
                               'text'  => tep_draw_separator('pixel_trans.gif', '100%', '1')
                             );
 new infoboxFooter($info_box_contents, true, true);
}
}

?>
<!-- new_products_eof //-->
Go to the top of the page
 
zoumok
posté 30 Mar 2005, 16:13
Message #5


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 218
Inscrit : 29-October 04
Membre no 3624



Merci pour ton code.

Je ne trouve pas de rep /mainpage_module
ma template E-vector

Mais je ne comprends pas trop comment mettre en dur les paramètres.

Christian


--------------------
Cre Loaded 6
Go to the top of the page
 
mosaic
posté 30 Mar 2005, 17:02
Message #6


Ceinture noire OSC
Icône de groupe

Groupe : Modérateurs
Messages : 2908
Inscrit : 24-October 04
Lieu : Quimper ( Finistère )
Membre no 3567



dans catalog/includes/modules/mainpage-modules/mainpage

Bonne continuation blush.gif


--------------------
#mosaic {
autodidacte: max;
derision: min;
ms3: never;
occupation: 9999;
latitude : 48;
longitude : -4.1;
competent: none !important;
}

documentation MS2 / F.A.Q. / Contribes FR / Contribes US
Go to the top of the page
 
zoumok
posté 31 Mar 2005, 06:18
Message #7


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 218
Inscrit : 29-October 04
Membre no 3624



Bonjour,

Merci, je vais tester, mais apparemment cela ne prendrais que les nouveaux produits, donc ce ne sera pas le top pour ce que je cherche à faire.
Je vais quand même tester dès que j'aurais quelques minutes de libre.

Christian


--------------------
Cre Loaded 6
Go to the top of the page
 
cathie
posté 4 May 2005, 09:26
Message #8


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 57
Inscrit : 12-December 04
Lieu : Espagne
Membre no 4048



Bonjour,

Cela marche aussi pour une ms2.2?


QUOTE
J utilise 2 varibles que je configure dans l admin, mets les en dur dans ton code pour le moment ca sera plus simple (MAX_RANDOM_SELECT_NEW et MAX_DISPLAY_NEW_PRODUCTS)



Que faut-il faire concrètement pour les mettre en dur smile.gif ?

Merci
Cathie
Go to the top of the page
 
mosaic
posté 4 May 2005, 09:39
Message #9


Ceinture noire OSC
Icône de groupe

Groupe : Modérateurs
Messages : 2908
Inscrit : 24-October 04
Lieu : Quimper ( Finistère )
Membre no 3567



Remplacer cette variable texte par un chiffre ( par exemple 10 )


--------------------
#mosaic {
autodidacte: max;
derision: min;
ms3: never;
occupation: 9999;
latitude : 48;
longitude : -4.1;
competent: none !important;
}

documentation MS2 / F.A.Q. / Contribes FR / Contribes US
Go to the top of the page
 
cathie
posté 4 May 2005, 10:37
Message #10


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 57
Inscrit : 12-December 04
Lieu : Espagne
Membre no 4048



Merci beaucoup, on apprend tous les jours, petit à petit et humblement.

A quoi correspondent ces variables?

Cette modification permet-elle bien d'afficher une liste de produits prélevés aléatoirement parmi l'ensemble des produits?

Cathie
Go to the top of the page
 
cathie
posté 4 May 2005, 11:09
Message #11


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 57
Inscrit : 12-December 04
Lieu : Espagne
Membre no 4048



J'ai trouvé un début de réponse.

QUOTE
'Selection of Random New Products'
//  (MAX_RANDOM_SELECT_NEW) - Sets how many of the most recent new product entries are queried
//  'New Products Module'
//  (MAX_DISPLAY_NEW_PRODUCTS) - Sets how many random new products are displayed on screen'


mais je n'arrive pas à traduire précisément. Le deuxième je pense que c'est le nombre de produits affichés sur la page. Le premier?

Quelqu'un m'aide?

Est-ce bien pour afficher une sélection de produits pris aléatoirement dans tout le catalogue des produits?

Merci
Cathie
Go to the top of the page
 
cathie
posté 4 May 2005, 11:36
Message #12


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 57
Inscrit : 12-December 04
Lieu : Espagne
Membre no 4048



Bon cela marche, j'ai des produits affichés qui viennent de tout le catalogue.

Ouf! cela fait un moment que je tourne et j'ai trouvé, merci à tous, en particulier à phocea et mosaic.

MAX_RANDOM_SELECT_NEW, à quoi cela correspond?
C'est le nombre de produits sélectionnés dans la base de données?

J'ai donné les valeurs de 9 pour MAX_DISPLAY_NEW_PRODUCTS et 100 pour MAX_RANDOM_SELECT_NEW

Cathie
Go to the top of the page
 
Phocea
posté 4 May 2005, 17:32
Message #13


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1448
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Salut,

Desole je n avais pas trop suivi le post apres ma 1ere intervention smile.gif

MAX_RANDOM_SELECT_NEW c'est le nombre de produits qu'il selectionne dans la base, en prenant les derniers rentres en 1er (classe par date d ajout).
De ce groupe il en tire ensuite MAX_DISPLAY_NEW_PRODUCTS au hasard pour les afficher

J espere que ca reponds a tes questions. Ca marche sur mon site pour voir le resultat (et acheter un truc pour la fete des meres au passage lol) wink.gif
Go to the top of the page
 
Steve11
posté 14 Jun 2005, 11:41
Message #14


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 154
Inscrit : 8-June 05
Membre no 6132



salut, je remonte ce post j'ai juste 2 petites questions.....

1. Est-ce que ce code prend bien tous les produits de la base ou seulement les nouveautés... Désolé mais je saisi pas le code, et j'ai pas envie d'attendre un mois pour le voir par moi meme wink.gif

2. [plus la peine blush.gif ]

Merci pour vos futures réponses

Ce message a été modifié par Steve11 - 15 Jun 2005, 13:44.


--------------------
-------- Ms2fr --------
Login box * POINTS AND REWARDS MODULE V1.00 * accept_privacy * quantity_product_list_acheron * Send mail HMTL * Prof_Invoice&PackingSlip_v0.2 * HeaderTags_V_2.5.6
Go to the top of the page
 
Steve11
posté 15 Jun 2005, 13:52
Message #15


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 154
Inscrit : 8-June 05
Membre no 6132



Salut c'est re-moi twisted.gif

J'utilise cette contribution mais j'aimerais rajouté la déscription du produit...

Qui pourrais m'aidé question.gif question.gif


NB : moi qui pensé etre "bon" en php evil.gif evil.gif


--------------------
-------- Ms2fr --------
Login box * POINTS AND REWARDS MODULE V1.00 * accept_privacy * quantity_product_list_acheron * Send mail HMTL * Prof_Invoice&PackingSlip_v0.2 * HeaderTags_V_2.5.6
Go to the top of the page
 
Steve11
posté 17 Jun 2005, 08:14
Message #16


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 154
Inscrit : 8-June 05
Membre no 6132



up mellow.gif

Vraiment personne ??? parce que ça fait 2 jours maintenant ... et j'y arrive pas ...

quand je fais un mysql_query il me renvois un parase error et quand je fait un tep_db_query il m'affiche ma commande comme si je fesait un echo avant dry.gif

Bref je continu de cherché .... mais si quelqu'un pouvait me mettre sur une piste sa serait cool....
Edit : bon j'ai testé product_description 1.2d.zip & Add a read more link the the products description_1.zip, un ne marche pas et l'autre n'est pas déstiné à l'usage que je veux lui donné...
Edit2: C'est bon j'abandonne... je me dirige vers une autre alternative


Merci quand meme wink.gif


--------------------
-------- Ms2fr --------
Login box * POINTS AND REWARDS MODULE V1.00 * accept_privacy * quantity_product_list_acheron * Send mail HMTL * Prof_Invoice&PackingSlip_v0.2 * HeaderTags_V_2.5.6
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 12:47
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)