You are here

function kaltura_replace_tags in Kaltura 6

Same name and namespace in other branches
  1. 5 includes/kaltura.themeing.inc \kaltura_replace_tags()
  2. 6.2 includes/kaltura.themeing.inc \kaltura_replace_tags()
4 calls to kaltura_replace_tags()
kaltura_comments_comment in plugins/kaltura_comments/kaltura_comments.module
kaltura_nodeapi in ./kaltura.module
Implementation of hook_nodeapi().
node_kaltura_entry_form in plugins/node_kaltura_entry/node_kaltura_entry.module
Implementation of hook_form().
node_kaltura_mix_form in plugins/node_kaltura_mix/node_kaltura_mix.module
Implementation of hook_form().

File

includes/kaltura.themeing.inc, line 18

Code

function kaltura_replace_tags($content, $is_comment = FALSE, $replace_to_thumb = FALSE) {
  global $user, $multibyte;
  $length = drupal_strlen($content);

  // add PHP_EOL before each kaltura widget to ensure correct grep_match results
  $content = str_replace('[kaltura-widget', PHP_EOL . '[kaltura-widget', $content);
  $found = FALSE;
  preg_match_all('/\\[kaltura-widget(.*)\\/\\]/', $content, $matches);
  $kaltura_tags = array();
  foreach ($matches[0] as $key => $match) {
    if (strpos($match, '/][kal', $split_point) === FALSE) {
      $kaltura_tags[] = $matches[0][$key];
      continue;
    }
    $tags = explode('][', $match);
    $splitted = FALSE;
    if (count($tags)) {
      foreach ($tags as $tag_num => $tag) {
        $splitted = TRUE;
        if ($tag[0] != '[') {
          $tags[$tag_num] = '[' . $tag;
        }
        if ($tag[drupal_strlen($tag) - 1] != ']') {
          $tags[$tag_num] .= ']';
        }
        $kaltura_tags[] = $tags[$tag_num];
      }
    }
  }
  foreach ($kaltura_tags as $kaltura_tag) {
    $found = TRUE;

    // parse the parameters from the tag
    $params = kaltura_get_params_from_tag($kaltura_tag);

    // get the embed options from the params
    $embed_options = kaltura_get_embed_options($params);
    $wid = $embed_options["wid"];
    $width = $embed_options["width"];
    $height = $embed_options["height"];
    $div_id = "kaltura_wrapper_" . $wid;
    $thumbnail_div_id = "kaltura_thumbnail_" . $wid;
    $player_id = "kaltura_player_" . $wid;
    $partner_config = KalturaHelpers::getServiceConfiguration();
    $kaltura_server = variable_get('kaltura_server_url', '') ? variable_get('kaltura_server_url', '') : KalturaSettings_SERVER_URL;
    $kaltura_poweredby = '<div style="width: ' . $width . 'px;" class="poweredByKaltura"><div><a target="_blank" href="http://drupal.kaltura.org">Video Module</a> by <a target="_blank" href="http://corp.kaltura.com">Kaltura</a></div></div>';
    if (variable_get('kaltura_display_credits', 1)) {
      $links = '<a href="http://corp.kaltura.com/download">open source video</a><a href="http://corp.kaltura.com/technology/">video platform</a>';
    }
    if ($replace_to_thumb === TRUE) {
      $html = '<img src="' . $kaltura_server . '/p/' . $partner_config->partnerId . '/sp/' . $partner_config->subPartnerId . '/thumbnail/entry_id/' . $embed_options["media_id"] . '" />';
      $content = str_replace($kaltura_tag, $html, $content);
      continue;
    }
    $div_id = "kaltura_wrapper_" . $embed_options["media_id"];
    $player_id = $embed_options['div_id'] ? $embed_options['div_id'] : "kaltura_player_" . $embed_options["media_id"];
    $align = $embed_options["align"] ? 'text-align:' . $embed_options["align"] . '; ' : '';
    if ($is_comment) {
      $thumb_div_id = 'kaltura_thumbnail_' . $embed_options["media_id"];
      $onclick_value = 'kaltura_activate_player(\'' . $thumb_div_id . '\',\'' . $div_id . '\');';
      $img_tag = '<img src="' . $kaltura_server . '/p/' . $partner_config->partnerId . '/sp/' . $partner_config->subPartnerId . '/thumbnail/entry_id/' . $embed_options["media_id"] . '/width/' . $width . '/height/' . $height . '/type/2/bgcolor/000000/crop_provider/wordpress_comment_placeholder" />';
      $comment_div = '<div id="' . $thumb_div_id . '" class="kaltura_hand" onclick="' . $onclick_value . '">';
      $comment_div .= $img_tag . '</div>';
    }
    else {
      $comment_div = '';
    }
    $html = $comment_div . '
      <div id="' . $div_id . '" class="kaltura_wrapper" style="' . ($comment_div != '' ? 'display:none;' : '') . $align . $embed_options['custom_style'] . '"' . $embed_options['js_events'] . '>' . $links . '</div>' . $kaltura_poweredby . '
      <script type="text/javascript">
              var kaltura_swf = new SWFObject("' . $embed_options["swfUrl"] . '", "' . $player_id . '", "' . $embed_options["width"] . '", "' . $embed_options["height"] . '", "9", "#000000");
              kaltura_swf.addParam("wmode", "opaque");
              kaltura_swf.addParam("flashVars", "' . $embed_options["flashVars"] . ($comment_div != '' ? '&autoPlay=true' : '') . '");
              kaltura_swf.addParam("allowScriptAccess", "always");
              kaltura_swf.addParam("allowFullScreen", "TRUE");
              kaltura_swf.addParam("allowNetworking", "all");
              kaltura_swf.write("' . $div_id . '");
      </script>
    ';

    // rebuild the html with our new code tag
    $content = str_replace($kaltura_tag, $html, $content);
  }
  if ($found && $replace_to_thumb === FALSE) {
    $plugin_url = KalturaHelpers::getKalturaServerUrl();
    $js = '
      <script type="text/javascript">
        function onPlayerAddClick (kshowId,entryId,pd_extraData) {
          if (kshowId && kshowId != -1)
            kalturaInitModalBox("' . url("kaltura/contribution_wizard/") . '" + kshowId);
          if (entryId && entryId != -1 && "true" == "' . ($embed_options['roughcut'] ? 'true' : '') . '")
            kalturaInitModalBox("' . url("kaltura/contribution_wizard/") . ($embed_options['roughcut'] ? 'entry-' : '') . '" + entryId );
        }

        function onPlayerEditClick (kshowId,entryId,pd_extraData) {
          if (kshowId && kshowId != -1 && "true" == "' . ($embed_options['kshow'] ? 'true' : '') . '")
            kalturaInitModalBox("' . url("kaltura/simple_editor/") . '" + kshowId + "/kshow/user_id@' . $user->uid . '", { width: 890, height: 546 } );
          if (entryId && entryId != -1 && "true" == "' . ($embed_options['roughcut'] ? 'true' : '') . '")
            kalturaInitModalBox("' . url("kaltura/simple_editor/") . '" + entryId + "/entry/user_id@' . $user->uid . '", { width: 890, height: 546 } );
        }

        function handleGotoContribWizard (kshowId, pd_extraData) {
          kalturaInitModalBox("' . url("kaltura/contribution_wizard/") . '" + kshowId);
        }

        function handleGotoEditorWindow (kshowId, pd_extraData) {
          kalturaInitModalBox("' . url("kaltura/simple_editor/") . '" + kshowId, { width: 890, height: 546 } );
        }
      </script>';
    $content .= $js;
  }
  return $content;
}