Skip to content

Commit bff2263

Browse files
committed
Added oembedParameters option #23
1 parent a4caca8 commit bff2263

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

Embed/Adapters/Adapter.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ abstract class Adapter
3838
'getBiggerIcon' => false,
3939
'facebookAccessToken' => null,
4040
'soundcloudClientId' => null,
41-
'embedlyKey' => null
41+
'embedlyKey' => null,
42+
'oembedParameters' => array()
4243
);
4344

4445
/**

Embed/Adapters/Webpage.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,10 @@ protected function initProviders(Request $request)
3434
);
3535

3636
if ($this->providers['Html']->get('oembed')) {
37-
$this->providers['OEmbed'] = new Providers\OEmbed(new Request($request->getAbsolute($this->providers['Html']->get('oembed'))));
38-
} elseif (($oEmbed = Providers\OEmbedImplementations::create($request))) {
37+
$request = new Request($request->getAbsolute($this->providers['Html']->get('oembed')));
38+
$request->setParameter($this->options['oembedParameters']);
39+
$this->providers['OEmbed'] = new Providers\OEmbed($request);
40+
} elseif (($oEmbed = Providers\OEmbedImplementations::create($request, $this->options['oembedParameters']))) {
3941
$this->providers['OEmbed'] = $oEmbed;
4042
} elseif ($this->options['embedlyKey'] && ($oEmbed = Providers\Embedly::create($request, $this->options['embedlyKey']))) {
4143
$this->providers['OEmbed'] = $oEmbed;

Embed/Providers/OEmbedImplementations.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class OEmbedImplementations extends Provider
1818
*
1919
* @return null|OEmbed
2020
*/
21-
public static function create(Url $url)
21+
public static function create(Url $url, array $extraParameters = array())
2222
{
2323
//Search the oembed provider using the domain
2424
$class = 'Embed\\Providers\\OEmbed\\'.str_replace(' ', '', ucwords(strtolower(str_replace('-', ' ', $url->getDomain()))));
@@ -33,6 +33,10 @@ public static function create(Url $url)
3333
if ($url->match($settings['patterns'])) {
3434
$endPoint = new Request($settings['endPoint']);
3535

36+
if ($extraParameters) {
37+
$endPoint->setParameter($extraParameters);
38+
}
39+
3640
if (empty($settings['params']) === false) {
3741
$endPoint->setParameter($settings['params']);
3842
}

test.php

+11-2
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
<?php
117117
function getOption($name, $default = null)
118118
{
119-
return isset($_GET['options'][$name]) ? $_GET['options'][$name] : $default;
119+
return htmlspecialchars(isset($_GET['options'][$name]) ? $_GET['options'][$name] : $default, ENT_QUOTES, 'UTF-8');
120120
}
121121
function getResolverOption($name, $default = null)
122122
{
@@ -139,6 +139,7 @@ function getResolverOption($name, $default = null)
139139
<label><span>Facebook access token:</span> <input type="text" name="options[facebookAccessToken]" value="<?php echo getOption('facebookAccessToken'); ?>"></label>
140140
<label><span>Embedly key:</span> <input type="text" name="options[embedlyKey]" value="<?php echo getOption('embedlyKey'); ?>"></label>
141141
<label><span>Soundcloud client id:</span> <input type="text" name="options[soundcloudClientId]" value="<?php echo getOption('soundcloudClientId', 'YOUR_CLIENT_ID'); ?>"></label>
142+
<label><span>oEmbed extra Parameters (in json format):</span> <input type="text" name="options[oembedParameters]" value="<?php echo getOption('oembedParameters'); ?>"></label>
142143
</fieldset>
143144
<fieldset class="options">
144145
<h2>Request resolver options:</h2>
@@ -161,6 +162,11 @@ function getResolverOption($name, $default = null)
161162
<section>
162163
<?php
163164
$options = isset($_GET['options']) ? (array) $_GET['options'] : array();
165+
166+
if (isset($options['oembedParameters'])) {
167+
$options['oembedParameters'] = $options['oembedParameters'] ? json_decode($options['oembedParameters'], true) : array();
168+
}
169+
164170
$resolverOptions = isset($_GET['resolver']) ? (array) $_GET['resolver'] : array();
165171

166172
Embed\Request::setResolverConfig($resolverOptions);
@@ -220,7 +226,10 @@ function getResolverOption($name, $default = null)
220226
</tr>
221227
<tr>
222228
<th>Embed code</th>
223-
<td><?php echo $info->code; ?></td>
229+
<td>
230+
<?php echo $info->code; ?>
231+
<pre><?php echo htmlspecialchars($info->code, ENT_IGNORE); ?></pre>
232+
</td>
224233
</tr>
225234
<tr>
226235
<th>Url</th>

0 commit comments

Comments
 (0)