[Jifty-commit] r6799 - in plugins/Jifty-Plugin-YouTube: . lib lib/Jifty lib/Jifty/Plugin lib/Jifty/Plugin/YouTube

Jifty commits jifty-commit at lists.jifty.org
Sat Apr 18 12:12:28 EDT 2009


Author: c9s
Date: Sat Apr 18 12:12:27 2009
New Revision: 6799

Added:
   plugins/Jifty-Plugin-YouTube/
   plugins/Jifty-Plugin-YouTube/Makefile.PL
   plugins/Jifty-Plugin-YouTube/lib/
   plugins/Jifty-Plugin-YouTube/lib/Jifty/
   plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/
   plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/
   plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube.pm
   plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/Dispatcher.pm
   plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/View.pm
   plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/Widget.pm
   plugins/Jifty-Plugin-YouTube/t/

Log:
 jifty youtube plugin.  so that we can render a column as an youtube widget


Added: plugins/Jifty-Plugin-YouTube/Makefile.PL
==============================================================================
--- (empty file)
+++ plugins/Jifty-Plugin-YouTube/Makefile.PL	Sat Apr 18 12:12:27 2009
@@ -0,0 +1,8 @@
+use inc::Module::Install;
+name('Jifty-Plugin-YouTube');
+version('0.01');
+requires('Jifty' => '0.90409');
+
+install_share;
+
+WriteAll;

Added: plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube.pm
==============================================================================
--- (empty file)
+++ plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube.pm	Sat Apr 18 12:12:27 2009
@@ -0,0 +1,7 @@
+use strict;
+use warnings;
+
+package Jifty::Plugin::YouTube;
+use base qw/Jifty::Plugin/;
+
+1;

Added: plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/Dispatcher.pm
==============================================================================
--- (empty file)
+++ plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/Dispatcher.pm	Sat Apr 18 12:12:27 2009
@@ -0,0 +1,17 @@
+use strict;
+use warnings;
+
+package Jifty::Plugin::YouTube::Dispatcher;
+use Jifty::Dispatcher -base;
+
+# Put any plugin-specific dispatcher rules here.
+
+# take youtube hash key here
+on qr|/youtube/(\w+)/| => sub {
+    # render a youtube widget
+    
+
+};
+
+
+1;

Added: plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/View.pm
==============================================================================
--- (empty file)
+++ plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/View.pm	Sat Apr 18 12:12:27 2009
@@ -0,0 +1,38 @@
+package Jifty::Plugin::YouTube::View;
+use warnings;
+use strict;
+
+use Jifty::View::Declare -base;
+use Jifty::View::Declare::Helpers;
+
+template '/_youtube' => sub {
+    # basic wrapper
+
+};
+
+template 'youtube_widget' => sub {
+    my ($self, $hash , $options ) = @_;
+    $options ||= {};
+    my $default_options = {
+        allowFullScreen => 'true',
+        allowscriptaccess => 'always',
+    };
+    map { $options->{$_} ||= $default_options->{$_} } keys %$default_options;
+    my $params = join "\n",map {  qq|<param name="$_" value="@{[ $options->{$_} ]}"></param>|  }  keys %$options;
+    outs_raw(qq|
+    <object width="425" height="344">
+        <param name="movie" value="http://www.youtube.com/v/$hash&hl=en&fs=1"></param>
+        $params
+        <embed
+            src="http://www.youtube.com/v/$hash&hl=en&fs=1"
+            type="application/x-shockwave-flash" allowscriptaccess="always"
+            allowfullscreen="true" 
+            width="425" height="344"></embed>
+    </object>
+    |);
+};
+
+
+
+1;
+

Added: plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/Widget.pm
==============================================================================
--- (empty file)
+++ plugins/Jifty-Plugin-YouTube/lib/Jifty/Plugin/YouTube/Widget.pm	Sat Apr 18 12:12:27 2009
@@ -0,0 +1,48 @@
+use warnings;
+use strict;
+package Jifty::Plugin::YouTube::Widget;
+use base qw(Jifty::Web::Form::Field);
+
+# use Jifty::View::Declare::Helpers;
+
+sub accessors { shift->SUPER::accessors() }
+
+=head1 NAME
+
+=cut
+
+
+sub render_widget {
+    my $self  = shift;
+
+    my $field = '' ;
+    my $current_value = $self->current_value;
+    use Template::Declare;
+    Template::Declare->init( roots => ['Jifty::Plugin::YouTube::View']);
+
+    # to match
+    # http://www.youtube.com/watch?v=
+    #  9dOE0KhXTqo
+    my $hash = '';
+    if( $current_value =~ m/^\w{11}$/ ) {
+        $hash = $1;
+    }
+    # http://www.youtube.com/watch?v=mAkrVWISiSc&feature=rec-HM-fresh+div
+    elsif( $current_value =~ m{http://www.youtube.com/watch\?v=(\w{11})} ) {
+        $hash = $1;
+    }
+
+    if( $hash ) {
+        my $out = Template::Declare->show( 'youtube_widget', $hash );
+        Jifty->web->out( $out );
+    }
+    # XXX: show an edit button here if not readonly 
+    # and when hash is empty
+    else {
+
+    }
+    return '';
+}
+
+
+1;


More information about the Jifty-commit mailing list