/** * Update the widget info from the admin panel * @param array $new_instance * @param array $old_instance * @return array */ function update($new_instance, $old_instance) { $instance = $old_instance; $changed = $instance['w_img'] != $new_instance['w_img'] || $instance['w_link'] !== $new_instance['w_link']; $instance['w_link'] = $new_instance['w_link']; $instance['w_img'] = $new_instance['w_img']; $instance['w_resize'] = @$new_instance['w_resize']; $instance['w_new'] = @$new_instance['w_new']; $instance['w_adv'] = $new_instance['w_adv']; /* New ad? Upload it to Broadstreet */ if ($instance['w_img'] && $changed && Broadstreet_Adwidget_Mini_Utility::hasAdserving()) { $advertisement_id = false; # New ad? if (is_numeric(@$instance['bs_ad_id'])) { $advertisement_id = $instance['bs_ad_id']; } # New advertiser? if (!$advertisement_id) { $api = Broadstreet_Adwidget_Mini_Utility::getClient(); $adv = $api->createAdvertiser(Broadstreet_Adwidget_Mini_Utility::getNetworkID(), $instance['w_adv']); $instance['bs_adv_id'] = $adv->id; } $ad = Broadstreet_Adwidget_Mini_Utility::importImageAd(Broadstreet_Adwidget_Mini_Utility::getNetworkID(), $instance['bs_adv_id'], $instance['w_img'], $instance['w_link'], $advertisement_id); if (!$advertisement_id) { $instance['bs_ad_html'] = $ad->html; $instance['bs_ad_id'] = $ad->id; $instance['bs_adv_id'] = $adv->id; } } return $instance; }