Aide - Recherche - Membres - Calendrier
Version complète : [RESOLU] Mettre un alt sur l'image...
Forum osCommerce-fr > Les Bases d'OsCommerce MS2 > Fonctionnement
diaph
smile.gif Bonjour,
Je précise d'abord que mon site est une banque d'images !
Dans la page products_listing.php:
Je voudrais faire apparaître sur mes images, "alt" ou "title", une info tel que le titre de l'image par ex: Village de Bellevue-sur-l'Idéal, (products_name étant la référence).
Pour cela j'ai tenté d'utiliser la table products_url (qui ne me sert à rien) et je l'ai renseignée avec mon info.
J'ai ensuite modifié mon code dans products_listing comme suit:
Code
case 'PRODUCT_LIST_IMAGE':
            $lc_align = 'center';
            if (isset($_GET['manufacturers_id'])) {
                $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . (int)$_GET['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_url'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
            } else {
                $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_url'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>&nbsp;';
            }
            break;

J'ai donc remplacé : $listing[$x]['products_name'] par $listing[$x]['products_url']
Résultat néant !
J'ai tenté la même expérience sur products_info.php en changeant
Code
addslashes($product_info['products_name'])

par :
Code
addslashes($product_info['products_url'])

Et ça fonctionne !
Ma question: pourquoi cela ne fonctionne pas sur products_listing ?
Merci
Gnidhal
tout simplement parce que la requête situé dans index.php ou dans advanced_search_result.php ne charge pas le champ products_url
regarde dans la variable $select_column_list et ajoute le champ products_url wink.gif
diaph
Merci Gnidhal, mais j'y avais pensé: j'ai modifiés les fichiers concernés (comme tu me l'as conseillé), mais rien n'y fait.
Je ne comprend pas... blink.gif
FoxP2
postes nous les requêtes modifiées.
diaph
Dans index.php vers ligne 143:
Code
// create column list
    $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
                         'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
             'PRODUCT_LIST_URL' => PRODUCT_LIST_URL,
                         'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
                         'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
                         'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
                         'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
                         'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
              // BOF: Product Listing in Columns
                         'PRODUCT_LIST_MULTIPLE' => PRODUCT_LIST_MULTIPLE,
                         'PRODUCT_LIST_BUY_NOW_MULTIPLE' => PRODUCT_LIST_BUY_NOW_MULTIPLE,
                      // EOF: Product Listing in Columns
                         'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

vers ligne 168:
Code
$select_column_list = '';

    for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
      switch ($column_list[$i]) {
        case 'PRODUCT_LIST_MODEL':
          $select_column_list .= 'p.products_model, ';
          break;
        case 'PRODUCT_LIST_NAME':
          $select_column_list .= 'pd.products_name, ';
          break;
    case 'PRODUCT_LIST_URL':
          $select_column_list .= 'pd.products_url, ';
          break;
        case 'PRODUCT_LIST_MANUFACTURER':
          $select_column_list .= 'm.manufacturers_name, ';
          break;
        case 'PRODUCT_LIST_QUANTITY':
          $select_column_list .= 'p.products_quantity, ';
          break;
        case 'PRODUCT_LIST_IMAGE':
          $select_column_list .= 'p.products_image, ';
          break;
        case 'PRODUCT_LIST_WEIGHT':
          $select_column_list .= 'p.products_weight, ';
          break;
      }
    }

vers ligne 223:
Code
$sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
      $sort_order = substr($HTTP_GET_VARS['sort'], 1);
      $listing_sql .= ' order by ';
      switch ($column_list[$sort_col-1]) {
        case 'PRODUCT_LIST_MODEL':
          $listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_NAME':
          $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
          break;
        case 'PRODUCT_LIST_MANUFACTURER':
          $listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_QUANTITY':
          $listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_IMAGE':
          $listing_sql .= "pd.products_name";
          break;
    case 'PRODUCT_LIST_URL':
          $listing_sql .= "pd.products_name";
          break;
        case 'PRODUCT_LIST_WEIGHT':
          $listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_PRICE':
          $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;

idem dans advanced_search-result.php
merci
Gnidhal
bah non, le case n'est là que pour ajouter le champ à la requête quand il est requis par la config donc faut virer l'ajout du champ dans le filtre case et le forcer en fin de liste en dehors de la boucle :
$select_column_list .= 'pd.products_url, ';
ou plus simplement l'ajouter dans la section name :
$select_column_list .= 'pd.products_name, pd.products_url, ';

et ça devrait rouler wink.gif
diaph
ça roule...
merci beaucoup.
Bon dimanche.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.