Bonjour, je suis en train de creer un widget et j'aimerais utiliser l'uploader d'images dans les options pour enregistrer l'url de l'image en question dans les options de mon widget.
J'ais donc un formulaire avec un bouton et un champ texte, pour le moment quand on clique sur le bouton cela ouvre bien l'uploader d'images de wordpress, mais l'url de l'image ne vas pas s'inscrire dans le champ texte quand celle ci est selectionnée. Il doit y avoir un probleme avec le js de l'uploader mais la je ne vois vraiment pas.
voici le code html du bouton et du champ texte :
<p>
<label for="<?php echo $this->get_field_name( 'image' ); ?>"><?php _e( 'Image:' ); ?></label>
<input name="<?php echo $this->get_field_name( 'image' ); ?>" id="<?php echo $this->get_field_id( 'image' ); ?>" class="widefat" type="text" size="36" value="<?php echo esc_url( $image ); ?>" />
<input class="upload_image_button" type="button" value="Upload Image" />
</p>
Et voici le javascript :
jQuery(document).ready(function($) {
$(document).on("click", ".upload_image_button", function() {
jQuery.data(document.body, 'prevElement', $(this).prev());
window.send_to_editor = function(html) {
var imgurl = jQuery('img',html).attr('src');
var inputText = jQuery.data(document.body, 'prevElement');
if(inputText != undefined && inputText != '')
{
inputText.val(imgurl);
}
tb_remove();
};
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
return false;
});
});
http://image.noelshack.com/fichiers/2016/15/1460715884-resultatespere.jpg
Vouila un petit screen du resultat voulu
En fait cela fonctionne avec le code que j'ais donné plus haut mais une fois dans l'uploader de media il faut cliquer sur "adresse web du fichier" sinon le javascript ne trouve pas l'adresse pour la mettre dans le champ texte. Encore un screen : http://image.noelshack.com/fichiers/2016/15/1460715934-probleme.jpg
j'imagines qu'il faut donner un parametre a la page media upload.php sur la ligne suivante :
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
aucune piste pour le moment.