You are here

public function SocialContentYoutube::saveInstanceSettings in Social Content 7.2

Save instance settings.

Parameters

array $settings: The settings to save.

Overrides SocialContent::saveInstanceSettings

File

modules/youtube/social_content_youtube.class.inc, line 132
Social Content Youtube class.

Class

SocialContentYoutube
@file Social Content Youtube class.

Code

public function saveInstanceSettings($settings) {
  $global_settings = $this->settings['global'];

  // Look for the Youtube Channel ID.
  if (!empty($settings['youtube_username'])) {
    $url = $global_settings['api_url'] . '/channels';
    $params = array(
      'key' => $global_settings['api_key'],
      'forUsername' => $settings['youtube_username'],
      'part' => 'id',
    );
    $result = $this
      ->httpRequest(url($url, array(
      'query' => $params,
      'external' => TRUE,
    )));
    if ($result->code == 200) {
      $data = json_decode($result->data);
      if (isset($data->items) && is_array($data->items)) {
        foreach ($data->items as $item) {
          $settings['youtube_id'] = $item->id;
        }
      }
    }
    else {
      watchdog('social_content_youtube', 'Error fetching feed, data: %data', array(
        '%data' => $result->data,
      ), WATCHDOG_WARNING);
      return FALSE;
    }
  }
  return parent::saveInstanceSettings($settings);
}