Page 1 sur 1

pb sur les options uniquement en français

MessagePublié: 02 Mai 2010, 15:50
par ubimedia
J'ai constaté un petit bug dans la version 1.4.7
Quand on veut ajouter une option et que l'on se trouve en langue Française (en anglais ça marche)
L'ajout de l'option ne fonctionne pas
Je ne trouve pas sur le forum anglais une solution, peut être ici

Re: pb sur les options uniquement en français

MessagePublié: 02 Mai 2010, 16:31
par ubimedia
Je me réponds à moi même vu que j'ai réussi à résoudre le problème. Donc je vous poste le code de 2 fonctions javascript qui ne prenait pas en compte le ' dans la page product_form.tpl

Sinon je pense sincèrement que opencart est la meilleure solution e-commerce publiée depuis prestashop (en mieux oui oui)

Back office plus simple
Module facile à développer => il m'a fallu 3h pour faire le module ATOS
Bref, je suis prêt à vraiment contribuer au développement open source de cette solution


Code: Tout sélectionner
function addOption() {   
   html  = '<div id="option' + option_row + '" class="option">';
   html += '<table class="form">';
   html += '<tr>';
   html += '<td><?php echo $entry_option; ?></td>';
   html += '<td>';
   <?php foreach ($languages as $language) { ?>
   <?php if ($language['language_id'] == $language_id) { ?>
   html += '<input type="text" name="product_option[' + option_row + '][language][<?php echo $language['language_id']; ?>][name]" value="Option ' + option_row + '" onkeyup="$(\'#option option[value=\\\'option' + option_row + '\\\']\').text(this.value);" />&nbsp;<img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />';
   <?php } else { ?>
   html += '<input type="text" name="product_option[' + option_row + '][language][<?php echo $language['language_id']; ?>][name]" value="Option ' + option_row + '" />&nbsp;<img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />';
   <?php } ?>
   <?php } ?>
   html += '</td>';
   html += '</tr>';
   html += '<tr>';
   html += '<td><?php echo $entry_sort_order; ?></td>';
   html += '<td><input type="text" name="product_option[' + option_row + '][sort_order]" value="" size="2" /></td>';
   html += '</tr>';
   html += '<tr>';
   html += '<td colspan="2"><a onclick="addOptionValue(\'' + option_row + '\');" class="button"><span><?php echo addslashes($button_add_option_value); ?></span></a> <a onclick="removeOption(\'' + option_row + '\');" class="button"><span><?php echo $button_remove; ?></span></a></td>';
   html += '</tr>';
   html += '</table>';
   html += '</div>';
      
   $('#options').append(html);
   
   $('#option').append('<option value="option' + option_row + '"><?php echo $text_option; ?> ' + option_row + '</option>');
   $('#option option[value=\'option' + option_row + '\']').attr('selected', 'selected');
   $('#option').trigger('change');

   option_row++;
}


