modifier les select option des pays dans la boucle

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
9 years 10 months ago #178799

-- HikaShop version -- : 234
-- Joomla version -- : 336

Bonjour

dans la view com_hikashop/address/form.php

foreach($this->extraFields['address'] as $fieldName => $oneExtraField) {
 $fieldType = $oneExtraField->field_type;
switch ($fieldType) {
 case 'zone': 

if (in_array($oneExtraField->field_namekey, $zone_ht)){ 
$item = str_replace('</option>', ' ' . JText::_('PRICE_WITHOUT_TAX') . '</option>',$item) ;
 }

}

comment je recupere le zone_namekey ? $oneExtraField->field_namekey ne me donne rien

avec
<option value="country_French_Polynesia_76" id="address_country_country_French_Polynesia_76">France (Polynesie) </option>
je veux faire
<option value="country_French_Polynesia_76" id="address_country_country_French_Polynesia_76">France (Polynesie) HT</option>

merci

Last edit: 9 years 10 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82552
  • Thank you received: 13286
  • MODERATOR
9 years 10 months ago #178803

Bonjour,

Les zones du dropdown sont stockées dans la variable: $oneExtraField->field_value alors que $oneExtraField->field_namekey contient le nom du champs personnalisé, c'est à dire address_country

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
9 years 10 months ago #178838

Merci mais ca ne me dit pas comment je trouve le vrai #__hikashop_zone > zone_namekey qui correspond dans mon exemple a country_French_Polynesia_76

<option value="country_French_Polynesia_76" id="address_country_country_French_Polynesia_76">France (Polynesie) </option>

l'ideal serait meme de récupérer le #__hikashop_zone > zone_id , c'est encore plus simple pour une comparaison in_array

Please Log in or Create an account to join the conversation.

  • Posts: 26122
  • Thank you received: 4023
  • MODERATOR
9 years 10 months ago #178855

Bonjour,

Le namekey est unique et le namekey contient l'id à la fin.
Je ne vois donc pas de soucis.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
9 years 10 months ago #178925

je sais bien que le namekey et l'id sont unique mais quelles sont les variables dans votre boucle qui les récupère

$oneExtraField->field_value est un array , comment recuperez vous l'id là dedans ?

array(49) {
  ["country_Germany_81"]=>
  object(stdClass)#703 (2) {
    ["value"]=>
    string(9) "Allemagne"
    ["disabled"]=>
    string(1) "0"
  }

mon code actuel

mon tableau perso a comparer
$zone_ht = array(
"country_Guadeloupe_87",
"country_French_Guiana_75",
"country_Martinique_134",
"country_New_Caledonia_152",
"country_French_Polynesia_76",
"country_Reunion_174",
"country_French_Southern_Territories_77");

la boucle ou je veux comparer
foreach($this->extraFields['address'] as $fieldName => $oneExtraField) { 

$fieldType = $oneExtraField->field_type;
		
if($fieldType=='zone'){

if (in_array($namekey_de_la_zone, $zone_ht)){
	$item = str_replace('</option>', ' ' . JText::_('PRICE_WITHOUT_TAX') . '</option>',$item) ;
	}
}
}

et ca ne donne rien

et en plus je prefererai comparer les id c'est plus simple

Last edit: 9 years 10 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
9 years 10 months ago #178947

Bonjour,

Merci d'essayer quelque chose dans ce genre:

$curZone = array_keys($oneExtraField->field_value);
if(in_array($curZone[0],$zone_ht))

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
9 years 10 months ago #179101

Xavier wrote: Bonjour,

Merci d'essayer quelque chose dans ce genre:

$curZone = array_keys($oneExtraField->field_value);
if(in_array($curZone[0],$zone_ht))


je n'obtiens rien avec $curZone[0]

si je fais un print_r($curZone); j'ai ces valeurs
Array ( [0] => country_Germany_81 [1] => country_Andorra_5 [2] => country_Australia_13 [3] => country_Austria_14 [4] => country_Belgium_21 [5] => country_Bulgaria_33 [6] => country_Canada_38 [7] => country_Cyprus_55 [8] => country_Croatia_53 [9] => country_Denmark_57 [10] => country_Spain_195 [11] => country_Finland_72 [12] => country_Guadeloupe_87 [13] => country_French_Guiana_75 [14] => country_Martinique_134 [15] => country_New_Caledonia_152 [16] => country_French_Polynesia_76 [17] => country_Reunion_174 [18] => country_French_Southern_Territories_77 [19] => country_France__Metropolitan_74 [20] => country_Greece_84 [21] => country_Netherlands_150 [22] => country_Hungary_97 [23] => country_Ireland_103 [24] => country_Iceland_98 [25] => country_Italy_105 [26] => country_Latvia_117 [27] => country_Liechtenstein_122 [28] => country_Luxembourg_124 [29] => country_Macedonia_126 [30] => country_Malta_132 [31] => country_Mayotte_137 [32] => country_Monaco_141 [33] => country_Norway_160 [34] => country_New_Zealand_153 [35] => country_Poland_170 [36] => country_Portugal_171 [37] => country_Romania_175 [38] => country_United_Kingdom_222 [39] => country_Russia_176 [40] => country_Slovakia_189 [41] => country_Slovenia_190 [42] => country_St__Pierre_and_Miquelon_198 [43] => country_Sweden_203 [44] => country_Switzerland_204 [45] => country_Czech_Republic_56 [46] => country_Ukraine_220 [47] => country_United_States_of_America_223 [48] => country_Wallis_and_Futuna_Islands_233 )


curieusement si je fais if(in_array($curZone[14],$zone_ht)) ca marche pour toutes mes valeurs dans $zone_ht

Last edit: 9 years 10 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 26122
  • Thank you received: 4023
  • MODERATOR
9 years 10 months ago #179165

Bonjour,

Savez-vous que la valeur que vous cherchez ne se trouve pas dans le custom field mais dans l'adresse que vous souhaitez afficher ?

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
9 years 10 months ago #179245

Jerome wrote: Bonjour,

Savez-vous que la valeur que vous cherchez ne se trouve pas dans le custom field mais dans l'adresse que vous souhaitez afficher ?

Cordialement,


je ne veux pas comparer les adresses sinon je dois recommencer 3 fois en 3 langues , je veux l'id ou le namekey

Please Log in or Create an account to join the conversation.

  • Posts: 26122
  • Thank you received: 4023
  • MODERATOR
9 years 10 months ago #179269

Bonjour,

Alors je ne vois pas quel est votre soucis.
Vous avez toutes les informations nécessaires pour faire votre affichage.

Cordialement


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

Time to create page: 0.087 seconds
Powered by Kunena Forum