Commit Graph

176 Commits

Author SHA1 Message Date
4e9fe8db4a Implemented a basic Library system for FuzeWorks.
Libraries are small one-class utilities which can be loaded to fasten functionality for controllers and modules. It's meant to support modules and controllers but not the other way around.
Libraries can be put in the Core/Libraries directory. Libraries put here must use the FuzeWorks\Library namespace and must use the 'FW_' prefix. A library named 'Example' will be named 'FW_Example' and would be located in the file Example.php in the Core/Libraries directory.

It's also possible to extend on core libraries or completely add new libraries. Adding a new library can be done as easily as adding the file to the Application/Libraries folder. The used namespace is 'Application\Library'. Libraries that do not extend anything do not need a prefix.

Libraries that extend however require a prefix. This prefix is configurable in the config.main.php in the Application/Config directory. The default prefix is 'MY_'. If you want to extend the file should have a different name. In the 'Example' example the file should be named 'MY_Example.php' in the Applications/Libraries folder.

Libraries can be loaded using the Libraries::get('libraryName') method (FuzeWorks\Libraries::get()).
2016-05-13 22:20:53 +02:00
deef1879aa Implemented routerLoadControllerEvent.
Now controller loading can be intercepted and changed if needed.
Part of CodeIgniter compatibility module. Useful for other things.
2016-05-13 14:26:34 +02:00
5bc326b5e1 Misc. changes to configuration files related to formatting 2016-05-12 12:18:08 +02:00
51f3c80a92 Started with implementing the benchmarker from CodeIgniter into FuzeWorks. 2016-05-12 12:17:43 +02:00
9f4742b063 Updated entire project to PSR2 code standard. Some classes still need to be moved around. 2016-05-07 19:22:09 +02:00
edf1ce2fa3 Made some miscellaneous changes to the panel and admin classes 2016-01-25 13:59:15 +01:00
f19255f6f3 Implemented some basics of the admin module. Development underway 2016-01-23 14:09:23 +01:00
84b3154ea2 Implemented some changes to the SQL Model 2016-01-23 14:08:29 +01:00
0910b30d93 Implemented some core changes to the Layout system 2016-01-23 14:06:16 +01:00
a9212d9709 Mailer now checks whether the class it needs is loaded. If not an exception is thrown saying that composer should be installed. 2016-01-17 14:43:33 +01:00
81b86c61c9 Implemented static methods for Modules.
Modules can now call default static methods by implementing the \FuzeWorks\Module trait.
The database also closes connection upon coreShutdownEvent
2016-01-17 14:42:39 +01:00
727e8b3311 Added method to receive advertisements 2016-01-17 13:09:41 +01:00
891be6986b Implemented argument passing for modules. The onLoad() module method will now receive arguments sent from the Modules::get('MOD_NAME', args..) part. 2016-01-17 13:09:17 +01:00
a184d43c9e Implemented module advertisements.
A module advertises it has certain data, identified by a key. The moment a module gets loaded that listens for that key, it will get send this data.
Using this technique it is possible to load certain predefined data into modules, without loading the actual module. This data is prone to future caching as well.
2016-01-16 21:21:11 +01:00
c5eae9823c Fixed Apache working directory bug by applying the working directory at shutdown 2016-01-15 13:45:13 +01:00
ba9cfce1a9 Various incomplete code fixes and newlines. 2016-01-14 21:10:28 +01:00
c2a9cf5ee8 Fixed spelling mistakes in documentation 2016-01-13 13:09:12 +01:00
49a845d333 Moved the Event register into the regular Module register. This shortens the code and fixes events not being loaded. Readability improved enormously 2016-01-13 13:08:11 +01:00
b89f4e1fdd Removed references to time before Static Core 2016-01-13 12:30:02 +01:00
ea3661d3be Merge branch 'Dev' into 'master'
Layout Unit Tests

Implemented the unit tests for the layout manager.

See merge request !41
2015-10-13 20:35:09 +02:00
9127b440a5 Added the event_layoutLoadViewEventTest unit test. 2015-10-12 16:45:56 +01:00
102b35a96b Implemented unit tests for the layout manager. 2015-10-12 16:28:38 +01:00
69c233f6b3 Merge branch 'Dev' into 'master'
Miscellaneous changes and fixes

See 9d665e2a for more details about the contents of this MR



