function designDashboard() { global $manager; $siteTheme = $manager->clerk->getSetting("site_theme", 1); $total = 0; $scan = scanFolder(BASE_PATH . "site/themes", 1); foreach ($scan as $themeFolder) { $total++; $folderName = str_replace(BASE_PATH . "site/themes/", "", $themeFolder); if ($folderName == $siteTheme) { include_once $themeFolder . '/info.php'; $currentTheme = $info['name']; } } $plural = $total != 1 ? "s" : ""; $html = <<<HTML \t\t\t<div class="col-1"> \t\t\t\t<h1>Design</h1> \t\t\t\t<div class="menu"> \t\t\t\t\t<a href="?cubicle=design-edit">Manage Themes</a> \t\t\t\t</div> \t\t\t\t<ul class="stats"> \t\t\t\t\t<li>{$total} beautiful theme{$plural} installed</li> \t\t\t\t\t<li>Your site is currently using <strong>{$currentTheme}</strong></li> \t\t\t\t</ul> \t\t\t</div> HTML; echo $html; }
function scanFolder(&$array, $path, $filter) { $files = scandir($path); foreach ($files as $file) { if ($file == '.' || $file == '..') { continue; } $file = $path . '/' . $file; if (preg_match($filter, $file)) { $array[] = substr($file, 7); } if (is_dir($file)) { scanFolder($array, $file, $filter); } } }
function runTest(array $folders) { ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title> Test Suite </title> <style> body{ font-family: sans-serif; font-size: 100% } *>.hiddable{ display: none; } *:hover>.hiddable{ display: block; } *>.ihiddable{ display: block; } *:hover>.ihiddable{ display: none; } .section{ border-radius: 10px; border: 1px solid #000; background-color: #ddd; max-width: 1024px; margin: 10px auto; padding: 5px; } .fichiers{} .fichiers .fichiers_liste{} .tests{} .tests .tests_liste{} .tests .class_name{ font-weight: bold; } .tests .methode_name{} .tests .test_methode{} .tests .test_methode p{ line-height: 20px; } .ok{ background-color: rgba(0,255,0,0.1); } .ko{ background-color: rgba(255,0,0,0.1); } .tests .test_methode_comment{} .tests .test_methode_resume{ float:right; } .tests .test_class{} .tests .test_class_resume{} </style> </head> <body> <h1>Test suite</h1> <div class="section fichiers"> <h2>Fichiers chargés</h2> <div class="hiddable fichiers_liste"> <?php // charge tous les fichiers de test foreach ($folders as $folder) { $folder = __DIR__ . DS . $folder; if (is_dir($folder)) { scanFolder($folder); } } ?> </div> </div> <div class="section tests"> <h2>Résultats des test</h2> <div class="tests_liste"> <?php // recherche des class de test $liste_class_chargee = get_declared_classes(); foreach ($liste_class_chargee as $class) { if (is_subclass_of($class, 'Core\\Test')) { $test = new $class(); $test->run(); } } ?> </div> </div> </body> </html> <?php }
function registerThemes() { global $manager, $themes; $scan = scanFolder(BASE_PATH . "site/themes", 1); foreach ($scan as $themeFolder) { $name = str_replace(BASE_PATH . "site/themes/", "", $themeFolder); $theme = scanFolder($themeFolder, 1); foreach ($theme as $file) { if (strstr($file, "info.php")) { include_once $file; $themes[$name] = $info; } } } }
define("SYSTEM_URL", HQ_URL . "system/"); define("FRONTEND", "true"); // Required files require_once SYSTEM . "assistants/utf8.php"; require_once SYSTEM . "assistants/config.inc.php"; require_once SYSTEM . "assistants/clerk.php"; require_once "display_functions.php"; // Initialize $clerk = new Clerk(); $clerk->dbConnect(); $clerk->loadSettings(); // Load plugins loadPlugins(); // Include all modules $defaultModules = array("global", "design", "pages"); $modules = scanFolder(SYSTEM . "modules", 1); foreach ($defaultModules as $key) { $viewFile = SYSTEM . "modules/" . $key . "/view.php"; if (file_exists($viewFile)) { include_once $viewFile; } } foreach ($modules as $key => $val) { $viewFile = SYSTEM . "modules/" . $key . "/view.php"; if (file_exists($viewFile)) { include_once $viewFile; } } // Clean URL switching, if requested // for debugging purposes if (isset($_GET['clean_urls'])) {
public function head_tags() { global $manager; $skin = $manager->clerk->config('SKIN'); if (empty($skin)) { $skin = "starling"; } // Grab common and SKIN CSS $css = scanFolder(SYSTEM . "gui/common_css", 1); sort($css); foreach ($css as $file) { if (strstr($file, ".css")) { echo $this->style(SYSTEM_URL . "gui/common_css" . basename($file)); } } $css = scanFolder(SYSTEM . "gui/" . $skin, 1); sort($css); foreach ($css as $file) { if (strstr($file, ".css")) { echo $this->style(SYSTEM_URL . "gui/" . $skin . "/" . basename($file)); } } $js = scanFolder(SYSTEM . "gui/common_js", 1); sort($js); foreach ($js as $file) { if (strstr($file, ".js")) { echo $this->jsfile(SYSTEM_URL . "gui/common_js/" . basename($file)); } } $js = scanFolder(SYSTEM . "gui/" . $skin . "/js", 1); sort($js); foreach ($js as $file) { if (strstr($file, ".js")) { echo $this->jsfile(SYSTEM_URL . "gui/" . $skin . "/js/" . basename($file)); } } // Include module JS and CSS assets (actions.js and styles.css) $styles = "modules/" . $this->cubicle['BRANCH'] . "/assets/styles.css"; $actions = "modules/" . $this->cubicle['BRANCH'] . "/assets/actions.js"; if (file_exists(SYSTEM . $styles)) { echo $this->style(SYSTEM_URL . $styles); } if (file_exists(SYSTEM . $actions)) { echo $this->jsfile(SYSTEM_URL . $actions); } }
function scanFolder($dir = "", $maxLevel = 0, $filter = "", $callback = "", $level = 0, $root = true) { static $tree; static $base_dir_length; $filters = explode(",", $filter); if ($level == $maxLevel && $maxLevel > 0) { return; } if ($root) { $tree = array(); $base_dir_length = strlen($dir) + 1; } $ext = substr($dir, strrpos($dir, '.')); if (is_file($dir)) { if (!empty($filter) && in_array($ext, $filters) || empty($filter)) { $tree[substr($dir, $base_dir_length)] = $dir; } } elseif (is_dir($dir) && ($di = dir($dir))) { $level = !$root ? $level + 1 : $level; $folderName = basename($dir); if (!empty($filter) && in_array($folderName, $filters)) { $tree[substr($dir, $base_dir_length)] = $dir; } elseif (!$root && empty($filter)) { $tree[substr($dir, $base_dir_length)] = $dir; } while (($file = $di->read()) !== false) { if ($file != "." && $file != "..") { scanFolder($dir . "/" . $file, $maxLevel, $filter, $callback, $level, false); } } $di->close(); } if ($root) { return $tree; } }
function fullRefresh() { global $client, $folder, $values, $valueskv; refreshFolder(); $values = scanFolder($folder); $valueskv = $client->array2kv($values); }
function mmInsert() { global $manager; $files = scanFolder(MMPATH, 1); sort($files); if (count($files) == 0) { echo $manager->form->message("There are no files in your File Cabinet!"); } $BASE_URL = BASE_URL; $target = $_GET['target']; // List images... $html = '<table>'; $count = 0; foreach ($files as $file) { $isImage = @getimagesize($file); if ($isImage == false) { continue; } $count++; $file = str_replace("//", "/", $file); $fileName = basename($file); $thumbnail = '<img src="' . BASE_URL . 'index.php?cubicle=mediamanager&mmfile=' . $file . '" alt= ""/>'; $html .= <<<HTML \t\t\t\t<tr id="file{$count}"> \t\t\t\t\t<td class="thumbnail"> \t\t\t\t\t\t{$thumbnail} \t\t\t\t\t</td> \t\t\t\t\t<td> \t\t\t\t\t\t<span class="fileName">{$fileName}</span> \t\t\t\t\t\t<div class="controls floating"> \t\t\t\t\t\t\t<ul> \t\t\t\t\t\t\t\t<li class="misc"><a href="#" onclick="insertFile('image:{$fileName}', '{$target}'); return false;">Insert</a></li> \t\t\t\t\t\t\t\t<li class="misc"><a href="#" onclick="insertFile('thumb:{$fileName}', '{$target}'); return false;">Insert Thumbnail</a></li> \t\t\t\t\t\t\t\t<li class="delete"><a href="#" onclick="deleteFile('{$fileName}', 'file{$count}'); return false;">Delete</a></li> \t\t\t\t\t\t\t</ul> \t\t\t\t\t\t</div> \t\t\t\t\t</td> \t\t\t\t</tr> HTML; } $html .= '</table>'; if ($count > 0) { $manager->form->add_fieldset("Images", "images"); $manager->form->add_to_form($html); $manager->form->close_fieldset(); } // Now files $count = 0; $html = '<table>'; foreach ($files as $file) { $isImage = @getimagesize($file); if ($isImage == true) { continue; } $count++; $file = str_replace("//", "/", $file); $fileName = basename($file); $html .= <<<HTML \t\t\t\t<tr id="file{$count}"> \t\t\t\t\t<td> \t\t\t\t\t\t<span class="fileName">{$fileName}</span> \t\t\t\t\t\t<div class="controls floating"> \t\t\t\t\t\t\t<ul> \t\t\t\t\t\t\t\t<li class="misc"><a href="#" onclick="insertFile('file:{$fileName}', '{$target}'); return false;">Insert</a></li> \t\t\t\t\t\t\t\t<li class="misc"><a href="#" onclick="insertFile('file:YourText:{$fileName}', '{$target}'); return false;">Insert with custom text</a></li> \t\t\t\t\t\t\t\t<li class="delete"><a href="#" onclick="deleteFile('{$fileName}', 'file{$count}'); return false;">Delete</a></li> \t\t\t\t\t\t\t</ul> \t\t\t\t\t\t</div> \t\t\t\t\t</td> \t\t\t\t</tr> HTML; } $html .= '</table>'; if ($count > 0) { $manager->form->add_fieldset("Files", "files"); $manager->form->add_to_form($html); $manager->form->close_fieldset(); } }