function anwiki__autoload($sClassName) { static $asClasses; if (!$asClasses) { $asClasses = array(); $asClasses['AnwMysql'] = ANWPATH_CLASSES_ABSTRACTION . "class_mysql.php"; $asClasses['AnwOutput'] = ANWPATH_CLASSES . "class_output.php"; $asClasses['AnwOutputHtml'] = ANWPATH_CLASSES . "class_output.php"; $asClasses['AnwParser'] = ANWPATH_CLASSES . "class_parser.php"; $asClasses['AnwAutoSync'] = ANWPATH_CLASSES . "diff/class_autosync.php"; $asClasses['AnwXml'] = ANWPATH_CLASSES . "class_xml.php"; $asClasses['AnwDiffAdded'] = ANWPATH_CLASSES . "diff/class_diffadded.php"; $asClasses['AnwDiffDeleted'] = ANWPATH_CLASSES . "diff/class_diffdeleted.php"; $asClasses['AnwDiffEdited'] = ANWPATH_CLASSES . "diff/class_diffedited.php"; $asClasses['AnwDiffKept'] = ANWPATH_CLASSES . "diff/class_diffkept.php"; $asClasses['AnwDiffMoved'] = ANWPATH_CLASSES . "diff/class_diffmoved.php"; $asClasses['AnwDiff'] = ANWPATH_CLASSES . "diff/class_diffs.php"; $asClasses['AnwDiffs'] = ANWPATH_CLASSES . "diff/class_diffs.php"; $asClasses['AnwFeed'] = ANWPATH_CLASSES . "class_feed.php"; $asClasses['AnwFeedItem'] = ANWPATH_CLASSES . "class_feed.php"; $asClasses['AnwActionGlobal'] = ANWPATH_CLASSES . "class_actionglobal.php"; $asClasses['AnwActionPage'] = ANWPATH_CLASSES . "class_actionpage.php"; $asClasses['AnwActionMinimal'] = ANWPATH_CLASSES . "class_actionminimal.php"; $asClasses['AnwChange'] = ANWPATH_CLASSES . "class_change.php"; $asClasses['AnwLock'] = ANWPATH_CLASSES . "class_lock.php"; $asClasses['AnWiki'] = ANWPATH_CLASSES . "class_anwiki.php"; $asClasses['AnwDependancy'] = ANWPATH_CLASSES . "dependancy/class_dependancy.php"; $asClasses['AnwDependancyConflict'] = ANWPATH_CLASSES . "dependancy/class_dependancy.php"; $asClasses['AnwDependancyRequirement'] = ANWPATH_CLASSES . "dependancy/class_dependancy.php"; $asClasses['AnwGoogleMap'] = ANWPATH_CLASSES . "external/google/maps/class_googlemap.php"; } if (class_exists('AnwDebug')) { AnwDebug::log("***AUTOLOAD***: " . $sClassName); } /*if ($sClassName == "AnwContentClasses") { try{ throw new Exception(); } catch(Exception $e){ print_r($e->getTrace()); } }*/ if (isset($asClasses[$sClassName])) { loadApp($asClasses[$sClassName]); } else { //interface of contentclass $sPattern = '!AnwIContentFieldPage_([^_]*?)_(.*?)$!i'; //ie: AnwIContentFieldPage_menu_menuSubItem belongs to "menu" if (preg_match($sPattern, $sClassName, $asMatches)) { $sContentClassName = $asMatches[1]; //AnwContentClasses::loadContentClassInterface($sContentClassName); AnwUtils::loadContentClassInterfaceFaster($sContentClassName); } else { $sPattern = '!AnwIContentClassPageDefault_(.*?)$!i'; //ie: AnwIContentClassPageDefault_menu belongs to "menu" if (preg_match($sPattern, $sClassName, $asMatches)) { $sContentClassName = $asMatches[1]; //AnwContentClasses::loadContentClassInterface($sContentClassName); AnwUtils::loadContentClassInterfaceFaster($sContentClassName); } else { //contentclass: default $sPattern = '!AnwContentClassPageDefault_(.*)$!i'; if (preg_match($sPattern, $sClassName, $asMatches)) { $sContentClassName = $asMatches[1]; AnwContentClasses::loadContentClass($sContentClassName); } else { //contentclass: override $sPattern = '!AnwContentClassPageOverride_(.*)$!i'; if (preg_match($sPattern, $sClassName, $asMatches)) { $sContentClassName = $asMatches[1]; AnwContentClasses::loadContentClass($sContentClassName); } else { $sPattern = '!AnwDatatype(.*)$!i'; if (preg_match($sPattern, $sClassName)) { loadApp(ANWPATH_CLASSES . "class_datatype.php"); } else { //__autoload is called for {AnwContentField, AnwContentMultiplicity...} althought we don't really need it $sPattern = '!(AnwStructuredContentFieldsContainer|AnwContent|AnwContentPage|AnwSettingsContent|AnwContentClasses|AnwStructuredContent(.*)|AnwContentSettings)$!i'; if (preg_match($sPattern, $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentclasses.php"); loadApp(ANWPATH_CLASSES . "contentclass/class_contentclass.php"); loadApp(ANWPATH_CLASSES . "contentclass/class_content.php"); loadApp(ANWPATH_CLASSES . "contentclass/class_contentfield.php"); loadApp(ANWPATH_CLASSES . "contentclass/class_contentmultiplicity.php"); } else { if (preg_match('!(AnwStructuredContentFieldsContainerPage|AnwContentClassPage)$!i', $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentclass_page.php"); } else { if (preg_match('!(AnwStructuredContentFieldsContainerSettings|AnwContentClassSettings)$!i', $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentclass_settings.php"); } else { if (preg_match('!(AnwContentFieldPage(.*)|AnwContentFieldPage_(.*))$!i', $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentfield_page.php"); } else { if (preg_match('!(AnwContentFieldSettings(.*))$!i', $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentfield_settings.php"); } else { if (preg_match('!(AnwISettings_(.*))$!i', $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentfield_settings_interface.php"); } else { if (preg_match('!(AnwIPage_(.*))$!i', $sClassName)) { loadApp(ANWPATH_CLASSES . "contentclass/class_contentfield_page_interface.php"); } else { if (class_exists('AnwDebug')) { AnwDebug::log('***AUTOLOAD*** failed'); } } } } } } } } } } } } } } }