[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