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(); ?>

1 réponse


Digikube
Auteur
Réponse acceptée

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)); ?>