diff options
-rw-r--r-- | fblikebutton.handlers.inc | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/fblikebutton.handlers.inc b/fblikebutton.handlers.inc index aeb40a3..fc5f7b3 100644 --- a/fblikebutton.handlers.inc +++ b/fblikebutton.handlers.inc @@ -9,43 +9,40 @@ * Field handler for fblikebutton total transactions. */ class fblikebutton_handler_field_fblikebutton extends views_handler_field { - /** - * Implements views_handler_field#query(). - */ + function construct() { + parent::construct(); + $this->additional_fields['type'] = 'type'; + } + function query() { - // Provide an field alias but don't actually alter the query. - $this->field_alias = 'views_fblikebutton_button_' . $this->position; + $this->ensure_my_table(); + $this->add_additional_fields(); } - /** - * 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); + $output = NULL; + $nid = $values->nid; + $types = variable_get('fblikebutton_node_types', array()); + $show = (!empty($types[$values->node_type]) && user_access('access fblikebutton')); + + $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'), + ); + $webpage_to_like = url("node/$nid", array('absolute' => TRUE)); + + if ($show) { + $output = _fblikebutton_field($webpage_to_like, $conf); } + + return $output; } } |