Пример #1
0
 /**
  * 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;
 }