-
Notifications
You must be signed in to change notification settings - Fork 15
/
libraries.php
127 lines (89 loc) · 4.67 KB
/
libraries.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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
// no direct access to this file
defined( 'DACCESS' ) or die;
class MLIB {
private $libs = array(
'mapilib' => 'mlib.crypt;mlib.messaging;mlib.purifier;mlib.validate;mlib.get;mlib.put;mlib.html;mlib.table',
'htmlpurifier' => 'htmlpurifier:library:HTMLPurifier.auto',
'idiorm' => 'idiorm:idiorm',
'geocoder' => 'geocoder:autoload',
'swift' => 'swift:lib:swift_required',
'parsedown' => 'parsedown:Parsedown',
'facebook' => 'facebook:facebook',
'recaptcha' => 'recaptcha:recaptchalib',
'image_resizer' => 'image_resizer:PHPThumb;image_resizer:GD'
);
public function __construct() {
if ( sizeof( $this->libs ) > 0 ) {
foreach ( $this->libs as $key => $value ) {
$paths = explode( ';', $value );
foreach ( $paths as $path ) {
if ( $key && $value ) $load = $this->$key( $path );
if ( ! $load ) die( 'M_ERROR (00131): A required library cannot be loaded: File missing or not readable!' );
}
}
}
}
private function mapilib( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return null;
return true;
}
private function htmlpurifier( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return null;
MPurifier::instance();
return true;
}
private function idiorm( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return null;
if ( ! isset( MSettings::$db_host ) || ! strlen( MSettings::$db_host ) > 0 ) return false;
if ( ! isset( MSettings::$db ) || ! strlen( MSettings::$db ) > 0 ) return false;
if ( ! isset( MSettings::$db_user ) || ! strlen( MSettings::$db_user ) > 0 ) return false;
if ( ! isset( MSettings::$db_pass ) || ! strlen( MSettings::$db_pass ) > 0 ) return false;
try {
ORM::configure( 'mysql:host=' . MSettings::$db_host . ';dbname=' . MSettings::$db );
ORM::configure( 'username', MSettings::$db_user );
ORM::configure( 'password', MSettings::$db_pass );
ORM::configure( 'driver_options', array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ) );
$test = ORM::for_table( 'preferences' )->create();
if ( $test ) return true;
else die( 'M_ERROR (00133): Cannot create a preferences instance, have you installed the database?' );
} catch( PDOException $e ) {
die( 'M_ERROR (00132): Cannot connect to MySQL, please check the configuration in settings.php!' );
}
}
private function geocoder( $path ) {
global $geocoder;
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return null;
$adapter = new \Geocoder\HttpAdapter\CurlHttpAdapter();
$chain = new \Geocoder\Provider\ChainProvider(
array(
new \Geocoder\Provider\NominatimProvider( $adapter, 'nominatim.openstreetmap.org', 'en-GB' ),
new \Geocoder\Provider\GoogleMapsProvider( $adapter )
)
);
$geocoder = new \Geocoder\Geocoder();
$geocoder->registerProvider( $chain );
return true;
}
private function swift( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return false;
return true;
}
private function parsedown( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return false;
return true;
}
private function facebook( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return false;
return true;
}
private function recaptcha( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return false;
return true;
}
private function image_resizer( $path ) {
if ( ! mapi_include_abs_path( $path, 'lib' ) ) return false;
return true;
}
}
?>