commit a105e4c0c93d1f3c20ebb94e980407b228600fd3 Author: Jason Smith Date: Tue Aug 23 21:34:10 2011 -0400 First revision module diff --git a/google_plusone.module b/google_plusone.module index 6db883d..a96fbe5 100644 --- a/google_plusone.module +++ b/google_plusone.module @@ -246,6 +246,14 @@ function google_plusone_button_negotiate_language($glanguages = array()) { } } +/** + * Implements hook_ctools_plugin_directory(). + */ +function google_plusone_ctools_plugin_directory($module, $plugin) { + if ($module == 'ctools') { + return 'plugins/' . $plugin; + } +} /** diff --git a/plugins/content_types/plusone.inc b/plugins/content_types/plusone.inc new file mode 100644 index 0000000..0d8af7c --- /dev/null +++ b/plugins/content_types/plusone.inc @@ -0,0 +1,74 @@ + TRUE, + 'title' => t('Google Plus One pane'), + 'icon' => 'icon_node.png', + 'description' => t('Uses node context to provide URL.'), + 'required context' => array(new ctools_context_required(t('Node'), 'node')), + 'category' => t('Google+'), + 'defaults' => array(), + ); +} + +/** + * Implementation of hook_content_type_render(). + */ +function google_plusone_plusone_content_type_render($subtype, $conf, $panel_args, $context) { + $node = $context[0]; + + // Make a new empty "block" + $pane = new stdClass(); + + if ($node) { + $pane->title = ''; + $pane->content = _google_plusone_plusone_content($node); + } else { + $pane->content = "Node information not available"; + } + + return $pane; +} + +/** + * Implementation of hook_content_type_edit_form(). + */ +function google_plusone_plusone_content_type_edit_form(&$form, &$form_state) { + $conf = $form_state['conf']; +} + +/** + * Implementation of hook_content_type_admin_title(). + */ +function google_plusone_plusone_content_type_admin_title($subtype, $conf, $context) { + return t('Google plus one pane'); +} + +/** + * Generate and spit out the Google plus one widget + */ +function _google_plusone_plusone_content($node) { + $output = ''; + if (user_access('view google plusone')) { + $default = array( + 'url' => '', + 'count' => 0, + 'size' => '', // standard + 'css' => 'text-align:center;', + ); + + google_plusone_add_js(); + $settings = variable_get('google_plusone_block_settings', $default); + + unset($settings['url']); + $settings['node'] = $node->data; + + $output = theme('google_plusone_button', $settings); + } + + return $output; +}