diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..f137394d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +composer.lock +composer.phar +vendor/ diff --git a/packages/maxmind/GeoLite2-Country.mmdb b/assets/packages/maxmind/GeoLite2-Country.mmdb similarity index 100% rename from packages/maxmind/GeoLite2-Country.mmdb rename to assets/packages/maxmind/GeoLite2-Country.mmdb diff --git a/packages/maxmind/README b/assets/packages/maxmind/README similarity index 100% rename from packages/maxmind/README rename to assets/packages/maxmind/README diff --git a/assets/plugins/.gitkeep b/assets/plugins/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/admin.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/admin.css old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/admin.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/admin.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/admin.js b/assets/themes-admin/foolz/foolframe-theme-admin/assets/admin.js old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/admin.js rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/admin.js diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.css similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.min.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.min.css similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.min.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap-responsive.min.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.css old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.min.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.min.css old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.min.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/css/bootstrap.min.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings-white.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings-white.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings-white.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings-white.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/img/glyphicons-halflings.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.js b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.js old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.js rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.js diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.min.js b/assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.min.js old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.min.js rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/bootstrap2/js/bootstrap.min.js diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/README.md b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/README.md old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/README.md rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/README.md diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.css old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.min.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.min.css similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.min.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome-ie7.min.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.css old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.min.css b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.min.css similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.min.css rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/css/font-awesome.min.css diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/FontAwesome.otf b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/FontAwesome.otf similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/FontAwesome.otf rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/FontAwesome.otf diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.eot b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.eot old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.eot rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.eot diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.svg b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.svg old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.svg rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.svg diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.ttf b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.ttf old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.ttf rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.ttf diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.woff b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.woff old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.woff rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/font/fontawesome-webfont.woff diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome-ie7.less b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome-ie7.less similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome-ie7.less rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome-ie7.less diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome.less b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome.less similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome.less rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/less/font-awesome.less diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.sass b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.sass similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.sass rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.sass diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.scss b/assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.scss similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.scss rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/font-awesome/sass/font-awesome.scss diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.gif b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.gif old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.gif rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.gif diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/ajax-loader.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/icon-search-black.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icon-search-black.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/icon-search-black.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icon-search-black.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-black.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-black.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-black.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-black.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-white.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-white.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-white.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-18-white.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-black.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-black.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-black.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-black.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-white.png b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-white.png old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-white.png rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/icons-36-white.png diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/images/loader-18.gif b/assets/themes-admin/foolz/foolframe-theme-admin/assets/images/loader-18.gif old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/images/loader-18.gif rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/images/loader-18.gif diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/jquery.js b/assets/themes-admin/foolz/foolframe-theme-admin/assets/jquery.js old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/jquery.js rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/jquery.js diff --git a/public/themes-admin/foolz/foolframe-theme-admin/assets/maintenance.jpg b/assets/themes-admin/foolz/foolframe-theme-admin/assets/maintenance.jpg old mode 100755 new mode 100644 similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/assets/maintenance.jpg rename to assets/themes-admin/foolz/foolframe-theme-admin/assets/maintenance.jpg diff --git a/public/themes-admin/foolz/foolframe-theme-admin/bootstrap.php b/assets/themes-admin/foolz/foolframe-theme-admin/bootstrap.php similarity index 100% rename from public/themes-admin/foolz/foolframe-theme-admin/bootstrap.php rename to assets/themes-admin/foolz/foolframe-theme-admin/bootstrap.php diff --git a/assets/themes-admin/foolz/foolframe-theme-admin/composer.json b/assets/themes-admin/foolz/foolframe-theme-admin/composer.json new file mode 100644 index 00000000..c6f47240 --- /dev/null +++ b/assets/themes-admin/foolz/foolframe-theme-admin/composer.json @@ -0,0 +1,35 @@ +{ + "name": "foolz/foolframe-theme-admin", + "type": "foolz-foolframe-admin-theme", + "description": "The default FoolFrame admin theme.", + "version": "1.0.3", + "keywords": [ + "theme", + "admin", + "foolframe" + ], + "homepage": "http://www.foolz.us", + "license": "Apache-2.0", + "authors": [ + { + "name": "foolz", + "email": "support@foolz.us" + } + ], + "support": { + "email": "support@foolz.us", + "irc": "irc://irc.irchighway.net/fooldriver" + }, + "require": { + "php": ">=5.4.0", + "foolz/theme": "dev" + }, + "autoload": { + "psr-4": { + "Foolz\\FoolFrame\\Theme\\Admin\\": "src/" + } + }, + "extra": { + "name": "Admin" + } +} diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Layout/Account.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Layout/Account.php old mode 100755 new mode 100644 similarity index 94% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Layout/Account.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Layout/Account.php index 91d32451..8d21fdf5 --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Layout/Account.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Layout/Account.php @@ -1,11 +1,11 @@ diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Layout/Base.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Layout/Base.php old mode 100755 new mode 100644 similarity index 97% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Layout/Base.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Layout/Base.php index a20e3259..00c7284c --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Layout/Base.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Layout/Base.php @@ -1,10 +1,10 @@ @@ -17,7 +17,7 @@ public function toString()

Otherwise, you can activate your account by following this link. ( ゜∀゜)アハハ八八ノヽノヽノヽノ \ / \/ \

-If the link does not work, copy and paste the following address into your browser's address bar: +If the link does not work, copy and paste the following address into your browser's address bar: getParamManager()->getParam('link') ?>


