source: extensions/GooglePlusOne/main.inc.php @ 15907

Revision 15121, 3.4 KB checked in by mistic100, 8 years ago (diff)

update for Piwigo 2.4
change previews with new G+1 appearance
add Annotation parameter

Line 
1<?php
2/*
3Plugin Name: Google+1
4Version: auto
5Description: Add a "+1" Google button
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=562
7Author: Mistic
8Author URI: http://www.strangeplanet.fr
9*/
10
11if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
12
13define('GPLUS1_PATH' , PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/');
14
15load_language('plugin.lang', GPLUS1_PATH);
16add_event_handler('loc_end_picture', 'gplus1_add_button');
17add_event_handler('loc_end_index', 'gplus1_add_button');
18
19
20function gplus1_add_button() 
21{
22  global $conf, $template, $user;
23 
24  $conf['GooglePlusOne'] = unserialize($conf['GooglePlusOne']);
25  $conf['GooglePlusOne']['lang'] = array(
26    'ar','bg','ca','zh-CN','zh-TW','hr','cs','da','nl','en-US','en-GB','et','fi','fr','de',
27    'el','iw','hi','hu','id','it','ja','ko','lv','lt','ms','no','fa','pl','pt-BR','pt-PT',
28    'ro','ru','sr','sk','sl','es','sv','th','tr','uk','vi',
29    );
30   
31  $template->assign(array(
32    'GPLUS1_SIZE' => $conf['GooglePlusOne']['size'],
33    'GPLUS1_ANNO' => $conf['GooglePlusOne']['annotation'],
34  ));
35 
36  if (script_basename() == 'picture')
37  {
38    $template->assign('GPLUS1_POSITON', $conf['GooglePlusOne']['position']);
39    $template->set_prefilter('picture', 'gplus1_add_button_prefilter');
40  }
41  else if (script_basename() == 'index')
42  {
43    $template->assign('GPLUS1_POSITON', 'index');
44    $template->set_prefilter('index', 'gplus1_add_button_prefilter');
45  }
46 
47  // if the link is in the toolbar, we must use smallier buttons
48  if ( script_basename() == 'index' OR  $conf['GooglePlusOne']['position'] == 'toolbar')
49  {
50    if ($conf['GooglePlusOne']['size'] == 'tall' AND $conf['GooglePlusOne']['annotation'] == 'bubble')
51    {
52        $template->assign('GPLUS1_SIZE', 'standard');
53    }
54  }
55 
56  // button language
57  if ( in_array(str_replace('_','-',$user['language']), $conf['GooglePlusOne']['lang']) )
58  {
59    $template->assign('GPLUS1_LANG', str_replace('_','-',$user['language']));
60  }
61  if ( in_array(substr($user['language'],0,2), $conf['GooglePlusOne']['lang']) )
62  {
63    $template->assign('GPLUS1_LANG', substr($user['language'],0,2));
64  }
65  else
66  {
67    $template->assign('GPLUS1_LANG', 'en-GB');
68  }
69}
70
71function gplus1_add_button_prefilter($content, &$smarty)
72{
73  global $template;
74 
75  $replace = '{combine_script id=\'google_plusone\' path=\'https://apis.google.com/js/plusone.js\'}
76<script type="text/javascript">window.___gcfg = {ldelim}lang: \'{$GPLUS1_LANG}\'};</script>
77<g:plusone size="{$GPLUS1_SIZE}" annotation="{$GPLUS1_ANNO}"></g:plusone>';
78 
79  switch ($template->get_template_vars('GPLUS1_POSITON'))
80  {
81    case 'top':
82      $search = '<div id="theImage">';
83      $replace = '<div>'.$replace.'</div>';
84      break;
85     
86    case 'bottom':
87      $search = '{$ELEMENT_CONTENT}';
88      break;
89     
90    case 'toolbar':
91      $search = '<div class="actionButtons">';
92      break;
93     
94    case 'index': 
95      $search = '<ul class="categoryActions">';
96      $replace = '<li>'.$replace.'</li>';
97      break;
98  }
99
100  return str_replace($search, $search.$replace, $content);
101}
102
103
104if (script_basename() == 'admin')
105{
106  add_event_handler('get_admin_plugin_menu_links', 'gplus1_plugin_admin_menu');
107
108  function gplus1_plugin_admin_menu($menu)
109  {
110    array_push($menu, array(
111      'NAME' => 'Google+1',
112      'URL' => get_root_url().'admin.php?page=plugin-'.basename(dirname(__FILE__))
113      ));
114    return $menu;
115  }
116}
117
118?>
Note: See TracBrowser for help on using the repository browser.