While it is possible to rearrange Cadre to run out of a single directory, most installations will find it more convenient to separate the files into two sets: one for the publicly accessible site, and one for the backend. This makes it easier to manage multi-domain installations (which can share one backend), and keeps the web root free of unnecessary internal files.
The files in the current Cadre build are as follows:
- cadre: Contains files used by all Cadre installations. Can live anywhere.
- base: Contains core components of the Cadre system.
- cache.php Non-persistent database cache functions.
- extensions.php Extensions interface.
- permissions.php Permission-handling code.
- sql.php Database-wrapping functions.
- ui.php Generatable user interface components.
- upload.php File upload handler.
- extensions: Self-contained code libraries which can be used by Octavia.
- arbitrary_sql.php Provides raw SQL query access for environments where all site programmers can be trusted.
- date_functions.php Fuzzy date display.
- feeds.php Magpie-based RSS feed handler.
- form_gen.php Experimental automatic form generation.
- images.php ImageMagick-based picture manipulation.
- ip2location.php geoplugin.net-based geographic IP location lookup.
- lex.php Spelling correction related functions.
- mail.php Sends email.
- soft_controls.php Generates a human-readable string describing permissions flags.
- twitter.php Retrieves Twitter tweets using the official API (see cadre/libraries/twitter).
- purify.php HTMLpurifier + csstidy-based hypertext input validator.
- wikka.php Wikka-compatible formatting parser.
- interface: Actual front-end code.
- registration: Alternative front-end pages to use when the site supports registration.
- log_io.star Log in/out script.
- registration.star 'Register new user' script.
- edit_group.star Group editor.
- index.star Regular page display.
- lists.star General administrative functions.
- log_io.star Log in/out script. (no 'click here to register' link)
- new_page.star Detailed 'create a new page' interface.
- libraries: Bundled prerequisites for extensions.
- csstidy CSS validator and formatter.
- htmlpurifierHTML validator and formatter.
- magpie Magpie RSS handler.
- twitter Twitter API handler. For large deployments, change the API key used here.
- wikka Wikka formatting parser.
- layouts: Site interface.
- footer.php Suffixed to all displayed pages.
- header.php Prefixed to all displayed pages.
- helper.php Context-sensitive UI-generating functions.
- utilities: Additional pages for special purposes.
- installer.star Creates the database tables.
- new_group.star Creates a new group. (deprecated)
- new_user.star Creates a new user. (deprecated)
- config.php Site-wide configuration.
- general.php Includes all back-end components from /base.
- octavia.php Script interpreter.
- superheader.php Loads new pages for execution and validates user credentials.
- public: Contains files specific to your site; usually your HTTP root.
- cadre.star Domain-specific configuration.
- cover.star Page to display to non-logged-in users instead of any index.star queries (if enabled)
- edit_group.star Front-end for cadre/interface/edit_group.star
- index.star Front-end for cadre/interface/index.star
- log_io.star Front-end for cadre/interface/log_io.star (or registration version, if enabled)
- new_page.star Front-end for cadre/interface/new_page.star
- registration.star Front-end for cadre/interface/registration.star (if enabled)
The rest of this page describes what the various files in a Cadre installation do. If you're confused about the .star file extension, see Installing Cadre. If you want to know what to put in config.php and cadre.star, see Configuration Files.