Apps
From Aikiframework wiki
|
Here is the blueprint on apps: https://blueprints.launchpad.net/aikiframework/+spec/apps-sites Apps are just a concept at this stage. They need a specification for how they are to work on the disk, in the database, and then in practice convert the current apps to this system. Jon Phillips 04:27, 29 January 2012 (UTC) |
|
What is an App?
App is a set of files and/or widgets and/or extensions that manipulate database (it can have is own database tables). App have its own url from where you can access it, it can have multiply widgets to url or multiple urls.
There will be package manager for apps in Admin Panel and all information about an app will be in database
proposal for database (ERD scheme)
aiki_apps 1-------N aiki_widgets 1 1 | \ | +---------N aiki_apps_tables N aiki_app_files
Things to Consider
1. What if user have same url as app provide
- We should make namespaces urls prefix that can be changed by users
- all widgets that can be accessed from the url that belong to the app should have the same prefix (app name)
2. Should App have static files or only widgets? 3. How do apps exist in the aiki database? 4. How do apps exist on the disk?
HOWTO Implement
First create hand crafted installation script that show form and process post data and then run sql queries that create new table if necessary and create new widgets if App need them.
Then we can create generator that will create that php script.
Installation php script should be like Makefile where rules will be methods of the class
class Installer {
function install() {
}
function uninstall() {
}
}
NOTE: We can create App for uninstallation Apps so we don't need to put anything into Aiki Core
Unpacked installation App (before running compile script) will have bunch of files like html for widgets, css, sql or php files for extension and all those files will be put into one php script.
User Interface Ideas
1. Installation - We should create one instalation style it and replicate for all installation apps (probably by some script or generator). Jcubic wants to implement an app to be json-rpc (it will not have widget nor url os no interface) 2. If App have widgets that are displayed to users we should have create some style for it just like login panel very basic that can be changed by users.
Apps vs Extensions
Extensions are functions that are invoked from widgets. App can contain (install) extensions that will use or depend on separated extensions. Extensions are automatically loaded by aiki when called.
Apps vs Plugins
Plugins are like filters, that add new features to Aiki through actions/events. They are also deactivated by default, and may be activated when needed, currently only in the database, or globally with the setup_plugins.php script.
Current Apps
Admin Panel
| +This section is incomplete. You can help by expanding it. |
Image Viewer
| +This section is incomplete. You can help by expanding it. |
Captcha
| +This section is incomplete. You can help by expanding it. |
Roger's New Installer
| +This section is incomplete. You can help by expanding it. |
Aiki Tools
| +This section is incomplete. You can help by expanding it. |

