About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:architecture:directory_layout

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
vufind2:directory_layout [2012/09/14 18:13] demiankatzdevelopment:architecture:directory_layout [2023/11/09 21:02] demiankatz
Line 1: Line 1:
-====== VuFind 2.x Directory Layout ====== +====== VuFind® Directory Layout ======
- +
-// This page refers to VuFind 2.x; for earlier versions, see [[..:directory_layout|VuFind 1.x Directory Layout]]. //+
  
 ===== Top-Level Layout ===== ===== Top-Level Layout =====
  
   * **config** \\ Application-level configurations   * **config** \\ Application-level configurations
 +    * **vufind** \\ Default VuFind® .ini files; normally these are copied into a [[configuration:local_settings_directory|local settings directory]] rather than modified directly.
   * **data** \\ Storage for application-level data (rarely used)   * **data** \\ Storage for application-level data (rarely used)
 +  * **downloads** \\ Cache for downloaded dependencies (e.g. Solr)
   * **harvest** \\ Tools for harvesting metadata   * **harvest** \\ Tools for harvesting metadata
   * **import** \\ Tools for importing metadata   * **import** \\ Tools for importing metadata
   * **languages** \\ Default language files   * **languages** \\ Default language files
-  * **local** \\ Default [[local settings directory]] (other paths may be configured) +  * **local** \\ Default [[configuration:local_settings_directory|local settings directory]] (other paths may be configured) 
-  * **module** \\ Core code, divided into modules+  * **module** \\ Core code, divided into modules; for details, see [[#anatomy_of_a_module|anatomy of a module]] below. 
 +    * **VuFind** \\ Core VuFind® code 
 +    * **VuFindAdmin** \\ Code for accessing the web-based Admin panel 
 +    * **VuFindApi** \\ Code for VuFind®'s public API 
 +    * **VuFindConsole** \\ Console-specific code used for command-line tools 
 +    * **VuFindDevTools** \\ Code that is only available when VuFind® is set to development mode (via Apache configuration) 
 +    * **VuFindLocalTemplate** \\ Template for building a local module to override VuFind® defaults; this is copied by install.php and should not be modified directly 
 +    * **VuFindSearch** \\ VuFind®'s low-level search system 
 +    * **VuFindTheme** \\ VuFind®'s theming system
   * **public** \\ Web root -- should only contain index.php; other files are made accessible via Apache configuration   * **public** \\ Web root -- should only contain index.php; other files are made accessible via Apache configuration
-  * **solr** \\ Solr index+  * **solr** \\ Solr index and all Solr related items including Solr itself and the data directories for the indexes. This is separated into separate 'vufind' and 'vendor' subdirectories to differentiate Solr-distributed code from VuFind® configuration and data.
   * **tests** \\ Test suite   * **tests** \\ Test suite
   * **themes** \\ Templates, CSS, Javascript, images and other theme-specific resources; for details, see [[#anatomy_of_a_theme|anatomy of a theme]] below.   * **themes** \\ Templates, CSS, Javascript, images and other theme-specific resources; for details, see [[#anatomy_of_a_theme|anatomy of a theme]] below.
-    * **blueprint** \\ Default desktop theme +    * **local_mixin_example** \\ Example of a [[development:architecture:user_interface#mix-ins|theme mix-in]] (used by the [[development:code_generators#creating_theme_mix-ins|mix-in generator]]). 
-    * **jquerymobile** \\ Default mobile theme+    * **local_theme_example** \\ Example of a local custom theme (used by the [[development:code_generators#creating_themes|theme generator]]).
     * **root** \\ Base theme containing shared resources needed by all other themes     * **root** \\ Base theme containing shared resources needed by all other themes
-  * **util** \\ Command line utilities +    //assorted other directories// \\ VuFind®'s built-in themes (details vary depending on version) 
-    * dedupe.php \\ Remove duplicate lines from a text file. +  * **util** \\ [[administration:command_line_utilities|Command line utilities]]
-    * delete.php \\ Remove all of the records in a specified MARC file from the Solr index. +
-    expire_searches.php \\ Remove unwanted saved searches from the database. +
-    index_reserves.php \\ Build a Solr index for course reserves. +
-    optimize.php \\ Optimize the Solr index. +
-    sitemap.php \\ Generate a sitemap for use with search engines. +
-    suppressed.php \\ Delete all currently suppressed catalog records from the Solr index.+
   * **vendor** \\ Third-party code   * **vendor** \\ Third-party code
   * build.xml \\ Phing build script (used for development/continuous integration)   * build.xml \\ Phing build script (used for development/continuous integration)
   * import-*.* \\ Import automation scripts   * import-*.* \\ Import automation scripts
   * index-alphabetic-browse.* \\ AlphaBrowse index generation script   * index-alphabetic-browse.* \\ AlphaBrowse index generation script
-  * install.php \\ VuFind installer +  * install.php \\ VuFind® installer 
-  * vufind.sh \\ VuFind startup/shutdown script+  * solr.sh \\ Solr startup/shutdown script 
 + 
 +===== Anatomy of a Module ===== 
 + 
 +Every module has the same basic structure. 
 + 
 +  * **config** \\ Configuration directory defining module-specific resources 
 +  * **sql** \\ Module-specific SQL definitions (not commonly used) 
 +  * **src** \\ Module-specific PHP code, stored in directories matching PHP namespace structure 
 +  * **tests** \\ Module-specific tests (not always used) 
 +  * **xsl** \\ Module-specific XSLT code (not commonly used) 
 +  * Module.php \\ Class for loading and bootstrapping module
  
 ===== Anatomy of a Theme ===== ===== Anatomy of a Theme =====
Line 41: Line 54:
   * **images** \\ Image resources (exposed to public access)   * **images** \\ Image resources (exposed to public access)
   * **js** \\ Javascript resources (exposed to public access)   * **js** \\ Javascript resources (exposed to public access)
 +  * **less** \\ LESS resources (used to build CSS)
 +  * **scss** \\ SCSS resources (auto-translated from LESS; provided for reference but unused by default)
   * **templates** \\ PHP templates for rendering HTML   * **templates** \\ PHP templates for rendering HTML
-  * theme.ini \\ Theme configuration file+  * theme.config.php \\ Theme configuration file
 ---- struct data ---- ---- struct data ----
 +properties.Page Owner : 
 ---- ----
  
development/architecture/directory_layout.txt · Last modified: 2024/01/04 19:11 by demiankatz