Code: Tout sélectionner
function addOptionValue(option_id) {
   html  = '<div id="option' + option_id + '_' + option_value_row + '" class="option">';
   html += '<table class="form">';
   html += '<tr>';
   html += '<td><?php echo addslashes($entry_option_value); ?></td>';
   html += '<td>';
   <?php foreach ($languages as $language) { ?>
   <?php if ($language['language_id'] == $language_id) { ?>
   html += '<input type="text" name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][language][<?php echo $language['language_id']; ?>][name]" value="Option Value ' + option_value_row + '" onkeyup="$(\'#option option[value=\\\'option' + option_id + '_' + option_value_row + '\\\']\').text(\'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\' + this.value);" />&nbsp;<img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />';
   <?php } else { ?>
   html += '<input type="text" name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][language][<?php echo $language['language_id']; ?>][name]" value="Option Value ' + option_value_row + '" />&nbsp;<img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />';
   <?php } ?>   
   <?php } ?>
   html += '</td>';
   html += '</tr>';
   html += '<tr>';
   html += '<td><?php echo $entry_quantity; ?></td>';
   html += '<td><input type="text" name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][quantity]" value="' + '" size="2" /></td>';   
   html += '</tr>';
   html += '<tr>';
   html += '<td><?php echo $entry_subtract; ?></td>';
   html += '<td><select name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][subtract]">';
    html += '<option value="1"><?php echo $text_yes; ?></option>';
    html += '<option value="0"><?php echo $text_no; ?></option>';
    html += '</select></td>';
   html += '</tr>';
   html += '<tr>';
   html += '<td><?php echo $entry_price; ?></td>';
   html += '<td><input type="text" name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][price]" value="" /></td>';
   html += '</tr>';
   html += '<tr>';   
   html += '<td><?php echo $entry_prefix; ?></td>';
   html += '<td><select name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][prefix]">';
   html += '<option value="+"><?php echo $text_plus; ?></option>';
   html += '<option value="-"><?php echo $text_minus; ?></option>';
   html += '</select></td>';
   html += '</tr>';
   html += '<tr>';   
   html += '<td><?php echo $entry_sort_order; ?></td>';   
   html += '<td><input type="text" name="product_option[' + option_id + '][product_option_value][' + option_value_row + '][sort_order]" value="" size="2" /></td>';
   html += '</tr>';
   html += '<tr>';      
   html += '<td colspan="2"><a onclick="removeOptionValue(\'' + option_id + '_' + option_value_row + '\');" class="button"><span><?php echo $button_remove; ?></span></a></td>';
   html += '</tr>';
   html += '</table>';
   html += '</div>';
   
   $('#options').append(html);
   
   option = $('#option option[value^=\'option' + option_id + '_\']:last');
   
   if (option.size()) {
      option.after('<option value="option' + option_id + '_' + option_value_row + '">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo addslashes($text_option_value); ?> ' + option_value_row + '</option>');
   } else {
      $('#option option[value=\'option' + option_id + '\']').after('<option value="option' + option_id + '_' + option_value_row + '">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo addslashes($text_option_value); ?> ' + option_value_row + '</option>');
   }
   
   $('#option option[value=\'option' + option_id + '_' + option_value_row + '\']').attr('selected', 'selected');
   
   $('#option').trigger('change');
   
   option_value_row++;
}

Re: pb sur les options uniquement en français

MessagePublié: 02 Mai 2010, 16:45
par Imaxine
Pour le problème des options cela venait de la traduction française que l'on avait traduit auparavant comme cela dans le fichier upload/admin/language/french/catalog
Code: Tout sélectionner
$_['text_option_value']       = 'Valeur de l\'option';

et que nous avons corrigé de la sorte dans la dernière la version à télécharger
Code: Tout sélectionner
$_['text_option_value']       = 'Valeur de l&#39;option';

Il est possible que tu n'aies pas téléchargé la dernière version, d'ailleurs dans celle-ci nous avons remplacé toutes les apostrophes par l'entité html &#39; ce qui permet de ne pas mettre l'antislash "\" dans les fichiers traduits et ainsi de ne pas créer de bug avec le JS.

Re: pb sur les options uniquement en français

MessagePublié: 29 Mai 2010, 15:13
par jeebee2009
bonjour
mon site est online avec apparemment l ancienne version avec le bug
j'ai modifie le fichier admin\languages\french\catalog\product.php
mais le probleme est toujours la..
il y a t il un autre fichier a modifie
sachant que je ne veux pas tout reinstaller...

merci

jb

Re: pb sur les options uniquement en français

MessagePublié: 29 Mai 2010, 15:57
par Imaxine
Je te conseille d'installer la dernière version car elle est fiable à 100% plutôt que de vouloir chercher où se trouvent les fichiers défectueux.
Tu n'as pas tout à ré-installer seulement les deux répertoires de langues (admin/language/french et catalog/language/french)

Re: pb sur les options uniquement en français

MessagePublié: 31 Mai 2010, 09:53
par jeebee2009
thanks
je vais essayer