function kaltura_replace_tags in Kaltura 6
Same name and namespace in other branches
- 5 includes/kaltura.themeing.inc \kaltura_replace_tags()
- 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;
}