aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fblikebutton.handlers.inc63
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;
}
}