Skip to content

Instantly share code, notes, and snippets.

@pelagisk
Created August 8, 2012 20:39
Show Gist options
  • Select an option

  • Save pelagisk/3298508 to your computer and use it in GitHub Desktop.

Select an option

Save pelagisk/3298508 to your computer and use it in GitHub Desktop.
Exempel 2 Adminstrationsmeny
<?php
/* lägger till inställningar */
function theme_admin_init() {
register_setting('exempel_options', 'exempel_options', 'exempel_options_validate');
add_settings_section('exempel_main', 'Exempelinställningar', 'exempel_section_text', 'exempel');
add_settings_field('exempelfarg', 'Välj en färg', 'theme_setting_exempelfarg', 'exempel', 'exempel_main');
}
/* ser till att funktionen theme_admin_init() körs i rätt sammanhang */
add_action('admin_init', 'theme_admin_init');
/* funktionen exempel_section_text() visar en förklaring av menyn */
function exempel_section_text() {
?>
<p>Förklaring av menyn placeras här!</p>
<?php
}
/* funktionen theme_setting_exempelfarg */
function theme_setting_exempelfarg() {
$options = get_option('exempel_options');
?>
<input id="theme_exempelfarg" name="theme_options[exempelfarg]" type="text" value="<?php echo $options['exempelfarg']; ?>" />
<?php
}
/* funktion för att bekräfta att koden som användaren har matat in är säker (som ett skydd mot angripare som matar in kod i textfältet) */
function exempel_options_validate($input) {
$newinput['exempelfarg'] = trim($input['exempelfarg']);
/* en (fruktansvärd!) regular expression som matchar korrekta färgangivelser. Om strängen som användaren matar in INTE passar, kastas strängen och alternativet sätts till en tom sträng ('') */
$color_regexp = '/^#(?:(?:[a-f\d]{3}){1,2})|AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGray|DarkGrey|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|Darkorange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkSlateGrey|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DimGrey|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gray|Grey|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGray|LightGrey|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSlateGrey|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|SlateGrey|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen$/i';
if(!preg_match($color_regexp, $newinput['exempelfarg'])) {
$newinput['exempelfarg'] = '';
}
return $newinput;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment