Bonjour,
j'ai été confronté a un problème sous Sobipro avec les champs de type "image".
Voici la solution que j'ai trouvée pour ceux que ça intéresse:
Si on coche "supprimer l'image" sans ajouter d'image : l'ancienne image est supprimée.
Si on coche "supprimer l'image" et on ajoute une nouvelle image : l'ancienne image n'est pas supprimée, la nouvelle est enregistrée et s'affiche.
Donc si on veut pouvoir supprimer l'ancienne image sur le serveur, la remplacer par une nouvelle et que la modification soit prise en compte --> la nouvelle image s'affiche, il faut modifier le fichier dans components\com_sobipro\opt\fields\image.php et ajouter le texte en bleu :
/* if we have an image */
if( $data ) {
$fileSize = SPRequest::file( $this->nid, 'size' );
if( $del ) {
$this->delImgs();
$files = array();
}
if( $fileSize > $this->maxSize ) {
throw new SPException( SPLang::e( 'FIELD_IMG_TOO_LARGE', $this->name, $fileSize, $this->maxSize ) );
}
et ici :
foreach ( $files as $i => $file ) {
$files[ $i ] = $sPath.$file;
}
}
/* otherwise deleting an image */
if(( $del ) && (!$data)) {
$this->delImgs();
$files = array();
} //Supprimer le else...return true
/* @var SPdb $db */
$db =& SPFactory::db();
$this->verify( $entry, $request )
j'ai été confronté a un problème sous Sobipro avec les champs de type "image".
Voici la solution que j'ai trouvée pour ceux que ça intéresse:
Si on coche "supprimer l'image" sans ajouter d'image : l'ancienne image est supprimée.
Si on coche "supprimer l'image" et on ajoute une nouvelle image : l'ancienne image n'est pas supprimée, la nouvelle est enregistrée et s'affiche.
Donc si on veut pouvoir supprimer l'ancienne image sur le serveur, la remplacer par une nouvelle et que la modification soit prise en compte --> la nouvelle image s'affiche, il faut modifier le fichier dans components\com_sobipro\opt\fields\image.php et ajouter le texte en bleu :
/* if we have an image */
if( $data ) {
$fileSize = SPRequest::file( $this->nid, 'size' );
if( $del ) {
$this->delImgs();
$files = array();
}
if( $fileSize > $this->maxSize ) {
throw new SPException( SPLang::e( 'FIELD_IMG_TOO_LARGE', $this->name, $fileSize, $this->maxSize ) );
}
et ici :
foreach ( $files as $i => $file ) {
$files[ $i ] = $sPath.$file;
}
}
/* otherwise deleting an image */
if(( $del ) && (!$data)) {
$this->delImgs();
$files = array();
} //Supprimer le else...return true
/* @var SPdb $db */
$db =& SPFactory::db();
$this->verify( $entry, $request )