google.php
3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?php
/**
* @package Joomla.Platform
* @subpackage Google
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
use Joomla\Registry\Registry;
/**
* Joomla Platform class for interacting with the Google APIs.
*
* @property-read JGoogleData $data Google API object for data.
* @property-read JGoogleEmbed $embed Google API object for embed generation.
*
* @since 3.1.4
* @deprecated 4.0 Use the `joomla/google` package via Composer instead
*/
class JGoogle
{
/**
* @var Registry Options for the Google object.
* @since 3.1.4
*/
protected $options;
/**
* @var JGoogleAuth The authentication client object to use in sending authenticated HTTP requests.
* @since 3.1.4
*/
protected $auth;
/**
* @var JGoogleData Google API object for data request.
* @since 3.1.4
*/
protected $data;
/**
* @var JGoogleEmbed Google API object for embed generation.
* @since 3.1.4
*/
protected $embed;
/**
* Constructor.
*
* @param Registry $options Google options object.
* @param JGoogleAuth $auth The authentication client object.
*
* @since 3.1.4
*/
public function __construct(Registry $options = null, JGoogleAuth $auth = null)
{
$this->options = isset($options) ? $options : new Registry;
$this->auth = isset($auth) ? $auth : new JGoogleAuthOauth2($this->options);
}
/**
* Method to create JGoogleData objects
*
* @param string $name Name of property to retrieve
* @param Registry $options Google options object.
* @param JGoogleAuth $auth The authentication client object.
*
* @return JGoogleData Google data API object.
*
* @since 3.1.4
*/
public function data($name, $options = null, $auth = null)
{
if ($this->options && !$options)
{
$options = $this->options;
}
if ($this->auth && !$auth)
{
$auth = $this->auth;
}
switch ($name)
{
case 'plus':
case 'Plus':
return new JGoogleDataPlus($options, $auth);
case 'picasa':
case 'Picasa':
return new JGoogleDataPicasa($options, $auth);
case 'adsense':
case 'Adsense':
return new JGoogleDataAdsense($options, $auth);
case 'calendar':
case 'Calendar':
return new JGoogleDataCalendar($options, $auth);
default:
return;
}
}
/**
* Method to create JGoogleEmbed objects
*
* @param string $name Name of property to retrieve
* @param Registry $options Google options object.
*
* @return JGoogleEmbed Google embed API object.
*
* @since 3.1.4
*/
public function embed($name, $options = null)
{
if ($this->options && !$options)
{
$options = $this->options;
}
switch ($name)
{
case 'maps':
case 'Maps':
return new JGoogleEmbedMaps($options);
case 'analytics':
case 'Analytics':
return new JGoogleEmbedAnalytics($options);
default:
return;
}
}
/**
* Get an option from the JGoogle instance.
*
* @param string $key The name of the option to get.
*
* @return mixed The option value.
*
* @since 3.1.4
*/
public function getOption($key)
{
return $this->options->get($key);
}
/**
* Set an option for the JGoogle instance.
*
* @param string $key The name of the option to set.
* @param mixed $value The option value to set.
*
* @return JGoogle This object for method chaining.
*
* @since 3.1.4
*/
public function setOption($key, $value)
{
$this->options->set($key, $value);
return $this;
}
}