2016-06-13 2 views
-1

외부 웹 서비스를 통해 얻은 통신 회사를 추가하는 모듈을 만들었습니다. 데이터베이스에 대한 ADDICTION은 올바르게 수행되고 캐리어가 표시된 phpmyadmin에서 수행됩니다. 그러나, 화면 캐리어가 설치된 캐리어를 표시하고 다음 줄 오류 출력하지 :통신사 오류 표시

Warning: strip_tags() expects parameter 1 to be string, array given in C:\xampp\htdocs\prestashop\classes\db\Db.php on line 815

전체 메소드 코드는 다음과 같습니다

public function installCarriers() 
    {   
     $id_lang_default = Language::getIsoById(Configuration::get('PS_LANG_DEFAULT')); 
     $envios = Configuration::get('ENVIOS'); 
     foreach ($envios as $env) 
     {     
       $carrier = new Carrier(); 
       $carrier->name = $env->nombreModo; 
       $carrier->id_tax_rules_group = 0; 
       $carrier->active = TRUE; 
       $carrier->deleted = 0; 
       foreach (Language::getLanguages(true) as $language) 
        $carrier->delay[(int)$language['id_lang']] = $env->periodo_dia; 
       $carrier->shipping_handling = false; 
       $carrier->range_behavior = 0; 
       $carrier->is_module = true; 
       $carrier->is_free = false; 
       $carrier->shipping_external = false; 
       $carrier->external_module_name = (string)$this->name; 
       $carrier->need_range = true; 

       if ($carrier->add()) 
       { 
        // Associate carrier to all groups 
        $groups = Group::getGroups(true); 
        foreach ($groups as $group) 
         Db::getInstance()->insert('carrier_group', array('id_carrier' => (int)$carrier->id, 'id_group' => (int)$group['id_group'])); 

        // Create price range 
        $aux1 = intval($env->precioBase); 
        $aux2 = $aux1+1; 
        $rangePrice = new RangePrice(); 
        $rangePrice->id_carrier = $carrier->id; 
        $rangePrice->delimiter1 = $aux1; 
        $rangePrice->delimiter2 = $aux2; 
        $rangePrice->add(); 

        // Crear el rango de pesos para el carrier 
        $rangeWeight = new RangeWeight(); 
        $rangeWeight->id_carrier = $carrier->id; 
        $rangeWeight->delimiter1 = '0'; 
        $rangeWeight->delimiter2 = '10000'; 
        $rangeWeight->add(); 

        //Calculo del precio incluyendo el IVA (21%) 
        $priceIVA = str_replace(',', '.', $env->precioBase); 
        $priceIVA = (float)$priceIVA + (float)$priceIVA*(float)0.21; 

        // Asociar el carrier a la zona 1 = Europa 
        $zone = Zone::getIdByName('Europe'); 
        Db::getInstance()->insert('carrier_zone', array('id_carrier' => (int)$carrier->id, 'id_zone' => (int)$zone)); 
        Db::getInstance()->insert('delivery', array('id_carrier' => (int)$carrier->id, 'id_range_price' => (int)$rangePrice->id, 'id_range_weight' => (int)$rangeWeight->id, 'id_zone' => (int)$zone, 'price' => $priceIVA)); 



        // Copy the carrier logo 
        copy(dirname(__FILE__).'/views/img/'.$env->urlEmpresa, _PS_SHIP_IMG_DIR_.'/'.(int)$carrier->id.'.jpg'); 

       } 
     } 
    } 
+0

배열과 함께 "문자열"변수를 설정하는 것 같습니다. add() 함수를 호출하기 전에 모든 변수를 확인하십시오. – joseantgv

답변

0

는 개체 변수를 확인을 (정의 배열 필드) 다중 선택 값을 피하고 문자열 값 대신 배열을 지정하십시오 (array => string).