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 . Oh, and don't forget to rename the _init function in /php/theme.php to be _init() instead of redbasic_init(). At that point, if you need to add javascript or css files, add them to /js or /css, and then "register" them in _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//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.