예제 #1
0
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}");
    }
예제 #2
0
 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;
 }
예제 #3
0
 private static function checkTheme()
 {
     if (empty(self::$themeName)) {
         self::$themeName = rad_themer::getCurrentTheme();
     }
     return self::$themeName;
 }
예제 #4
0
 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;
 }