Jump to content

Caractères interdits Import CSV


Serial

Recommended Posts

Bonjour,

 

Je rencontre un problème sur l'import de fichiers CSV. En effet, j'ai une caractéristique avec le caractère interdit supérieur '>'.

 

Je n'ai aucun moyen de remplacer ce caractère par un autre.

Y a t-il une solution pour contourner le souci ?

 

Merci.

Link to comment
Share on other sites

Est-ce que c'est un groupe de caractéristique ou une valeur de caractéristique qui est concerné ?

En fonction c'est la classe Feature ( groupe ) ou FeatureValue (caractèristique) qu'il faut surcharger.

 

Donc dans l'idée le fonctionnement est le suivant
Surcharge de la classe :

class Feature extends FeatureCore
{
	/**
	 * @see ObjectModel::$definition
	 */
	public static $definition = array(
		'table' => 'feature',
		'primary' => 'id_feature',
		'multilang' => true,
		'fields' => array(
			'position' => 	array('type' => self::TYPE_INT, 'validate' => 'isInt'),

			// => Champ pour lequel il faut changer la validation
			'name' => 		array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericNamePerso', 'required' => true, 'size' => 128),
		),
	);
	
}

Et ajout d'une règle de validation perso dans un override la classe validate qui autorise le caractère souhaité

class Validate extends ValidateCore {

	/**
	 * Fonction personnalisée pour autoriser caractères < et >
	 * Check for standard name validity
	 *
	 * @param string $name Name to validate
	 * @return boolean Validity is ok or not
	 */
	public static function isGenericNamePerso($name)
	{
		return empty($name) || preg_match(Tools::cleanNonUnicodeSupport('/^[^={}]*$/u'), $name);
	}


}
Link to comment
Share on other sites

J'ai du mal à différencier groupe et valeur.

 

J'ai une caractéristique "Entretien" qui contient plusieurs valeurs (donc je suppose que c'est sur le groupe qu'il faut que j'agisse).

Et ces valeurs peuvent contenir des "<>".

 

EDIT : J'ai essayé ta solution. Et j'ai un message d'erreur :

FeatureValue->value is not valid

 

EDIT 2 : J'ai fais un override de la classe FeatureValue en suivant les mêmes indications. Ca fonctionne !

C'est top, merci !

Edited by Serial (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...