// Reject class names that aren't valid
        if (!ctype_alnum($class)) {
            continue;
        }
        if ($classConfig = Classes_Meta::getConfig($class)) {
            echo '
			<tr>
				<td style="max-width:100px; overflow:hidden;"><a href="/admin/Class/Class Details/' . $class . '">' . $class . '</a></td>
				<td>' . $classConfig->description . '</td>
			</tr>';
        }
    }
    echo '
	</table>';
    // Scan through the plugins directory
    $classs = Dir::getFolders(CORE_PLUGIN_PATH);
    echo '
	<h3 style="margin-top:22px;">Core Classes</h3>
	<table class="mod-table">';
    foreach ($classs as $class) {
        // Reject class names that aren't valid
        if (!ctype_alnum($class)) {
            continue;
        }
        if ($classConfig = Classes_Meta::getConfig($class)) {
            echo '
			<tr>
				<td style="max-width:100px; overflow:hidden;"><a href="/admin/Class/Class Details/' . $class . '">' . $class . '</a></td>
				<td>' . $classConfig->description . '</td>
			</tr>';
        }
 public static function getClassList($dir = "")
 {
     // If a directory is provided, ONLY look through that directory for plugins
     if ($dir !== "") {
         $dir = rtrim(Sanitize::filepath($dir), "/");
         return Dir::getFolders($dir);
     }
     // Get the full list of available plugins
     $classes = Dir::getFolders(APP_PATH . "/classes");
     $classes = array_merge(Dir::getFolders(SYS_PATH . "/core-classes"), $classes);
     $classes = array_merge(Dir::getFolders(SYS_PATH . "/plugin-classes"), $classes);
     return $classes;
 }