From edeae898f6d6bbe4fbcbe89079e1f7f7c13abf70 Mon Sep 17 00:00:00 2001 From: Silvio Date: Fri, 30 Mar 2012 16:20:06 -0300 Subject: Initial view support (upstream #1121906) --- fblikebutton.handlers.inc | 51 +++++++++++++++++++++++++++++++++++++++++++++++ fblikebutton.info | 1 + fblikebutton.module | 11 +++++++++- fblikebutton.views.inc | 20 +++++++++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 fblikebutton.handlers.inc create mode 100644 fblikebutton.views.inc diff --git a/fblikebutton.handlers.inc b/fblikebutton.handlers.inc new file mode 100644 index 0000000..aeb40a3 --- /dev/null +++ b/fblikebutton.handlers.inc @@ -0,0 +1,51 @@ +field_alias = 'views_fblikebutton_button_' . $this->position; + } + + /** + * Renders the field. + */ + function render($values) { + if (isset($values->nid)) { + global $user, $base_url; + $types = variable_get('fblikebutton_node_types', array()); + $fullnodedisplay = variable_get('fblikebutton_full_node_display', 0); + $teaserdisplay = variable_get('fblikebutton_teaser_display', 0); + $full = ($view_mode == 'full') ? TRUE : FALSE; + $show = ( ! empty($types[$values->type]) && user_access('access fblikebutton')); + // Thanks to corbacho for supplying the code for the $webpage_to_like variable... + // (It was apparently throwing errors/notices the way I had it set up.) + $webpage_to_like = url("node/$values->nid", array('absolute' => TRUE)); + $likebutton_weight = variable_get('fblikebutton_weight', '0'); + $conf = array( + 'layout' => variable_get('fblikebutton_layout', 'standard'), + 'action' => variable_get('fblikebutton_action', 'like'), + 'color_scheme' => variable_get('fblikebutton_color_scheme', 'light'), + 'show_faces' => variable_get('fblikebutton_show_faces', 'true'), + 'font' => variable_get('fblikebutton_font', 'arial'), + 'height' => variable_get('fblikebutton_iframe_height', '80'), + 'width' => variable_get('fblikebutton_iframe_width', '450'), + 'send' => variable_get('fblikebutton_send', 'true'), + 'other_css' => variable_get('fblikebutton_iframe_css', ''), + 'language' => variable_get('fblikebutton_language', 'en_US'), + ); + + return _fblikebutton_field($webpage_to_like, $conf); + } + } +} diff --git a/fblikebutton.info b/fblikebutton.info index b9b5565..25c180f 100644 --- a/fblikebutton.info +++ b/fblikebutton.info @@ -3,3 +3,4 @@ name = Facebook Like Button description = Adds a configurable Like button for Facebook to each selected node type, as well as a configurable block with a Like box in it. core = 7.x configure = admin/config/fblikebutton +files[] = fblikebutton.handlers.inc diff --git a/fblikebutton.module b/fblikebutton.module index cb191b6..2ca00c5 100644 --- a/fblikebutton.module +++ b/fblikebutton.module @@ -225,4 +225,13 @@ function _fblikebutton_field($webpage_to_like, $conf) { $src = htmlentities($params); $output = ''; return $output; -} \ No newline at end of file +} + +/** + * Implementes hook_views_data() + */ +function fblikebutton_views_api() { + return array( + 'api' => 3, + ); +} diff --git a/fblikebutton.views.inc b/fblikebutton.views.inc new file mode 100644 index 0000000..dd162dc --- /dev/null +++ b/fblikebutton.views.inc @@ -0,0 +1,20 @@ + array( + 'title' => t('Facebook Like Button'), + 'help' => t('Adds a facebook like button.'), + 'handler' => 'fblikebutton_handler_field_fblikebutton', + ), + ); + + return $data; +} -- cgit v1.2.3