liste des pays modifier

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #43821

Bonjour

Je voudrais modifier la liste des pays et la ranger par zones de livraisons en faisant un SELECT UNION SELECT UNION ect ... avec des optgroup (nom de la zone) plus lisibles

où puis je changer la requete ? est il possible de faire un override pour eviter le piege des MAJ ?

Last edit: 12 years 8 months ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44008

C'est fait dans le fichier administrator/components/com_hikashop/types/country.php
Pour l'override, je vous recommende d'override toute la classe du fichier via un plugin system (faire un plugin system et copier/coller toute la classe dans le fichier du plugin pour qu'il soit chargé avant ce fichier et donc il l'overridera.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44012

merci l'override marche super

par contre pour celui ci www.hikashop.com/fr/forum/5-support-en-f...userviewhtmlphp.html impossible d'y arriver j'ai une page blanche

Last edit: 12 years 8 months ago by erickb.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44021

et pour la function display de la class hikashopCountryType

foreach($zones as $oneZone){
$this->values[] = JHTML::_('select.option', $oneZone->zone_id, $oneZone->zone_name_english.' ( '.$oneZone->zone_name.' )' );
}

comment puis je y inserer des optgroup ?

il y a pas un truc du genre $this->values[] = JHTML::_('select.optgroup', $oneZone->zone_id, $oneZone->zone_name_english.' ( '.$oneZone->zone_name.' )' );

merci

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44024

Comme cela:
$this->values[] = JHTML::_('select.optgroup', $optGroup);

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44027

super je vais essayer cet $this->values[] = JHTML::_('select.optgroup', $optGroup);


par contre c'est bizarre la function load est bien overridee mais pas la function display

j'ai change pour

foreach($zones as $oneZone){
$this->values[] = JHTML::_('select.option', $oneZone->zone_id, $oneZone->zone_name );
}

et j'ai toujours zone_name_english vous avez idee pourquoi ?

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44032

Aucune idée non. C'est la même classe, donc je ne vois pas comment cela serait possible de n'override que la moitié des fonctions.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44124

function display d'origine -->

foreach($zones as $oneZone){
			$this->values[] = JHTML::_('select.option', $oneZone->zone_id, $oneZone->zone_name_english.' ( '.$oneZone->zone_name.' )' );
		}

je viens d'essayer dans mon plugin ./plugins/system/hikashopcountries/hikashopcountries.php de changer pour -->
foreach($zones as $oneZone){
			$this->values[] = JHTML::_('select.option', $oneZone->zone_id, $oneZone->zone_name );
		}
et dans ./administrator/components/com_hikashop/types/country.php a la place des ( je mets des [ pour voir -->
foreach($zones as $oneZone){
			$this->values[] = JHTML::_('select.option', $oneZone->zone_id, $oneZone->zone_name_english.' [ '.$oneZone->zone_name.' ]' );
		}

et j'ai toujours -->
<option value="country_Belgium_21" id="address_country_country_Belgium_21">Belgium (België • Belgique • Belgien)</option>

le select semble généré ailleurs que dans cette function display par contre la function load est bien lue dans mon plugin

d'ailleurs dans le code c'est $oneZone->zone_id et country_Belgium_21 est le namekey , pas l'id , alors que la function load return $db->loadObjectList('zone_namekey');

Last edit: 12 years 8 months ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44129

Ah oui, c'est vrai que c'est un champs personnalisé.
L'affichage se fait avec la fonction handleZoneListing et la fonction display de la classe hikashopZone de administrator/components/com_hikashop/classes/field.php

Mais je croyais que vous ne vouliez changer que la requête ?

Il faudrait définir les classes de ce fichier également dans votre plugin si vous vous changer l'affichage

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44131

oui je veux changer la requete mais si je veux des optgroup il faut aussi changer le display

si je copie la class hikashopZone extends hikashopSingledropdown a la suite de class hikashopCountryType dans le plugin j'ai une page blanche, ça ne marche pas

quel dommage de ne pas pouvoir controler la sortie, mais a quoi sert votre function display ?
je voudrais changer cet affichage Belgium (België • Belgique • Belgien)

merci

Last edit: 12 years 8 months ago by erickb.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44138

la creation d'un plugin avec class hikashopZone extends hikashopSingledropdown plante tout le site meme le simple fait de l'activer dans l'admin

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44145

La fonction display est utilisée autre part. Par exemple, pour le champs de configuration du "main tax zone".

Comme je l'ai dit dans mon précédent message, il faut mettre toutes les classes dans votre plugin , pas juste hikashopZone

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44146

nicolas wrote: Comme je l'ai dit dans mon précédent message, il faut mettre toutes les classes dans votre plugin , pas juste hikashopZone

j'ai essaye aussi toutes les class a la suite de la class deja là et tout plante, ca ne marche pas

... c'est si simple de faire un overrides en C#

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44149

Et quelle est l'erreur ?

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44251

une page blanche sans infos meme en mode debug

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44264

Est-ce que vous pourriez regarder pour le message d'erreur dans vos log d'erreur PHP ?

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44279

page blanche simplement en activant le plugin

[22-Mar-2012 10:29:35] PHP Fatal error: Class 'hikashopClass' not found in /www/sacapuce.biz/plugins/system/hikashopdisplaycountries/hikashopdisplaycountries.php on line 12

la ligne 12 c'est --> class hikashopFieldClass extends hikashopClass{

il faut peut être déclarer le chemin de cette class hikashopClass

le xml de mon plugin

<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="system" method="upgrade">
	<name>Countries Display - HikaShop  (overrides)</name>
	<creationDate>March 2012</creationDate>
	<version>1.0.0</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>Copyright (C) 2010 HIKASHOP SARL - All rights reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
	<description>HikaShop Countries to override  types/country.php</description>
	<files>
		<filename plugin="hikashopdisplaycountries">hikashopdisplaycountries.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
	</params>
</install>

Last edit: 12 years 8 months ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44281

Ah oui, le pugin est chargé avant HikaShop. Du coup, il faut aussi rajouter la ligne suivante en haut du fichier du plugin:
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true;

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #44288

ca marche mais c'est la function setValues qui fait ça

merci

Last edit: 12 years 8 months ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #44292

C'est dans la fonction handleZoneListing:

$title = $zone->zone_name_english;
									if($zone->zone_name_english != $zone->zone_name){
										$title.=' ('.$zone->zone_name.')';
									}

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

Time to create page: 0.086 seconds
Powered by Kunena Forum