Apps

From Aikiframework wiki

Jump to: navigation, search

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)

Contents

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.
Personal tools