-
Notifications
You must be signed in to change notification settings - Fork 0
/
shortcodes.php
48 lines (38 loc) · 1.2 KB
/
shortcodes.php
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
<?php
require_once('vendor/autoload.php');
use OpenComponents\Client;
function ocComponent($attrs) {
foreach($attrs as $key => $attr) {
$pascalCaseKey = lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $key))));
$pascalCaseKey = str_replace('-', '.', $pascalCaseKey);
$attrs[$pascalCaseKey] = html_entity_decode($attr);
}
// Initializing the client
$client = new Client(array(
"serverRendering" => get_option('serverRendering')
));
$components = array(
array(
'name' => $attrs['component'],
'parameters' => $attrs
)
);
if ($attrs['version']) {
$components[0]['version'] = $attrs['version'];
}
if (get_option('includeOcClient')) {
$components[] = array('name' => 'oc-client');
}
// Render some component
$components = $client->renderComponents($components);
if (is_array($components['html'])) {
$return = '';
foreach ($components['html'] as $content) {
$return .= $content;
}
return $return;
}
// Print the rendered component and volià
return $components['html'];
}
add_shortcode('oc-component', 'ocComponent');