-
Notifications
You must be signed in to change notification settings - Fork 0
/
photoimages.php
112 lines (100 loc) · 3.37 KB
/
photoimages.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
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
<?php
namespace Grav\Plugin;
use Grav\Common\Plugin;
use RocketTheme\Toolbox\Event\Event;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
/**
* Class PhotoImagesPlugin
* @package Grav\Plugin
*/
class PhotoImagesPlugin extends Plugin
{
/**
* @return array
*
* The getSubscribedEvents() gives the core a list of events
* that the plugin wants to listen to. The key of each
* array section is the event that the plugin listens to
* and the value (in the form of an array) contains the
* callable (or function) as well as the priority. The
* higher the number the higher the priority.
*/
public static function getSubscribedEvents()
{
return [
'onPluginsInitialized' => ['onPluginsInitialized', 0]
];
}
/**
* Initialize the plugin
*/
public function onPluginsInitialized()
{
// Don't proceed if we are in the admin plugin
if ($this->isAdmin()) {
return;
}
// Enable the main event we are interested in
$this->enable([
'onPageInitialized' => ['onPageInitialized', 100],
]);
}
public function onPageInitialized()
{
if ($this->isAdmin()) {
$this->active = false;
return;
}
$defaults = (array) $this->config->get('plugins.photoimages');
/** @var Page $page */
$page = $this->grav['page'];
if (isset($page->header()->photoimages)) {
$this->config->set('plugins.photoimages', array_merge($defaults, $page->header()->photoimages));
}
if ($this->config->get('plugins.photoimages.active')) {
$this->enable([
'onTwigSiteVariables' => ['onTwigSiteVariables', 0],
//'onPageContentProcessed' => ['onPageContentProcessed', -100000]
]);
}
}
public function onTwigSiteVariables()
{
$locator = $this->grav['locator'];
$config = $this->grav['config'];
/** @var Page $page */
$page = $this->grav['page'];
$mode = $config->get('plugins.photoimages.production') ? '.min' : '';
$bits = [];
// Add core js
$bits[] = 'plugin://photoimages/dist/jquery.photoimages'.$mode.'.js';
// Add the bits
$assets = $this->grav['assets'];
$assets->registerCollection('photoimages', $bits);
$assets->add('photoimages', 100);
// Insert inline JS code
$code = "
jQuery(document).ready(function() {
// Create photoImages with a seed-based rotation
jQuery('.frame-tilt').photoImages({
boxShadowOffsetX: '10px',
boxShadowOffsetY: '10px',
boxShadowLength: '10px',
boxShadowColor: '#7f7f7f',
marginRight: '10px',
rotate: 'seed'
});
});
";
$assets->addInlineJs($code);
}
// If you want to process the page, do so like this:
// public function onPageContentProcessed()
// {
// $config = $this->grav['config'];
// $page = $this->grav['page'];
// $content = $page->getRawContent();
// $fulltag = str_replace('<table', '<table id="tstableid'.$i.'"', $fulltag);
// $this->grav['page']->setRawContent($content);
// }
}