web-dev-qa-db-fra.com

Aide avec les options de widgets personnalisés! (option de case à cocher de sauvegarde)

J'ai créé un widget Flickr personnalisé pour Wordpress et configuré avec succès un formulaire d'options permettant aux utilisateurs de saisir leurs informations Flickr, mais je ne parviens pas à cocher la case dans le formulaire pour enregistrer si elle est cochée ou non. Toute aide serait grandement appréciée! Voici mes fonctions widget (), form () et update ():

function widget($args, $instance) {
extract($args);

$title = apply_filters('widget_title', $instance['title']);
$displaynum = $instance['displaynum'];
$flickrid = $instance['flickrname'];
$num = 6;
$feed = new SimplePie($instance['feed']);
$feed->handle_content_type(); 
$photostream = $instance['show_photostream'];


function update($new_instance, $old_instance) {
$instance = $old_instance;

$instance['title'] = strip_tags($new_instance['title'] );
$instance['displaynum'] = strip_tags($new_instance['displaynum'] );
$instance['feed'] = $new_instance['feed'];
$instance['flickrname'] = $new_instance['flickrname'];
$instance['show_photostream'] = (bool) $new_instance['show_photostream'];

return $instance;
}

function form($instance) {
$defaults = array (
    'title' => 'My Recent Flickr Uploads',
    'displaynum' => 6,
    'feed' => 'http://api.flickr.com/services/feeds/photos_public.gne?id=33927859@N06&lang=en-us&format=rss_200',
    'flickrname' => 'rastajellyfish',
    'show_photostream' => isset( $instance['show_photostream'] ) ? (bool) $instance['show_photostream'] : false
);
$instance = wp_parse_args( (array) $instance, $defaults); ?>

Toute aide serait grandement appréciée !!!

1

Je ferais:

function update($new_instance, $old_instance) {
    ...

    $instance['show_photostream'] = $new_instance['show_photostream'];

    return $instance;
}

function form($instance) {
    $defaults = array (
        ...
        'show_photostream' => !empty( $instance['show_photostream'] ) ? $instance['show_photostream'] : false
    );
    $instance = wp_parse_args( (array) $instance, $defaults);
1
sorich87