public function merge() { $flavorId = $this->flavor_id; $id = $this->theme_id; $path = PHPFOX_DIR_SITE . 'themes/' . $id . '/'; $File = \Phpfox_File::instance(); $copy = []; $dirs = []; $files = $File->getAllFiles(PHPFOX_DIR . 'theme/default/'); foreach ($files as $file) { if (!in_array($File->extension($file), ['html', 'js', 'css', 'less'])) { continue; } $parts = pathinfo($file); $dirs[] = str_replace(PHPFOX_DIR . 'theme/default/', '', $parts['dirname']); $copy[] = $file; } foreach ($copy as $file) { $newFile = $path . str_replace(PHPFOX_DIR . 'theme/default/', '', $file); if (in_array($File->extension($file), ['less', 'css'])) { $newFile = str_replace('default.' . $File->extension($file), $flavorId . '.' . $File->extension($file), $newFile); } copy($file, $newFile); // p($file . ' -> ' . $newFile); if ($File->extension($file) == 'less') { $content = file_get_contents($newFile); $content = str_replace('../../../', '../../../../PF.Base/', $content); file_put_contents($newFile, $content); } } $Db = new \Core\Db(); $Cache = new \Core\Cache(); $Db->update(':setting', array('value_actual' => (int) \Phpfox::getParam('core.css_edit_id') + 1), 'var_name = \'css_edit_id\''); $Cache->del('setting'); // exit; return true; }
public function merge() { $flavorId = $this->flavor_folder; if (!$flavorId) { throw new \Exception('Cannot merge a theme without a flavor.'); } $id = $this->theme_id; //get folder name $Db = new \Core\Db(); $folderName = (string) $Db->select('folder')->from(':theme')->where('theme_id=' . (int) $id)->count(); if (empty($folderName)) { $folderName = $id; } $path = PHPFOX_DIR_SITE . 'themes/' . $folderName . '/'; $File = \Phpfox_File::instance(); $copy = []; $dirs = []; $themeFile = strtolower($folderName) == 'bootstrap' ? 'bootstrap' : 'default'; $files = $File->getAllFiles(PHPFOX_DIR . 'theme/' . $themeFile . '/'); foreach ($files as $file) { if (!in_array($File->extension($file), ['html', 'js', 'css', 'less'])) { continue; } $parts = pathinfo($file); $dirs[] = str_replace(PHPFOX_DIR . 'theme/default/', '', $parts['dirname']); $copy[] = $file; } foreach ($copy as $file) { $newFile = $path . str_replace(PHPFOX_DIR . 'theme/' . $themeFile . '/', '', $file); if (in_array($File->extension($file), ['less', 'css'])) { $newFile = str_replace('default.' . $File->extension($file), $flavorId . '.' . $File->extension($file), $newFile); } copy($file, $newFile); // p($file . ' -> ' . $newFile); if ($File->extension($file) == 'less') { $content = file_get_contents($newFile); $content = str_replace('../../../', '../../../../PF.Base/', $content); file_put_contents($newFile, $content); } } $Cache = new \Core\Cache(); $Db->update(':setting', array('value_actual' => (int) \Phpfox::getParam('core.css_edit_id') + 1), 'var_name = \'css_edit_id\''); $Cache->del('setting'); // exit; return true; }