'Social Buttons', 'URL' => SOCIALBUTT_ADMIN, )); return $menu; } } else { add_event_handler('loc_end_picture', 'socialbutt_add_button'); add_event_handler('loc_end_index', 'socialbutt_add_button'); } /** * plugin initialization */ function socialbutt_init() { global $conf, $pwg_loaded_plugins; // apply upgrade if needed if ( SOCIALBUTT_VERSION == 'auto' or $pwg_loaded_plugins[SOCIALBUTT_ID]['version'] == 'auto' or version_compare($pwg_loaded_plugins[SOCIALBUTT_ID]['version'], SOCIALBUTT_VERSION, '<') ) { // call install function include_once(SOCIALBUTT_PATH . 'include/install.inc.php'); socialbutt_install(); // update plugin version in database if ( $pwg_loaded_plugins[SOCIALBUTT_ID]['version'] != 'auto' and SOCIALBUTT_VERSION != 'auto' ) { $query = ' UPDATE '. PLUGINS_TABLE .' SET version = "'. SOCIALBUTT_VERSION .'" WHERE id = "'. SOCIALBUTT_ID .'"'; pwg_query($query); $pwg_loaded_plugins[SOCIALBUTT_ID]['version'] = SOCIALBUTT_VERSION; if (defined('IN_ADMIN')) { $_SESSION['page_infos'][] = 'Social Buttons updated to version '. SOCIALBUTT_VERSION; } } } // prepare plugin configuration $conf['SocialButtons'] = unserialize($conf['SocialButtons']); } /** * add buttons */ function socialbutt_add_button() { global $conf, $template; $basename = script_basename(); set_make_full_url(); $root_url = get_absolute_root_url(); if ($basename == 'picture') { // global $picture; // if ($picture['current']['level'] > 0) return; $share_url = duplicate_picture_url(); } else if ($basename == 'index' and $conf['SocialButtons']['on_index']) { $conf['SocialButtons']['position'] = 'index'; $share_url = duplicate_index_url(array(), array('start')); } else { return; } $tpl_vars = array( 'share_url' => $share_url, 'position' => $conf['SocialButtons']['position'], 'light' => $conf['SocialButtons']['light'], 'copyright' => '(from '.$conf['gallery_title'].')', ); $buttons = array(); if ($conf['SocialButtons']['google']['enabled']) { include_once(SOCIALBUTT_PATH . 'include/google.inc.php'); socialbutt_google($basename, $root_url, $tpl_vars, $buttons); } if ($conf['SocialButtons']['twitter']['enabled']) { include_once(SOCIALBUTT_PATH . 'include/twitter.inc.php'); socialbutt_twitter($basename, $root_url, $tpl_vars, $buttons); } if ($conf['SocialButtons']['facebook']['enabled']) { include_once(SOCIALBUTT_PATH . 'include/facebook.inc.php'); socialbutt_facebook($basename, $root_url, $tpl_vars, $buttons); } if ($conf['SocialButtons']['tumblr']['enabled']) { include_once(SOCIALBUTT_PATH . 'include/tumblr.inc.php'); socialbutt_tumblr($basename, $root_url, $tpl_vars, $buttons); } if ($conf['SocialButtons']['pinterest']['enabled'] and $basename=='picture') { include_once(SOCIALBUTT_PATH . 'include/pinterest.inc.php'); socialbutt_pinterest($basename, $root_url, $tpl_vars, $buttons); } unset_make_full_url(); if (empty($buttons)) { return; } $template->assign(array( 'SOCIALBUTT' => $tpl_vars, 'SOCIALBUTT_PATH' => SOCIALBUTT_PATH, )); // parse buttons foreach ($buttons as &$button) { $button = $template->parse($button, true); } unset($button); switch ($conf['SocialButtons']['position']) { case 'index': foreach ($buttons as $button) { $template->add_index_button($button, 100); } break; case 'toolbar': foreach ($buttons as $button) { $template->add_picture_button($button, 100); } break; default; define('SOCIALBUTT_POSITION', $conf['SocialButtons']['position']); $template->assign('SOCIALBUTT_BUTTONS', $buttons); $template->set_prefilter('picture', 'socialbutt_add_button_prefilter'); } } function socialbutt_add_button_prefilter($content) { switch (SOCIALBUTT_POSITION) { case 'top': $search = '
'; $add = '
{foreach from=$SOCIALBUTT_BUTTONS item=BUTTON}{$BUTTON} {/foreach}
'; break; case 'bottom': $search = '{$ELEMENT_CONTENT}'; $add = '
{foreach from=$SOCIALBUTT_BUTTONS item=BUTTON}{$BUTTON} {/foreach}
'; break; } return str_replace($search, $search.$add, $content); } ?>