Développer avec RBS Change : Problème après Ajout d'un filtre sur un bloc

  • 80003.1

    24/07/2013 11:09


    mamous
    Rang : Expert
    Bonjour,

    J'ai développer un module en spec dans lequel je me suis basé sur la page Wiki RBS Filtres du Wiki, sa fonctionnait pour certain cas et parfois sa me donne l'erreur suivante : Fatal error: Call to undefined method media_persistentdocument_fileusage::getQuery() in url_site/modules/modulespec/lib/services/ModulespecService.class.php on line 64...
    Voici le code que j'utilise dans mon module spec :
    	/**
    	 * @param modulespec_persistentdocument_modulespec $doc
    	 * @param order_CartInfo $cart
    	 * @return boolean
    	 */
    	public function validateForCart($doc, $cart)
    	{
    		$df = f_persistentdocument_DocumentFilterService::getInstance();
    		$errors = array();
    		if ($df->checkValueFromJson($doc->getQuery(), $cart, $errors, $discount))
    		{
    			return true;
    		}
    		return false;
    	}

    Développeur & Intégrateur Web

    RBS Change
    V 3.5.2
    Ecommerce Core
  • 80003.2 en réponse à 80003.1 écrit par mamous

    24/07/2013 17:21


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Bonjour,

    L'erreur suivante :
    Fatal error: Call to undefined method media_persistentdocument_fileusage::getQuery() in url_site/modules/modulespec/lib/services/ModulespecService.class.php on line 64


    Indique que l'on tente d'invoquer la méthode getQuery() sur un document du type "modules_media/fileusage" et qu'il est impossible d'invoquer cette méthode.

    En outre quand je regarde votre code, rien ne garantit que le type de $doc soit celui escompté, ce qui permet effectivement d'obtenir ce type d'exception. Je ne peux vous dire pour quelle raison vous n'avez pas le type de document que vous attendez dans les cas où vous récupérer un document de type "modules_media/fileusage", mais le premier conseil que je puis vous donner pour éviter le problème serait de rajouter un test sur le type d'objet qu'est $doc, ce qui donnerait quelque chose du type :
    	/**
    	 * @param modulespec_persistentdocument_modulespec $doc
    	 * @param order_CartInfo $cart
    	 * @return boolean
    	 */
    	public function validateForCart($doc, $cart)
    	{
    		if ( $doc instanceof modulespec_persistentdocument_modulespec)
    		{
    			$df = f_persistentdocument_DocumentFilterService::getInstance();
    			$errors = array();
    			if ($df->checkValueFromJson($doc->getQuery(), $cart, $errors, $discount))
    			{
    				return true;
    			}
    		}
    		return false;
    	}
    


    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1387 membres
Aucun membre connecté