public function testGetOwnerAndGroup() { $d = new Dir(__DIR__ . '/../tmp/'); $this->assertTrue(array_key_exists('name', $d->getOwner())); $this->assertTrue(array_key_exists('name', $d->getGroup())); $this->assertTrue(array_key_exists('name', $d->getUser())); $this->assertTrue($d->isDir()); $this->assertFalse($d->isFile()); $this->assertGreaterThan(1, count($d->getObjects())); }
/** * Load install any assets for the module * * @param string $d * @param string $moduleName * @param string $docRoot * @return void */ protected function loadAssets($d, $moduleName, $docRoot = null) { if (null === $docRoot) { $docRoot = $_SERVER['DOCUMENT_ROOT']; } clearstatcache(); if (null === $this->assets) { $this->assets = array('js' => PHP_EOL . ' <script type="text/javascript" src="' . BASE_PATH . CONTENT_PATH . '/assets/js/jax.3.2.0.min.js"></script>' . PHP_EOL . ' <script type="text/javascript" src="' . BASE_PATH . CONTENT_PATH . '/assets/js/jax.form.min.js"></script>' . PHP_EOL, 'css' => PHP_EOL); } $newModuleDir = $docRoot . BASE_PATH . CONTENT_PATH . '/assets/' . strtolower($moduleName); if (!file_exists($newModuleDir)) { mkdir($newModuleDir); chmod($newModuleDir, 0777); copy($docRoot . BASE_PATH . CONTENT_PATH . '/assets/index.html', $newModuleDir . '/index.html'); chmod($newModuleDir . '/index.html', 0777); } $assetDirs = array('css', 'css/fonts', 'styles', 'styles/fonts', 'style', 'style/fonts', 'js', 'scripts', 'script', 'scr', 'image', 'images', 'img', 'imgs', 'i18n'); // Check and install asset files foreach ($assetDirs as $assetDir) { if (file_exists($d . '/assets/' . $assetDir)) { $newDir = $docRoot . BASE_PATH . CONTENT_PATH . '/assets/' . strtolower($moduleName) . '/' . $assetDir; if (!file_exists($newDir)) { mkdir($newDir); chmod($newDir, 0777); copy($docRoot . BASE_PATH . CONTENT_PATH . '/assets/index.html', $newDir . '/index.html'); chmod($newDir . '/index.html', 0777); } $asDir = new Dir($d . '/assets/' . $assetDir, true, false, false); $asFiles = $asDir->getObjects(); foreach ($asFiles as $as) { if ($as->getExt() != 'html') { // If asset file doesn't exist, or has been modified, copy it over if (!file_exists($newDir . '/' . $as->getBasename()) || filemtime($newDir . '/' . $as->getBasename()) < filemtime($as->getFullPath())) { $as->copy($newDir . '/' . $as->getBasename(), true); $as->setPermissions(0777); } if ($as->getExt() == 'js') { $folder = null; if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR) !== false) { $folder = '/js/'; } else { if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'scripts' . DIRECTORY_SEPARATOR) !== false) { $folder = '/scripts/'; } else { if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'script/' . DIRECTORY_SEPARATOR) !== false) { $folder = '/script/'; } else { if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'scr/' . DIRECTORY_SEPARATOR) !== false) { $folder = '/scr/'; } } } } if (null !== $folder) { $this->assets['js'] .= ' <script type="text/javascript" src="' . BASE_PATH . CONTENT_PATH . '/assets/' . strtolower($moduleName) . $folder . $as->getBasename() . '"></script>' . PHP_EOL; } } else { if ($as->getExt() == 'css') { $folder = null; if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR) !== false) { $folder = '/css/'; } else { if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'styles' . DIRECTORY_SEPARATOR) !== false) { $folder = '/styles/'; } else { if (strpos($as->getFullPath(), DIRECTORY_SEPARATOR . 'style' . DIRECTORY_SEPARATOR) !== false) { $folder = '/style/'; } } } if (null !== $folder) { $this->assets['css'] .= ' <link type="text/css" rel="stylesheet" href="' . BASE_PATH . CONTENT_PATH . '/assets/' . strtolower($moduleName) . $folder . $as->getBasename() . '" />' . PHP_EOL; } } } } } } } }