Thanks for joining us! キタ━━━━(゚∀゚)━━━━ !!!!! Your registration was VIP quality.
diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/DeleteAccount.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/DeleteAccount.php old mode 100755 new mode 100644 similarity index 87% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/DeleteAccount.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/DeleteAccount.php index c8de5a26..55817de2 --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/DeleteAccount.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/DeleteAccount.php @@ -1,8 +1,8 @@ diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/EmailChange.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/EmailChange.php old mode 100755 new mode 100644 similarity index 87% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/EmailChange.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/EmailChange.php index 990b01c5..5bd6be60 --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/EmailChange.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/EmailChange.php @@ -1,8 +1,8 @@ diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/PasswordChange.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/PasswordChange.php old mode 100755 new mode 100644 similarity index 87% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/PasswordChange.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/PasswordChange.php index ebe81691..f2c740f4 --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/Email/PasswordChange.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/Email/PasswordChange.php @@ -1,8 +1,8 @@ diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/ForgotPassword.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/ForgotPassword.php old mode 100755 new mode 100644 similarity index 88% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/ForgotPassword.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/ForgotPassword.php index 615c47b8..b6774040 --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Account/ForgotPassword.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Account/ForgotPassword.php @@ -1,8 +1,8 @@ diff --git a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Users/Manage.php b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Users/Manage.php similarity index 90% rename from public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Users/Manage.php rename to assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Users/Manage.php index ed4c7f7e..2e7d75ef 100644 --- a/public/themes-admin/foolz/foolframe-theme-admin/classes/Foolz/Foolframe/Theme/Admin/Partial/Users/Manage.php +++ b/assets/themes-admin/foolz/foolframe-theme-admin/src/Partial/Users/Manage.php @@ -1,8 +1,8 @@ diff --git a/composer.json b/composer.json index 1bfb449e..090076cd 100755 --- a/composer.json +++ b/composer.json @@ -10,7 +10,7 @@ "require": { }, - "autoload": { - "psr-4": {"Foolz\\Foolframe\\": "src/"} - } + "autoload": { + "psr-4": {"Foolz\\FoolFrame\\": "src/"} + } } diff --git a/config/config.php b/config/config.php index 1d4141e8..6da6eb28 100755 --- a/config/config.php +++ b/config/config.php @@ -17,7 +17,10 @@ 'modules' => [ // list of modules installed 'installed' => [ - 'foolframe' => 'foolz/foolframe' + 'foolframe' => [ + 'context' => '\\Foolz\\FoolFrame\\Model\\Context', + 'namespace' => 'foolz/foolframe' + ] ] ] ]; diff --git a/config/package.php b/config/package.php index 1ebcecb6..d0b3f7bb 100755 --- a/config/package.php +++ b/config/package.php @@ -16,10 +16,12 @@ */ 'name' => 'FoolFrame', + 'class_context' => '\\Foolz\\FoolFrame\\Model\\Context', + /** * The name that can be used in classes names */ - 'class_name' => 'Foolframe', + 'class_name' => 'FoolFrame', /** * URL to download a newer version @@ -57,8 +59,8 @@ * Locations of the data out of the module folder */ 'directories' => [ - 'themes' => VENDPATH.'foolz/foolframe/public/themes/', - 'plugins' => VENDPATH.'foolz/foolframe/public/plugins/' + 'themes' => VENDPATH.'foolz/foolframe/assets/themes/', + 'plugins' => VENDPATH.'foolz/foolframe/assets/plugins/' ], /** @@ -71,7 +73,7 @@ ], 'maxmind' => [ - 'geoip2_db_path' => VENDPATH.'foolz/foolframe/packages/maxmind/GeoLite2-Country.mmdb' + 'geoip2_db_path' => VENDPATH.'foolz/foolframe/assets/packages/maxmind/GeoLite2-Country.mmdb' ], 'imagick' => [ diff --git a/config/swiftmailer.php b/config/swiftmailer.php new file mode 100644 index 00000000..37944a44 --- /dev/null +++ b/config/swiftmailer.php @@ -0,0 +1,10 @@ + 'sendmail', + 'host' => '127.0.0.1', + 'port' => 25, + 'username' => '', + 'password' => '', + 'encryption' => null +]; diff --git a/public/plugins/foolz/foolframe-plugin-articles/bootstrap.php b/public/plugins/foolz/foolframe-plugin-articles/bootstrap.php deleted file mode 100755 index 14477804..00000000 --- a/public/plugins/foolz/foolframe-plugin-articles/bootstrap.php +++ /dev/null @@ -1,133 +0,0 @@ -setCall(function ($result) { - /* @var Context $context */ - $context = $result->getParam('context'); - /** @var Autoloader $autoloader */ - $autoloader = $context->getService('autoloader'); - - $autoloader->addClassMap([ - 'Foolz\Foolframe\Plugins\Articles\Model\Articles' => __DIR__ . '/classes/model/articles.php', - 'Foolz\Foolframe\Controller\Admin\Articles' => __DIR__ . '/classes/controller/admin.php', - 'Foolz\Foolfuuka\Controller\Chan\Articles' => __DIR__ . '/classes/controller/chan.php' - ]); - - $context->getContainer() - ->register('foolframe-plugin.articles', 'Foolz\Foolframe\Plugins\Articles\Model\Articles') - ->addArgument($context); - - Event::forge('Foolz\Foolframe\Model\Context.handleWeb.has_auth') - ->setCall(function ($result) use ($context) { - // don't add the admin panels if the user is not an admin - if ($context->getService('auth')->hasAccess('maccess.admin')) { - $context->getRouteCollection()->add( - 'foolframe.plugin.articles.admin', new \Symfony\Component\Routing\Route( - '/admin/articles/{_suffix}', - [ - '_suffix' => 'manage', - '_controller' => '\Foolz\Foolframe\Controller\Admin\Articles::*' - ], - [ - '_suffix' => '.*' - ] - ) - ); - - function() {die('lol');}; - - Event::forge('Foolz\Foolframe\Controller\Admin.before.sidebar.add') - ->setCall(function ($result) { - $sidebar = $result->getParam('sidebar'); - $sidebar[]['articles'] = [ - 'name' => _i('Articles'), - 'default' => 'manage', - 'position' => [ - 'beforeafter' => 'before', - 'element' => 'account' - ], - 'level' => 'admin', - 'content' => [ - 'manage' => ['level' => 'admin', 'name' => _i('Articles'), 'icon' => 'icon-font'], - ]]; - $result->setParam('sidebar', $sidebar); - }); - } - - $context->getRouteCollection()->add( - 'foolframe.plugin.articles.chan', new \Symfony\Component\Routing\Route( - '/_/articles/{_suffix}', - [ - '_suffix' => '', - '_controller' => '\Foolz\Foolfuuka\Controller\Chan\Articles::articles' - ], - [ - '_suffix' => '.*' - ] - ) - ); - - Event::forge('foolframe.themes.generic_top_nav_buttons') - ->setCall(function ($result) use ($context) { - $context->getService('foolframe-plugin.articles')->getNav('top', $result); - }) - ->setPriority(3); - - Event::forge('foolframe.themes.generic_bottom_nav_buttons') - ->setCall(function ($result) use ($context) { - $context->getService('foolframe-plugin.articles')->getNav('bottom', $result); - }) - ->setPriority(3); - - Event::forge('foolframe.themes.generic.index_nav_elements') - ->setCall(function ($result) use ($context) { - $context->getService('foolframe-plugin.articles')->getIndex($result); - }) - ->setPriority(3); - }); - }); - - Event::forge('Foolz\Foolframe\Model\Plugin::schemaUpdate.foolz/foolframe-plugin-articles') - ->setCall(function ($result) { - /** @var Context $context */ - $context = $result->getParam('context'); - /** @var DoctrineConnection $dc */ - $dc = $context->getService('doctrine'); - - /** @var $schema \Doctrine\DBAL\Schema\Schema */ - /** @var $table \Doctrine\DBAL\Schema\Table */ - $schema = $result->getParam('schema'); - $table = $schema->createTable($dc->p('plugin_ff_articles')); - if ($dc->getConnection()->getDriver()->getName() == 'pdo_mysql') { - $table->addOption('charset', 'utf8mb4'); - $table->addOption('collate', 'utf8mb4_unicode_ci'); - } - $table->addColumn('id', 'integer', ['unsigned' => true, 'autoincrement' => true]); - $table->addColumn('slug', 'string', ['length' => 128]); - $table->addColumn('title', 'string', ['length' => 256]); - $table->addColumn('url', 'string', ['length' => 256]); - $table->addColumn('content', 'text', ['length' => 65532]); - $table->addColumn('hidden', 'smallint', ['unsigned' => true, 'default' => 0]); - $table->addColumn('top', 'smallint', ['unsigned' => true, 'default' => 0]); - $table->addColumn('bottom', 'smallint', ['unsigned' => true, 'default' => 0]); - $table->addColumn('timestamp', 'integer', ['unsigned' => true]); - $table->setPrimaryKey(['id']); - $table->addIndex(['slug'], $dc->p('plugin_ff_articles_slug_index')); - $table->addIndex(['title'], $dc->p('plugin_ff_articles_title_index')); - }); - } - - -} - - -(new HHVM_Articles())->run(); diff --git a/public/plugins/foolz/foolframe-plugin-articles/classes/controller/admin.php b/public/plugins/foolz/foolframe-plugin-articles/classes/controller/admin.php deleted file mode 100755 index defdf92a..00000000 --- a/public/plugins/foolz/foolframe-plugin-articles/classes/controller/admin.php +++ /dev/null @@ -1,297 +0,0 @@ -articles = $this->getContext()->getService('foolframe-plugin.articles'); - } - - public function security() - { - return $this->getAuth()->hasAccess('maccess.mod'); - } - - public function structure() - { - /** @var DoctrineConnection $dc */ - $dc = $this->getContext()->getService('doctrine'); - - return array( - 'open' => array( - 'type' => 'open', - ), - 'id' => array( - 'type' => 'hidden', - 'database' => true, - 'validation_func' => function($input, $form_internal) use ($dc) { - // check that the ID exists - /** @var DoctrineConnection $dc */ - $count = (int) $dc->qb() - ->select('COUNT(*) as count') - ->from($dc->p('plugin_ff_articles'), 'a') - ->where('id = :id') - ->setParameter(':id', $input['id']) - ->execute() - ->fetch()['count']; - - if ($count !== 1) { - return array( - 'error_code' => 'ID_NOT_FOUND', - 'error' => _i('Couldn\'t find the article with the submitted ID.'), - 'critical' => true - ); - } - - return array('success' => true); - } - ), - 'title' => array( - 'type' => 'input', - 'database' => true, - 'label' => 'Title', - 'help' => _i('The title of your article'), - 'class' => 'span4', - 'placeholder' => _i('Required'), - 'validation' => [new Trim(), new Assert\NotBlank()] - ), - 'slug' => array( - 'database' => true, - 'type' => 'input', - 'label' => _i('Slug'), - 'help' => _i('Insert the short name of the article to use in the url. Only alphanumeric and dashes.'), - 'placeholder' => _i('Required'), - 'class' => 'span4', - 'validation' => [new Trim(), new Assert\Regex('/^\w+$/')], - 'validation_func' => function($input, $form_internal) use ($dc) { - // if we're working on the same object - if (isset($input['id'])) { - // existence ensured by CRITICAL in the ID check - /** @var DoctrineConnection $dc */ - $result = $dc->qb() - ->select('*') - ->from($dc->p('plugin_ff_articles'), 'a') - ->where('id = :id') - ->setParameter(':id', $input['id']) - ->execute() - ->fetch(); - - // no change? - if ($input['slug'] == $result['slug']) { - return array('success' => true); - } - } - - // check that there isn't already an article with that name - $count = $dc->qb() - ->select('COUNT(*) as count') - ->from($dc->p('plugin_ff_articles'), 'a') - ->where('slug = :slug') - ->setParameter(':slug', $input['slug']) - ->execute() - ->fetch()['count']; - - if ($count) { - return array( - 'error_code' => 'ALREADY_EXISTS', - 'error' => _i('The slug is already being used for another board.') - ); - } - } - ), - 'url' => array( - 'type' => 'input', - 'database' => true, - 'class' => 'span4', - 'label' => 'URL', - 'help' => _i('If you set this, the article link will be an outlink.'), - 'validation' => [new Trim()] - ), - 'content' => array( - 'type' => 'textarea', - 'database' => true, - 'style' => 'height:350px; width: 90%', - 'label' => _i('Article'), - 'help' => _i('The content of your article, in MarkDown') - ), - 'separator-1' => array( - 'type' => 'separator' - ), - 'hidden' => array( - 'type' => 'checkbox', - 'database' => true, - 'help' => _i('Disable access to the article.') - ), - 'separator-1' => array( - 'type' => 'separator' - ), - 'top' => array( - 'type' => 'checkbox', - 'database' => true, - 'help' => _i('Display the article link on the top of the page') - ), - 'bottom' => array( - 'type' => 'checkbox', - 'database' => true, - 'help' => _i('Display the article link on the bottom of the page') - ), - 'separator-2' => array( - 'type' => 'separator-short' - ), - 'submit' => array( - 'type' => 'submit', - 'class' => 'btn-primary', - 'value' => _i('Submit') - ), - 'close' => array( - 'type' => 'close' - ), - ); - } - - public function action_manage() - { - $this->param_manager->setParam('controller_title', _i("Articles")); - $this->param_manager->setParam('method_title', _i('Manage')); - - $articles = $this->articles->getAll(); - - ob_start(); - ?> - - - - - - - - - - - - - - - - - - - - - - -
TitleSlugEditRemove
- - - - - - - -
- - builder->createPartial('body', 'content') - ->getParamManager()->setParam('content', ob_get_clean()); - - return new Response($this->builder->build()); - } - - public function action_edit($slug = null) - { - $data['form'] = $this->structure(); - - if ($this->getPost() && !$this->checkCsrfToken()) { - $this->notices->set('warning', _i('The security token wasn\'t found. Try resubmitting.')); - } elseif ($this->getPost()) { - $result = Validator::formValidate($data['form'], $this->getPost()); - if (isset($result['error'])) { - $this->notices->set('warning', $result['error']); - } else { - // it's actually fully checked, we just have to throw it in DB - $this->articles->save($result['success']); - if (is_null($slug)) { - $this->notices->setFlash('success', _i('New article created!')); - return $this->redirect('admin/articles/edit/' . $result['success']['slug']); - } elseif ($slug != $result['success']['slug']) { - // case in which letter was changed - $this->notices->setFlash('success', _i('Article information updated.')); - return $this->redirect('admin/articles/edit/' . $result['success']['slug']); - } else { - $this->notices->set('success', _i('Article information updated.')); - } - } - } - - if (!is_null($slug)) { - try { - $article = $this->articles->getBySlug($slug); - $data['object'] = (object) $article; - } catch (ArticlesArticleNotFoundException $e) { - throw new NotFoundHttpException; - } - - $this->param_manager->setParam('method_title', [_i('Edit'), $article['slug']]); - } else { - $this->param_manager->setParam('method_title', _i('New')); - } - - $this->param_manager->setParam('controller_title', _i('Articles')); - $this->builder->createPartial('body', 'form_creator') - ->getParamManager()->setParams($data); - - return new Response($this->builder->build()); - } - - public function action_remove($id) - { - try { - $article = $this->articles->getById($id); - } catch (ArticlesArticleNotFoundException $e) { - throw new NotFoundHttpException; - } - - if ($this->getPost() && !$this->checkCsrfToken()) { - $this->notices->set('warning', _i('The security token wasn\'t found. Try resubmitting.')); - } elseif ($this->getPost()) { - try { - $this->articles->remove($id); - } catch (ArticlesArticleNotFoundException $e) { - throw new NotFoundHttpException; - } - - return $this->redirect('admin/articles/manage'); - } - - $this->param_manager->setParam('controller_title', _i('Articles')); - $this->param_manager->setParam('method_title', _i('Delete') . ' ' . $article['title']); - $data['alert_level'] = 'warning'; - $data['message'] = _i('Do you really want to remove the article?'); - - $this->builder->createPartial('body', 'confirm') - ->getParamManager()->setParams($data); - - return new Response($this->builder->build()); - - } -} diff --git a/public/plugins/foolz/foolframe-plugin-articles/classes/controller/chan.php b/public/plugins/foolz/foolframe-plugin-articles/classes/controller/chan.php deleted file mode 100755 index cafadd05..00000000 --- a/public/plugins/foolz/foolframe-plugin-articles/classes/controller/chan.php +++ /dev/null @@ -1,72 +0,0 @@ -articles = new A($this->getContext()); - } - - - public function action_articles($slug = null) - { - if(is_null($slug)) { - return $this->action_index(); - } - - try { - $article = $this->articles->getBySlug($slug); - } catch (ArticlesArticleNotFoundException $e) { - return $this->action_404(); - } - - if ($article['url']) { - return new RedirectResponse($article['url']); - } - - $this->setLastModified($article['timestamp']); - - if (!$this->response->isNotModified($this->request)) { - $this->builder->getProps()->addTitle($article['title']); - $this->param_manager->setParam('section_title', $article['title']); - - $this->builder->createPartial('body', 'markdown') - ->getParamManager()->setParam('content', $article['content']); - - $this->response->setContent($this->builder->build()); - } - - return $this->response; - } - - public function action_index() - { - $articles = $this->articles->getAll(); - - $this->builder->getProps()->addTitle(_('Articles')); - $this->param_manager->setParam('section_title', _('Articles')); - - ob_start(); - - include __DIR__.'/../../views/articles.php'; - - $string = ob_get_clean(); - $partial = $this->builder->createPartial('body', 'plugin'); - $partial->getParamManager()->setParam('content', $string); - - return $this->response->setContent($this->builder->build()); - } -} diff --git a/public/plugins/foolz/foolframe-plugin-articles/classes/model/articles.php b/public/plugins/foolz/foolframe-plugin-articles/classes/model/articles.php deleted file mode 100755 index d4c0d159..00000000 --- a/public/plugins/foolz/foolframe-plugin-articles/classes/model/articles.php +++ /dev/null @@ -1,205 +0,0 @@ -dc = $this->getContext()->getService('doctrine'); - $this->uri = $this->getContext()->getService('uri'); - } - - public function remove($id) - { - // this might throw ArticlesArticleNotFound, catch in controller - $this->getById($id); - - $this->dc->qb() - ->delete($this->dc->p('plugin_ff_articles')) - ->where('id = :id') - ->setParameter(':id', $id) - ->execute(); - - static::clear_cache(); - } - - public function clear_cache() - { - Cache::item('foolframe.plugin.articles.model.get_index')->delete(); - Cache::item('foolframe.plugin.articles.model.get_nav_top')->delete(); - Cache::item('foolframe.plugin.articles.model.get_nav_bottom')->delete(); - } - - /** - * Grab the whole table of articles - */ - public function getAll() - { - $query = $this->dc->qb() - ->select('*') - ->from($this->dc->p('plugin_ff_articles'), 'a'); - - if (!$this->getAuth()->hasAccess('maccess.mod')) { - $query->where('hidden = 0'); - } - - $result = $query->orderBy('title', 'asc') - ->execute() - ->fetchAll(); - - return $result; - } - - public function getById($id) - { - $query = $this->dc->qb() - ->select('*') - ->from($this->dc->p('plugin_ff_articles'), 'a') - ->where('id = :id') - ->setParameter(':id', $id); - - if (!$this->getAuth()->hasAccess('maccess.mod')) { - $query->andWhere('hidden = 0'); - } - - $result = $query->execute() - ->fetch(); - - if (!count($result)) { - throw new ArticlesArticleNotFoundException; - } - - return $result; - } - - public function getBySlug($slug) - { - $query = $this->dc->qb() - ->select('*') - ->from($this->dc->p('plugin_ff_articles'), 'a') - ->where('slug = :slug') - ->setParameter(':slug', $slug); - - if (!$this->getAuth()->hasAccess('maccess.mod')) { - $query->andWhere('hidden = 0'); - } - - $result = $query->execute() - ->fetch(); - - if (!$result) { - throw new ArticlesArticleNotFoundException(_i('The article you were looking for does not exist.')); - } - - return $result; - } - - public function getNav($where, $result) - { - $nav = $result->getParam('nav'); - - try { - $res = Cache::item('foolframe.plugin.articles.model.get_nav_'.$where)->get(); - } catch (\OutOfBoundsException $e) { - $res = $this->dc->qb() - ->select('slug, title') - ->from($this->dc->p('plugin_ff_articles'), 'a') - ->where($where.' = 1') - ->execute() - ->fetchAll(); - - Cache::item('foolframe.plugin.articles.model.get_nav_'.$where)->set($res, 3600); - } - - if(!count($res)) { - return; - } - - foreach($res as $article) { - $nav[] = array('href' => $this->uri->create('_/articles/' . $article['slug']), 'text' => e($article['title'])); - } - - $result->setParam('nav', $nav)->set($nav); - } - - public function getIndex($result) - { - $nav = $result->getParam('nav'); - - try { - $res = Cache::item('foolframe.plugin.articles.model.get_index')->get(); - } catch (\OutOfBoundsException $e) { - $res = $this->dc->qb() - ->select('slug, title') - ->from($this->dc->p('plugin_ff_articles'), 'a') - ->orderBy('title', 'asc') - ->execute() - ->fetchAll(); - - Cache::item('foolframe.plugin.articles.model.get_index')->set($res, 3600); - } - - if(!count($res)) { - return; - } - - $nav['articles'] = array('title' => _i('Articles'), 'elements' => array()); - - foreach($res as $article) { - $nav['articles']['elements'][] = array( - 'href' => $this->uri->create('_/articles/' . $article['slug']), - 'text' => e($article['title']) - ); - } - - $result->setParam('nav', $nav)->set($nav); - } - - public function save($data) - { - if (isset($data['id'])) { - $query = $this->dc->qb() - ->update($this->dc->p('plugin_ff_articles')) - ->set('timestamp', ':time') - ->where('id = :id') - ->setParameter(':id', $data['id']) - ->setParameter(':time', time()); - - foreach ($data as $k => $i) { - if ($k !== 'id') { - $query->set($k, $this->dc->getConnection()->quote($i)); - } - } - - $query->execute(); - } else { - $data['timestamp'] = time(); - - $this->dc->getConnection() - ->insert($this->dc->p('plugin_ff_articles'), $data); - } - - $this->clear_cache(); - } -} diff --git a/public/plugins/foolz/foolframe-plugin-articles/composer.json b/public/plugins/foolz/foolframe-plugin-articles/composer.json deleted file mode 100755 index e2af8378..00000000 --- a/public/plugins/foolz/foolframe-plugin-articles/composer.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "foolz/foolframe-plugin-articles", - "type": "foolz-foolframe-plugin", - "description": "Enable support for custom pages in MarkDown and custom links.", - "version": "1.5.0", - "keywords": ["fake", "mock"], - "homepage": "http://www.foolz.us", - "license": "Apache-2.0", - "authors": [{"name": "foolz", "email": "support@foolz.us"}], - "support": { - "email": "support@foolz.us", - "irc": "irc://irc.irchighway.net/fooldriver" - }, - - "require" : { - "foolz/plugin": "dev" - }, - - "extra": { - "name": "Articles", - "slug": "articles", - "identifier": "ff", - "module": "foolframe" - } -} diff --git a/public/plugins/foolz/foolframe-plugin-articles/views/articles.php b/public/plugins/foolz/foolframe-plugin-articles/views/articles.php deleted file mode 100644 index 5ff6c5cd..00000000 --- a/public/plugins/foolz/foolframe-plugin-articles/views/articles.php +++ /dev/null @@ -1,11 +0,0 @@ -
- -
diff --git a/public/plugins/foolz/foolframe-plugin-ssl-tools/bootstrap.php b/public/plugins/foolz/foolframe-plugin-ssl-tools/bootstrap.php deleted file mode 100755 index fcc17265..00000000 --- a/public/plugins/foolz/foolframe-plugin-ssl-tools/bootstrap.php +++ /dev/null @@ -1,114 +0,0 @@ -setCall(function($result) { - // this plugin works with indexes that don't exist in CLI - if (PHP_SAPI === 'cli') { - return false; - } - - /* @var Context $context */ - $context = $result->getParam('context'); - /** @var Autoloader $autoloader */ - $autoloader = $context->getService('autoloader'); - /** @var Auth $auth */ - $auth = $context->getService('auth'); - - $autoloader->addClassMap([ - 'Foolz\Foolframe\Plugins\SslTools\Model\SslTools' => __DIR__.'/classes/model/ssl_tools.php', - 'Foolz\Foolframe\Controller\Admin\Plugins\SslTools' => __DIR__.'/classes/controller/admin/ssl_tools.php' - ]); - - Event::forge('Foolz\Foolframe\Model\Context.handleWeb.has_auth') - ->setCall(function($result) use ($context, $auth) { - // don't add the admin panels if the user is not an admin - if ($auth->hasAccess('maccess.admin')) { - $context->getRouteCollection()->add( - 'foolframe.plugin.ssl_tools.admin', new \Symfony\Component\Routing\Route( - '/admin/plugins/ssl_tools/{_suffix}', - [ - '_suffix' => 'manage', - '_controller' => '\Foolz\Foolframe\Controller\Admin\Plugins\SslTools::manage' - ], - [ - '_suffix' => '.*' - ] - ) - ); - - Event::forge('Foolz\Foolframe\Controller\Admin.before.sidebar.add') - ->setCall(function($result) { - $sidebar = $result->getParam('sidebar'); - $sidebar[]['plugins'] = [ - 'content' => array('ssl_tools/manage' => array('level' => 'admin', 'name' => _i('SSL Tools'), 'icon' => 'icon-lock')) - ]; - $result->setParam('sidebar', $sidebar); - }); - } - }); - - - $context->getContainer() - ->register('foolframe-plugin.ssl_tools', 'Foolz\Foolframe\Plugins\SslTools\Model\SslTools') - ->addArgument($context); - - /** @var \Foolz\Foolframe\Plugins\SslTools\Model\SslTools $ssl_tools */ - $ssl_tools = $context->getService('foolframe-plugin.ssl_tools'); - - Event::forge('Foolz\Foolframe\Model\Context.handleWeb.has_request') - ->setCall(function($result) use ($ssl_tools) { - $request = $result->getParam('request'); - $context = $result->getObject(); - - Event::forge('foolframe.themes.generic_top_nav_buttons') - ->setCall(function($result) use ($context, $request, $ssl_tools) { - $ssl_tools->nav($context, $request, 'top', $result); - }) - ->setPriority(4); - - Event::forge('foolframe.themes.generic_bottom_nav_buttons') - ->setCall(function($result) use ($context, $request, $ssl_tools) { - $ssl_tools->nav($context, $request, 'bottom', $result); - }) - ->setPriority(4); - }); - - Event::forge('Foolz\Foolframe\Model\Context.handleWeb.override_response') - ->setCall(function(Result $result) use ($auth) { - /** @var Request $request */ - $obj = $result->getObject(); - /** @var Request $request */ - $request = $result->getParam('request'); - /** @var Preferences $preferences */ - $preferences = $obj->getService('preferences'); - - if (!$request->isSecure()) { - if ($preferences->get('foolframe.plugins.ssl_tools.force_everyone') - || ($preferences->get('foolframe.plugins.ssl_tools.force_for_logged') && $auth->hasAccess('maccess.user')) - ) - { - // redirect to itself - $result->set(new RedirectResponse('https://'.$request->getHttpHost().$request->getRequestUri())); - return; - } - } - }); - }); - - } -} - -(new HHVM_SslTools())->run(); diff --git a/public/plugins/foolz/foolframe-plugin-ssl-tools/classes/controller/admin/ssl_tools.php b/public/plugins/foolz/foolframe-plugin-ssl-tools/classes/controller/admin/ssl_tools.php deleted file mode 100755 index c86962df..00000000 --- a/public/plugins/foolz/foolframe-plugin-ssl-tools/classes/controller/admin/ssl_tools.php +++ /dev/null @@ -1,84 +0,0 @@ -param_manager->setParam('controller_title', _i('Plugins')); - } - - public function security() - { - return $this->getAuth()->hasAccess('maccess.admin'); - } - - public function action_manage() - { - $this->param_manager->setParam('method_title', [_i('FoolFrame'), _i('SSL Tools'), 'SSL']); - - $form = array(); - - $form['open'] = array( - 'type' => 'open' - ); - - $form['foolframe.plugins.ssl_tools.available'] = array( - 'type' => 'checkbox', - 'preferences' => true, - 'help' => _i('Does the server have SSL available (does your site support https:// protocol)?'), - 'sub' => array( - 'foolframe.plugins.ssl_tools.force_for_logged' => array( - 'type' => 'checkbox', - 'preferences' => true, - 'help' => _i('Redirect the logged in users to the SSL version of the site') - ), - 'foolframe.plugins.ssl_tools.force_everyone' => array( - 'type' => 'checkbox', - 'preferences' => true, - 'help' => _i('Redirect every user to the SSL version of the site') - ), - 'foolframe.plugins.ssl_tools.enable_top_link' => array( - 'type' => 'checkbox', - 'preferences' => true, - 'help' => _i('Show a link to SSL in the header if the user is browsing in http://') - ), - 'foolframe.plugins.ssl_tools.enable_bottom_link' => array( - 'type' => 'checkbox', - 'preferences' => true, - 'help' => _i('Show a link to SSL in the footer if the user is browsing in http://') - ), - ) - ); - - $form['separator'] = array( - 'type' => 'separator' - ); - - $form['submit'] = array( - 'type' => 'submit', - 'value' => _i('Submit'), - 'class' => 'btn btn-primary' - ); - - $form['close'] = array( - 'type' => 'close' - ); - - $this->preferences->submit_auto($this->getRequest(), $form, $this->getPost()); - - $data['form'] = $form; - - // create a form - $this->builder->createPartial('body', 'form_creator') - ->getParamManager()->setParams($data); - - return new Response($this->builder->build()); - } -} diff --git a/public/plugins/foolz/foolframe-plugin-ssl-tools/classes/model/ssl_tools.php b/public/plugins/foolz/foolframe-plugin-ssl-tools/classes/model/ssl_tools.php deleted file mode 100755 index 7d345ef6..00000000 --- a/public/plugins/foolz/foolframe-plugin-ssl-tools/classes/model/ssl_tools.php +++ /dev/null @@ -1,28 +0,0 @@ -getParam('nav'); - - /** @var Preferences $preferences */ - $preferences = $context->getService('preferences'); - /** @var Uri $uri */ - $uri = $context->getService('uri'); - - if ($preferences->get('foolframe.plugins.ssl_tools.enable_'.$position.'_link') && (!$request->isSecure())) { - $nav[] = array('href' => 'https'.substr($uri->base(), 4), 'text' => ' SSL'); - } - - $result->setParam('nav', $nav)->set($nav); - } -} diff --git a/public/plugins/foolz/foolframe-plugin-ssl-tools/composer.json b/public/plugins/foolz/foolframe-plugin-ssl-tools/composer.json deleted file mode 100755 index 22fe216d..00000000 --- a/public/plugins/foolz/foolframe-plugin-ssl-tools/composer.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "foolz/foolframe-plugin-ssl-tools", - "type": "foolz-foolframe-plugin", - "description": "Adds a panel to control useful tools if you have SSL available", - "version": "1.0.0", - "keywords": ["fake", "mock"], - "homepage": "http://www.foolz.us", - "license": "Apache-2.0", - "authors": [{"name": "foolz", "email": "support@foolz.us"}], - "support": { - "email": "support@foolz.us", - "irc": "irc://irc.irchighway.net/fooldriver" - }, - - "require": { - "foolz/plugin": "dev" - }, - - "extra": { - "name": "SSL Tools", - "slug": "ssl_tools", - "identifier": "ff", - "module": "foolframe" - } -} \ No newline at end of file diff --git a/public/themes-admin/foolz/foolframe-theme-admin/composer.json b/public/themes-admin/foolz/foolframe-theme-admin/composer.json deleted file mode 100644 index 497f62a1..00000000 --- a/public/themes-admin/foolz/foolframe-theme-admin/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "foolz/foolframe-theme-admin", - "type": "foolz-foolframe-admin-theme", - "description": "The default FoolFrame admin theme.", - "version": "1.0.2", - "keywords": ["theme", "admin", "foolframe"], - "homepage": "http://www.foolz.us", - "license": "Apache-2.0", - "authors": [{"name": "foolz", "email": "support@foolz.us"}], - "support": { - "email": "support@foolz.us", - "irc": "irc://irc.irchighway.net/fooldriver" - }, - "require": { - "php": ">=5.4.0", - "foolz/theme": "dev" - }, - "autoload": { - "psr-0": { - "Foolz\\Foolframe\\Theme\\Admin": "classes/" - } - }, - "extra": { - "name" : "Admin" - } -} \ No newline at end of file diff --git a/src/Controller/Admin.php b/src/Controller/Admin.php index cd084993..cccd1167 100755 --- a/src/Controller/Admin.php +++ b/src/Controller/Admin.php @@ -1,13 +1,13 @@ getRequest(); $this->uri = $this->getContext()->getService('uri'); + $this->mailer = $this->getContext()->getService('mailer'); $this->notices = $this->getContext()->getService('notices'); $this->preferences = $this->getContext()->getService('preferences'); $this->config = $this->getContext()->getService('config'); $this->security = $this->getContext()->getService('security'); $theme_instance = \Foolz\Theme\Loader::forge('foolframe_admin'); - $theme_instance->addDir(VENDPATH.'foolz/foolframe/public/themes-admin/'); + $theme_instance->addDir(VENDPATH.'foolz/foolframe/assets/themes-admin/'); $theme_instance->addDir(VAPPPATH.'foolz/foolframe/themes-admin/'); $theme_instance->setBaseUrl($this->uri->base().'foolframe/'); $theme_instance->setPublicDir(DOCROOT.'foolframe/'); @@ -89,8 +95,7 @@ public function before() // returns the hardcoded sidebar array (can't use functions when declaring a class variable) $sidebar = $this->getSidebarValues(); - - $sidebar_dynamic = Hook::forge('Foolz\Foolframe\Controller\Admin.before.sidebar.add') + $sidebar_dynamic = Hook::forge('Foolz\FoolFrame\Controller\Admin::before#var.sidebar') ->setObject($this) ->setParam('sidebar', []) ->execute() @@ -149,7 +154,7 @@ private function getSidebarValues() // load sidebars from modules and leave FoolFrame sidebar on bottom foreach($this->config->get('foolz/foolframe', 'config', 'modules.installed') as $module) { - $module_sidebar = $this->config->get($module, 'sidebar'); + $module_sidebar = $this->config->get($module['namespace'], 'sidebar'); if(is_array($module_sidebar)) { $sidebar = array_merge($module_sidebar['sidebar'], $sidebar); } diff --git a/src/Controller/Admin/Account.php b/src/Controller/Admin/Account.php index 5bdeba3e..fddfb811 100755 --- a/src/Controller/Admin/Account.php +++ b/src/Controller/Admin/Account.php @@ -1,25 +1,23 @@ notices->set('error', _i('You have entered an invalid username and/or password. Please try again.')); + } catch (AccountNotVerifiedException $e) { + $this->notices->set('error', _i('Your account has not been activated yet, please check your email.')); } } @@ -161,16 +161,13 @@ public function action_register() 'link' => $this->uri->create('admin/account/activate/'.$id.'/'.$activation_key) ]); - $message = Swift_Message::newInstance() + $message = $this->mailer->create() ->setFrom([$from => $this->preferences->get('foolframe.gen.website_title')]) ->setTo($input['email']) ->setSubject($title) ->setBody($this->builder->build(), 'text/html'); - $mailer = Swift_Mailer::newInstance(Swift_SendmailTransport::newInstance()); - $result = $mailer->send($message); - - if ($result != 1) { + if ($this->mailer->send($message) !== 1) { // the email driver was unable to send the email. the account will be activated automatically. $this->getAuth()->activateUser($id, $activation_key); $this->notices->setFlash('success', _i('Congratulations! You have successfully registered.')); @@ -350,16 +347,13 @@ public function action_change_email($id = null, $email_key = null) 'link' => $this->uri->create('admin/account/change_email/'.$user->id.'/'.$change_email_key) ]); - $message = Swift_Message::newInstance() + $message = $this->mailer->create() ->setFrom([$from => $this->preferences->get('foolframe.gen.website_title')]) ->setTo($user->email) ->setSubject($title) ->setBody($this->builder->build(), 'text/html'); - $mailer = Swift_Mailer::newInstance(Swift_SendmailTransport::newInstance()); - $result = $mailer->send($message); - - if ($result == 1) { + if ($this->mailer->send($message) === 1) { $this->notices->setFlash('success', _i('An email has been sent to verify your new email address. The activation link will only be valid for 24 hours.')); } else { // the email driver was unable to send the email. the account's email address will not be changed. @@ -437,16 +431,13 @@ public function action_delete($id = null, $key = null) 'link' => $this->uri->create('admin/account/delete/'.$user->id.'/'.$account_deletion_key) ]); - $message = Swift_Message::newInstance() + $message = $this->mailer->create() ->setFrom([$from => $this->preferences->get('foolframe.gen.website_title')]) ->setTo($user->email) ->setSubject($title) ->setBody($this->builder->build(), 'text/html'); - $mailer = Swift_Mailer::newInstance(Swift_SendmailTransport::newInstance()); - $result = $mailer->send($message); - - if ($result == 1) { + if ($this->mailer->send($message) === 1) { $this->notices->setFlash('success', _i('An email has been sent to verify the deletion of your account. The verification link will only work for 15 minutes.')); } else { // the email driver was unable to send the email. the account will not be deleted. @@ -475,7 +466,7 @@ public function sendChangePasswordEmail($email) return $this->redirect('admin/account/forgotten_password'); } - /** @var \Foolz\Foolframe\Model\Users $users */ + /** @var \Foolz\FoolFrame\Model\Users $users */ $users = $this->getContext()->getService('users'); $user = $users->getUserBy('email', $email); @@ -493,16 +484,13 @@ public function sendChangePasswordEmail($email) 'link' => $this->uri->create('admin/account/change_password/'.$user->id.'/'.$password_key) ]); - $message = Swift_Message::newInstance() + $message = $this->mailer->create() ->setFrom([$from => $this->preferences->get('foolframe.gen.website_title')]) ->setTo($email) ->setSubject($title) ->setBody($this->builder->build(), 'text/html'); - $mailer = Swift_Mailer::newInstance(Swift_SendmailTransport::newInstance()); - $result = $mailer->send($message); - - if ($result == 1) { + if ($this->mailer->send($message) === 1) { $this->notices->setFlash('success', _i('An email has been sent to verify that you wish to change your password. The verification link included will only work for the next 15 minutes.')); } else { // the email driver was unable to send the email. the account's password will not be changed.. @@ -519,6 +507,7 @@ public function action_profile() return $this->redirectToLogin(); } + $data = []; $form = []; $form['open'] = array( diff --git a/src/Controller/Admin/Plugins.php b/src/Controller/Admin/Plugins.php index 9b6d58e6..c1006567 100755 --- a/src/Controller/Admin/Plugins.php +++ b/src/Controller/Admin/Plugins.php @@ -1,14 +1,14 @@ param_manager->setParam('method_title', _i('General')); + $data = []; $form = []; $form['open'] = array( @@ -123,15 +124,15 @@ function action_general() ); foreach ($this->config->get('foolz/foolframe', 'config', 'modules.installed') as $module) { - if ($module === 'foolz/foolframe') { + if ($module['namespace'] === 'foolz/foolframe') { continue; } $theme_loader = new \Foolz\Theme\Loader(); - $theme_loader->addDir($this->config->get($module, 'package', 'directories.themes')); + $theme_loader->addDir($this->config->get($module['namespace'], 'package', 'directories.themes')); $themes = $theme_loader->getAll(); - $module_name = $this->config->get($module, 'package', 'main.name'); + $module_name = $this->config->get($module['namespace'], 'package', 'main.name'); $theme_checkboxes = []; @@ -180,7 +181,7 @@ function action_general() 'label' => _i('Google Analytics code'), 'placeholder' => 'UX-XXXXXXX-X', 'preferences' => true, - 'help' => _i("Insert your Google Analytics code."), + 'help' => _i('Insert your Google Analytics code.'), 'class' => 'span2' ); @@ -192,7 +193,7 @@ function action_general() 'type' => 'textarea', 'label' => _i('Header Text ("alerts/notices")'), 'preferences' => true, - 'help' => _i("Inserts text above in the header site wide, below the navigation links.
Most Bootstrap CSS formatting can be used here."), + 'help' => _i('Inserts text above in the header site wide, below the navigation links.
Most Bootstrap CSS formatting can be used here.'), 'class' => 'span5' ); @@ -200,7 +201,7 @@ function action_general() 'type' => 'textarea', 'label' => _i('Header Code'), 'preferences' => true, - 'help' => _i("This will insert the HTML code inside the <HEAD>."), + 'help' => _i('This will insert the HTML code inside the <HEAD>.'), 'class' => 'span5' ); @@ -208,7 +209,7 @@ function action_general() 'type' => 'textarea', 'label' => _i('Footer Text'), 'preferences' => true, - 'help' => _i("Inserts text in the footer site wide, such as credits and similar.
Most Bootstrap CSS formatting can be used here."), + 'help' => _i('Inserts text in the footer site wide, such as credits and similar.
Most Bootstrap CSS formatting can be used here.'), 'class' => 'span5' ); @@ -248,6 +249,7 @@ function action_advertising() { $this->param_manager->setParam('method_title', _i('Advertising')); + $data = []; $form = []; $form['open'] = array( @@ -312,6 +314,7 @@ function action_registration() { $this->param_manager->setParam('method_title', _i('Registration')); + $data = []; $form = []; $form['open'] = array( diff --git a/src/Controller/Admin/System.php b/src/Controller/Admin/System.php index 1a459bc9..e73de482 100755 --- a/src/Controller/Admin/System.php +++ b/src/Controller/Admin/System.php @@ -1,12 +1,12 @@ S::environment($this->getContext())]; + $data = ['info' => S::getEnvironment($this->getContext())]; $this->param_manager->setParam('method_title', _i('Information')); $this->builder->createPartial('body', 'system/information') diff --git a/src/Controller/Admin/Users.php b/src/Controller/Admin/Users.php index 8d7e2685..94618a47 100755 --- a/src/Controller/Admin/Users.php +++ b/src/Controller/Admin/Users.php @@ -1,15 +1,15 @@ getContext()->getService('users'); $users_data = $users->getAll($page, 40); $data['users'] = $users_data['result']; @@ -49,17 +49,18 @@ public function action_user($id = null) throw new NotFoundHttpException; } + $data = []; + $form = []; + try { - /** @var \Foolz\Foolframe\Model\Users $users */ + /** @var \Foolz\FoolFrame\Model\Users $users */ $users = $this->getContext()->getService('users'); $data['object'] = $users->getUserBy('id', $id); $data['object']->password = ''; - } catch (\Foolz\Foolframe\Model\UsersWrongIdException $e) { + } catch (\Foolz\FoolFrame\Model\UsersWrongIdException $e) { throw new NotFoundHttpException; } - $form = []; - $form['open'] = array( 'type' => 'open' ); diff --git a/src/Controller/Common.php b/src/Controller/Common.php index 5adfdd64..9bddf9bd 100755 --- a/src/Controller/Common.php +++ b/src/Controller/Common.php @@ -1,9 +1,9 @@ notices = $this->getContext()->getService('notices'); $this->uri = $this->getContext()->getService('uri'); $this->config = $this->getContext()->getService('config'); - $this->install = new \Foolz\Foolframe\Model\Install($this->getContext()); + $this->install = new \Foolz\FoolFrame\Model\Install($this->getContext()); $theme_instance = \Foolz\Theme\Loader::forge('foolframe_admin'); - $theme_instance->addDir(VENDPATH.'foolz/foolframe/public/themes-admin/'); + $theme_instance->addDir(VENDPATH.'foolz/foolframe/assets/themes-admin/'); $theme_instance->setBaseUrl($this->uri->base().'foolframe/'); $theme_instance->setPublicDir(DOCROOT.'foolframe/'); $this->theme = $theme_instance->get('foolz/foolframe-theme-admin'); @@ -114,7 +114,8 @@ public function action_index() public function action_system_check() { - $data['system'] = System::environment($this->getContext()); + $data = []; + $data['system'] = System::getEnvironment($this->getContext()); $this->process('system_check'); $this->param_manager->setParam('method_title', _i('System Check')); diff --git a/src/Model/Auth.php b/src/Model/Auth.php index 8b8f743d..513ce7db 100644 --- a/src/Model/Auth.php +++ b/src/Model/Auth.php @@ -1,6 +1,6 @@ groups = $this->config->get('foolz/foolframe', 'foolauth', 'groups'); foreach ($this->config->get('foolz/foolframe', 'config', 'modules.installed') as $module) { - foreach ($this->config->get($module, 'foolauth', 'roles') as $key => $item) { + foreach ($this->config->get($module['namespace'], 'foolauth', 'roles') as $key => $item) { if (!isset($this->roles[$key])) { $this->roles[$key] = $item; } else { @@ -154,6 +156,10 @@ public function authenticateWithUsernameAndPassword($username, $password, $ip_de throw new WrongUsernameOrPasswordException(); } + if (!$user['activated'] && !$this->preferences->get('foolframe.auth.disable_registration_email')) { + throw new AccountNotVerifiedException(); + } + $this->resetAttempts($username); $this->user = new User($this->getContext(), $user); @@ -244,7 +250,8 @@ public function createAutologinHash($ip_decimal, $user_agent = '') return serialize(['user_id' => $this->user->getId(), 'login_id' => $login_id, 'login_hash' => $login_hash]); } - public function hasAccess($area) { + public function hasAccess($area) + { if (!isset($this->groups[$this->getUser()->getGroupId()])) { throw new \RuntimeException('Group not found'); } @@ -318,7 +325,7 @@ public function createUser($username, $password, $email, $group = 1, Array $prof $password = trim($password); $email = filter_var(trim($email), FILTER_VALIDATE_EMAIL); - if (empty($username) or empty($password) or empty($email)) { + if (empty($username) || empty($password) || empty($email)) { throw new UpdateException('Username, password and email address can\'t be empty.', 1); } diff --git a/src/Model/Autoloader.php b/src/Model/Autoloader.php index 4a45569b..d0731050 100644 --- a/src/Model/Autoloader.php +++ b/src/Model/Autoloader.php @@ -1,7 +1,6 @@ addClass($class, $path); } } - } diff --git a/src/Model/Config.php b/src/Model/Config.php index 4abdca15..930b826a 100644 --- a/src/Model/Config.php +++ b/src/Model/Config.php @@ -1,7 +1,6 @@ 1) { $key = array_shift($keys); - if (!isset($array[$key]) or !is_array($array[$key])) { + if (!isset($array[$key]) || !is_array($array[$key])) { $array[$key] = array(); } @@ -96,8 +95,7 @@ public function save($package_name, $file) */ public static function saveArrayToFile($path, $array) { - $content = "profiler = $this->container->get('profiler'); - class_alias('Foolz\Foolframe\Model\Plugins', 'Plugins'); - class_alias('Foolz\Foolframe\Model\SchemaManager', 'SchemaManager'); - class_alias('Foolz\Foolframe\Model\System', 'System'); - class_alias('Foolz\Foolframe\Model\User', 'User'); - class_alias('Foolz\Foolframe\Model\Users', 'Users'); + class_alias('Foolz\FoolFrame\Model\Plugins', 'Plugins'); + class_alias('Foolz\FoolFrame\Model\SchemaManager', 'SchemaManager'); + class_alias('Foolz\FoolFrame\Model\System', 'System'); + class_alias('Foolz\FoolFrame\Model\User', 'User'); + class_alias('Foolz\FoolFrame\Model\Users', 'Users'); $this->route_collection = new RouteCollection(); - $this->logger = new Logger('foolframe'); - $this->logger->pushHandler(new RotatingFileHandler(VAPPPATH.'foolz/foolframe/logs/foolframe.log', 7, Logger::WARNING)); + $this->logger = new MonoLogger('foolframe'); + $this->logger->pushHandler(new RotatingFileHandler(VAPPPATH.'foolz/foolframe/logs/foolframe.log', 7, MonoLogger::WARNING)); $this->logger->pushProcessor(new IntrospectionProcessor()); $this->logger->pushProcessor(new WebProcessor()); // special logger that saves stack traces from the exception handler - $this->logger_trace = new Logger('foolframe_trace'); - $this->logger_trace->pushHandler(new RotatingFileHandler(VAPPPATH.'foolz/foolframe/logs/foolframe_trace.log', 7, Logger::WARNING)); + $this->logger_trace = new MonoLogger('foolframe_trace'); + $this->logger_trace->pushHandler(new RotatingFileHandler(VAPPPATH.'foolz/foolframe/logs/foolframe_trace.log', 7, MonoLogger::WARNING)); $this->logger_trace->pushProcessor(new IntrospectionProcessor()); $this->logger_trace->pushProcessor(new WebProcessor()); @@ -133,35 +133,38 @@ class_alias('Foolz\Foolframe\Model\Users', 'Users'); ini_set('display_errors', 1); } - $this->container->register('autoloader', 'Foolz\Foolframe\Model\Autoloader') + $this->container->register('autoloader', 'Foolz\FoolFrame\Model\Autoloader') ->addArgument($this) ->addMethodCall('register'); - $this->container->register('logger', 'Foolz\Foolframe\Model\Logger') + $this->container->register('logger', 'Foolz\FoolFrame\Model\Logger') ->addArgument($this) ->addMethodCall('addLogger', [$this->logger]) ->addMethodCall('addLogger', [$this->logger_trace]); - $this->container->register('config', 'Foolz\Foolframe\Model\Config') + $this->container->register('config', 'Foolz\FoolFrame\Model\Config') ->addArgument($this); - $this->container->register('doctrine', 'Foolz\Foolframe\Model\DoctrineConnection') + $this->container->register('doctrine', 'Foolz\FoolFrame\Model\DoctrineConnection') ->addArgument($this) ->addArgument(new Reference('config')); - $this->container->register('preferences', 'Foolz\Foolframe\Model\Preferences') + $this->container->register('mailer', 'Foolz\FoolFrame\Model\Mailer') ->addArgument($this); - $this->container->register('plugins', 'Foolz\Foolframe\Model\Plugins') + $this->container->register('preferences', 'Foolz\FoolFrame\Model\Preferences') ->addArgument($this); - $this->container->register('users', 'Foolz\Foolframe\Model\Users') + $this->container->register('plugins', 'Foolz\FoolFrame\Model\Plugins') ->addArgument($this); - $this->container->register('auth', 'Foolz\Foolframe\Model\Auth') + $this->container->register('users', 'Foolz\FoolFrame\Model\Users') ->addArgument($this); - $this->container->register('security', 'Foolz\Foolframe\Model\Security') + $this->container->register('auth', 'Foolz\FoolFrame\Model\Auth') + ->addArgument($this); + + $this->container->register('security', 'Foolz\FoolFrame\Model\Security') ->addArgument($this); $this->config = $this->getService('config'); @@ -207,15 +210,9 @@ class_alias('Foolz\Foolframe\Model\Users', 'Users'); // run the Framework class for each module foreach($this->config->get('foolz/foolframe', 'config', 'modules.installed') as $module) { - if ($module !== 'foolz/foolframe') { - $class_arr = explode('/', $module); - $class = '\\'; - foreach ($class_arr as $str) { - $class .= ucfirst($str).'\\'; - } - - $class .= 'Model\Context'; - $this->child_contextes[$module] = new $class($this); + if ($module['namespace'] !== 'foolz/foolframe') { + $context = $module['context']; + $this->child_contextes[$module['namespace']] = new $context($this); } } @@ -243,7 +240,7 @@ public function handleWeb(Request $request = null) } $this->container - ->register('uri', '\Foolz\Foolframe\Model\Uri') + ->register('uri', '\Foolz\FoolFrame\Model\Uri') ->addArgument($this) ->addArgument($request); @@ -266,7 +263,7 @@ public function handleWeb(Request $request = null) } $this->profiler->log('Stop Auth rememberme'); - Hook::forge('Foolz\Foolframe\Model\Context.handleWeb.has_auth') + Hook::forge('Foolz\FoolFrame\Model\Context::handleWeb#obj.afterAuth') ->setObject($this) ->setParam('route_collection', $this->route_collection) ->execute(); @@ -283,13 +280,13 @@ public function handleWeb(Request $request = null) $lang = $this->preferences->get('foolframe.lang.default'); } - // HHVM can't handle gettext + // HHVM does not support gettext if (function_exists('bindtextdomain')) { $locale = $lang.'.utf8'; putenv('LANG='.$locale); putenv('LANGUAGE='.$locale); setlocale(LC_ALL, $locale); - bindtextdomain($lang, DOCROOT."assets/locale"); + bindtextdomain($lang, DOCROOT.'assets/locale'); bind_textdomain_codeset($lang, 'UTF-8'); textdomain($lang); } @@ -297,7 +294,7 @@ public function handleWeb(Request $request = null) $this->profiler->log('Start routes setup'); // load the routes from the child contextes first - Hook::forge('Foolz\Foolframe\Model\Context.handleWeb.route_collection') + Hook::forge('Foolz\FoolFrame\Model\Context::handleWeb#obj.routing') ->setObject($this) ->setParam('route_collection', $this->route_collection) ->execute(); @@ -314,19 +311,18 @@ public function handleWeb(Request $request = null) } // load the framework routes - - Hook::forge('Foolz\Foolframe\Model\Context.handleWeb.contextes_handled') + Hook::forge('Foolz\FoolFrame\Model\Context::handleWeb#obj.context') ->setObject($this) ->execute(); // this is the first time we know we have a request for sure // hooks that need the request to function must run here - Hook::forge('Foolz\Foolframe\Model\Context.handleWeb.has_request') + Hook::forge('Foolz\FoolFrame\Model\Context::handleWeb#obj.request') ->setObject($this) ->setParam('request', $request) ->execute(); - $this->container->register('notices', 'Foolz\Foolframe\Model\Notices') + $this->container->register('notices', 'Foolz\FoolFrame\Model\Notices') ->addArgument($this) ->addArgument($request); @@ -344,7 +340,7 @@ public function handleWeb(Request $request = null) $this->profiler->log('End HttpKernel loading'); // if this hook is used, it can override the entirety of the request handling - $response = Hook::forge('Foolz\Foolframe\Model\Context.handleWeb.override_response') + $response = Hook::forge('Foolz\FoolFrame\Model\Context::handleWeb#obj.response') ->setObject($this) ->setParam('request', $request) ->execute() @@ -381,9 +377,9 @@ public function handleConsole() { $application = new Application(); - Hook::forge('Foolz\Foolframe\Model\Context::handleConsole.add') - ->setParam('application', $application) + Hook::forge('Foolz\FoolFrame\Model\Context::handleConsole#obj.app') ->setObject($this) + ->setParam('application', $application) ->execute(); //$application->add(new \Your\Class\Command\Console()); // that extends Command @@ -415,7 +411,7 @@ protected function loadInstallRoutes(RouteCollection $route_collection) '/install/{_suffix}', [ '_suffix' => '', - '_controller' => '\Foolz\Foolframe\Controller\Install::*' + '_controller' => '\Foolz\FoolFrame\Controller\Install::*' ], [ '_suffix' => '.*', @@ -425,12 +421,12 @@ protected function loadInstallRoutes(RouteCollection $route_collection) $route_collection->add('foolframe.install.index', new Route( '/', - ['_controller' => '\Foolz\Foolframe\Controller\Install::index'] + ['_controller' => '\Foolz\FoolFrame\Controller\Install::index'] )); $route_collection->add('404', new Route( '', - ['_controller' => '\Foolz\Foolframe\Controller\Install::404'] + ['_controller' => '\Foolz\FoolFrame\Controller\Install::404'] )); } @@ -442,7 +438,7 @@ public function loadRoutes(RouteCollection $route_collection) '/admin/'.$location.'/{_suffix}', [ '_suffix' => '', - '_controller' => '\Foolz\Foolframe\Controller\Admin\\'.ucfirst($location).'::*', + '_controller' => '\Foolz\FoolFrame\Controller\Admin\\'.ucfirst($location).'::*', ], [ '_suffix' => '.*', @@ -456,7 +452,7 @@ public function loadRoutes(RouteCollection $route_collection) '/admin/{_suffix}', [ '_suffix' => '', - '_controller' => '\Foolz\Foolframe\Controller\Admin::*' + '_controller' => '\Foolz\FoolFrame\Controller\Admin::*' ], [ '_suffix' => '.*', diff --git a/src/Model/ContextInterface.php b/src/Model/ContextInterface.php index ee0c29f7..c322fff8 100644 --- a/src/Model/ContextInterface.php +++ b/src/Model/ContextInterface.php @@ -1,17 +1,15 @@ parameters = array(); if ($suffix = $request->attributes->get('_suffix')) { $parameters_temp = explode('/', $suffix); - $parameters_temp = array_filter($parameters_temp, function ($el) { return $el !== ''; }); + $parameters_temp = array_filter( + $parameters_temp, + function ($el) { + return $el !== ''; + } + ); foreach ($parameters_temp as $p) { $this->parameters[] = $p; diff --git a/src/Model/Cookie.php b/src/Model/Cookie.php index f3968a07..1935faea 100644 --- a/src/Model/Cookie.php +++ b/src/Model/Cookie.php @@ -1,9 +1,9 @@ getService('config'); @@ -17,5 +17,4 @@ public function __construct(Context $context, $name, $value = null, $expire = 0, $httpOnly ); } - } diff --git a/src/Model/DoctrineConnection.php b/src/Model/DoctrineConnection.php index a534d717..697b89fe 100644 --- a/src/Model/DoctrineConnection.php +++ b/src/Model/DoctrineConnection.php @@ -1,6 +1,6 @@ logger_trace !== null) { $string = $exception->getMessage()."\r\n"; foreach ($exception->getTrace() as $trace) { - $string .= " "; - if (isset($trace['file'])) $string .= 'at '.$trace['file'].'('.$trace['line'].') '; - if (isset($trace['class'])) $string .= 'in '. $trace['class'].$trace['type']; - if (isset($trace['function'])) $string .= $trace['function'].'('.$this->stringify($trace['args']).')'; + $string .= ' '; + if (isset($trace['file'])) { + $string .= 'at '.$trace['file'].'('.$trace['line'].') '; + } + if (isset($trace['class'])) { + $string .= 'in '. $trace['class'].$trace['type']; + } + if (isset($trace['function'])) { + $string .= $trace['function'].'('.$this->stringify($trace['args']).')'; + } $string .= "\r\n"; } $this->logger_trace->error($string); diff --git a/src/Model/Form.php b/src/Model/Form.php index 8c59507c..27403067 100644 --- a/src/Model/Form.php +++ b/src/Model/Form.php @@ -1,7 +1,6 @@ 'foolz/foolframe', - $name_lowercase => 'foolz/'.$name_lowercase + 'foolframe' => [ + 'context' => '\\Foolz\\FoolFrame\\Model\\Context', + 'namespace' => 'foolz/foolframe' + ], + $name_lowercase => [ + 'context' => $this->config->get('unknown', 'package', 'main.class_context'), + 'namespace' => 'foolz/'.$name_lowercase + ] ]; $dc = new DoctrineConnection($this->getContext(), $this->config); diff --git a/src/Model/Logger.php b/src/Model/Logger.php index 21a3c98e..65cd7491 100644 --- a/src/Model/Logger.php +++ b/src/Model/Logger.php @@ -1,6 +1,6 @@ config = $context->getService('config'); + + $config = $this->config->get('foolz/foolframe', 'swiftmailer'); + switch ($config['transport']) { + case 'smtp': + $transport = Swift_SmtpTransport::newInstance() + ->setHost($config['host']) + ->setPort($config['port']) + ->setUsername($config['username']) + ->setPassword($config['password']) + ->setEncryption($config['encryption']) + ->setAuthMode('login'); + break; + + default: + $transport = Swift_SendmailTransport::newInstance(); + } + + $this->mailer = Swift_Mailer::newInstance($transport); + } + + public function create() + { + return Swift_Message::newInstance(); + } + + public function send($message) + { + return $this->mailer->send($message); + } +} diff --git a/src/Model/Markdown.php b/src/Model/Markdown.php index aed9fed0..c66bd71a 100644 --- a/src/Model/Markdown.php +++ b/src/Model/Markdown.php @@ -1,5 +1,5 @@ context = $context; } @@ -30,4 +31,4 @@ public function getAuth() { return $this->context->getService('auth'); } -} \ No newline at end of file +} diff --git a/src/Model/ModelInterface.php b/src/Model/ModelInterface.php index 2e69e5fc..4cc73182 100644 --- a/src/Model/ModelInterface.php +++ b/src/Model/ModelInterface.php @@ -1,8 +1,8 @@ config->get('foolz/foolframe', 'config', 'modules.installed') as $module) { - $dir = $this->config->get($module, 'package', 'directories.plugins'); + $dir = $this->config->get($module['namespace'], 'package', 'directories.plugins'); $this->loader->addDir($dir); - $dir = VAPPPATH.$module.'/plugins'; + $dir = VAPPPATH.$module['namespace'].'/plugins'; $this->loader->addDir($dir); } @@ -64,9 +65,8 @@ public function instantiate() $plugin = $this->loader->get($enabled['slug']); $plugin->bootstrap(); // we could use execute() but we want to inject more in the call - \Foolz\Plugin\Hook::forge('Foolz\Plugin\Plugin::execute.'.$plugin->getConfig('name')) + \Foolz\Plugin\Hook::forge('Foolz\Plugin\Plugin::execute#'.$plugin->getConfig('name')) ->setObject($plugin) - ->setParam('framework', $this->getContext()) ->setParam('context', $this->getContext()) ->execute(); @@ -77,7 +77,8 @@ public function instantiate() } } - public function handleWeb() { + public function handleWeb() + { $this->uri = $this->getContext()->getService('uri'); $this->loader->setPublicDir(DOCROOT.'foolframe/'); $this->loader->setBaseUrl($this->uri->base().'foolframe/'); @@ -129,8 +130,6 @@ public function getPlugin($slug) public function enable($slug) { - $plugin = $this->loader->get($slug); - $count = $this->dc->qb() ->select('COUNT(*) as count') ->from($this->dc->p('plugins'), 'p') @@ -160,8 +159,6 @@ public function enable($slug) */ public function disable($slug) { - $plugin = $this->loader->get($slug); - $this->dc->qb() ->update($this->dc->p('plugins')) ->set('enabled', ':enabled') @@ -182,7 +179,7 @@ public function install($slug) $this->clearCache(); // run the schema update - $sm = \Foolz\Foolframe\Model\SchemaManager::forge($this->dc->getConnection(), $this->dc->getPrefix().'plugin_'); + $sm = \Foolz\FoolFrame\Model\SchemaManager::forge($this->dc->getConnection(), $this->dc->getPrefix().'plugin_'); foreach ($this->getInstalled() as $enabled) { try { @@ -192,7 +189,7 @@ public function install($slug) $plug->bootstrap(); } - \Foolz\Plugin\Hook::forge('Foolz\Foolframe\Model\Plugin::schemaUpdate.'.$plug->getConfig('name')) + \Foolz\Plugin\Hook::forge('Foolz\FoolFrame\Model\Plugin::install#'.$plug->getConfig('name')) ->setParam('context', $this->getContext()) ->setParam('schema', $sm->getCodedSchema()) ->execute(); diff --git a/src/Model/Preferences.php b/src/Model/Preferences.php index 04a647ab..6b4e3329 100644 --- a/src/Model/Preferences.php +++ b/src/Model/Preferences.php @@ -1,9 +1,10 @@ set($this->preferences, 3600); } - $this->preferences = \Foolz\Plugin\Hook::forge('Foolz\Foolframe\Model\Preferences::load.result.public') + $this->preferences = Hook::forge('Foolz\FoolFrame\Model\Preferences::load#var.preferences') ->setObject($this) ->setParam('preferences', $this->preferences) ->execute() @@ -124,7 +125,7 @@ public function get($setting, $fallback = null, $show_empty_string = false) $identifier = array_shift($segments); $query = implode('.', $segments); - return $this->config->get($this->modules[$identifier], 'package', 'preferences.'.$query); + return $this->config->get($this->modules[$identifier]['namespace'], 'package', 'preferences.'.$query); } public function set($setting, $value, $reload = true) diff --git a/src/Model/Schema.php b/src/Model/Schema.php index 6679f242..8a7fa5e2 100755 --- a/src/Model/Schema.php +++ b/src/Model/Schema.php @@ -1,6 +1,6 @@ setObject($new) ->setParam('prefixes_ignored', $prefixes_ignored) ->execute() @@ -78,7 +80,7 @@ public static function forge(\Doctrine\DBAL\Connection $connection, $prefix = '' } // get more tables ignored - $tables = \Foolz\Plugin\Hook::forge('Foolz\Foolframe\Model\SchemaManager::forge.tables') + $tables = Hook::forge('Foolz\FoolFrame\Model\SchemaManager::forge#var.tables') ->setObject($new) ->setParam('tables', $tables) ->execute() diff --git a/src/Model/Security.php b/src/Model/Security.php index 665d8803..70c90610 100644 --- a/src/Model/Security.php +++ b/src/Model/Security.php @@ -1,7 +1,6 @@ setParam('environment', $environment) ->execute() ->get($environment); diff --git a/src/Model/Uri.php b/src/Model/Uri.php index 16e3101a..2c26b90c 100644 --- a/src/Model/Uri.php +++ b/src/Model/Uri.php @@ -1,11 +1,11 @@ isDir()) { + rmdir($file->getPathname()); + } else { + unlink($file->getPathname()); + } + } + + rmdir($path); + } else { + unlink($path); + } + } + + /** + * Copy a file or recursively copy a directories contents + * + * From: http://davidhancock.co/2012/11/useful-php-functions-for-dealing-with-the-file-system/ + * + * @param string $source The path to the source file/directory + * @param string $dest The path to the destination directory + * @return void + */ + public static function copy($source, $dest) + { + if (is_dir($source)) { + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS), + RecursiveIteratorIterator::SELF_FIRST + ); + + foreach ($iterator as $file) { + if ($file->isDir()) { + mkdir($dest.DIRECTORY_SEPARATOR.$iterator->getSubPathName()); + } else { + copy($file, $dest.DIRECTORY_SEPARATOR.$iterator->getSubPathName()); + } + } + } else { + copy($source, $dest); + } + } + + /** + * Return the size of a file or a directory and its contents in bytes + * + * NOTE: This function may return unexpected results for files larger than + * 2GB on 32bit hosts due to PHP's integer type being 32bit signed. + * + * From: http://davidhancock.co/2012/11/useful-php-functions-for-dealing-with-the-file-system/ + * + * @param string $path The path to the file/directory to calculate the size of + * @return int + */ + public static function getSize($path) + { + $size = 0; + if (is_dir($path)) { + $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); + + foreach ($iterator as $file) { + $size += $file->getSize(); + } + } else { + $size = filesize($path); + } + + return $size; + } } diff --git a/src/Model/Validation/ActiveConstraint/ActiveConstraint.php b/src/Model/Validation/ActiveConstraint/ActiveConstraint.php index d547361b..e0d95f92 100644 --- a/src/Model/Validation/ActiveConstraint/ActiveConstraint.php +++ b/src/Model/Validation/ActiveConstraint/ActiveConstraint.php @@ -1,14 +1,12 @@ compareValues($value, $constraint->value, $constraint)) { $this->context->addViolation($constraint->message, [ '{{ field }}' => $constraint->field diff --git a/src/Model/Validation/Validator.php b/src/Model/Validation/Validator.php index 0fcd7e12..3b94c3e6 100644 --- a/src/Model/Validation/Validator.php +++ b/src/Model/Validation/Validator.php @@ -1,10 +1,10 @@ labels[$field_name] = $label; $this->constraints[$field_name] = $constraints; @@ -53,7 +54,8 @@ public function add($field_name, $label, $constraints) { * * @param array $data */ - public function validate(Array $data) { + public function validate(Array $data) + { $this->original_values = $data; $this->final_values = $data; @@ -99,7 +101,8 @@ public function validate(Array $data) { * * @return array */ - public function getOriginalValues() { + public function getOriginalValues() + { return $this->original_values; } @@ -107,7 +110,8 @@ public function getOriginalValues() { * Gets the array of values after they were treated by the validation * @return array */ - public function getFinalValues() { + public function getFinalValues() + { return $this->final_values; } @@ -116,7 +120,8 @@ public function getFinalValues() { * * @return ViolationCollection */ - public function getViolations() { + public function getViolations() + { return $this->violations; } @@ -238,8 +243,8 @@ public static function formValidate($form, $input) foreach ($form as $name => $item) { // not interested in data that is not related to database if ($item['type'] != 'checkbox_array' && - (!isset($item['database']) || $item['database'] !== TRUE) && - (!isset($item['preferences']) || $item['preferences'] === FALSE) + (!isset($item['database']) || $item['database'] !== true) && + (!isset($item['preferences']) || $item['preferences'] === false) ) { continue; } @@ -259,7 +264,7 @@ public static function formValidate($form, $input) $result[$name] = 0; } } else { - if (isset($input[$name]) && $input[$name] !== FALSE) { + if (isset($input[$name]) && $input[$name] !== false) { $result[$name] = $input[$name]; } } diff --git a/src/Model/Validation/Violation.php b/src/Model/Validation/Violation.php index f468db90..2aed92a8 100644 --- a/src/Model/Validation/Violation.php +++ b/src/Model/Validation/Violation.php @@ -1,12 +1,12 @@ violations = $violations; $this->field_name = $field_name; $this->label = $label; @@ -36,14 +37,16 @@ public function __construct(ConstraintViolationList $violations, $field_name, $l /** * @return ConstraintViolationList */ - public function getViolations() { + public function getViolations() + { return $this->violations; } /** * @return string */ - public function getViolationsString() { + public function getViolationsString() + { $array = []; foreach ($this->violations as $violation) { /** @var $violation ConstraintViolation */ @@ -56,14 +59,16 @@ public function getViolationsString() { /** * @return string */ - public function getFieldName() { + public function getFieldName() + { return $this->field_name; } /** * @return string */ - public function getLabel() { + public function getLabel() + { return $this->label; } -} \ No newline at end of file +} diff --git a/src/Model/Validation/ViolationCollection.php b/src/Model/Validation/ViolationCollection.php index cd2f7269..22788033 100644 --- a/src/Model/Validation/ViolationCollection.php +++ b/src/Model/Validation/ViolationCollection.php @@ -1,8 +1,8 @@ violations = $violations; } /** * @return Violation[] */ - public function getArray() { + public function getArray() + { return $this->violations; } + public function getString() + { + $array = []; + foreach ($this->violations as $violation) { + $array[] = $violation->getLabel().': '.$violation->getViolationsString(); + } + + return $array; + } + /** * @return int */ - public function count() { + public function count() + { return count($this->violations); } /** * @return string */ - public function getHtml() { - $array = []; - foreach ($this->violations as $violation) { - $array[] = $violation->getLabel().': '.$violation->getViolationsString(); - } - - return implode('
', $array); + public function getHtml() + { + return implode('
', $this->getString()); } /** * @return string */ - public function getText() { - $array = []; - foreach ($this->violations as $violation) { - $array[] = $violation->getLabel().': '.$violation->getViolationsString(); - } - - return implode("\n", $array); + public function getText() + { + return implode("\n", $this->getString()); } -} \ No newline at end of file +} diff --git a/src/View/View.php b/src/View/View.php index 20124a02..0a8a303c 100644 --- a/src/View/View.php +++ b/src/View/View.php @@ -1,16 +1,16 @@