Exemple #1
0
function xs_get_vars($theme)
{
    $arr1 = array();
    $arr2 = array();
    $vars_100 = array('head_stylesheet', 'body_background');
    $vars_50 = array('fontface');
    $vars_30 = array('style_name');
    $vars_25 = array('tr_class', 'th_class', 'td_class', 'span_class');
    $vars_6 = array('body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color', 'th_color', 'td_color', 'fontcolor');
    $vars_5 = array('img_size_poll', 'img_size_privmsg');
    $vars_4 = array('fontsize', 'theme_public');
    foreach ($theme as $var => $value) {
        if (!is_integer($var) && $var !== 'themes_id' && $var !== 'template_name') {
            // editable variable
            $len = 0;
            $sub = substr($var, 0, strlen($var) - 1);
            if (xs_in_array($var, $vars_100) || xs_in_array($sub, $vars_100)) {
                $len = 100;
            } elseif (xs_in_array($var, $vars_50) || xs_in_array($sub, $vars_50)) {
                $len = 50;
            } elseif (xs_in_array($var, $vars_30) || xs_in_array($sub, $vars_30)) {
                $len = 30;
            } elseif (xs_in_array($var, $vars_25) || xs_in_array($sub, $vars_25)) {
                $len = 25;
            } elseif (xs_in_array($var, $vars_6) || xs_in_array($sub, $vars_6)) {
                $len = 6;
            } elseif (xs_in_array($var, $vars_5) || xs_in_array($sub, $vars_5)) {
                $len = 5;
            } elseif (xs_in_array($var, $vrs_4) || xs_in_array($sub, $vars_4)) {
                $len = 4;
            } elseif (strpos($var, 'class')) {
                $len = 25;
            } elseif (strpos($var, 'color')) {
                $len = 6;
            }
            if ($len) {
                $item = array('var' => $var, 'len' => $len, 'color' => $len == 6 ? true : false, 'font' => $len == 25 ? true : false);
                if ($var === 'style_name' || $var === 'head_stylesheet' || $var === 'body_background') {
                    $arr1[$var] = $item;
                } else {
                    $arr2[$var] = $item;
                }
            }
        }
    }
    krsort($arr1);
    ksort($arr2);
    if (defined('XS_MODS_CATEGORY_HIERARCHY210')) {
        // force sort for the added fields
        $added = array('style_name' => array(), 'images_pack' => array('var' => $item['images_pack'], 'len' => 100, 'color' => false, 'font' => false), 'custom_tpls' => array('var' => $item['custom_tpls'], 'len' => 100, 'color' => false, 'font' => false), 'head_stylesheet' => array());
        $arr1 = array_merge($added, $arr1);
        // we need to add lang entries
        global $lang;
        $lang['xs_data_images_pack'] = $lang['Images_pack'];
        $lang['xs_data_images_pack_explain'] = $lang['Images_pack_explain'];
        $lang['xs_data_custom_tpls'] = $lang['Custom_tpls'];
        $lang['xs_data_custom_tpls_explain'] = $lang['Custom_tpls_explain'];
    }
    return array_merge($arr1, $arr2);
}
function xs_get_vars($theme)
{
    $arr1 = array();
    $arr2 = array();
    $vars_100 = array('head_stylesheet', 'body_background');
    $vars_50 = array('fontface');
    $vars_30 = array('style_name');
    $vars_25 = array('tr_class', 'th_class', 'td_class', 'span_class');
    $vars_6 = array('body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color', 'th_color', 'td_color', 'fontcolor');
    $vars_5 = array('img_size_poll', 'img_size_privmsg');
    $vars_4 = array('fontsize', 'theme_public');
    foreach ($theme as $var => $value) {
        if (!is_integer($var) && $var !== 'themes_id' && $var !== 'template_name') {
            // editable variable
            $len = 0;
            $sub = substr($var, 0, strlen($var) - 1);
            if (xs_in_array($var, $vars_100) || xs_in_array($sub, $vars_100)) {
                $len = 100;
            } elseif (xs_in_array($var, $vars_50) || xs_in_array($sub, $vars_50)) {
                $len = 50;
            } elseif (xs_in_array($var, $vars_30) || xs_in_array($sub, $vars_30)) {
                $len = 30;
            } elseif (xs_in_array($var, $vars_25) || xs_in_array($sub, $vars_25)) {
                $len = 25;
            } elseif (xs_in_array($var, $vars_6) || xs_in_array($sub, $vars_6)) {
                $len = 6;
            } elseif (xs_in_array($var, $vars_5) || xs_in_array($sub, $vars_5)) {
                $len = 5;
            } elseif (xs_in_array($var, $vrs_4) || xs_in_array($sub, $vars_4)) {
                $len = 4;
            } elseif (strpos($var, 'class')) {
                $len = 25;
            } elseif (strpos($var, 'color')) {
                $len = 6;
            }
            if ($len) {
                $item = array('var' => $var, 'len' => $len, 'color' => $len == 6 ? true : false, 'font' => $len == 25 ? true : false);
                if ($var === 'style_name' || $var === 'head_stylesheet' || $var === 'body_background') {
                    $arr1[$var] = $item;
                } else {
                    $arr2[$var] = $item;
                }
            }
        }
    }
    krsort($arr1);
    ksort($arr2);
    return array_merge($arr1, $arr2);
}
if ($list_only) {
    // show list of files. used for debug.
    $str = '<div align="left">';
    // main data
    $str .= $lang['xs_import_list_filename'] . $header['filename'] . '<br />';
    $str .= $lang['xs_import_list_template'] . $header['template'] . '<br />';
    $str .= $lang['xs_import_list_comment'] . $header['comment'] . '<br />';
    $str .= $lang['xs_import_list_styles'] . implode(', ', $header['styles']) . '<br />';
    ksort($list_data);
    $str .= '<br />' . str_replace('{NUM}', sizeof($list_data), $lang['xs_import_list_files']) . '<br />';
    $str .= '<table border="0" cellspacing="0" cellpadding="1" align="left">';
    foreach ($list_data as $var => $value) {
        $str .= '<tr><td>' . htmlspecialchars($value['filename']) . '</td><td>';
        if ($value['size'] > 0) {
            $ext = strtolower(substr($var, strlen($var) - 4));
            if (xs_in_array($ext, $text_types) || xs_in_array($ext, $img_types)) {
                $str .= '[<a href="' . append_sid('xs_import.' . PHP_EXT . '?list=1&import=' . urlencode($filename) . '&get_file=' . urlencode($var)) . '">' . $lang['xs_import_view_lc'] . '</a>] ';
            }
            $str .= '[<a href="' . append_sid('xs_import.' . PHP_EXT . '?list=1&import=' . urlencode($filename) . '&get_file=' . urlencode($var)) . '&get_content=1">' . $lang['xs_import_download_lc'] . '</a>] ';
        }
        $str .= str_replace('{NUM}', $value['size'], $lang['xs_import_file_size']) . '</td></tr>';
    }
    $str .= '</table>';
    $str .= '</div>';
    xs_message($lang['Information'], $str);
}
$str = '';
if (!$write_local) {
    //
    // Generate actions list
    //
Exemple #4
0
// directories
$res = @opendir('../' . $current_dir_full);
if (!$res) {
    xs_error(str_replace('{DIR}', $current_dir_full, $lang['xs_export_no_open_dir']) . '<br /><br />' . $return_url_root);
}
while (($file = readdir($res)) !== false) {
    if ($file !== '.' && $file !== '..') {
        $filename = '../' . ($current_dir_full ? $current_dir_full . '/' : '') . $file;
        if (is_dir($filename)) {
            $list_dirs[] = $file;
        } else {
            $pos = strrpos($file, '.');
            if ($pos !== false) {
                $ext = strtolower(substr($file, $pos));
                $ext1 = substr($ext, 1);
                if (!$filter_data['ext'] && xs_in_array($ext, $editable) || $ext1 === $filter_data['ext']) {
                    // check filter
                    if ($filter_data['data']) {
                        $content = @implode('', @file($filename));
                        if (strpos($content, $filter_data['data']) !== false) {
                            $list_files_editable[] = $file;
                        }
                    } else {
                        $list_files_editable[] = $file;
                    }
                } else {
                    $list_files[] = $file;
                }
            }
        }
    }
Exemple #5
0
     $match = XS_TPL_PREFIX . $clear . XS_SEPARATOR;
 }
 $match_len = strlen($match);
 $style_len = strlen(STYLE_EXTENSION);
 $backup_len = strlen(XS_BACKUP_EXT);
 $dir = $template->cachedir;
 $res = @opendir($dir);
 if (!$res) {
     $data = $lang['xs_cache_nowrite'];
 } else {
     $num = 0;
     $num_error = 0;
     while (($file = readdir($res)) !== false) {
         $len = strlen($file);
         // delete only files that match pattern, that aren't in exclusion list and that aren't downloaded styles.
         if (substr($file, 0, $match_len) === $match && !xs_in_array($file, $skip_files)) {
             if (substr($file, $len - $style_len) !== STYLE_EXTENSION && substr($file, $len - $backup_len) !== XS_BACKUP_EXT) {
                 $res2 = @unlink($dir . $file);
                 if ($res2) {
                     $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_deleted']) . "<br />\n";
                     $num++;
                 } elseif (@is_file($dir . $file)) {
                     $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_nodelete']) . "<br />\n";
                     $num_error++;
                 }
             }
         }
     }
     closedir($res);
     if (!$num && !$num_error) {
         if (!empty($clear)) {