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

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [résolu] titre produit
cetanne
posté 8 Sep 2010, 14:32
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



Bonjour tout le monde,

Voici mon problème. Je voudrais ajouter un sous-titre à mes produits. Pour l'instant, je passe par un encodage html du titre dans le champ de l'admin (<p>, <br>…). J'aimerai un deuxième champ dans l'admin.
Quelqu'un a-t-il une piste ?

merci

Ce message a été modifié par cetanne - 9 Sep 2010, 23:29.
Go to the top of the page
 
Quentin de Monta...
posté 8 Sep 2010, 15:11
Message #2


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



Il faut ajouter dans la table "TABLE_PRODUCTS_DESCRIPTION" de la BDD ce champ :
Code
  `products_cplmt_name` varchar(64) default NULL,


Dans le fichier catalog/admin/categories

chercher cette ligne (252) :
Code
            $sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),

Ajouter dessous cette ligne :
Code
                                    'products_cplmt_name' => tep_db_prepare_input($HTTP_POST_VARS['products_cplmt_name'][$language_id]),

chercher cette ligne (300) :
Code
              tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_url']) . "', '0')");

La remplacer par celle-ci :
Code
              tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_cplmt_name, products_description, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_cplmt_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_url']) . "', '0')");

Chercher cette ligne (369) :
Code
    $parameters = array('products_name' => '',

Ajouter dessous cette ligne :
Code
                       'products_cplmt_name' => '',

Chercer cette ligne (394) :
Code
      $products_name = $HTTP_POST_VARS['products_name'];

Ajouter dessous cette ligne :
Code
      $products_cplmt_name = $HTTP_POST_VARS['products_cplmt_name'];

Chercher ces lignes (508) :
Code
          <tr>
            <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_NAME; ?></td>
            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('products_name[' . $languages[$i]['id'] . ']', (isset($products_name[$languages[$i]['id']]) ? stripslashes($products_name[$languages[$i]['id']]) : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td>
          </tr>

Ajouter ces lignes dessous :
Code
          <tr>
            <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_CPLMT_NAME; ?></td>
            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('products_cplmt_name[' . $languages[$i]['id'] . ']', (isset($products_cplmt_name[$languages[$i]['id']]) ? stripslashes($products_cplmt_name[$languages[$i]['id']]) : tep_get_products_cplmt_name($pInfo->products_id, $languages[$i]['id']))); ?></td>
            </tr>

Chercher ces lignes (619) :
Code
      if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
        $pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
        $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
        $pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
      } else {
        $pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
        $pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
        $pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
      }

Les remplacer par celles-ci :
Code
      if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
        $pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
        $pInfo->products_cplmt_name = tep_get_products_cplmt_name($pInfo->products_id, $languages[$i]['id']);
        $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
        $pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
      } else {
        $pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
        $pInfo->products_cplmt_name = tep_db_prepare_input($products_cplmt_name[$languages[$i]['id']]);
        $pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
        $pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
      }

Chercher cette ligne (716) :
Code
        echo tep_draw_hidden_field('products_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_name[$languages[$i]['id']])));

Aouter celle-ci, dessous :
Code
        echo tep_draw_hidden_field('products_cplmt_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_cplmt_name[$languages[$i]['id']])));

Chercher ces lignes (817) :
Code
    if (isset($HTTP_GET_VARS['search'])) {
      $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and pd.products_name like '%" . tep_db_input($search) . "%' order by pd.products_name");
    } else {
      $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by pd.products_name");
    }

Les remplacer par celles-ci :
Code
    if (isset($HTTP_GET_VARS['search'])) {
      $products_query = tep_db_query("select p.products_id, pd.products_name, pd.products_cplmt_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and pd.products_name like '%" . tep_db_input($search) . "%' order by pd.products_name");
    } else {
      $products_query = tep_db_query("select p.products_id, pd.products_name, pd.products_cplmt_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by pd.products_name");
    }

Chercher cette ligne (843) :
Code
                <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a>&nbsp;' . $products['products_name']; ?></td>

La remplacer par celle-ci :
Code
                <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a>&nbsp;' . $products['products_name'] . '</a>&nbsp;' . $products['products_cplmt_name']; ?></td>


Ce message a été modifié par Quentin de Montargis - 9 Sep 2010, 09:57.
Go to the top of the page
 
Quentin de Monta...
posté 8 Sep 2010, 15:29
Message #3


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



Dans le fichier catalog/admin/includes/languages/french/categories.php, il faut ajouter cette ligne :
Code
define('TEXT_PRODUCTS_CPLMT_NAME', 'Complèment :');

Dans le fichier catalog/product_info.php
J'ai ajouté le complément de nom entre le nom et le modèle, pour cela il faut :
Chercher cette ligne (84) :
Code
      $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>';

Et la remplacer par cette ligne :
Code
      $products_name = $product_info['products_name'] . '<br><span class="main">' . $product_info['products_cplmt_name'] . '</span><br><span class="smallText">[' . $product_info['products_model'] . ']</span>';
Go to the top of the page
 
cetanne
posté 8 Sep 2010, 15:39
Message #4


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



Wow !! impressionnant. merci, je vais tester ça de suite. Et pour l'intégrer dans mes pages, ça se passe au cas par cas dans chacune d'entre elles ?
Go to the top of the page
 
cetanne
posté 8 Sep 2010, 15:40
Message #5


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



ha, je vois, la suite arrive. Merci !!!
Go to the top of the page
 
Quentin de Monta...
posté 8 Sep 2010, 15:42
Message #6


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



oui, il faut suivre pas à pas ces modifications. Les N° de lignes sont informatives car elles peuvent être différentes si tu as ajouté une contribution qui touche ce fichier.
Go to the top of the page
 
cetanne
posté 8 Sep 2010, 15:51
Message #7


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



pour la bdd, j'aurais dans la colonne null oui et dans default NULL ?
Go to the top of the page
 
cetanne
posté 8 Sep 2010, 16:09
Message #8


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



arg, j'ai cette erreur :


Fatal error: Call to undefined function: tep_get_products_cplmt_name() in /homepages/14/d238472327/htdocs/catalog/walhalla/categories.php on line 558

Ce message a été modifié par cetanne - 8 Sep 2010, 16:31.
Go to the top of the page
 
cetanne
posté 8 Sep 2010, 16:30
Message #9


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



j'ai résolu ce problème, mais pas moyen de l'afficher dans mes pages.

(ma solution : dans /catalog/admin/includes/functions/general.php, après
Code
function tep_get_products_name($product_id, $language_id = 0) {
    global $languages_id;

    if ($language_id == 0) $language_id = $languages_id;
    $product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
    $product = tep_db_fetch_array($product_query);

    return $product['products_name'];
  }
ajouter
Code
function tep_get_products_cplmt_name($product_id, $language_id = 0) {
    global $languages_id;

    if ($language_id == 0) $language_id = $languages_id;
    $product_query = tep_db_query("select products_cplmt_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
    $product = tep_db_fetch_array($product_query);

    return $product['products_cplmt_name'];
  }
)

Ce message a été modifié par cetanne - 8 Sep 2010, 17:01.
Go to the top of the page
 
Quentin de Monta...
posté 9 Sep 2010, 09:26
Message #10


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



Tout à fait j'avais oublié, dans le fichier catalog/admin/include/functions/general.php après ces lignes :
Code
  function tep_get_products_name($product_id, $language_id = 0) {
    global $languages_id;

    if ($language_id == 0) $language_id = $languages_id;
    $product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
    $product = tep_db_fetch_array($product_query);

    return $product['products_name'];
  }

Il faut rajouter ces lignes :
Code
  
  function tep_get_products_cplmt_name($product_id, $language_id) {
    global $languages_id;

    $product_query = tep_db_query("select products_cplmt_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
    $product = tep_db_fetch_array($product_query);

    return $product['products_cplmt_name'];
  }


Ce message a été modifié par Quentin de Montargis - 9 Sep 2010, 09:27.
Go to the top of the page
 
Quentin de Monta...
posté 9 Sep 2010, 09:56
Message #11


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



Il y a une omission.

Dans le fichier catalog/admin/categories

Chercher cette ligne (602) :
Code
      $products_name = $HTTP_POST_VARS['products_name'];

Ajouter cette ligne dessous :
Code
      $products_cplmt_name = $HTTP_POST_VARS['products_cplmt_name'];
Go to the top of the page
 
Quentin de Monta...
posté 9 Sep 2010, 11:08
Message #12


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



Tu peux aussi mettre le complément de nom dans le listing des nouveautés, pour cela, il faut

Dans le fichier catalog/products_new.php

Chercher cette ligne (56) :
Code
  $products_new_query_raw = "select p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id, p.products_date_added, m.manufacturers_name from " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on (p.manufacturers_id = m.manufacturers_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.products_date_added DESC, pd.products_name";

Et la remplacer par celle-là :
Code
  $products_new_query_raw = "select p.products_id, pd.products_name, pd.products_cplmt_name, p.products_image, p.products_price, p.products_tax_class_id, p.products_date_added, m.manufacturers_name from " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on (p.manufacturers_id = m.manufacturers_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.products_date_added DESC, pd.products_name";

Chercher ces lignes (87) :
Code
          <tr>
            <td width="<?php echo SMALL_IMAGE_WIDTH + 10; ?>" valign="top" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $products_new['products_image'], $products_new['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>'; ?></td>
            <td valign="top" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br>' . TEXT_MANUFACTURER . ' ' . $products_new['manufacturers_name'] . '<br><br>' . TEXT_PRICE . ' ' . $products_price; ?></td>
            <td align="right" valign="middle" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a>'; ?></td>
          </tr>

Et les remplacer par celles-là :
Code
          <tr>
            <td width="<?php echo SMALL_IMAGE_WIDTH + 10; ?>" valign="top" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $products_new['products_image'], $products_new['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>'; ?></td>
            <td valign="top" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br><u><i>' . $products_new['products_cplmt_name'] . '</i></u><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br>' . TEXT_MANUFACTURER . ' ' . $products_new['manufacturers_name'] . '<br><br>' . TEXT_PRICE . ' ' . $products_price; ?></td>
            <td align="right" valign="middle" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a>'; ?></td>
          </tr>

Go to the top of the page
 
cetanne
posté 9 Sep 2010, 23:28
Message #13


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



Merci Quentin, ça marche !!!
je classe en résolu…
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 : 20th June 2013 - 03:16
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)