Bonjour à tous,
Dans la suite de ce projet : http://www.grafikart.fr/forum/topic/5980
J'ai donc créer un formulaire classique a l'aide de $this->Form->create et $this->Form->end
En dessous de ce formulaire j'ai ajouter du code javascript je charge aussi des .js et .css et a ce moment apparait sur ma page une erreur :
Notice (8): Array to string conversion [CORE\Cake\View\Helper\HtmlHelper.php, line 446]
A quoi cela est-il dû ?
Voici ma vue :
<section class="admin-profil grid_12 alpha omega">
<?php echo $this->Form->create('User', array('action' => 'profil', 'class' => 'pad')); ?>
<fieldset>
<legend>Modifier mes informations</legend>
<section class"images">
<div class="thumbsize">
<div id="plupload">
<div id="dragdrop">
<a id="parcourir" href="#">Cliquez ici ou glissez-déposez une photo de vous depuis votre ordinateur pour la télécharger.</a>
</div>
</div>
<div class="clear"></div>
<br>
<div id="pluploadPreview">
</div>
</div>
<div class="fullsize">
<div id="pluploadPhoto"></div>
</div>
<div class="clear"></div>
</section>
<?php echo $this->Form->input('username', array('type' => 'hidden')); ?>
<?php echo $this->Form->input('username', array('type' => 'hidden')); ?>
<?php echo $this->Form->input('username', array('type' => 'hidden')); ?>
<?php echo $this->Form->input('email', array('label' => 'Email')); ?>
<?php echo $this->Form->input('firstname', array('label' => 'Prénom')); ?>
<?php echo $this->Form->input('lastname', array('label' => 'Nom')); ?>
<?php echo $this->Form->input('a_password', array('label' => 'Mot de passe', 'type' => 'password', 'after' => '<div class="info-message">Laissez le champ vide si vous ne souhaitez pas changer de mot de passe</div>')); ?>
<?php echo $this->Form->input('b_password', array('label' => 'Confirmez le mot de passe', 'type' => 'password')); ?>
</fieldset>
<?php echo $this->Form->end('Modifier'); ?>
</section>
<?php echo $this->Html->script('plupload/plupload',array('inline'=>false)); ?>
<?php echo $this->Html->script('plupload/plupload.html5',array('inline'=>false)); ?>
<?php echo $this->Html->script('plupload/plupload.flash',array('inline'=>false)); ?>
<?php $this->Html->scriptStart(array('inline' => false)); ?>
jQuery(function(){
var uploader = new plupload.Uploader({
runtimes : 'html5,flash',
container: 'plupload',
browse_button : 'parcourir',
flash_swf_url : '<?php echo Router::url('/js/plupload/plupload.flash.swf'); ?>',
url : '<?php echo Router::url(array('controller'=>'users','action'=>'photo')); ?>',
drop_element : 'dragdrop',
multipart: true,
urlstream_upload: true,
multipart_params : {repertoire : '<?php echo Router::url('/img/profils'); ?>', id : '<?php echo AuthComponent::user('id'); ?>'},
});
uploader.init();
$('#dragdrop').bind({
dragover : function(e){
$(this).addClass('hover');
$(this).parent().addClass('hover');
},
dragleave : function(e){
$(this).removeClass('hover');
$(this).parent().removeClass('hover');
}
});
uploader.bind('FilesAdded', function(up, files) {
var list = $('#profil');
$('#dragdrop').removeClass('hover');
$('#dragdrop').parent().removeClass('hover');
uploader.start();
});
uploader.bind('UploadProgress', function(up, file) {
$('#'+file.id).find('.progress').css('width',file.percent+'%')
});
uploader.bind('Error',function(up,error){
$('#dragdrop').removeClass('hover');
$('#dragdrop').parent().removeClass('hover');
alert(error.message);
uploader.start();
});
uploader.bind('FileUploaded',function(up, file, response){
data = $.parseJSON(response.response);
if(data.erreur){
$('#'+file.id).remove();
alert(data.message);
}else{
$('#pluploadPhoto').html('<img id="target" src="<?php echo Router::url('/img/'); ?>'+data.message+'" width="100%">').fadeIn(500);
$('#pluploadPreview').html('<img src="<?php echo Router::url('/img/'); ?>'+data.message+'" id="preview">').fadeIn(500);
}
});
});
<?php $this->Html->scriptEnd(); ?>
<?php echo $this->Html->css('jcrop/jquery.Jcrop.min',array('inline'=>false));?>
<?php echo $this->Html->script('jcrop/jquery.Jcrop.min',array('inline'=>false)); ?>
<?php $this->Html->scriptStart(array('inline' => false)); ?>
jQuery(function($){
var jcrop_api, boundx, boundy;
$('#target').Jcrop({
onChange: updatePreview,
onSelect: updatePreview,
aspectRatio: 1,
setSelect: 56, 56, 256 , 256 ],
bgFade: .5
},function(){
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
jcrop_api = this;
});
function updatePreview(c)
{
if (parseInt(c.w) > 0)
{
var rx = 256 / c.w;
var ry = 256 / c.h;
$('#preview').css({
width: Math.round(rx * boundx) + 'px',
height: Math.round(ry * boundy) + 'px',
marginLeft: '-' + Math.round(rx * c.x) + 'px',
marginTop: '-' + Math.round(ry * c.y) + 'px'
});
}
};
});
<?php $this->Html->scriptEnd(); ?>
Autant pour moi il suffisait de mettre
<?php echo $this->Html->css('jcrop/jquery.Jcrop.min', null, array('inline'=>false)); ?>
à la place de
<?php echo $this->Html->css('jcrop/jquery.Jcrop.min', array('inline'=>false)); ?>