Find Jobs
Hire Freelancers

564822 MediaWiki EmbedVideo Simplification

N/A

进行中
已发布大约 12 年前

N/A

货到付款
Currently I have EmbedVideo extension of Mediawiki. [login to view URL] The extension requires to type {{#ev:youtube|dMH0bHeiRNg}} to embed a video. I want to simplify this. There are various ways to simplify this. I don't need these all. I just want at least one of these ways implemented. 1. Simplify copying and pasting the url of the video page will embed the vidio. For example, [login to view URL] 2. Writing ev1|dMH0bHeiRNg will embed the embed. ev1 stands for youtube, and ev2 for other, ev3 or other video services. Either 1 or 2 is OK, or maybe you can think of another way to simplify. There is a similar plugin for bbpress. So I attach the code of the plugin. ==================================================== There is a bbpress plugin bbvideo [login to view URL] This plugin allows users to embed videos from numerous sources including Youtube just by copying and pasting the address of page. For example, copying and pasting [login to view URL] will show visitors the embedded video. An example website with this plugin is [login to view URL] ========================================================= [[[login to view URL]]] <?php /* Plugin Name: BBVideo Plugin URI: [login to view URL] Description: <strong>English:</strong> Converts Video-Links in your forum posts to embedded Video-Players.<br /><strong>Deutsch:</strong> Wandelt Video-Links in den Forenbeiträgen in Video-Player um.<br /><em>Supports: Youtube, Dailymotion, MyVideo Google Video and many <a href="[login to view URL]" target="_blank">more ...</a></em> Author: Naden Badalgogtapeh Author URI: [login to view URL] Version: 0.24 */ /** * class BBPressBBVideo */ class BBPressPluginBBVideo { /** * list of supported video providers */ var $provider; /** * plugin version */ var $version; /** * plugin options */ var $options; /** * plugin id for filter hooks */ var $wp_filter_id; /** * global index for embedding */ var $index; /** * public constructor */ function BBPressPluginBBVideo() { $this->version = '0.24'; $this->wp_filter_id = 'bbvideo'; $this->index = 0; $this->options = bb_get_option( 'bbvideo_options' ); if( is_null( $this->options ) ) { $this->SaveOptions( array( 'embed' => 1 ), false ); } if( !array_key_exists( 'download', $this->options ) ) { $this->options[ 'download' ] = 1; $this->SaveOptions( $this->options, false ); } $this->provider = array(); // include list of video providers if( @include_once( dirname( __FILE__ ) . '/[login to view URL]' ) ) { // content filter only on topics if( is_topic() ) { // header stuff add_action( 'bb_head', array( &$this, 'AddHeader' ) ); // add content filter add_filter( 'post_text', array( &$this, 'ContentFilter' ), 9 ); } else { /// add admin panel add_action( 'bb_admin_menu_generator', array( &$this, 'AddAdminPage' ) ); } } } function SaveOptions( $options, $verbose = true ) { foreach( $options as $key => $value ) { $this->options[ $key ] = $value; } bb_update_option( 'bbvideo_options', $this->options ); if( $verbose ) { print( __( '<div class="updated">Settings Saved</div>' ) ); } } function AdminPage() { global $bbdb, $bb, $bb_table_prefix; @include_once( dirname( __FILE__ ) . '/[login to view URL]' ); } function AddHeader() { if( $this->options[ 'embed' ] == 1 ) { $code = <<<DATA <!-- bbVideo Plugin v{$this->version} - [login to view URL] --> <script type="text/javascript"> function bbvideo_embed( sender ) { var area = [login to view URL]( [login to view URL] + 'embed' ); if( area ) { if( [login to view URL] == 'normal' || [login to view URL] == 'block' ) { [login to view URL] = [login to view URL]( /-/, '+' ); [login to view URL] = 'none'; } else { [login to view URL] = [login to view URL]( /\+/, '-' ); [login to view URL] = 'block'; } } return( false ); } </script> <!-- // bbVideo Plugin --> DATA; print( $code ); unset( $code ); } } function AddAdminPage() { global $bb_menu; $bb_menu[ 60 ] = array( __( 'bbVideo' ), 'use_keys', 'BBPressPluginBBVideoAdminPage' ); } function DisplayProvider( $mask = '<small><a href="[login to view URL]">%s</a></small>', $pre = '<p>', $post = '</p>' ) { printf( $pre . $mask . $post, implode( ', ', array_keys( $this->provider ) ) ); } function GetTitle( $s ) { $magic = 0; for( $k=0; $k<strlen( $s ); $k++ ) { $magic += ord( $s[ $k ] ); } $titles = array( 'video plugin', 'video plugins', 'video widget', 'video player', 'flash video', 'flash videos' ); return( @ucwords( $titles[ $magic % count( $titles ) ] ) ); } function ContentFilter( $buffer ) { /// detect all links in the current topic @preg_match_all( '|http([s]?)\://(.*)|i', $buffer, $links, PREG_PATTERN_ORDER ); $count = count( $links[ 0 ] ); foreach( $links[ 0 ] as $link ) { foreach( $this->provider as $k => $provider ) { @preg_match( '|' . $provider[ 'pattern' ] . '|i', $link, $matches ); if( count( $matches ) > 0 ) { /// build embed-code $code = str_replace( array( '[ID]', '[HEIGHT]', '[WIDTH]' ), array( $matches[ $provider[ 'index' ] ], $provider[ 'height' ], $provider[ 'width' ] ), $provider[ 'code' ] ); $url = sprintf( '<a href="[login to view URL]" style="color:#aaa;text-decoration:underline;">%s</a>', $this->GetTitle( get_topic_title() ) ); if( $this->options[ 'download' ] == 1 ) { $download = sprintf( '<a style="color: #000;" href="[login to view URL]" target="_blank">Video Download</a>', urlencode( $link ) ); } if( $this->options[ 'embed' ] == 1 ) { $post_title = str_replace( "'", '', get_topic_title() ); $post_link = get_topic_link(); if( $bb->mod_rewrite ) { list( $post_link, ) = explode( '?', get_topic_link() ); } if( isset( $download ) ) { $download = ' | ' . $download; } $code = <<<DATA <!-- bbVideo Plugin v{$this->version} - [login to view URL] --> <div style="width:{$provider[ 'width' ]}px;">{$code}<div> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr><td><a href="" id="bbvideo{$this->index}" onclick="javascript:return(bbvideo_embed(this));" style="color: #000;">[+] Embed the video</a>{$download}</td><td align="right" style="color:#aaa;font-size:80%;">Get the {$url}</td></tr></table> <div id="bbvideo{$this->index}embed" style="display:none;"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr><td width="80">Text-Link:</td><td><input type="text" value="{$post_link}" onclick="javascript:[login to view URL]();[login to view URL]();" style="width:100%;" /></td></tr> <tr><td width="80">HTML-Link:</td><td><input type="text" value='<a href="{$post_link}">{$post_title}</a>' onclick="javascript:[login to view URL]();[login to view URL]();" style="width:100%;" /></td></tr> <tr><td width="80">BB-Code:</td><td><input type="text" value="[url={$post_link}]{$post_title}[/url]" onclick="javascript:[login to view URL]();[login to view URL]();" style="width:100%;" /></td></tr> <tr><td width="80">Embed:</td><td><input type="text" value='<div style="width:{$provider[ 'width' ]}px;">{$code}<div align="right" style="color:#aaa;font-size:80%;">Get the {$url}</div></div>' onclick="javascript:[login to view URL]();[login to view URL]();" style="width:100%;" /></td></tr> </table> </div></div></div> <!-- // bbVideo Plugin --> DATA; } else { if( isset( $download ) ) { $download = '<td>' . $download . '</td>'; } $code = <<<DATA <div style="width:{$provider[ 'width' ]}px;">{$code} <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr>{$download}<td align="right" style="color:#aaa;font-size:80%;">Get the {$url}</td></tr> </table> </div> DATA; } /// replace link w/ embed-code $buffer = str_replace( $link, $code, $buffer ); unset( $code ); break; } } $this->index ++; reset( $this->provider ); } return( $buffer ); } } // end class BBPressPluginBBVideo /** * dirty hack, because it seems to be impossible to call an class method over uri */ function BBPressPluginBBVideoAdminPage( ) { global $BBPressPluginBBVideo; $BBPressPluginBBVideo->AdminPage(); } /// end func /// init plugin if( !isset( $BBPressPluginBBVideo ) || is_null( $BBPressPluginBBVideo ) ) { $BBPressPluginBBVideo = new BBPressPluginBBVideo(); } ?> ============================================= [[[login to view URL]]] <?php /* BBVideo Plugin v0.24 admin template [login to view URL] */ if( isset( $_POST[ 'cmd' ] ) ) { $this->SaveOptions( array( 'embed' => intval( $_POST[ 'embed' ] ), 'download' => intval( $_POST[ 'download' ] ) ) ); } ?> <h2>bbVideo v<?php print( $this->version ); ?> - <?php _e( 'Settings' ) ?></h2> <div> <strong><a href="[login to view URL]">Plugin Homepage</a></strong> </div> <form method="post" action=""> <p> <h4>Embed:</h4> <label for="embed">Zeige Embed Optionen unter den Videos. / Show embed field below the videos.</label> <p> <input type="radio" name="embed" value="1" <?php print( $this->options[ 'embed' ] == 1 ? ' checked="checked"' : '' ); ?>/> Ja <input type="radio" name="embed" value="0" <?php print( $this->options[ 'embed' ] == 0 ? ' checked="checked"' : '' ); ?>/> Nein </p> </p> <p> <h4>Download:</h4> <label for="download">Zeige Download-Link unter den Videos. / Show download link field below the videos.</label> <p> <input type="radio" name="download" value="1" <?php print( $this->options[ 'download' ] == 1 ? ' checked="checked"' : '' ); ?>/> Ja <input type="radio" name="download" value="0" <?php print( $this->options[ 'download' ] == 0 ? ' checked="checked"' : '' ); ?>/> Nein </p> </p> <p class="submit"><input type="submit" name="cmd" value="speichern / save" /></p> </form> <p> <h4>Supported Video-Portals (<?php print( count( $this->provider ) ); ?>):</h4> <ul> <?php foreach( $this->provider as $k => $provider ) { printf( '<li><a href="%s" target="_blank">%s</a></li>', $provider[ 'page_url' ], ucfirst( $k ) ); } ?> </ul> </p> <div align="center"> <strong><a href="[login to view URL]">Plugin Homepage</a></strong> </div> ============================================ [[[login to view URL]]] <?php /* BBVideo Plugin v0.24 definition file [login to view URL] */ /* Support for: + myvideo + funnyordie + collegehumor + redtube + dailymotion + sevenload + glumbert + youtube + googlevideo + liveleak + metacafe + clipfish + gametrailers + vimeo */ $this->provider = array( 'youtube' => array( 'width' => '425', 'height' => '350', 'pattern' => 'youtube\.(.*)/watch\?v=([a-zA-Z0-9_-]*)', 'index' => 2, 'code' => '<object width="[WIDTH]" height="[HEIGHT]"><param name="movie" value="[login to view URL][ID]&rel=1"></param><param name="wmode" value="transparent"></param><embed src="[login to view URL][ID]&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="[WIDTH]" height="[HEIGHT]"></embed></object>', 'page_url' => '[login to view URL]' ), 'myvideo' => array( 'width' => '425', 'height' => '350', 'pattern' => 'myvideo\.de/watch/([a-zA-Z0-9_-]*)', 'index' => 1, 'code' => '<object width="[WIDTH]" height="[HEIGHT]" type="application/x-shockwave-flash" data="[login to view URL][ID]"><param name="movie" value="[login to view URL][ID]"></param><param name="AllowFullscreen" value="true" /></object>', 'page_url' => '[login to view URL]' ), 'funnyordie' => array( 'width' => '425', 'height' => '350', 'pattern' => 'funnyordie\.com/videos/([0-9a-fA-F]*)', 'index' => 1, 'code' => '<embed type="application/x-shockwave-flash" src="[login to view URL]" scale="noScale" salign="TL" flashvars="&ratename=IMMORTAL&rating=5.0&ratedby=12&canrate=no&VID=7417&file=[login to view URL][ID].flv&autoStart=false&key=[ID]" allowfullscreen="true" height="[HEIGHT]" width="[WIDTH]"></embed>', 'page_url' => '[login to view URL]' ), 'gametrailers' => array( 'width' => '425', 'height' => '350', 'pattern' => 'gametrailers\.com/player/([0-9].*)\.html(.*)', 'index' => 1, 'code' => '<object id="gtembed" width="[WIDTH]" height="[HEIGHT]"><param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="[login to view URL][ID]"/> <param name="quality" value="high" /><embed src="[login to view URL][ID]" swLiveConnect="true" name="gtembed" align="middle" allowScriptAccess="sameDomain" quality="high" type="application/x-shockwave-flash" width="[WIDTH]" height="[HEIGHT]"></embed></object>', 'page_url' => '[login to view URL]' ), 'collegehumor' => array( 'width' => '425', 'height' => '350', 'pattern' => 'collegehumor\.com/video:([0-9]*)', 'index' => 1, 'code' => '<embed src="[login to view URL][ID]" quality="best" width="[WIDTH]" height="[HEIGHT]" type="application/x-shockwave-flash"></embed>', 'page_url' => '[login to view URL]' ), 'dailymotion' => array( 'width' => '425', 'height' => '350', 'pattern' => 'dailymotion\.com/(.*)video/(.*?)_', 'index' => 2, 'code' => '<object width="[WIDTH]" height="[HEIGHT]"><param name="movie" value="[login to view URL][ID]"></param><param name="allowfullscreen" value="true"></param><embed src="[login to view URL][ID]" type="application/x-shockwave-flash" width="[WIDTH]" height="[HEIGHT]" allowfullscreen="true"></embed></object>', 'page_url' => '[login to view URL]' ), 'glumbert' => array( 'width' => '425', 'height' => '350', 'pattern' => 'glumbert\.com\/media\/(.*?)$', 'index' => 1, 'code' => '<object width="[WIDTH]" height="[HEIGHT]"><param name="movie" value="[login to view URL][ID]"></param><param name="wmode" value="transparent"></param><embed src="[login to view URL][ID]" type="application/x-shockwave-flash" wmode="transparent" width="[WIDTH]" height="[HEIGHT]"></embed></object>', 'page_url' => '[login to view URL]' ), 'liveleak' => array( 'width' => '425', 'height' => '350', 'pattern' => '[login to view URL][?]i=([0-9a-zA-Z_]*)', 'index' => 1, 'code' => '<embed src="[login to view URL]" width="[WIDTH]" height="[HEIGHT]" type="application/x-shockwave-flash" flashvars="autostart=false&token=[ID]" scale="showall" name="index"></embed>', 'page_url' => '[login to view URL]' ), 'redtube' => array( 'width' => '434', 'height' => '344', 'pattern' => '[login to view URL]([0-9].*)', 'index' => 1, 'code' => '<object height="[HEIGHT]" width="[WIDTH]"><param name="movie" value="[login to view URL]"><param name="FlashVars" value="id=[ID]&style=redtube"><embed src="[login to view URL][ID]&style=redtube" type="application/x-shockwave-flash" height="[HEIGHT]" width="[WIDTH]"></object>', 'page_url' => '[login to view URL]' ), 'googlevideo' => array( 'width' => '425', 'height' => '350', 'pattern' => 'video\.google\.(.*)/(videoplay)?(url)?\?docid=([a-zA-Z0-9_-]*)', 'index' => 1, 'code' => '<embed style="width:[WIDTH]px; height:[HEIGHT]px;" id="VideoPlayback" type="application/x-shockwave-flash" src="[login to view URL][ID]&hl=de" flashvars=""></embed>', 'page_url' => '[login to view URL]' ), 'sevenload' => array( 'width' => '425', 'height' => '350', 'pattern' => 'sevenload\.com/videos\/([a-zA-Z0-9_-]*)', 'index' => 1, 'code' => '<object width="[WIDTH]" height="[HEIGHT]"><param name="FlashVars" value="slxml=[login to view URL]"/><param name="movie" value="[login to view URL][ID]/[WIDTH]x[HEIGHT]/swf" /><embed src="[login to view URL][ID]/[WIDTH]x[HEIGHT]/swf" type="application/x-shockwave-flash" width="[WIDTH]" height="[HEIGHT]" FlashVars="slxml=[login to view URL]"></embed></object>', 'page_url' => '[login to view URL]' ), 'metacafe' => array( 'width' => '425', 'height' => '350', 'pattern' => 'metacafe\.com/watch/([0-9].*?)/', 'index' => 1, 'code' => '<embed flashVars="altServerURL=http://www.metacafe.com&playerVars=showStats=yes|autoPlay=no|blogName=[login to view URL]|blogURL=[login to view URL]" src="[login to view URL][ID]/[login to view URL]" width="[WIDTH]" height="[HEIGHT]" wmode="transparent"></embed>', 'page_url' => '[login to view URL]' ), 'clipfish' => array( 'width' => '425', 'height' => '350', 'pattern' => 'clipfish\.de/player\.php\?videoid=([a-zA-z0-9]*)', 'index' => 1, 'code' => '<embed src="[login to view URL][ID]&r=1" quality="high" bgcolor="#cacaca" width="[WIDTH]" height="[HEIGHT]" name="player" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed>', 'page_url' => '[login to view URL]' ), 'vimeo' => array( 'width' => '425', 'height' => '350', 'pattern' => 'vimeo\.com/([0-9]*)', 'index' => 1, 'code' => '<object width="[WIDTH]" height="[HEIGHT]"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="[login to view URL][ID]&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="[login to view URL][ID]&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="[WIDTH]" height="[HEIGHT]"></embed></object>', 'page_url' => '[login to view URL]' ) ); ?>
项目 ID: 2310780

关于此项目

远程项目
活跃12 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作

关于客户

KOREA, REPUBLIC OF的国旗
Seoul, Korea, Republic of
5.0
39
付款方式已验证
会员自5月 25, 2012起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。