Subversion Repositories oidplus

Rev

Rev 1116 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
221 daniel-mar 1
<?php
2
 
3
/*
4
 * OIDplus 2.0
1086 daniel-mar 5
 * Copyright 2019 - 2023 Daniel Marschall, ViaThinkSoft
221 daniel-mar 6
 *
7
 * Licensed under the Apache License, Version 2.0 (the "License");
8
 * you may not use this file except in compliance with the License.
9
 * You may obtain a copy of the License at
10
 *
11
 *     http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing, software
14
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 * See the License for the specific language governing permissions and
17
 * limitations under the License.
18
 */
19
 
1050 daniel-mar 20
namespace ViaThinkSoft\OIDplus;
511 daniel-mar 21
 
1086 daniel-mar 22
// phpcs:disable PSR1.Files.SideEffects
23
\defined('INSIDE_OIDPLUS') or die;
24
// phpcs:enable PSR1.Files.SideEffects
25
 
730 daniel-mar 26
abstract class OIDplusPlugin extends OIDplusBaseClass {
221 daniel-mar 27
 
1116 daniel-mar 28
        /**
29
         * @return string
30
         */
31
        public final function getPluginDirectory(): string {
380 daniel-mar 32
                $reflector = new \ReflectionClass(get_called_class());
1130 daniel-mar 33
                return dirname($reflector->getFilename());
380 daniel-mar 34
        }
292 daniel-mar 35
 
1116 daniel-mar 36
        /**
37
         * @return OIDplusPluginManifest|null
38
         */
39
        public function getManifest()/*: ?OIDplusPluginManifest*/ {
380 daniel-mar 40
                $dir = $this->getPluginDirectory();
988 daniel-mar 41
                $ini = $dir.DIRECTORY_SEPARATOR.'manifest.xml';
380 daniel-mar 42
                $manifest = new OIDplusPluginManifest();
43
                return $manifest->loadManifest($ini) ? $manifest : null;
321 daniel-mar 44
        }
45
 
1116 daniel-mar 46
        /**
47
         * @param bool $html
48
         * @return void
49
         */
50
        public function init(bool $html=true) {}
230 daniel-mar 51
 
1116 daniel-mar 52
        /**
53
         * @param string $actionID
54
         * @param array $params
55
         * @return array
56
         * @throws OIDplusException
57
         */
58
        public function action(string $actionID, array $params): array {
59
                throw new OIDplusException(_L('Invalid action ID'));
60
        }
778 daniel-mar 61
 
1116 daniel-mar 62
        /**
63
         * override this method if you want that your plugin
64
         * can accept ajax.php requests from outside, without CSRF check
65
         * @param string $actionID
66
         * @return bool
67
         */
68
        public function csrfUnlock(string $actionID): bool {
69
                return false;
70
        }
71
 
72
        /**
73
         * @param string $request
74
         * @return bool Handled?
75
         */
76
        public function handle404(string $request): bool {
77
                return false;
78
        }
79
 
80
        /**
81
         * @param string $html
82
         * @return void
83
         */
84
        public function htmlPostprocess(string &$html) {}
85
 
86
        /**
87
         * @param array $head_elems
88
         * @return void
89
         */
90
        public function htmlHeaderUpdate(array &$head_elems) {}
91
 
92
        /**
93
         * @param string[] $http_headers
94
         * @return void
95
         */
96
        public function httpHeaderCheck(array &$http_headers) {}
97
 
221 daniel-mar 98
}