Bonjour,
Le hak que je vais vous presenter n'est certe pas parfait, mais il permet un filtrage des images et un redimensionnement a la publication lorsque celle ci sont trop grandes.
Le problème qu'il peut se poser, c'est que si l'utilisateur edite le code html a la main, il peut passer par dessus. Donc, c'est viable si vous desactivez la vision et l'edition possible du code html directement (ce que je vous conseille pour les utilisateurs standarts pour beaucoup de raison)
Rajouter dans le fichier modules/inbetween/editor/themes/advandced/jscripts/image.js
function redimImage(){
var formObj=document.forms[0];
var width=formObj.width.value;
var height=formObj.height.value;
var newHeight;
var newWidth;
var Ratio;
if (width>400||height>400)//Indiquer la hauteur maximum et la largeur maximum a laquelle vous desirez limiter
{
alert("Votre image est trop grande, elle va etre redimensionné pour ne pas abimer la présentation du site");
if (height-width>0)
{
newHeight=500;
Ratio=newHeight/height;
newWidth=width*Ratio;
}
else
{
newWidth=500;
Ratio=newWidth/width;
newHeifht=width*Ratio;
}
}
formObj.width.value=newWidth;
formObj.height.value=newHeight;
}
Rajouter a la ligne 10 dans la fonction insertImage la fonction redimImage(), comme ceci.
function insertImage() {
redimImage();//inserer la ici
var src = document.forms[0].src.value;
var alt = document.forms[0].alt.value;
var border = document.forms[0].border.value;
var vspace = document.forms[0].vspace.value;
var hspace = document.forms[0].hspace.value;
var width = document.forms[0].width.value;
var height = document.forms[0].height.value;
var align = document.forms[0].align.options[document.forms[0].align.selectedIndex].value;
Passons maintenant au plug in image avancé qui se trouve dans
modules/inbetween/editor/plugins/advimage/jscripts/function.js
On va appliquer le meme principe en renommant la fonction (en faite j'ai po été faire des tests pour savoir si il y'a chevauchement ou pas des fonctions donc je prends mes précautions)
A la fin, vous insérez
function resizeImage(){
var formObj=document.forms[0];
var width=formObj.width.value;
var height=formObj.height.value;
var newHeight;
var newWidth;
var Ratio;
if (width>400||height>400)
{
alert("Votre image est trop grande, elle va etre redimensionné pour ne pas abimer le site");
if (height-width>0)
{
newHeight=500;
Ratio=newHeight/height;
newWidth=width*Ratio;
}
else
{
newWidth=500;
Ratio=newWidth/width;
newHeifht=width*Ratio;
}
}
formObj.width.value=newWidth;
formObj.height.value=newHeight;
}
et ensuite, a la ligne 267 pour la fonction insertAction, vous rajoutez comme ceci :
var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
var elm = inst.getFocusElement();
var formObj = document.forms[0];
var src = formObj.src.value;
var onmouseoversrc = formObj.onmouseoversrc.value;
var onmouseoutsrc = formObj.onmouseoutsrc.value;
resizeImage();//fonction a rajouter
Voila, je le repete, ce hak est pas parfait et il y'a surement moyen de faire mieux, si vous pensez pouvoir le faire, n'hesitez pas a poster a la suite votre solution.
Et eviter de laisser le mode edition html pour vos utilisateurs car ça leur permettrait d'utiliser du javascript dans leu publication (avec ça, ils peuvent serieusement embeter les utilisateurs)
Derniere chose, ce hak agit sur tous les modules (donc si vous avez des criteres différents pour chaques modules, il vaut mieux chercher une autre solution... (un parser php peut etre))
Félicitation a l'equipe d'invbetween pour ce tres bon editeur