if (empty($type) || $type != 'js' && $type != 'css') { errorMsg('Wrong reference type!'); } if (empty($module)) { errorMsg('Module name is not set!'); } if (!preg_match('/^[a-zA-Z][a-zA-Z0-9]{2,31}$/', $module)) { errorMsg('Module name is incorrect!'); } if (empty($filename)) { errorMsg('File name is not set!'); } if (!preg_match('~^[a-zA-Z0-9][-_.a-zA-Z0-9]*(?:/[a-zA-Z0-9][-_.a-zA-Z0-9]*)*\\.(?:js|css)$~i', $filename)) { errorMsg('File name is incorrect!'); } $theme_name = rad_themer::getCurrentTheme(); $cachedFile = $config['rootPath'] . 'cache' . DS . $type . DS . $theme_name . DS . $module . DS . $filename; $cachedPath = dirname($cachedFile); if (!recursive_mkdir($cachedPath, 0777)) { errorMsg('Can not create dir! Path: {$cachedPath}'); } if (!file_exists($cachedFile) || time() - filemtime($cachedFile) >= (int) $config['cache.power.time']) { $originalFile = rad_themer::getFilePath($theme_name, 'jscss', $module, $filename); if (!$originalFile) { errorMsg('File does not exist!'); } try { rad_jscss::copyToCache($originalFile, $cachedFile); } catch (Exception $e) { errorMsg("Could not copy file {$originalFile} to {$cachedFile}"); }
public static function getAliasByName(&$aliasname = '') { $result = self::getAliasRecord($aliasname); if (!$result->id || !$result->active) { rad_session::setVar('message', $aliasname); $aliasname = rad_config::getParam('alias.404'); $result = self::getAliasRecord(self::$alias); header(rad_config::getParam('header.404')); } if ($result->ali_admin && !rad_session::adminAccess()) { rad_session::setVar('message', $aliasname); rad_session::logout(); $aliasname = rad_config::getParam('alias.loginform'); $result = self::getAliasRecord(self::$alias); } if ($result->id) { $result->includes = array(); $themeId = $result->themeid ? $result->themeid : 0; $sqlParams = array('alias_1_id' => $result->id, 'theme_1_id' => $themeId); if ($result->group_id) { $sqlParams['alias_2_id'] = $result->group_id; $theme2Id = rad_dbpdo::query('SELECT theme_id FROM ' . RAD . 'themes WHERE theme_aliasid=? AND theme_folder=?', array($result->group_id, rad_themer::getCurrentTheme())); $theme2Id = !empty($theme2Id['theme_id']) ? (int) $theme2Id['theme_id'] : $themeId; $sqlParams['theme_2_id'] = $theme2Id; } $sql = 'SELECT inc_id,inc_name,inc_filename,controller,order_sort,rp_name,id_module,m_name,params_hash,ina.id as incinal_id,ina.params_presonal as params_presonal, ip.ip_params as original_params ' . 'FROM ' . RAD . 'includes_in_aliases ina ' . 'INNER JOIN ' . RAD . 'includes on include_id=inc_id ' . 'INNER JOIN ' . RAD . 'modules m on m.m_id=id_module ' . 'INNER JOIN ' . RAD . 'positions p on position_id=p.rp_id ' . 'LEFT JOIN ' . RAD . 'includes_params ip on ip.ip_incid=ina.include_id ' . 'WHERE alias_id=:alias_1_id' . ' AND ina.theme_id=:theme_1_id' . ($result->group_id ? ' UNION (SELECT inc_id,inc_name,inc_filename,controller,order_sort,rp_name,id_module,m_name,params_hash,ina.id as incinal_id,ina.params_presonal as params_presonal, ip.ip_params as original_params ' . 'FROM ' . RAD . 'includes_in_aliases ina ' . 'INNER JOIN ' . RAD . 'includes on include_id=inc_id ' . 'INNER JOIN ' . RAD . 'modules m on m.m_id=id_module ' . 'INNER JOIN ' . RAD . 'positions p on position_id=p.rp_id ' . 'LEFT JOIN ' . RAD . 'includes_params ip on ip.ip_incid=ina.include_id ' . 'WHERE alias_id=:alias_2_id' . ' AND ina.theme_id=:theme_2_id' . ')' : '') . ' ORDER BY order_sort, rp_name'; foreach (rad_dbpdo::queryAll($sql, $sqlParams) as $id) { $result->includes[] = new struct_core_include($id); } } else { $result = NULL; } return $result; }
private static function checkTheme() { if (empty(self::$themeName)) { self::$themeName = rad_themer::getCurrentTheme(); } return self::$themeName; }
public static function getLinkToImage($module, $file, $preset) { if (empty($preset)) { //TODO: maybe it'd be better to set "original" preset by default? throw new RuntimeException('"Preset" parameter is required in {url type="image"} TAG'); } $fnameOriginal = rad_themer::getFilePath(null, 'img', $module, $file); if (!$fnameOriginal) { throw new RuntimeException("File {$file} not found in module {$module} for {url type='image'}"); } $theme = rad_themer::getCurrentTheme(); $tail = "img/{$theme}/{$module}/{$preset}/{$file}"; $fnameCached = CACHEPATH . fixPath($tail); self::renewCache($fnameOriginal, $fnameCached, $preset); return SITE_URL . 'cache/' . $tail; }