diff options
-rw-r--r-- | fblikebutton.handlers.inc | 51 | ||||
-rw-r--r-- | fblikebutton.info | 1 | ||||
-rw-r--r-- | fblikebutton.module | 11 | ||||
-rw-r--r-- | fblikebutton.views.inc | 20 |
4 files changed, 82 insertions, 1 deletions
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 @@ +<?php + +/** + * @file + * Contains the fblikebutton views field handler. + */ + +/** + * Field handler for fblikebutton total transactions. + */ +class fblikebutton_handler_field_fblikebutton extends views_handler_field { + /** + * Implements views_handler_field#query(). + */ + function query() { + // Provide an field alias but don't actually alter the query. + $this->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 <em>Like</em> button for Facebook to each selected node type, as well as a configurable block with a <em>Like</em> 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 = '<iframe src="https://www.facebook.com/plugins/like.php?' . $src . '" scrolling="no" frameborder="0" style="border: none; overflow: hidden; width: ' . $width . 'px; height: ' . $height . 'px;' . $other_css . '" allowTransparency="true"></iframe>'; 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 @@ +<?php + +/** + * @file + */ + +/** + * Implements hook_views_data() + */ +function fblikebutton_views_data() { + $data['node']['fblikebutton'] = array( + 'field' => array( + 'title' => t('Facebook Like Button'), + 'help' => t('Adds a facebook like button.'), + 'handler' => 'fblikebutton_handler_field_fblikebutton', + ), + ); + + return $data; +} |