Multiple Sites with One Library
docs/install.shared.core
/* title: Multiple Sites with One Library date: 2014-03-05 chapter: 0.22 */ ## One Phile Multiple Sites This is not related to errors. If you are using standard phile install locations, just ignore this. I wanted several sites using one Phile Install folder. A structure something like this: ~~~~ -philesystem -/datastorage -/lib -/plugins -/temp -/themes -/vendor -/SiteONE -index.php -config.php -default_config.php -generator.php -/content -/SiteTWO -index.php -config.php -default_config.php -generator.php -/content -/SiteTHREE -index.php -config.php -default_config.php -generator.php -/content ~~~~ Each site is accessed with a url mysite.com/SiteONE mysite.com/SiteTWO mysite.com/SiteTHREE I made these adjustments in `index.php` for the site. No modifications to core; however, also need plugin to "fix" the theme url. ###FROM ~~~~ define('ROOT_DIR', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR); define('CONTENT_DIR', ROOT_DIR . 'content' . DIRECTORY_SEPARATOR); define('CONTENT_EXT', '.md'); define('LIB_DIR', ROOT_DIR . 'lib' . DIRECTORY_SEPARATOR); define('PLUGINS_DIR', ROOT_DIR . 'plugins' . DIRECTORY_SEPARATOR); define('THEMES_DIR', ROOT_DIR . 'themes' . DIRECTORY_SEPARATOR); define('CACHE_DIR', LIB_DIR . 'cache' . DIRECTORY_SEPARATOR); ~~~~ ###TO ~~~~ define('SYSTEMFOLDER', 'philesystem'); define('ROOTSITE_DIR', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR); define('ROOT_DIR', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR); define('ROOTSYSTEM_DIR', realpath(dirname(ROOT_DIR)) . DIRECTORY_SEPARATOR .SYSTEMFOLDER. DIRECTORY_SEPARATOR ); define('CONTENT_DIR', ROOT_DIR . 'content' . DIRECTORY_SEPARATOR); define('CONTENT_EXT', '.md'); define('LIB_DIR', ROOTSYSTEM_DIR . 'lib' . DIRECTORY_SEPARATOR); define('PLUGINS_DIR', ROOTSYSTEM_DIR . 'plugins' . DIRECTORY_SEPARATOR); define('THEMES_DIR', ROOTSYSTEM_DIR . 'themes' . DIRECTORY_SEPARATOR); define('CACHE_DIR', LIB_DIR . 'cache' . DIRECTORY_SEPARATOR); ~~~~ ## Theme URL issue Note the theme url assigned to twig variables also needs revision; however, I was able to do this in a plugin without changing the core. I just put the following secition in my [Jaccms plugin](plugins/plugin.jaccms). Basically you just need this in a plugin: ~~~~ if ($eventKey == 'template_engine_registered') { $data['data']['theme_url'] = dirname($settings['base_url']).'/'.SYSTEMFOLDER.'/'. basename(THEMES_DIR) .'/'. $settings['theme']; } ~~~~ Probably a better way, but for now that works and did not impact any other parts of phile. Also works for the whole thing being in a subfolder. i.e. mysite.com/testsites/SiteONE mysite.com/testsites/SiteTWO mysite.com/testsites/SiteTHREE You can also [view my config files](configfile)