Esempio n. 1
1
/**
 * Load style ini contents
 *
 * Loads and merges style.ini files from template and config and prepares
 * the stylesheet modes
 *
 * @author Andreas Gohr <*****@*****.**>
 *
 * @param string $tpl the used template
 * @param bool   $preview load preview replacements
 * @return array with keys 'stylesheets' and 'replacements'
 */
function css_styleini($tpl, $preview = false)
{
    global $conf;
    $stylesheets = array();
    // mode, file => base
    $replacements = array();
    // placeholder => value
    // load template's style.ini
    $incbase = tpl_incdir($tpl);
    $webbase = tpl_basedir($tpl);
    $ini = $incbase . 'style.ini';
    if (file_exists($ini)) {
        $data = parse_ini_file($ini, true);
        // stylesheets
        if (is_array($data['stylesheets'])) {
            foreach ($data['stylesheets'] as $file => $mode) {
                $stylesheets[$mode][$incbase . $file] = $webbase;
            }
        }
        // replacements
        if (is_array($data['replacements'])) {
            $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase));
        }
    }
    // load configs's style.ini
    $webbase = DOKU_BASE;
    $ini = DOKU_CONF . "tpl/{$tpl}/style.ini";
    $incbase = dirname($ini) . '/';
    if (file_exists($ini)) {
        $data = parse_ini_file($ini, true);
        // stylesheets
        if (isset($data['stylesheets']) && is_array($data['stylesheets'])) {
            foreach ($data['stylesheets'] as $file => $mode) {
                $stylesheets[$mode][$incbase . $file] = $webbase;
            }
        }
        // replacements
        if (isset($data['replacements']) && is_array($data['replacements'])) {
            $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase));
        }
    }
    // allow replacement overwrites in preview mode
    if ($preview) {
        $webbase = DOKU_BASE;
        $ini = $conf['cachedir'] . '/preview.ini';
        if (file_exists($ini)) {
            $data = parse_ini_file($ini, true);
            // replacements
            if (is_array($data['replacements'])) {
                $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase));
            }
        }
    }
    return array('stylesheets' => $stylesheets, 'replacements' => $replacements);
}
Esempio n. 2
0
/**
 * Load style ini contents
 *
 * Loads and merges style.ini files from template and config and prepares
 * the stylesheet modes
 *
 * @author Andreas Gohr <*****@*****.**>
 * @param string $tpl the used template
 * @return array with keys 'stylesheets' and 'replacements'
 */
function css_styleini($tpl)
{
    $stylesheets = array();
    // mode, file => base
    $replacements = array();
    // placeholder => value
    // load template's style.ini
    $incbase = tpl_incdir($tpl);
    $webbase = tpl_basedir($tpl);
    $ini = $incbase . 'style.ini';
    if (file_exists($ini)) {
        $data = parse_ini_file($ini, true);
        // stylesheets
        if (is_array($data['stylesheets'])) {
            foreach ($data['stylesheets'] as $file => $mode) {
                $stylesheets[$mode][$incbase . $file] = $webbase;
            }
        }
        // replacements
        if (is_array($data['replacements'])) {
            $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase));
        }
    }
    // load template's style.local.ini
    // @deprecated 2013-08-03
    $ini = $incbase . 'style.local.ini';
    if (file_exists($ini)) {
        $data = parse_ini_file($ini, true);
        // stylesheets
        if (is_array($data['stylesheets'])) {
            foreach ($data['stylesheets'] as $file => $mode) {
                $stylesheets[$mode][$incbase . $file] = $webbase;
            }
        }
        // replacements
        if (is_array($data['replacements'])) {
            $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase));
        }
    }
    // load configs's style.ini
    $webbase = DOKU_BASE;
    $ini = DOKU_CONF . "tpl/{$tpl}/style.ini";
    $incbase = dirname($ini) . '/';
    if (file_exists($ini)) {
        $data = parse_ini_file($ini, true);
        // stylesheets
        if (is_array($data['stylesheets'])) {
            foreach ($data['stylesheets'] as $file => $mode) {
                $stylesheets[$mode][$incbase . $file] = $webbase;
            }
        }
        // replacements
        if (is_array($data['replacements'])) {
            $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase));
        }
    }
    return array('stylesheets' => $stylesheets, 'replacements' => $replacements);
}