Jump to content

Problème de taille d'image


Recommended Posts

Bonjour à tous,

 

Je me prépare à lancer mon site http://dooweet-records.com/index.php

 

J'ai un gros souci avec l'un des modules : celui en page d'accueil, "NEWS PRODUCT". J'ai bien édité la taille de l'image dans l'administration du module (que j'ai mis à max 150px par 150px), mais rien n'a changé et l'image est toujours "écrasée". Comment puis-je changer la largeur de chaque "nouveau produit" s'il vous plait, afin d'avoir une pochette d'album carrée et non écrasée ?

 

Merci

Link to comment
Share on other sites

Bonjour,

 

Je suppose que tu as modifié la taille des images dans préférences->image? Si c'est le cas, sache que tu dois créer un type d'image avec ton nom de thème. Si je regarde le tpl dans le module, il utilise le type medium. Tu dois donc avoir un type d'image appelé medium_{nom de ton thème} ou {nom de ton thème}_medium.

 

Là où cela se corse, c'est qu'il y a 2 bugs dans la classe ImageType:

1. le champ 'name' pour un type d'image est trop petit. Pour ma part, je l'ai augmenté à 85 (il était à 16). Il te faut pour cela overrider la variable $definition et aussi modifier la table ImageType.

2. la fonction qui récupère le nom du type d'image devrait retourner les valeurs par défaut (et donc dans ton cas, le type = medium_default) mais ce n'est pas le cas. Tu dois là aussi overrider la fonction getFormatedName

 

Cela donne pour l'override de la classe ImageType:

 

class ImageType extends ImageTypeCore
{
/**
 * @see ObjectModel::$definition
 */
public static $definition = array(
 'table' => 'image_type',
 'primary' => 'id_image_type',
 'fields' => array(
  'name' =>	array('type' => self::TYPE_STRING, 'validate' => 'isImageTypeName', 'required' => true, 'size' => 85),
  'width' =>	array('type' => self::TYPE_INT, 'validate' => 'isImageSize', 'required' => true),
  'height' =>   array('type' => self::TYPE_INT, 'validate' => 'isImageSize', 'required' => true),
  'categories' =>  array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
  'products' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
  'manufacturers' =>  array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
  'suppliers' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
  'scenes' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
  'stores' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
 ),
);
public static function getFormatedName($name)
{
 $theme_name = Context::getContext()->shop->theme_name;
 $name_without_theme_name = str_replace(array('_'.$theme_name, $theme_name.'_'), '', $name);
 //check if the theme name is already in $name if yes only return $name
 if (strstr($name, $theme_name) && self::getByNameNType($name))
  return $name;
 else if (self::getByNameNType($name_without_theme_name.'_'.$theme_name))
  return $name_without_theme_name.'_'.$theme_name;
 else if (self::getByNameNType($theme_name.'_'.$name_without_theme_name))
  return $theme_name.'_'.$name_without_theme_name;
 else
  return $name_without_theme_name.'_default';
}
}

 

Maintenant si tu n'es pas à l'aise avec la modification de la db, tu peux juste overrider la fonction getFormatedName et utiliser les types _default pour ajuster la taille de tes images.

 

Voilà j'espère que cela solutionnera ton problème :)

Edited by be_tnt (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...