Surcharge de class hikashopRadioCheck

  • Posts: 263
  • Thank you received: 11
10 years 8 months ago #140040

Question piège!

Si je veux faire une surcharge de la classe hikashopRadioCheck de …../classes/field.php, on dirait que ça fonctionne bien dans un plug-in avec :

$fichier = rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'classes'.DS.'field.php';

include_once($fichier);

class hikashopRadioCheckOverride extends hikashopRadioCheck { 
….
}

Ce code ne devrait-il pas aussi fonctionner si je l'écris dans templates/../html/com_hikashop/administrator/classes/field.override.php ?

Merci

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

  • Posts: 82569
  • Thank you received: 13290
  • MODERATOR
10 years 8 months ago #140060

Non. Par contre, il fonctionnera si vous l'ajoutez via un plugin système.

The following user(s) said Thank You: Flooder

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

  • Posts: 263
  • Thank you received: 11
10 years 8 months ago #140106

Ça ne fonctionne pas! Grrrrr….

Mon plugin est fonctionnel car d'autres fonctions fonctionnent à l'intérieur.

Quelle serait donc la syntaxe exacte pour réussir un override la fonction display() de la classe hikashopRadioCheck du fichier admin classes/field.php?

Voici ce que j'ai essayé sans succès :

ex. 1

if(!@include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'classes'.DS.'field.php')){ return false; }
    class hikashopRadioCheckOverride extends hikashopRadioCheck {
    	function display($field, $value, $map, $inside, $options = '', $test = false, $allFields = null, $allValues = null){
         ….

    }
}

ex. 2
if(!@include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'classes'.DS.'field.php')){ return false; }
class hikashopRadioCheckOverride extends hikashopItem { 
    	function display($field, $value, $map, $inside, $options = '', $test = false, $allFields = null, $allValues = null){
         ….

    }
}

merci merci

Last edit: 10 years 8 months ago by Flooder.

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

  • Posts: 263
  • Thank you received: 11
10 years 8 months ago #140109

Autre question piège

J'ai déjà des overrides fonctionnels dans
templates/gantry/html/com_hikashop/administrator/helpers
et dans
templates/gantry/html/com_hikashop/administrator/types

Pourquoi peut-on faire des overrides mon dossier templates pour ces fichiers tandis qu'on ne peut pas avec le fichier /administrator/component/com_hikashop/classes/field.php?

Merci

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

  • Posts: 26122
  • Thank you received: 4023
  • MODERATOR
10 years 8 months ago #140118

Bonsoir,

Le système de custom fields ne peut pas être surchargé comme les classes HikaShop.
En effet, les custom fields sont gérés par la class "hikashopFieldClass" qui va s'occuper d'instancier ler classes de custom field.

la fonction "hikashop_get" possède un système permettant l'override des classes HikaShop. Ainsi vous pouvez surcharger la classe "hikashopFieldClass" mais pas la classe "hikashopRadioCheck".
Car il n'y a jamais de " hikashop_get('radiocheck') " appelé.

Ce que je peux vous conseiller si vous souhaitez vraiment surcharger la classe, c'est de faire un plugin permettant la création d'un nouveau type de custom field. Il pourra tout à fait étandre de "RadioCheck" et ainsi profiter du code déjà existant dans la classe.

J'espère que mon explication est compréhensible.

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.058 seconds
Powered by Kunena Forum