aboutsummaryrefslogtreecommitdiffstats
path: root/doc/Intro-for-Developers.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Intro-for-Developers.md')
-rw-r--r--doc/Intro-for-Developers.md105
1 files changed, 105 insertions, 0 deletions
diff --git a/doc/Intro-for-Developers.md b/doc/Intro-for-Developers.md
new file mode 100644
index 000000000..bf74cb7c1
--- /dev/null
+++ b/doc/Intro-for-Developers.md
@@ -0,0 +1,105 @@
+File system layout:
+===================
+
+[addon] optional addons/plugins
+
+[boot.php] Every process uses this to bootstrap the application structure
+
+[doc] Help Files
+
+[images] core required images
+
+[include] The "model" in MVC - (back-end functions), also contains PHP "executables" for background processing
+
+[index.php] The front-end controller for web access
+
+[install] Installation and upgrade files and DB schema
+
+[js] core required javascript
+
+[library] Third party modules (must be license compatible)
+
+[mod] Controller modules based on URL pathname (e.g. http://sitename/foo loads mod/foo.php)
+
+[spec] protocol specifications
+
+[util] translation tools, main English string database and other miscellaneous utilities
+
+[version.inc] contains current version (auto-updated via cron for the master repository and distributed via git)
+
+[view] theming and language files
+
+
+[view/(css,js,img,php,tpl)] default theme files
+
+[view/(en,it,es ...)] language strings and resources
+
+[view/theme/] individual named themes containing (css,js,img,php,tpl) over-rides
+
+
+The Database:
+=============
+
+* abook - contact table, replaces Friendica 'contact'
+* account - service provider account
+* addon - registered plugins
+* attach - file attachments
+* auth_codes - OAuth usage
+* cache - TBD
+* challenge - old DFRN structure, may re-use or may deprecate
+* channel - replaces Friendica 'user'
+* clients - OAuth usage
+* config - main configuration storage
+* event - Events
+* fcontact - friend suggestion stuff
+* ffinder - friend suggestion stuff
+* fserver - obsolete
+* fsuggest - friend suggestion stuff
+* gcign - ignored friend suggestions
+* gcontact - social graph storage, obsolete
+* glink - social graph storage - obsolete
+* group - privacy groups
+* group_member - privacy groups
+* hook - plugin hook registry
+* hubloc - Red location storage, ties a location to an xchan
+* intro - DFRN introductions, may be obsolete
+* item - posts
+* item_id - other identifiers on other services for posts
+* mail - private messages
+* manage - may be unused in Red, table of accounts that can "su" each other
+* notify - notifications
+* notify-threads - need to factor this out and use item thread info on notifications
+* outq - Red output queue
+* pconfig - personal (per channel) configuration storage
+* photo - photo storage
+* profile - channel profiles
+* profile_check - DFRN remote auth use, may be obsolete
+* queue - old Friendica queue, obsolete
+* register - registrations requiring admin approval
+* session - web session storage
+* site - site table to find directory peers
+* spam - unfinished
+* term - item taxonomy (categories, tags, etc.) table
+* tokens - OAuth usage
+* verify - general purpose verification structure
+* xchan - replaces 'gcontact', list of known channels in the universe
+* xlink - "friends of friends" linkages derived from poco
+* xprof - if this hub is a directory server, contains basic public profile info of everybody in the network
+* xtag - if this hub is a directory server, contains tags or interests of everybody in the network
+
+
+How to theme Red - by Olivier Migeot
+====================================
+
+This is a short documentation on what I found while trying to modify Red's appearance.
+
+First, you'll need to create a new theme. This is in /view/theme, and I chose to copy 'redbasic' since it's the only available for now. Let's assume I named it <theme>.
+
+Oh, and don't forget to rename the _init function in <theme>/php/theme.php to be <theme>_init() instead of redbasic_init().
+
+At that point, if you need to add javascript or css files, add them to <theme>/js or <theme>/css, and then "register" them in <theme>_init() through head_add_js('file.js') and head_add_css('file.css').
+
+Now you'll probably want to alter a template. These can be found in in /view/tpl OR view/<theme>/tpl. All you should have to do is copy whatever you want to tweak from the first place to your theme's own tpl directory.
+
+
+