See merge request !40
2015-10-12 15:42:06 +02:00
b8058572d3 Temporarily removed Users module until issues are resolved. 2015-10-12 14:22:56 +01:00
9d665e2ae1 Many Misc jobs:
- Modules can now be loaded using routes by adding a routes[] array to the moduleInfo.php. When it matches, the module gets loaded, and a route() function in the main class gets called. (Fixes #79)
- Composer can now load from a different file
- License headers have been added to all core files (Fixes #66)
- Table model has been renamed to sqltable. Interpret model has been removed
- layoutLoadViewEvent added
- Controllers now extend the \FuzeWorks\ControllerAbstract class
- Controllers are now in the \Application\Controller namespace
- Models are now in the \Application\Model namespace
- Events are now in the \FuzeWorks\Event namespace
- Moved some classes in a different namespace for a better overview
- Events can now properly load function listeners (fixes #81)
- Documentation added to more classes. (Partially fixes #58)
- Added replace() command to DatabaseUtils Abstract Model
- Added more unit tests for router, query and events
2015-10-11 19:14:49 +01:00
d982534cf0 Started working on new systems. Continue on new development environment. 2015-09-12 19:52:04 +02:00
fedf75f856 Merge branch 'StaticCore' into 'master'
Renewed Core

Everything is now static!

Please be reminded that bugs might be present. Do not expect this to work fully 100% yet.
Besided, most Unit tests need to be rebuilt. Please consider doing so before releasing merge.

See merge request !39
2015-09-06 15:46:15 +02:00
5093f98c4b Started working on renewed Unit Tests. 2015-09-06 15:42:57 +02:00
68b3b402e7 Made the core of FuzeWorks static.
Resolves #74

More tests are needed in order to prove functioning of renewed core
2015-09-05 21:47:35 +02:00
187a33d3d7 Merge branch 'Misc' into 'master'
Many Misceleanous solvings

Because I don't care to describe it all

See merge request !38
2015-09-05 19:10:54 +02:00
d2ec5b0c2a Moved internal modules to the new module namespace.
Most of them have an alias starting with techfuze/ for backwards compatibility until #74 has been resolved.
Resolves #68
2015-09-05 19:06:19 +02:00
064adfe1c2 Moved internal 404 error template to PHP engine 2015-09-05 19:04:21 +02:00
654d873ba9 Moved the techfuze/sessions module to core/users.
Has an alias techfuze/sessions for backwards compatibility. Will be removed when #74 has been resolved.
Partially resolves #68
2015-09-05 19:03:45 +02:00
67ccc602e3 Added Exceptions for other Core classes 2015-09-05 18:58:10 +02:00
e8cdda7960 Events no longer get loaded of aliased modules. This is to prevent multiple events from being called on the same object 2015-09-05 18:57:55 +02:00
d9807c87ce Merge branch 'Issue_#70' into 'master'
Config file ORM for issue #70

Solves #70

Please mind that this will break some serious things when directly reading from the config object.

See merge request !37
2015-09-05 18:55:13 +02:00
5512bc1821 Config file ORM for issue #70
Solves #70
2015-09-05 18:53:13 +02:00
be41c950f7 Merge branch 'Issue_#66' into 'master'
Issue #66. Added the ability to add module aliases.

Setting a alias can be done by adding the aliases array to the moduleInfo.php and setting the names in there.
An example can be found in the example module.

See merge request !36
2015-08-29 21:12:22 +02:00
aa7bd856f2 Added the ability to add module aliases.
Setting a alias can be done by adding the aliases array to the moduleInfo.php and setting the names in there.
An example can be found in the example module.
2015-08-29 21:07:17 +02:00
6d2a6a1f49 Merge branch 'development' into 'master'
The Great rewrite of many modules

Because it was strongly needed.

This merge request will solve the following issues:
#21 , #66 (partially) , #62 , #60 , #58 (partially) , #57

See merge request !35
2015-08-29 20:51:34 +02:00
fe4fe7e688 Changed the default page into a PHP template. 2015-08-29 20:34:38 +02:00
30f700a727 Implemented the fully renewed Layout Manager.
Now based on a new database schema, working with events and many more abilities.
An expansion with a built in login page might be possible.
2015-08-29 20:30:52 +02:00
714ac95ef8 Changed the nginx directives file and readded build.xml 2015-08-29 17:44:59 +02:00
f73f638b2b Placed the License header in most files and implemented PHPDoc where needed.
Also removed useless whitespaces.
2015-08-29 17:43:13 +02:00
56b8f56ab3 The Sections module has been removed because it is no longer required. 2015-08-29 17:37:25 +02:00
4a0620c2e1 Implemented a small Init class that gets loaded at the defaultCallable.
You can use this class to do some actions at the start of every page. Usefull for authentication and other things.
2015-08-29 17:35:39 +02:00
bbd8823901 Implemented a renewed Layout system.
The layout system now uses so called TemplateEngines. A Template Engine is an engine that implements \FuzeWorks\TemplateEngine, and is a standardized way of parsing template files.
3 template engines are present by default: PHP Parser, JSON parser and the Smarty Template engine.
Based on the file extension the manager should be able to decide which engine to use. New engines can be added by using $this->layout->registerEngine();. This function should be called on the layoutLoadEngineEvent.
Also Smarty has been removed from the system and is now a composer dependency.
2015-08-29 17:33:06 +02:00
bb66e6eb92 Added the ability to enable and disable composer loading 2015-08-29 17:26:47 +02:00
85c9efba7b Started implementing the renewed permission and session system
Fixes Issue #57
2015-08-26 21:15:10 +02:00
cc31f2d1c6 Implemented PHPMailer and a small wrapper. It is possible to use PHPMailer without the wrapper. 2015-08-26 16:53:13 +02:00