function testSet() { // first we'll check legal settings $legalVals = array('autoLink' => array(true, false), 'cacheAge' => array(-1, 0, 1, 200, 100000000), 'failureTag' => array(null, '', 'pre', 'table', 'div'), 'format' => array('html', 'html-full', 'html-inline', 'latex', null, 'none'), 'htmlStrict' => array(true, false), 'includeJavascript' => array(true, false), 'includeJquery' => array(true, false), 'lineNumbers' => array(true, false), 'startLine' => array(1, 2, 3, 100, 10000, 9999999), 'maxHeight' => array(-1, 0, 1, 2, 3, 100, '100', '200px', '250%'), 'relativeRoot' => array(null, '', 'xyz', '/path/to/somewhere/'), 'theme' => Luminous::themes(), 'wrapWidth' => array(-1, 0, 2, 3, 100, 10000000, 999999999), 'highlightLines' => array(array(0, 1, 2))); foreach ($legalVals as $k => $vs) { foreach ($vs as $v) { assertSet($k, $v); } } // now the illegal ones should throw exceptions $illegalVals = array('autoLink' => array(1, 0, 'yes', 'no', null), 'cacheAge' => array(true, false, 1.1, 'all year', null), 'failureTag' => array(true, false, array()), 'format' => array('someformatter', '', true, false, 1, 2, 3), 'htmlStrict' => array(1, 0, 'yes', 'no', null, array()), 'includeJavascript' => array(1, 0, 'yes', 'no', null, array()), 'includeJquery' => array(1, 0, 'yes', 'no', null, array()), 'lineNumbers' => array(1, 0, 'yes', 'no', null, array()), 'startLine' => array(0, -1, true, false, null, array()), 'maxHeight' => array(null, true, false, array()), 'relativeRoot' => array(1, 0, true, false, array()), 'theme' => array('mytheme', null, true, false, 1, array()), 'wrapWidth' => array('wide', 1.5, true, false, null, array()), 'highlightLines' => array(1, 2, 3)); foreach ($illegalVals as $k => $vs) { foreach ($vs as $v) { assertSetException($k, $v); } } // finally, we're going to use the old fashioned array indices and check that // they still correspond to the new keys. The old fashioned way used dashes // to separate words in the array. For impl. reasons we had to switch these // to underscores, but they should be aliases of each other as far as the // API is concerned. // FIXME: The conversion needs to be adjusted for new camelCaps option names foreach ($legalVals as $k => $vs) { foreach ($vs as $v) { $kOld = str_replace('_', '-', $k); Luminous::set($k, $v); assert(Luminous::setting($kOld) === $v); Luminous::set($kOld, $v); assert(Luminous::setting($k) === $v); } } }
<title>Setting options</title> <?php echo Luminous::headHtml(); ?> </head> <body> <p> There are two ways you can set options: globally via the set() method, and per-call in the highlight() method. Let's disable auto-linking and make all highlights begin at line 17 via the global call. <?php // NOTE: this is equivalent to calling luminous::set(array('auto-link' => false, 'start-line' => 17)); Luminous::set('autoLink', false); Luminous::set('startLine', 17); echo Luminous::highlight($language, $code); ?> <p> Now let's override both of those for the duration of the next call <?php echo Luminous::highlight($language, $code, array('autoLink' => true, 'startLine' => 1)); ?> <p> When we next call highlight(), the options will be back to their global states: <?php echo Luminous::highlight($language, $code); ?> <p> We can get the current value for an option by calling setting(): auto-link is: <?php echo var_dump(Luminous::setting('autoLink')); ?> . </body> </html>
return false; }); }); </script> </head> <body> <p> <form action='themeswitcher.php'> Change Theme: <select name='theme_switcher' id='theme_switcher'> <?php // Build the theme switcher by getting a list of legal themes from Luminous. // The luminous_get_html_head() function by default outputs the theme // in LUMINOUS_THEME. This can be overridden by the first argument, but as we // didn't, that's what we need to check against to determine the default // theme for the selector. However, it might not have the .css suffix. $defaultTheme = Luminous::setting('theme'); if (!preg_match('/\\.css$/', $defaultTheme)) { $defaultTheme .= '.css'; } foreach (Luminous::themes() as $theme) { ?> <option id='<?php echo $theme; ?> ' <?php echo $theme == $defaultTheme ? ' selected' : ''; ?> > <?php echo $theme;