Caravel directory structure

From CaravelWiki

Jump to: navigation, search

Here is an overview of the caravel directory layout.

Starred (*) apps are part of the Caravel core, rather than content block applications that can be inserted into blocks.

caravel/
  apps/
    AccountCreator/                     allows account registration
    Accounts/                           (*) for managing user accounts
    BibleGateway/                       
    BlockSettings/                      (*) block settings popup
    Blog/                               blog app (based on the FolderViewer)
    CSSEditor/                          (*) for editing CSS styles
    Calendar/                           ICS calendar viewer
    CaravelSecurity/                    (*) group/privilege editor for pages & blocks
    ChangePassword/                     password changing app (but see also the one in apps/Options/Password.php)
    Clock/
    Comments/                           add comments to any block
    Contact/                            edit a site's contact information (still pretty Mennonite.net-centric)
    DynamicSite/                        create sites on-the-fly for users with LDAP accounts
    ECommerce/                          e-commerce tools
      ECAdmin/
      ECCheckout/
      ECEvent/
      ECItem/
      ECLink/
      ECShoppingCart/
    Editor/                             (*) central editor interface for all document types
                                            (calls the appropriate TypeHandler from core/File/TypeHandlers)
    EmailFeedback/                      form builder app
    FileExplorer/                       (*) contains part of the file manager funcitonality
                                        (see also core/Widget/CaravelNavigator)
    FileOpener/                         (*) app for inserting an existing file (just a wrapper for the file manager)
    FileViewer/                         (*) app for displaying a file
    FolderViewer/                       display various views of folders
    FooterEditor/                       (*) for editing the footer
    GoogleGadgets/                      
    HitCount/                           a simple hit counter
    ImagePicker/                        (*) image browser for inserting images into tinymce
    IncludeUrl/                         include another webpage
    IntelligentQuery/                   harvest and search keywords
    LanguageManager/                    (*) manage the available languages
    LanguageSwitcher/                   switch the effective language
    LinkWriter/                         (*) for inserting links into tinymce
    Login/
    MailMan/                            (*) add mailman lists (still pretty Mennonite.net-centric)
    Navigator/                          various views of the page hierarchy
    Option/                            (*) per-user, per-site, and global Caravel options
    OrgSearch/                          search Caravel sites based on LDAP attributes
    PageHelp/                           (*) set the page help text in the left sidebar
    PersonalProfile/                    (*) edit a user's profile info
    Plugins/                            these are not apps...why are they in apps/ instead of in plugins?  --David
      ResetCustomDirs/
      SudoSupport/
    ProjectManager/
    PublicUploader/
    QuickPoll/
    RSS/                                (*) RSS feed editor
    RSSPromoter/                        create an RSS auto-discovery link
    RapidPublicUploader/
    RapidUploader/                      hmm, I don't think this is used anymore...  -David
    SampleApp/                          something to get you started
    Search/                             Google search
    Selector/                           (*) for picking which app you want to add to a column (Add Feature)
    SideBar/                            (*) generates the left sidebar
    SiteAdmin/                          create/edit/delete Caravel sites (needs to be rewritten to NOT use the old file manager code)
    SlideShow/                          view a slideshow of images from a folder (needs to be rewritten to NOT use the old file manager code)
    Uploader/                           (*) uploader used when you click Upload File from a block menu
    Weather/
    Workflow/                           (*)
  cache/
    rss/                                cached RSS feeds
  conf/
    conf.d/                             other configuration files
    caravel.conf                        main Caravel configuration (generated by the installer)
    caravel.conf.sample                 base configuration copied by the installer
    caravel.schema                      Caravel LDAP schema
    caravel_apache.conf                 add-on to Apache configuration for Caravel
    cv.predefined.class                 predefined block styles
    domainmap                           for canonicalizing domain names
    hostmap                             for directing sites to use custom dirs instead of caravel
    hostmap.all                         for custom dirs for Caravel sites
    permFolders.conf                    folders that can't be deleted (is this still used?)
    plugin.conf                         plugin hook configuration
    powerFolders.conf                   no longer used
    rssFolders.conf                     ???
    tidy.conf                           options for HTMLTidy
    toolbars.utils.conf                 customize the Tools menu items
  core/                               Caravel's core code
    Error/                              error-handling classes
    Exports/                            export utility
    File/                               file-related classes
      RTF/                                ???
      TypeHandlers/                       classes for working with different types of files
      magic/                              ??? used for determining mime types ???
    FileManager/                        the OLD file manager (still used by SiteAdmin and SlideShow)
    LDAP/                               classes for accessing LDAP
    SQL/                                classes for accessing SQL databases (but use adodb instead.  it's better, I promise)
    Structures/                         some classes that aren't used much (except for mnOrganization)
    Widget/                             pieces of code that we weren't quite sure where to put...
      CaravelNavigator/                   the bulk of the NEW file manager
      FormWidget/                         the great magical form generator
      GenericWidget/                      hmm...not quite sure why this needs its own subdirectory
      TabWidget/                          for generating tabs (is this still used?)
      TemplateManager/                    I don't remember
      UploadWidget/                       the uploader used in File Manager and the image browser
    bin/                                binary helpers
    lib/                                some PEAR libraries we've customized
    templates/                          HTML templates
      block/                              HTML templates for different block styles
  custom/                             default location for custom (non-Caravel) sites
  data/
    (one dir for each site)/
      css/                                here is where CSSEditor-created CSS is located
      rss/                                is this used?
    filesystem/
      (one dir for each site)/            the actual contents of a site's files
    snapshots/
      (one dir for each site)/            snapshotted (published) pages
  docs/                               a few nominal attempts a documenting
  include/                            Javascripts and third-party software
    cal/                                php iCalendar
    tinymce/                            tinymce (the HTML editor)
    lightbox.js                         Lightbox
    prototype.js                        Prototype.js library
    scriptaculous.js                    Script.Aculo.Us library
    caravel.js                          js loaded all the time
    caravel_navigator.js                js for the file manager
    cvPopupDialog.js                    our library for making div-based popup dialogs
    drag.js                             js for handling the draggable layout elements
    http_request.js                     our library for handling AJAX requests
    javaPulldown.js                     js for handling the popup menus
    load_editor.js                      js for hooking into tinymce
    local.js                            js loaded when logged in
  install/                            files for the Caravel installer
  plugins/                            plugins (configure hooks using conf/plugin.conf)
  public_web/                         Apache's DocumentRoot for caravel
    css/                                publicly accessible CSS
    img/                                publicly accessible images
    ajax.php                            handler for Ajax requests (old plugin hook style)
    bugreport.php                       error-reporting screen
    download.php                        handles downloading files (for backwards-compatibility)
    index.php                           the big entry point
    popup.php                           handles most of the popups from the main toolbar
  scripts/                            scripts for maintenance -- mostly way out of date -- use at your own peril
    upgrades/                           incremental migration scripts
      do_upgrades.php                      wrapper for running the migrations
  install.sh                          Caravel installation script
Personal tools