You are here

function shariff_sharing_buttons_content_type_render in Shariff Social Media Buttons 7

Output function for the 'shariff_buttons' content type.

File

plugins/content_types/sharing_buttons.inc, line 19

Code

function shariff_sharing_buttons_content_type_render($subtype, $conf, $args, $contexts) {
  $block = new stdClass();

  // Load and prepare settings.
  if (!$conf['default_settings']) {
    global $language;
    $lang = $language->language;
    $supported_languages = _shariff_supported_languages();
    foreach ($conf['services'] as $service) {
      if ($service) {
        $services[] = $service;
      }
    }

    // For some settings we allow context specific substitutions.
    foreach (array(
      'twitter_via',
      'referrer_track',
      'mail_url',
      'url',
      'media_url',
      'mail_subject',
      'mail_body',
    ) as $setting) {
      if (!empty($contexts) && !empty($conf[$setting])) {
        $conf[$setting] = ctools_context_keyword_substitute($conf[$setting], array(), $contexts);
      }
    }
    $theme_args = array(
      'services' => $services,
      'theme' => empty($conf['theme']) ? NULL : $conf['theme'],
      'orientation' => empty($conf['orientation']) ? NULL : $conf['orientation'],
      'twitter_via' => empty($conf['twitter_via']) ? NULL : $conf['twitter_via'],
      'referrer_track' => empty($conf['referrer_track']) ? NULL : $conf['referrer_track'],
      'backend_url' => empty($conf['backend_url']) ? NULL : $conf['backend_url'],
      'mail_url' => empty($conf['mail_url']) ? NULL : $conf['mail_url'],
      'mail_subject' => empty($conf['mail_subject']) ? NULL : $conf['mail_subject'],
      'mail_body' => empty($conf['mail_body']) ? NULL : $conf['mail_body'],
      'lang' => in_array($lang, $supported_languages) ? $lang : 'en',
      'url' => empty($conf['url']) ? NULL : $conf['url'],
      'flattr_category' => empty($conf['flattr_category']) ? NULL : $conf['flattr_category'],
      'flattr_user' => empty($conf['flattr_user']) ? NULL : $conf['flattr_user'],
      'media_url' => empty($conf['media_url']) ? NULL : $conf['media_url'],
    );
  }
  else {
    $theme_args = _shariff_get_settings();
  }
  if (!empty($theme_args['services'])) {
    $block->content = theme('shariff', $theme_args);
  }
  return $block;
}