Пример #1
0
function regenere_css($css_file, $css)
{
    global $auto_css;
    $values = array();
    $_debut = chrono();
    // get content of master css file (if specified, $css_file!='')
    // or use the content of $css to generate the merged file
    if ($css_file != '') {
        $css = file_get_contents($auto_css['path_to_css_file'] . $css_file);
    } else {
        $css_file = $auto_css['merged_css_filename'];
    }
    // burn all non auto_css comments
    $css = preg_replace('#\\/\\*[^*=]+\\*/#', ' ', $css);
    // extract from comments
    preg_match_all('#\\/\\*([^*]+\\=[^*]+)\\*/#', $css, $init);
    $variables = implode($init[0], " \n ");
    // process values
    $nb = preg_match_all('#([^\\:\\t =;"\']+)[ +]?=[ +]?\\"(.+)(?=\\")#', $variables, $vars);
    if (count($vars[1]) > 0) {
        $values = array_combine($vars[1], $vars[2]);
    }
    // process functions
    $_ = '[ +]?';
    $reg_nb = '([0-9]+)';
    $reg_colORvar = '(\\#[a-fA-F0-9]+|[^\\: =;"\']+)';
    $reg_path = '("?[a-zA-Z0-9./_-]+"?)';
    $reg_var = '([^\\: =;"\'\\<\\>\\)]+)';
    $reg_darkenlight = '(lighten|darken)\\(' . $reg_colORvar . $_ . ',' . $_ . $reg_nb;
    $reg_reverse = '(reverse)\\(' . $reg_colORvar;
    $reg_dimensions = '(dimensions)\\(' . $reg_path;
    $regex = '#' . $reg_var . $_ . '=' . $_ . '(?:(?:' . $reg_darkenlight . ')|(?:' . $reg_reverse . ')|(?:' . $reg_dimensions . '))(?=\\))#';
    $nb = preg_match_all($regex, $variables, $vars);
    if ($nb > 0) {
        for ($i = 0; $i < count($vars[1]); $i++) {
            // every variables in css
            if ($vars[2][$i] != '') {
                // lighten/darken
                $function = $vars[2][$i];
                $firstarg = $vars[3][$i];
                $secondarg = $vars[4][$i];
                if ($firstarg[0] == '#') {
                    $values[$vars[1][$i]] = $function($firstarg, $secondarg);
                } else {
                    $values[$vars[1][$i]] = $function($values[$firstarg], $secondarg);
                }
                // function with variable
            }
            if ($vars[5][$i] != '') {
                // reverse
                $function = $vars[5][$i];
                $firstarg = $vars[6][$i];
                if ($firstarg[0] == '#') {
                    $values[$vars[1][$i]] = $function($firstarg);
                } else {
                    $values[$vars[1][$i]] = $function($values[$firstarg]);
                }
                // function with variable
            }
            if ($vars[7][$i] != '') {
                // dimensions
                $function = $vars[7][$i];
                $firstarg = $vars[8][$i];
                if ($firstarg[0] == '"') {
                    $values[$vars[1][$i]] = $function($auto_css['path_to_css_file'] . str_replace('"', '', $firstarg));
                } else {
                    $values[$vars[1][$i]] = $function($auto_css['path_to_css_file'] . $values[$firstarg]);
                }
                // width variable
            }
        }
    }
    // remove parameters comments
    $css = preg_replace('#\\/\\*[^*]+\\=[^*]+\\*/#', ' ', $css);
    // and replaces all the keys with the values
    $var = array_keys($values);
    $var = array_map('trim', $var);
    $rempl = array_values($values);
    //Here, auto_css applies your string replacement rules;
    if ($auto_css['use_values_as_regex_rules']) {
        // values are regex rules
        $css = preg_replace($var, $rempl, $css);
    } else {
        // values are only a simple string replacement
        while ($css != str_replace($var, $rempl, $css)) {
            $css = str_replace($var, $rempl, $css);
        }
    }
    // here, it applies its own replacement rules
    if ($auto_css['allow_auto_css_regex_replacement']) {
        $css = auto_parse($css);
    }
    if (!$auto_css['reset_css_added']) {
        // adds reset css only to first file
        $css = addreset() . $css;
        $auto_css['reset_css_added'] = true;
    }
    if ($auto_css['minifie'] == true) {
        $css = minify_css($css);
    }
    $t = round(chrono() - $_debut, 6);
    $css = '/*Generated in ' . $t . 's with auto_css v' . $auto_css['version'] . '*/' . "\n" . $css;
    // save computed css
    file_put_contents($auto_css['path_to_css_file'] . 'computed_' . $css_file, $css);
    // coordinate all the dates
    $date_css = time();
    touch($auto_css['path_to_css_file'] . 'computed_' . $css_file, $date_css);
    touch(me(), $date_css);
}
Пример #2
0
function plug_search($d, $n, $opt = '', $res = '')
{
    list($b, $o, $t, $ph) = split('-', $opt);
    chrono();
    $rech = good_rech($d);
    $_GET['search'] = $rech;
    list($cat, $tag) = ajxr($res);
    $rech = str_replace(array("’", '«', '»', "&nbsp;"), array("'", '"', '"', ' '), trim($rech));
    if (!$n) {
        $n = $_SESSION['nbj'];
    }
    $_GET['dig'] = $n;
    $_GET['cat'] = $cat;
    $_GET['tag'] = $tag;
    $_GET['bool'] = $b;
    $_GET['titles'] = $t;
    //$_GET['pho']=$ph;
    $vrf = normalize($rech . $n . $b . $o . $t . $ph . $res);
    if ($rech == 'last') {
        $id = lastid('qda');
        $load[$id] = 1;
    } elseif (isset($_SESSION['recache'][$vrf])) {
        $load = $_SESSION['recache'][$vrf];
        $cac = $vrf;
    } elseif ($d && is_numeric($d) && $d < lastid('qda')) {
        $load[$d] = 1;
    } elseif (strpos($rech, ';') && strpos($rech, ':')) {
        list($rch, $cat, $tag, $utg) = rech_script($rech);
    } elseif (strpos($rech, '=')) {
        $load = make_list_arts($rech);
    } else {
        $load = rech($rech, $n);
    }
    if ($load && !is_array($load)) {
        $load = '';
    }
    if (!$load && ($cat or $tag or $utg)) {
        $load = rech_catag($cat, $tag, $utg, $n);
    }
    $_SESSION['load'] = $load;
    $_SESSION['recache'][$vrf] = $load;
    $ret = rech_titles($rech, $n, $opt, $cac, $cat, $tag, $tag2);
    $_SESSION['page'] = 1;
    $_SESSION['popm'] = chrono('search');
    if ($load[0]) {
        unset($load[0]);
    }
    if ($load[1]) {
        unset($load[1]);
    }
    if ($load) {
        $ret .= scroll($load, divd($vrf, output_pages($load, '', '')), 2, '', 400);
    }
    return $ret;
}
Пример #3
0
function algrthm_build($p, $o)
{
    chrono('');
    $re = algrthm_call($p, $o);
    $r = json_decode($re, true);
    //p($r);
    if ($r['error']) {
        return $r['error'];
    }
    //echo $r['duration'];
    echo chrono('calgo');
    //p($r['result']);
    $ret = make_table(algrthm_res($r['result']));
    return $ret;
}
Пример #4
0
        echo $shared_folders . $back_link . $folderlist . $filelist;
        if (!empty($size_folder)) {
            echo '</tbody><tfoot><tr>' . $column . '<td class="table_image"></td><td class="table_filename" style="text-align:right">Total:</td><td id="folder_size">' . $size_folder . '</td><td></td></tr></tfoot>';
        }
        echo '</table>';
        echo $form_footer;
    } elseif ($layout == 'icon' && !isset($_GET['async'])) {
        # Icon layout
        echo '<div id="async_load">';
        echo $shared_folders . $folderlist . $filelist;
        echo '</div>';
        if (!empty($size_folder)) {
            echo '<div id="folder_size">' . e('Foldersize', false) . ': ' . $size_folder . '</div>';
        }
    } else {
        # Ajax load more => content only
        echo $shared_folders . $back_link . $folderlist . $filelist;
    }
    # «Load more» button
    if ($remain > 0 && !isset($_GET['async'])) {
        if ($remain > $_SESSION['max_files_per_page']) {
            $remain = $_SESSION['max_files_per_page'];
        }
        $from++;
        echo '<a id="more_button" class="btn" href="index.php?p=admin&from=' . $from . '&token=' . TOKEN . '" onclick="loadMore(this);return false;" data-from="' . $from . '" data-url="index.php?async&token=' . TOKEN . '" data-max="' . $max_pages . '">' . e('Load', false) . ' ' . $remain . ' ' . e('more', false) . '</a>';
    }
} else {
    echo '<table>' . $shared_folders . '</table><div id="nofile">' . e('No file or folder', false) . '</div>';
}
chrono('etape2 listfiles.php ');
Пример #5
0
function plug_ping($p, $o)
{
    chrono();
    $ret = ping_j($p, $o);
    return $ret;
}