Subversion Repositories oidplus

Rev

Rev 1086 | Go to most recent revision | 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());
33
                $path = dirname($reflector->getFilename());
34
                return $path;
35
        }
292 daniel-mar 36
 
1116 daniel-mar 37
        /**
38
         * @return OIDplusPluginManifest|null
39
         */
40
        public function getManifest()/*: ?OIDplusPluginManifest*/ {
380 daniel-mar 41
                $dir = $this->getPluginDirectory();
988 daniel-mar 42
                $ini = $dir.DIRECTORY_SEPARATOR.'manifest.xml';
380 daniel-mar 43
                $manifest = new OIDplusPluginManifest();
44
                return $manifest->loadManifest($ini) ? $manifest : null;
321 daniel-mar 45
        }
46
 
1116 daniel-mar 47
        /**
48
         * @param bool $html
49
         * @return void
50
         */
51
        public function init(bool $html=true) {}
230 daniel-mar 52
 
1116 daniel-mar 53
        /**
54
         * @param string $actionID
55
         * @param array $params
56
         * @return array
57
         * @throws OIDplusException
58
         */
59
        public function action(string $actionID, array $params): array {
60
                throw new OIDplusException(_L('Invalid action ID'));
61
        }
778 daniel-mar 62
 
1116 daniel-mar 63
        /**
64
         * override this method if you want that your plugin
65
         * can accept ajax.php requests from outside, without CSRF check
66
         * @param string $actionID
67
         * @return bool
68
         */
69
        public function csrfUnlock(string $actionID): bool {
70
                return false;
71
        }
72
 
73
        /**
74
         * @param string $request
75
         * @return bool Handled?
76
         */
77
        public function handle404(string $request): bool {
78
                return false;
79
        }
80
 
81
        /**
82
         * @param string $html
83
         * @return void
84
         */
85
        public function htmlPostprocess(string &$html) {}
86
 
87
        /**
88
         * @param array $head_elems
89
         * @return void
90
         */
91
        public function htmlHeaderUpdate(array &$head_elems) {}
92
 
93
        /**
94
         * @param string[] $http_headers
95
         * @return void
96
         */
97
        public function httpHeaderCheck(array &$http_headers) {}
98
 
221 daniel-mar 99
}