function optionsframework_medialibrary_uploader($_id, $_value, $_mode = 'full', $_desc = '', $_postid = 0, $_name = '')
 {
     $optionsframework_settings = get_option('optionsframework');
     // Gets the unique option id
     $option_name = $optionsframework_settings['id'];
     $output = '';
     $id = '';
     $class = '';
     $int = '';
     $value = '';
     $name = '';
     $id = strip_tags(strtolower($_id));
     // Change for each field, using a "silent" post. If no post is present, one will be created.
     $int = optionsframework_mlu_get_silentpost($id);
     // If a value is passed and we don't have a stored value, use the value that's passed through.
     if ($_value != '' && $value == '') {
         $value = $_value;
     }
     if ($_name != '') {
         $name = $option_name . '[' . $id . '][' . $_name . ']';
     } else {
         $name = $option_name . '[' . $id . ']';
     }
     if ($value) {
         $class = ' has-file';
     }
     $output .= '<input id="' . $id . '" class="upload' . $class . '" type="text" name="' . $name . '" value="' . $value . '" />' . "\n";
     if (function_exists('wp_enqueue_media')) {
         if ($value == '') {
             $output .= '<input id="upload-' . $id . '" class="upload-button button" type="button" value="' . __('Upload', 'textdomain') . '" />' . "\n";
         } else {
             $output .= '<input id="remove-' . $id . '" class="remove-file button" type="button" value="' . __('Remove', 'textdomain') . '" />' . "\n";
         }
     } else {
         $output .= '<p><i>' . __('Upgrade your version of WordPress for full media support.', 'textdomain') . '</i></p>';
     }
     if ($_desc != '') {
         $output .= '<span class="of_metabox_desc">' . $_desc . '</span>' . "\n";
     }
     $output .= '<div class="screenshot" id="' . $id . '_image">' . "\n";
     if ($value != '') {
         //$remove = '<a href="javascript:(void);" class="mlu_remove button">Remove</a>';
         $image = preg_match('/(^.*\\.jpg|jpeg|png|gif|ico*)/i', $value);
         if ($image) {
             $output .= '<img src="' . $value . '" alt="" />';
         } else {
             $parts = explode("/", $value);
             for ($i = 0; $i < sizeof($parts); ++$i) {
                 $title = $parts[$i];
             }
             // No output preview if it's not an image.
             $output .= '';
             // Standard generic output if it's not an image.
             $title = theme_locals("view_file");
             $output .= '<div class="no_image"><span class="file_link"><a href="' . $value . '" target="_blank" rel="external">' . $title . '</a></span>' . $remove . '</div>';
         }
     }
     $output .= '</div>' . "\n";
     return $output;
 }
 function optionsframework_medialibrary_uploader($_id, $_value, $_mode = 'full', $_desc = '', $_postid = 0, $_name = '')
 {
     $optionsframework_settings = get_option('optionsframework');
     // Obtiene un id único de opciones
     $option_name = $optionsframework_settings['id'];
     $output = '';
     $id = '';
     $class = '';
     $int = '';
     $value = '';
     $name = '';
     $id = strip_tags(strtolower($_id));
     // Cambia para cada campo, usando una entrada "silenciosa". Si no hay una entrada presente, una será creada.
     $int = optionsframework_mlu_get_silentpost($id);
     // Si un valor el proporcionado y no tenemos un valor guardado, usa el valor que ha sido proporcionado.
     if ($_value != '' && $value == '') {
         $value = $_value;
     }
     if ($_name != '') {
         $name = $option_name . '[' . $id . '][' . $_name . ']';
     } else {
         $name = $option_name . '[' . $id . ']';
     }
     if ($value) {
         $class = ' has-file';
     }
     $output .= '<input id="' . $id . '" class="upload' . $class . '" type="text" name="' . $name . '" value="' . $value . '" />' . "\n";
     $output .= '<input id="upload_' . $id . '" class="upload_button button" type="button" value="' . __('Subir', 'optionsframework') . '" rel="' . $int . '" />' . "\n";
     if ($_desc != '') {
         $output .= '<span class="of_metabox_desc">' . $_desc . '</span>' . "\n";
     }
     $output .= '<div class="screenshot" id="' . $id . '_image">' . "\n";
     if ($value != '') {
         $remove = '<a href="javascript:(void);" class="mlu_remove button">Eliminar</a>';
         $image = preg_match('/(^.*\\.jpg|jpeg|png|gif|ico*)/i', $value);
         if ($image) {
             $output .= '<img src="' . $value . '" alt="" />' . $remove . '';
         } else {
             $parts = explode("/", $value);
             for ($i = 0; $i < sizeof($parts); ++$i) {
                 $title = $parts[$i];
             }
             // No hay previsualización si no existe una imagen.
             $output .= '';
             // Salida estándar si no es una imagen.
             $title = __('Ver archivo', 'optionsframework');
             $output .= '<div class="no_image"><span class="file_link"><a href="' . $value . '" target="_blank" rel="external">' . $title . '</a></span>' . $remove . '</div>';
         }
     }
     $output .= '</div>' . "\n";
     return $output;
 }
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     $smof_data = of_get_options();
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($smof_data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($smof_data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($smof_data[$value['id']], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = stripslashes($smof_data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 $checked = isset($smof_data[$value['id']]) ? checked($smof_data[$value['id']], $option, false) : '';
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($smof_data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($smof_data[$value['id']])) {
                     $smof_data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 isset($smof_data[$value['id']]) ? $multi_stored = $smof_data[$value['id']] : ($multi_stored = "");
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $smof_data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $smof_data[$value['id']] . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 101; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array("default", "Arial", "Georgia", "Courier New", "Helvetica", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Abel", "Abril Fatface", "Aclonica", "Acme", "Actor", "Adamina", "Advent Pro", "Aguafina Script", "Aladin", "Aldrich", "Alegreya", "Alegreya SC", "Alex Brush", "Alfa Slab One", "Alice", "Alike", "Alike Angular", "Allan", "Allerta", "Allerta Stencil", "Allura", "Almendra", "Almendra SC", "Amarante", "Amaranth", "Amatic SC", "Amethysta", "Andada", "Andika", "Angkor", "Annie Use Your Telescope", "Anonymous Pro", "Antic", "Antic Didone", "Antic Slab", "Anton", "Arapey", "Arbutus", "Architects Daughter", "Arimo", "Arizonia", "Armata", "Artifika", "Arvo", "Asap", "Asset", "Astloch", "Asul", "Atomic Age", "Aubrey", "Audiowide", "Average", "Averia Gruesa Libre", "Averia Libre", "Averia Sans Libre", "Averia Serif Libre", "Bad Script", "Balthazar", "Bangers", "Basic", "Battambang", "Baumans", "Bayon", "Belgrano", "Belleza", "Bentham", "Berkshire Swash", "Bevan", "Bigshot One", "Bilbo", "Bilbo Swash Caps", "Bitter", "Black Ops One", "Bokor", "Bonbon", "Boogaloo", "Bowlby One", "Bowlby One SC", "Brawler", "Bree Serif", "Bubblegum Sans", "Buda", "Buenard", "Butcherman", "Butterfly Kids", "Cabin", "Cabin Condensed", "Cabin Sketch", "Caesar Dressing", "Cagliostro", "Calligraffitti", "Cambo", "Candal", "Cantarell", "Cantata One", "Cantora One", "Capriola", "Cardo", "Carme", "Carter One", "Caudex", "Cedarville Cursive", "Ceviche One", "Changa One", "Chango", "Chau Philomene One", "Chelsea Market", "Chenla", "Cherry Cream Soda", "Chewy", "Chicle", "Chivo", "Coda", "Coda Caption", "Codystar", "Comfortaa", "Coming Soon", "Concert One", "Condiment", "Content", "Contrail One", "Convergence", "Cookie", "Copse", "Corben", "Courgette", "Cousine", "Coustard", "Covered By Your Grace", "Crafty Girls", "Creepster", "Crete Round", "Crimson Text", "Crushed", "Cuprum", "Cutive", "Damion", "Dancing Script", "Dangrek", "Dawning of a New Day", "Days One", "Delius", "Delius Swash Caps", "Delius Unicase", "Della Respira", "Devonshire", "Didact Gothic", "Diplomata", "Diplomata SC", "Doppio One", "Dorsa", "Dosis", "Dr Sugiyama", "Droid Sans", "Droid Sans Mono", "Droid Serif", "Duru Sans", "Dynalight", "Eagle Lake", "Eater", "EB Garamond", "Economica", "Electrolize", "Emblema One", "Emilys Candy", "Engagement", "Enriqueta", "Erica One", "Esteban", "Euphoria Script", "Ewert", "Exo", "Expletus Sans", "Fanwood Text", "Fascinate", "Fascinate Inline", "Fasthand", "Federant", "Federo", "Felipa", "Fjord One", "Flamenco", "Flavors", "Fondamento", "Fontdiner Swanky", "Forum", "Francois One", "Fredericka the Great", "Fredoka One", "Freehand", "Fresca", "Frijole", "Fugaz One", "Galdeano", "Galindo", "Gentium Basic", "Gentium Book Basic", "Geo", "Geostar", "Geostar Fill", "Germania One", "GFS Didot", "GFS Neohellenic", "Give You Glory", "Glass Antiqua", "Glegoo", "Gloria Hallelujah", "Goblin One", "Gochi Hand", "Gorditas", "Goudy Bookletter 1911", "Graduate", "Gravitas One", "Great Vibes", "Gruppo", "Gudea", "Habibi", "Hammersmith One", "Handlee", "Hanuman", "Happy Monkey", "Headland One", "Henny Penny", "Herr Von Muellerhoff", "Holtwood One SC", "Homemade Apple", "Homenaje", "Iceberg", "Iceland", "IM Fell Double Pica", "IM Fell Double Pica SC", "IM Fell DW Pica", "IM Fell DW Pica SC", "IM Fell English", "IM Fell English SC", "IM Fell French Canon", "IM Fell French Canon SC", "IM Fell Great Primer", "IM Fell Great Primer SC", "Imprima", "Inconsolata", "Inder", "Indie Flower", "Inika", "Irish Grover", "Istok Web", "Italiana", "Italianno", "Jim Nightshade", "Jockey One", "Jolly Lodger", "Josefin Sans", "Josefin Slab", "Judson", "Julee", "Junge", "Jura", "Just Another Hand", "Just Me Again Down Here", "Kameron", "Karla", "Kaushan Script", "Kelly Slab", "Kenia", "Khmer", "Knewave", "Kotta One", "Koulen", "Kranky", "Kreon", "Kristi", "Krona One", "La Belle Aurore", "Lancelot", "Lato", "League Script", "Leckerli One", "Ledger", "Lekton", "Lemon", "Life Savers", "Lilita One", "Limelight", "Linden Hill", "Lobster", "Lobster Two", "Londrina Outline", "Londrina Shadow", "Londrina Sketch", "Londrina Solid", "Lora", "Love Ya Like A Sister", "Loved by the King", "Lovers Quarrel", "Luckiest Guy", "Lusitana", "Lustria", "Macondo", "Macondo Swash Caps", "Magra", "Maiden Orange", "Mako", "Marck Script", "Marko One", "Marmelad", "Marvel", "Mate", "Mate SC", "Maven Pro", "McLaren", "Meddon", "MedievalSharp", "Medula One", "Megrim", "Meie Script", "Merienda One", "Merriweather", "Metal", "Metal Mania", "Metamorphous", "Metrophobic", "Michroma", "Miltonian", "Miltonian Tattoo", "Miniver", "Miss Fajardose", "Modern Antiqua", "Molengo", "Monofett", "Monoton", "Monsieur La Doulaise", "Montaga", "Montez", "Montserrat", "Moul", "Moulpali", "Mountains of Christmas", "Mr Bedfort", "Mr Dafoe", "Mr De Haviland", "Mrs Saint Delafield", "Mrs Sheppards", "Muli", "Mystery Quest", "Neucha", "Neuton", "News Cycle", "Niconne", "Nixie One", "Nobile", "Nokora", "Norican", "Nosifer", "Nothing You Could Do", "Noticia Text", "Nova Cut", "Nova Flat", "Nova Mono", "Nova Oval", "Nova Round", "Nova Script", "Nova Slim", "Nova Square", "Numans", "Nunito", "Odor Mean Chey", "Old Standard TT", "Oldenburg", "Oleo Script", "Open Sans", "Open Sans Condensed", "Oranienbaum", "Orbitron", "Oregano", "Original Surfer", "Oswald", "Over the Rainbow", "Overlock", "Overlock SC", "Ovo", "Oxygen", "Pacifico", "Parisienne", "Passero One", "Passion One", "Patrick Hand", "Patua One", "Paytone One", "Peralta", "Permanent Marker", "Petrona", "Philosopher", "Piedra", "Pinyon Script", "Plaster", "Play", "Playball", "Playfair Display", "Podkova", "Poiret One", "Poller One", "Poly", "Pompiere", "Pontano Sans", "Port Lligat Sans", "Port Lligat Slab", "Prata", "Preahvihear", "Press Start 2P", "Princess Sofia", "Prociono", "Prosto One", "PT Mono", "PT Sans", "PT Sans Caption", "PT Sans Narrow", "PT Serif", "PT Serif Caption", "Puritan", "Quando", "Quantico", "Quattrocento", "Quattrocento Sans", "Questrial", "Quicksand", "Qwigley", "Racing Sans One", "Radley", "Raleway", "Rammetto One", "Rancho", "Rationale", "Redressed", "Reenie Beanie", "Revalia", "Ribeye", "Ribeye Marrow", "Righteous", "Rochester", "Rock Salt", "Rokkitt", "Romanesco", "Ropa Sans", "Rosario", "Rosarivo", "Rouge Script", "Ruda", "Ruge Boogie", "Ruluko", "Ruslan Display", "Russo One", "Ruthie", "Rye", "Sail", "Salsa", "Sancreek", "Sansita One", "Sarina", "Satisfy", "Schoolbell", "Seaweed Script", "Sevillana", "Shadows Into Light", "Shadows Into Light Two", "Shanti", "Share", "Shojumaru", "Short Stack", "Siemreap", "Sigmar One", "Signika", "Signika Negative", "Simonetta", "Sirin Stencil", "Six Caps", "Skranji", "Slackey", "Smokum", "Smythe", "Sniglet", "Snippet", "Sofia", "Sonsie One", "Sorts Mill Goudy", "Source Sans Pro", "Special Elite", "Spicy Rice", "Spinnaker", "Spirax", "Squada One", "Stardos Stencil", "Stint Ultra Condensed", "Stint Ultra Expanded", "Stoke", "Sue Ellen Francisco", "Sunshiney", "Supermercado One", "Suwannaphum", "Swanky and Moo Moo", "Syncopate", "Tangerine", "Taprom", "Telex", "Tenor Sans", "The Girl Next Door", "Tienne", "Tinos", "Titan One", "Trade Winds", "Trocchi", "Trochut", "Trykker", "Tulpen One", "Ubuntu", "Ubuntu Condensed", "Ubuntu Mono", "Ultra", "Uncial Antiqua", "UnifrakturCook", "UnifrakturMaguntia", "Unkempt", "Unlock", "Unna", "Varela", "Varela Round", "Vast Shadow", "Vibur", "Vidaloka", "Viga", "Voces", "Volkhov", "Vollkorn", "Voltaire", "VT323", "Waiting for the Sunrise", "Wallpoet", "Walter Turncoat", "Wellfleet", "Wire One", "Yanone Kaffeesatz", "Yellowtail", "Yeseva One", "Yesteryear", "Zeyada");
                     foreach ($faces as $face) {
                         $output .= '<option value="' . $face . '" ' . selected($typography_stored['face'], $face, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = $smof_data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $smof_data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ', 'designesia') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($smof_data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
                 // google font field
             // google font field
             case 'select_google_font':
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input google_font_select" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_key => $option) {
                     $output .= '<option value="' . $select_key . '" ' . selected(isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : "", $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 if (isset($value['preview']['text'])) {
                     $g_text = $value['preview']['text'];
                 } else {
                     $g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                 }
                 if (isset($value['preview']['size'])) {
                     $g_size = 'style="font-size: ' . $value['preview']['size'] . ';"';
                 } else {
                     $g_size = '';
                 }
                 $output .= '<p class="' . $value['id'] . '_ggf_previewer google_font_preview" ' . $g_size . '>' . $g_text . '</p>';
                 break;
                 //JQuery UI Slider
             //JQuery UI Slider
             case 'sliderui':
                 $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                 //no errors, please
                 $s_val = stripslashes($smof_data[$value['id']]);
                 if (!isset($value['min'])) {
                     $s_min = '0';
                 } else {
                     $s_min = $value['min'];
                 }
                 if (!isset($value['max'])) {
                     $s_max = $s_min + 1;
                 } else {
                     $s_max = $value['max'];
                 }
                 if (!isset($value['step'])) {
                     $s_step = '1';
                 } else {
                     $s_step = $value['step'];
                 }
                 if (!isset($value['edit'])) {
                     $s_edit = ' readonly="readonly"';
                 } else {
                     $s_edit = '';
                 }
                 if ($s_val == '') {
                     $s_val = $s_min;
                 }
                 //values
                 $s_data = 'data-id="' . $value['id'] . '" data-val="' . $s_val . '" data-min="' . $s_min . '" data-max="' . $s_max . '" data-step="' . $s_step . '"';
                 //html output
                 $output .= '<input type="text" name="' . $value['id'] . '" id="' . $value['id'] . '" value="' . $s_val . '" class="mini" ' . $s_edit . ' />';
                 $output .= '<div id="' . $value['id'] . '-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div>';
                 break;
                 //Switch option
             //Switch option
             case 'switch':
                 if (!isset($smof_data[$value['id']])) {
                     $smof_data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "s_fld ";
                 }
                 $cb_enabled = $cb_disabled = '';
                 //no errors, please
                 //Get selected
                 if ($smof_data[$value['id']] == 1) {
                     $cb_enabled = ' selected';
                     $cb_disabled = '';
                 } else {
                     $cb_enabled = '';
                     $cb_disabled = ' selected';
                 }
                 //Label ON
                 if (!isset($value['on'])) {
                     $on = "On";
                 } else {
                     $on = $value['on'];
                 }
                 //Label OFF
                 if (!isset($value['off'])) {
                     $off = "Off";
                 } else {
                     $off = $value['off'];
                 }
                 $output .= '<p class="switch-options">';
                 $output .= '<label class="' . $fold . 'cb-enable' . $cb_enabled . '" data-id="' . $value['id'] . '"><span>' . $on . '</span></label>';
                 $output .= '<label class="' . $fold . 'cb-disable' . $cb_disabled . '" data-id="' . $value['id'] . '"><span>' . $off . '</span></label>';
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" id="' . $value['id'] . '" class="' . $fold . 'checkbox of-input main_checkbox" name="' . $value['id'] . '"  value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                 $output .= '</p>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     $data = of_get_options();
     $smof_data = of_get_options();
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if (@$smof_data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             if ($value['type'] == 'checkbox' or $value['type'] == 'radio') {
                 $output .= '<label class="option">' . "\n" . '<div class="controls">' . "\n";
             } else {
                 $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
             }
         }
         //End Heading
         // Set default value for absent options
         if (!in_array($value['type'], array('info', 'image', 'heading', 'slider', 'sorter', 'backup', 'transfer')) and !isset($smof_data[$value['id']]) and isset($defaults[$value['id']])) {
             $smof_data[$value['id']] = $defaults[$value['id']];
         }
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $_smof_val = $t_value = isset($smof_data[$value['id']]) ? stripslashes($smof_data[$value['id']]) : '';
                 $_smof_val = $t_value = str_replace('"', '&quot;', $t_value);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $_smof_val = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                     $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($_smof_val, $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 $checked = isset($smof_data[$value['id']]) ? checked($smof_data[$value['id']], $option, false) : '';
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($smof_data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($smof_data[$value['id']])) {
                     $smof_data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 isset($smof_data[$value['id']]) ? $multi_stored = $smof_data[$value['id']] : ($multi_stored = "");
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $_color = !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $_color . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $_color . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 20; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = $smof_data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $smof_data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>Last Backup : <span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($smof_data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
                 // google font field
             // google font field
             case 'select_google_font':
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input google_font_select" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 $output .= '<option value="none">Font not specified</option>';
                 $output .= '<optgroup label="Web safe font combinations (do not need to be loaded)">';
                 foreach ($value['options']['web_safe_fonts'] as $select_key => $option) {
                     $output .= "<option value='" . $select_key . "' " . selected(isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</optgroup>';
                 $output .= '<optgroup label="Custom fonts (loaded from Google Fonts)">';
                 foreach ($value['options']['google_fonts'] as $select_key => $option) {
                     $output .= '<option value="' . $select_key . '" ' . selected(isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</optgroup>';
                 $output .= '</select></div>';
                 if (isset($value['preview']['text'])) {
                     $g_text = $value['preview']['text'];
                 } else {
                     $g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                 }
                 if (isset($value['preview']['size'])) {
                     $g_size = 'style="font-size: ' . $value['preview']['size'] . ';"';
                 } else {
                     $g_size = '';
                 }
                 $output .= '<p class="' . $value['id'] . '_ggf_previewer google_font_preview" ' . $g_size . '>' . $g_text . '</p>';
                 break;
                 //JQuery UI Slider
             //JQuery UI Slider
             case 'sliderui':
                 $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                 //no errors, please
                 $s_val = stripslashes(@$smof_data[@$value['id']]);
                 if (!isset($value['min'])) {
                     $s_min = '0';
                 } else {
                     $s_min = $value['min'];
                 }
                 if (!isset($value['max'])) {
                     $s_max = $s_min + 1;
                 } else {
                     $s_max = $value['max'];
                 }
                 if (!isset($value['step'])) {
                     $s_step = '1';
                 } else {
                     $s_step = $value['step'];
                 }
                 if (!isset($value['edit'])) {
                     $s_edit = ' readonly="readonly"';
                 } else {
                     $s_edit = '';
                 }
                 if ($s_val == '') {
                     $s_val = $s_min;
                 }
                 //values
                 $s_data = 'data-id="' . $value['id'] . '" data-val="' . $s_val . '" data-min="' . $s_min . '" data-max="' . $s_max . '" data-step="' . $s_step . '"';
                 //html output
                 $output .= '<input type="text" name="' . $value['id'] . '" id="' . $value['id'] . '" value="' . $s_val . '" class="mini" ' . $s_edit . ' />';
                 $output .= '<div id="' . $value['id'] . '-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div>';
                 break;
                 //Switch option
             //Switch option
             case 'switch':
                 if (!isset($smof_data[$value['id']])) {
                     $smof_data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "s_fld ";
                 }
                 $cb_enabled = $cb_disabled = '';
                 //no errors, please
                 //Get selected
                 if ($smof_data[$value['id']] == 1) {
                     $cb_enabled = ' selected';
                     $cb_disabled = '';
                 } else {
                     $cb_enabled = '';
                     $cb_disabled = ' selected';
                 }
                 //Label ON
                 if (!isset($value['on'])) {
                     $on = "On";
                 } else {
                     $on = $value['on'];
                 }
                 //Label OFF
                 if (!isset($value['off'])) {
                     $off = "Off";
                 } else {
                     $off = $value['off'];
                 }
                 $output .= '<p class="switch-options">';
                 $output .= '<label class="' . $fold . 'cb-enable' . $cb_enabled . '" data-id="' . $value['id'] . '"><span>' . $on . '</span></label>';
                 $output .= '<label class="' . $fold . 'cb-disable' . $cb_disabled . '" data-id="' . $value['id'] . '"><span>' . $off . '</span></label>';
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" id="' . $value['id'] . '" class="' . $fold . 'checkbox of-input main_checkbox" name="' . $value['id'] . '"  value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                 $output .= '</p>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             if ($value['type'] == 'checkbox' or $value['type'] == 'radio') {
                 $output .= '<div class="clear"> </div></div></label>' . "\n";
             } else {
                 $output .= '<div class="clear"> </div></div></div>' . "\n";
             }
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
 function optionsframework_medialibrary_uploader($option_name, $type, $_id, $_value, $_mode = 'full', $_desc = null, $_postid = 0, $_name = null, $_upload_text = null)
 {
     $output = '';
     $id = '';
     $class = '';
     $int = '';
     $value = array('url' => '', 'id' => '');
     $upload_text = __('Upload', 'themeblvd');
     if ($type == 'slider') {
         $name = $option_name . '[image]';
     } else {
         $name = $option_name . '[' . $_id . ']';
     }
     $id = strip_tags(strtolower($_id));
     // If a value is passed and we don't have a stored value, use the value that's passed through.
     if ($_value) {
         $value = $_value;
     }
     // If passed name, set it.
     if ($_name) {
         $name = $name . '[' . $_name . ']';
         $id = $id . '_' . $_name;
     }
     // Set the ID for the post.
     if ($_postid) {
         // Set ID to the one passed in.
         $int = $_postid;
     } else {
         // Change for each field, using a "silent" post.
         // If no post is present, one will be created.
         $int = optionsframework_mlu_get_silentpost($id);
     }
     // If passed upload button text, set it.
     if ($_upload_text) {
         $upload_text = $_upload_text;
     }
     if ($value['url']) {
         $class = ' has-file';
     }
     // Allow multiple upload options on the same page with
     // same ID -- This could happen in the Layout Builder, for example.
     $formfield = uniqid($id . '_');
     if ($type == 'slider') {
         // Slider image ID input w/hidden image URL input for user admin display
         $output .= '<span class="locked"><span></span><input id="' . $formfield . '_id" class="locked upload' . $class . '" type="text" name="' . $name . '[id]" value="' . $value['id'] . '" /></span>' . "\n";
         $output .= '<input id="' . $formfield . '" class="image-url upload' . $class . '" type="hidden" name="' . $name . '[url]" value="' . $value['url'] . '" />' . "\n";
         $output .= '<p class="explain">' . __('You must use the "Get Image" button to modify the image ID for this slide. This is what the locked icon represents.', 'themeblvd') . '</p>';
     } elseif ($type == 'logo') {
         $width_name = str_replace('[image]', '[image_width]', $name);
         $output .= '<input id="' . $formfield . '" class="image-url upload' . $class . '" type="text" name="' . $name . '" value="' . $value['url'] . '" placeholder="' . __('Image URL', 'themeblvd') . '" />' . "\n";
         $output .= '<input id="' . $formfield . '_width" class="image-width upload' . $class . '" type="text" name="' . $width_name . '" value="' . $value['width'] . '" placeholder="' . __('Width', 'themeblvd') . '" />' . "\n";
     } elseif ($type == 'logo_2x') {
         $output .= '<input id="' . $formfield . '" class="image-url upload' . $class . '" type="text" name="' . $name . '" value="' . $value['url'] . '" placeholder="' . __('Image URL twice the size of standard image', 'themeblvd') . '" />' . "\n";
     } else {
         // Standard image input
         $output .= '<input id="' . $formfield . '" class="image-url upload' . $class . '" type="text" name="' . $name . '" value="' . $value['url'] . '" placeholder="' . __('Image URL', 'themeblvd') . '" />' . "\n";
     }
     $output .= '<input id="upload_' . $formfield . '" class="upload_button button" type="button" value="' . $upload_text . '" data-upload-type="' . $type . '" rel="' . $int . '" />' . "\n";
     if ($_desc != '') {
         $output .= '<span class="of_metabox_desc">' . $_desc . '</span>' . "\n";
     }
     $output .= '<div class="screenshot" id="' . $id . '_image">' . "\n";
     if ($value['url'] != '') {
         $remove = '<a href="javascript:(void);" class="mlu_remove button">Remove</a>';
         $image = preg_match('/(^.*\\.jpg|jpeg|png|gif|ico*)/i', $value['url']);
         if ($image) {
             $output .= '<img src="' . $value['url'] . '" alt="" />' . $remove . '';
         } else {
             $parts = explode("/", $value['url']);
             for ($i = 0; $i < sizeof($parts); ++$i) {
                 $title = $parts[$i];
             }
             // No output preview if it's not an image.
             $output .= '';
             // Standard generic output if it's not an image.
             $title = __('View File', 'themeblvd');
             $output .= '<div class="no_image"><span class="file_link"><a href="' . $value['url'] . '" target="_blank" rel="external">' . $title . '</a></span>' . $remove . '</div>';
         }
     }
     $output .= '</div>' . "\n";
     return $output;
 }
Ejemplo n.º 6
0
 function optionsframework_medialibrary_uploader($_id, $_value, $_mode = 'full', $_desc = '', $_postid = 0, $_name = '')
 {
     /* earlier code
     			$optionsframework_settings = get_option($_id);
     			//print_r($optionsframework_settings);
     			
     			// Gets the unique option id
     			$option_name = $optionsframework_settings['id'];
     			*/
     /* new code*/
     $option_name = get_option($_id);
     /* end new code */
     $output = $id = $class = $int = $name = '';
     $value = get_option($_id);
     $id = strip_tags(strtolower($_id));
     // Change for each field, using a "silent" post. If no post is present, one will be created.
     $int = optionsframework_mlu_get_silentpost($id);
     // If a value is passed and we don't have a stored value, use the value that's passed through.
     if ($_value != '' && $value == '') {
         $value = $_value;
     }
     if ($_name != '') {
         $name = $option_name . '[' . $id . '][' . $_name . ']';
     } else {
         $name = $option_name . '[' . $id . ']';
     }
     if ($value) {
         $class = ' has-file';
     }
     $output .= '<input id="' . $id . '" class="upload' . $class . '" type="text" name="' . $id . '" value="' . $value . '" />' . "\n";
     $output .= '<input id="upload_' . $id . '" class="upload_button button-primary button-large" type="button" value="' . __('Upload', 'optionsframework') . '" rel="' . $int . '" />' . "\n";
     if ($_desc != '') {
         $output .= '<span class="of_metabox_desc">' . $_desc . '</span>' . "\n";
     }
     $output .= '<div class="clear"></div><div class="screenshot" id="' . $id . '_image">' . "\n";
     if ($value != '') {
         $remove = '<a href="javascript:(void);" class="custom_clear_image_button button button-primary">x</a>';
         $image = preg_match('/(^.*\\.jpg|jpeg|png|gif*)/i', $value);
         if ($image) {
             $image_attributes = wp_get_attachment_image_src(get_attachment_id_from_src($value));
             if ($image_attributes[0] != '') {
                 $output .= '<img src="' . $image_attributes[0] . '" alt="" />' . $remove . '';
             } else {
                 $output .= '<img src="' . $value . '" alt="" />' . $remove . '';
             }
         } else {
             $parts = explode("/", $value);
             for ($i = 0; $i < sizeof($parts); ++$i) {
                 $title = $parts[$i];
             }
             // No output preview if it's not an image.
             $output .= '';
             // Standard generic output if it's not an image.
             $title = __('View File', 'optionsframework');
             $output .= '<div class="no_image"><span class="file_link"></span>' . $remove . '</div>';
         }
     }
     $output .= '</div>' . "\n";
     return $output;
 }
    /**
     * Process options data and build option fields
     *
     * @uses get_option()
     *
     * @access public
     * @since 1.0.0
     *
     * @return array
     */
    public static function optionsframework_machine($options)
    {
        $data = get_option(OPTIONS);
        $defaults = array();
        $counter = 0;
        $menu = '';
        $output = '';
        foreach ($options as $value) {
            $counter++;
            $val = '';
            //create array of defaults
            if ($value['type'] == 'multicheck') {
                if (is_array($value['std'])) {
                    foreach ($value['std'] as $i => $key) {
                        $defaults[$value['id']][$key] = true;
                    }
                } else {
                    $defaults[$value['id']][$value['std']] = true;
                }
            } else {
                if (isset($value['id'])) {
                    $defaults[$value['id']] = $value['std'];
                }
            }
            //Start Heading
            if ($value['type'] != "heading") {
                $class = '';
                if (isset($value['class'])) {
                    $class = $value['class'];
                }
                //hide items in checkbox group
                $fold = '';
                if (array_key_exists("fold", $value)) {
                    if (@$data[$value['fold']]) {
                        $fold = "f_" . $value['fold'] . " ";
                    } else {
                        $fold = "f_" . $value['fold'] . " temphide ";
                    }
                }
                if (isset($value['display'])) {
                    $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section ' . $value['display'] . ' section-' . $value['type'] . ' ' . $class . '">' . "\n";
                } else {
                    $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
                }
                //only show header if 'name' value exists
                if ($value['name']) {
                    $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
                }
                $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
            }
            //End Heading
            //switch statement to handle various options type
            switch ($value['type']) {
                //text input
                case 'text':
                    $t_value = '';
                    $t_value = stripslashes(@$data[$value['id']]);
                    $mini = '';
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    if ($value['mod'] == 'mini') {
                        $mini = 'mini';
                    }
                    if (!isset($value['googlefont'])) {
                        $value['googlefont'] = "";
                    }
                    if ($value['googlefont'] == 'text') {
                        $scclass = 'gfontscome ';
                    } elseif ($value['googlefont'] == 'heading') {
                        $scclass = 'gfontscomehead ';
                    } else {
                        $scclass = '';
                    }
                    $output .= '<input class="of-input ' . $scclass . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                    if ($value['googlefont'] == 'text') {
                        $output .= '<p class="gfontsview" style="font-family:\'' . str_replace('+', ' ', $t_value) . '\'">Lorem Ipsum is simply dummy text of the printing and typesetting industry. 
								 Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, 
								 when an unknown printer took a galley of type and scrambled it to make a type 
								 specimen book. It has survived not only five centuries, but also the leap into
								 electronic typesetting, remaining essentially unchanged.</p><br><br>';
                    } elseif ($value['googlefont'] == 'heading') {
                        $output .= '<br><h1 class="gfontsviewhead" style="font-size:34px; font-family:\'' . str_replace('+', ' ', $t_value) . '\'; line-height:1.4em">Grumpy wizards make toxic brew for the evil Queen and Jack</h1><br><br><br><br><br><br>';
                    }
                    $scclass = '';
                    break;
                    //select option
                //select option
                case 'select':
                    $mini = '';
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    if ($value['mod'] == 'mini') {
                        $mini = 'mini';
                    }
                    $output .= '<div class="select_wrapper ' . $mini . '">';
                    $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                    foreach ($value['options'] as $select_ID => $option) {
                        $selecteds = selected(@$data[$value['id']], $option, false);
                        $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . $selecteds . ' />' . $option . '</option>';
                        if ($selecteds) {
                            $moption = $option;
                        }
                    }
                    $output .= '</select></div>';
                    if (isset($value['bgpatterns']) == 1) {
                        $output .= '<br><br><div class="bgpatterndiv" style="background:url(' . get_template_directory_uri() . '/images/bgpatterns/' . $moption . ');width:338px;border:1px solid #ccc; height:200px; float:left"></div>';
                    }
                    $moption = '';
                    break;
                    //textarea option
                //textarea option
                case 'textarea':
                    $cols = '8';
                    $ta_value = '';
                    if (isset($value['options'])) {
                        $ta_options = $value['options'];
                        if (isset($ta_options['cols'])) {
                            $cols = $ta_options['cols'];
                        }
                    }
                    $ta_value = stripslashes(@$data[$value['id']]);
                    $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                    break;
                    //radiobox option
                //radiobox option
                case "radio":
                    foreach ($value['options'] as $option => $name) {
                        $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked(@$data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                    }
                    break;
                    //checkbox option
                //checkbox option
                case 'checkbox':
                    if (!isset($data[$value['id']])) {
                        @($data[$value['id']] = 0);
                    }
                    $fold = '';
                    if (array_key_exists("folds", $value)) {
                        $fold = "fld ";
                    }
                    $output .= '<input type="hidden" class="' . $fold . 'checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                    $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked(@$data[$value['id']], 1, false) . ' />';
                    break;
                    //multiple checkbox option
                //multiple checkbox option
                case 'multicheck':
                    $multi_stored = @$data[$value['id']];
                    foreach ($value['options'] as $key => $option) {
                        if (!isset($multi_stored[$key])) {
                            $multi_stored[$key] = '';
                        }
                        $of_key_string = $value['id'] . '_' . $key;
                        $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                    }
                    break;
                    //ajax image upload option
                //ajax image upload option
                case 'upload':
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                    break;
                    // native media library uploader - @uses optionsframework_media_uploader_function()
                // native media library uploader - @uses optionsframework_media_uploader_function()
                case 'media':
                    $_id = strip_tags(strtolower($value['id']));
                    $int = '';
                    $int = optionsframework_mlu_get_silentpost($_id);
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                    // New AJAX Uploader using Media Library
                    break;
                    //colorpicker option
                //colorpicker option
                case 'color':
                    $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . @$data[$value['id']] . '"></div></div>';
                    $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . @$data[$value['id']] . '" />';
                    break;
                    //typography option
                //typography option
                case 'typography':
                    $typography_stored = isset($data[$value['id']]) ? @$data[$value['id']] : $value['std'];
                    /* Font Size */
                    if (isset($typography_stored['size'])) {
                        $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                        $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                        if ($value['id'] == 'md_body_fontsize') {
                            $mini = '10';
                            $maxi = '21';
                        } else {
                            $mini = '28';
                            $maxi = '72';
                        }
                        for ($i = $mini; $i < $maxi; $i++) {
                            $test = $i . 'px';
                            $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Line Height */
                    if (isset($typography_stored['height'])) {
                        $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                        $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                        for ($i = 20; $i < 38; $i++) {
                            $test = $i . 'px';
                            $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Font Face */
                    if (isset($typography_stored['face'])) {
                        $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                        $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                        $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                        foreach ($faces as $i => $face) {
                            $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Font Weight */
                    if (isset($typography_stored['style'])) {
                        $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                        $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                        $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                        foreach ($styles as $i => $style) {
                            $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Font Color */
                    if (isset($typography_stored['color'])) {
                        $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                        $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                    }
                    break;
                    //border option
                //border option
                case 'border':
                    /* Border Width */
                    $border_stored = @$data[$value['id']];
                    $output .= '<div class="select_wrapper border-width">';
                    $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                    for ($i = 0; $i < 21; $i++) {
                        $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                    }
                    $output .= '</select></div>';
                    /* Border Style */
                    $output .= '<div class="select_wrapper border-style">';
                    $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                    $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                    foreach ($styles as $i => $style) {
                        $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                    }
                    $output .= '</select></div>';
                    /* Border Color */
                    $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                    $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                    break;
                    //images checkbox - use image as checkboxes
                //images checkbox - use image as checkboxes
                case 'images':
                    $i = 0;
                    $select_value = @$data[$value['id']];
                    foreach ($value['options'] as $key => $option) {
                        $i++;
                        $checked = '';
                        $selected = '';
                        if (NULL != checked($select_value, $key, false)) {
                            $checked = checked($select_value, $key, false);
                            $selected = 'of-radio-img-selected';
                        }
                        $output .= '<span>';
                        $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                        $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                        $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true; checkAllFields();" />';
                        $output .= '</span>';
                    }
                    break;
                    //info (for small intro box etc)
                //info (for small intro box etc)
                case "info":
                    $info_text = $value['std'];
                    $output .= '<div class="of-info">' . $info_text . '</div>';
                    break;
                    //display a single image
                //display a single image
                case "image":
                    $src = $value['std'];
                    $output .= '<img src="' . $src . '">';
                    break;
                    //tab heading
                //tab heading
                case 'heading':
                    if ($counter >= 2) {
                        $output .= '</div>' . "\n";
                    }
                    $header_class = str_replace(' ', '', strtolower($value['name']));
                    $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                    $jquery_click_hook = "of-option-" . $jquery_click_hook;
                    $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                    $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                    break;
                    //drag & drop slide manager
                //drag & drop slide manager
                case 'slider':
                    $_id = strip_tags(strtolower($value['id']));
                    $int = '';
                    $int = optionsframework_mlu_get_silentpost($_id);
                    $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                    $slides = @$data[$value['id']];
                    $count = count($slides);
                    if ($count < 2) {
                        $oldorder = 1;
                        $order = 1;
                        $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                    } else {
                        $i = 0;
                        foreach ($slides as $slide) {
                            $oldorder = $slide['order'];
                            $i++;
                            $order = $i;
                            $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                        }
                    }
                    $output .= '</ul>';
                    $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                    break;
                    //drag & drop block manager
                //drag & drop block manager
                case 'sorter':
                    $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? @$data[$value['id']] : $value['std'];
                    $output .= '<div id="' . $value['id'] . '" class="sorter">';
                    if ($sortlists) {
                        foreach ($sortlists as $group => $sortlist) {
                            $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                            $output .= '<h3>' . $group . '</h3>';
                            foreach ($sortlist as $key => $list) {
                                $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                                if ($key != "placebo") {
                                    $output .= '<li id="' . $key . '" class="sortee">';
                                    $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                    $output .= $list;
                                    $output .= '</li>';
                                }
                            }
                            $output .= '</ul>';
                        }
                    }
                    $output .= '</div>';
                    break;
                    //background images option
                //background images option
                case 'tiles':
                    $i = 0;
                    $select_value = isset($data[$value['id']]) && !empty($data[$value['id']]) ? @$data[$value['id']] : '';
                    foreach ($value['options'] as $key => $option) {
                        $i++;
                        $checked = '';
                        $selected = '';
                        if (NULL != checked($select_value, $option, false)) {
                            $checked = checked($select_value, $option, false);
                            $selected = 'of-radio-tile-selected';
                        }
                        $output .= '<span>';
                        $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                        $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                        $output .= '</span>';
                    }
                    break;
                    //backup and restore options data
                //backup and restore options data
                case 'backup':
                    $instructions = $value['desc'];
                    $backup = get_option(BACKUPS);
                    if (!isset($backup['backup_log'])) {
                        $log = 'No backups yet';
                    } else {
                        $log = $backup['backup_log'];
                    }
                    $output .= '<div class="backup-box">';
                    $output .= '<div class="instructions">' . $instructions . "\n";
                    $output .= '<p><strong>' . __('Last Backup : ', 'dronetv') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                    $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                    $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                    $output .= '</div>';
                    break;
                    //export or import data between different installs
                //export or import data between different installs
                case 'transfer':
                    $instructions = $value['desc'];
                    $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize(@$data)) . '</textarea>' . "\n";
                    $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                    break;
                case 'migrate':
                    $output .= 'Your Previous Domain (http://localhost)<br><input type="text" id="md_migrate_old" name="md_migrate_old" value=""><br>';
                    $output .= 'Your New Domain (http://www.yournewsite.com)<br><input type="text" id="md_migrate_new" name="md_migrate_new" value=""><br><br>';
                    $output .= '<a href="#" id="of_migrate_button" class="button" title="Replace URLs">Replace URLs</a>';
                    break;
            }
            //description of each option
            if ($value['type'] != 'heading') {
                if (!isset($value['desc'])) {
                    $explain_value = '';
                } else {
                    $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
                }
                $output .= '</div>' . $explain_value . "\n";
                $output .= '<div class="clear"> </div></div></div>' . "\n";
            }
        }
        $output .= '</div>';
        return array($output, $menu, $defaults);
    }
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     $data = get_option(OPTIONS);
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($data[$value['id']], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = stripslashes($data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($data[$value['id']])) {
                     $data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 //$multi_stored = $data[$value['id']];
                 isset($data[$value['id']]) ? $multi_stored = $data[$value['id']] : ($multi_stored = "");
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $data[$value['id']] . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 47; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'Trebuchet MS' => 'Trebuchet MS', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'helvetica' => 'Helvetica', 'ABeeZee' => 'ABeeZee', 'Abel' => 'Abel', 'Abril Fatface' => 'Abril Fatface', 'Aclonica' => 'Aclonica', 'Acme' => 'Acme', 'Actor' => 'Actor', 'Adamina' => 'Adamina', 'Advent Pro' => 'Advent Pro', 'Aguafina Script' => 'Aguafina Script', 'Aladin' => 'Aladin', 'Aldrich' => 'Aldrich', 'Alegreya' => 'Alegreya', 'Alegreya SC' => 'Alegreya SC', 'Alex Brush' => 'Alex Brush', 'Alfa Slab One' => 'Alfa Slab One', 'Alice' => 'Alice', 'Alike' => 'Alike', 'Alike Angular' => 'Alike Angular', 'Allan' => 'Allan', 'Allerta' => 'Allerta', 'Allerta Stencil' => 'Allerta Stencil', 'Allura' => 'Allura', 'Almendra' => 'Almendra', 'Almendra SC' => 'Almendra SC', 'Amaranth' => 'Amaranth', 'Amatic SC' => 'Amatic SC', 'Amethysta' => 'Amethysta', 'Andada' => 'Andada', 'Andika' => 'Andika', 'Angkor' => 'Angkor', 'Annie Use Your Telescope' => 'Annie Use Your Telescope', 'Anonymous Pro' => 'Anonymous Pro', 'Antic' => 'Antic', 'Antic Didone' => 'Antic Didone', 'Antic Slab' => 'Antic Slab', 'Anton' => 'Anton', 'Arapey' => 'Arapey', 'Arbutus' => 'Arbutus', 'Architects Daughter' => 'Architects Daughter', 'Arimo' => 'Arimo', 'Arizonia' => 'Arizonia', 'Armata' => 'Armata', 'Artifika' => 'Artifika', 'Arvo' => 'Arvo', 'Asap' => 'Asap', 'Asset' => 'Asset', 'Astloch' => 'Astloch', 'Asul' => 'Asul', 'Atomic Age' => 'Atomic Age', 'Aubrey' => 'Aubrey', 'Audiowide' => 'Audiowide', 'Average' => 'Average', 'Averia Gruesa Libre' => 'Averia Gruesa Libre', 'Averia Libre' => 'Averia Libre', 'Averia Sans Libre' => 'Averia Sans Libre', 'Averia Serif Libre' => 'Averia Serif Libre', 'Bad Script' => 'Bad Script', 'Balthazar' => 'Balthazar', 'Bangers' => 'Bangers', 'Basic' => 'Basic', 'Battambang' => 'Battambang', 'Baumans' => 'Baumans', 'Bayon' => 'Bayon', 'Belgrano' => 'Belgrano', 'Belleza' => 'Belleza', 'Bentham' => 'Bentham', 'Berkshire Swash' => 'Berkshire Swash', 'Bevan' => 'Bevan', 'Bigshot One' => 'Bigshot One', 'Bilbo' => 'Bilbo', 'Bilbo Swash Caps' => 'Bilbo Swash Caps', 'Bitter' => 'Bitter', 'Black Ops One' => 'Black Ops One', 'Bokor' => 'Bokor', 'Bonbon' => 'Bonbon', 'Boogaloo' => 'Boogaloo', 'Bowlby One' => 'Bowlby One', 'Bowlby One SC' => 'Bowlby One SC', 'Brawler' => 'Brawler', 'Bree Serif' => 'Bree Serif', 'Bubblegum Sans' => 'Bubblegum Sans', 'Buda' => 'Buda', 'Buenard' => 'Buenard', 'Butcherman' => 'Butcherman', 'Butterfly Kids' => 'Butterfly Kids', 'Cabin' => 'Cabin', 'Cabin Condensed' => 'Cabin Condensed', 'Cabin Sketch' => 'Cabin Sketch', 'Caesar Dressing' => 'Caesar Dressing', 'Cagliostro' => 'Cagliostro', 'Calligraffitti' => 'Calligraffitti', 'Cambo' => 'Cambo', 'Candal' => 'Candal', 'Cantarell' => 'Cantarell', 'Cantata One' => 'Cantata One', 'Cardo' => 'Cardo', 'Carme' => 'Carme', 'Carter One' => 'Carter One', 'Caudex' => 'Caudex', 'Cedarville Cursive' => 'Cedarville Cursive', 'Ceviche One' => 'Ceviche One', 'Changa One' => 'Changa One', 'Chango' => 'Chango', 'Chau Philomene One' => 'Chau Philomene One', 'Chelsea Market' => 'Chelsea Market', 'Chenla' => 'Chenla', 'Cherry Cream Soda' => 'Cherry Cream Soda', 'Chewy' => 'Chewy', 'Chicle' => 'Chicle', 'Chivo' => 'Chivo', 'Coda' => 'Coda', 'Coda Caption' => 'Coda Caption', 'Codystar' => 'Codystar', 'Comfortaa' => 'Comfortaa', 'Coming Soon' => 'Coming Soon', 'Concert One' => 'Concert One', 'Condiment' => 'Condiment', 'Content' => 'Content', 'Contrail One' => 'Contrail One', 'Convergence' => 'Convergence', 'Cookie' => 'Cookie', 'Copse' => 'Copse', 'Corben' => 'Corben', 'Cousine' => 'Cousine', 'Coustard' => 'Coustard', 'Covered By Your Grace' => 'Covered By Your Grace', 'Crafty Girls' => 'Crafty Girls', 'Creepster' => 'Creepster', 'Crete Round' => 'Crete Round', 'Crimson Text' => 'Crimson Text', 'Crushed' => 'Crushed', 'Cuprum' => 'Cuprum', 'Cutive' => 'Cutive', 'Damion' => 'Damion', 'Dancing Script' => 'Dancing Script', 'Dangrek' => 'Dangrek', 'Dawning of a New Day' => 'Dawning of a New Day', 'Days One' => 'Days One', 'Delius' => 'Delius', 'Delius Swash Caps' => 'Delius Swash Caps', 'Delius Unicase' => 'Delius Unicase', 'Della Respira' => 'Della Respira', 'Devonshire' => 'Devonshire', 'Didact Gothic' => 'Didact Gothic', 'Diplomata' => 'Diplomata', 'Diplomata SC' => 'Diplomata SC', 'Doppio One' => 'Doppio One', 'Dorsa' => 'Dorsa', 'Dosis' => 'Dosis', 'Dr Sugiyama' => 'Dr Sugiyama', 'Droid Sans' => 'Droid Sans', 'Droid Sans Mono' => 'Droid Sans Mono', 'Droid Serif' => 'Droid Serif', 'Duru Sans' => 'Duru Sans', 'Dynalight' => 'Dynalight', 'EB Garamond' => 'EB Garamond', 'Eater' => 'Eater', 'Economica' => 'Economica', 'Electrolize' => 'Electrolize', 'Emblema One' => 'Emblema One', 'Emilys Candy' => 'Emilys Candy', 'Engagement' => 'Engagement', 'Enriqueta' => 'Enriqueta', 'Erica One' => 'Erica One', 'Esteban' => 'Esteban', 'Euphoria Script' => 'Euphoria Script', 'Ewert' => 'Ewert', 'Exo' => 'Exo', 'Expletus Sans' => 'Expletus Sans', 'Fanwood Text' => 'Fanwood Text', 'Fascinate' => 'Fascinate', 'Fascinate Inline' => 'Fascinate Inline', 'Federant' => 'Federant', 'Federo' => 'Federo', 'Felipa' => 'Felipa', 'Fjord One' => 'Fjord One', 'Flamenco' => 'Flamenco', 'Flavors' => 'Flavors', 'Fondamento' => 'Fondamento', 'Fontdiner Swanky' => 'Fontdiner Swanky', 'Forum' => 'Forum', 'Francois One' => 'Francois One', 'Fredericka the Great' => 'Fredericka the Great', 'Fredoka One' => 'Fredoka One', 'Freehand' => 'Freehand', 'Fresca' => 'Fresca', 'Frijole' => 'Frijole', 'Fugaz One' => 'Fugaz One', 'GFS Didot' => 'GFS Didot', 'GFS Neohellenic' => 'GFS Neohellenic', 'Galdeano' => 'Galdeano', 'Gentium Basic' => 'Gentium Basic', 'Gentium Book Basic' => 'Gentium Book Basic', 'Geo' => 'Geo', 'Geostar' => 'Geostar', 'Geostar Fill' => 'Geostar Fill', 'Germania One' => 'Germania One', 'Give You Glory' => 'Give You Glory', 'Glass Antiqua' => 'Glass Antiqua', 'Glegoo' => 'Glegoo', 'Gloria Hallelujah' => 'Gloria Hallelujah', 'Goblin One' => 'Goblin One', 'Gochi Hand' => 'Gochi Hand', 'Gorditas' => 'Gorditas', 'Goudy Bookletter 1911' => 'Goudy Bookletter 1911', 'Graduate' => 'Graduate', 'Gravitas One' => 'Gravitas One', 'Great Vibes' => 'Great Vibes', 'Gruppo' => 'Gruppo', 'Gudea' => 'Gudea', 'Habibi' => 'Habibi', 'Hammersmith One' => 'Hammersmith One', 'Handlee' => 'Handlee', 'Hanuman' => 'Hanuman', 'Happy Monkey' => 'Happy Monkey', 'Henny Penny' => 'Henny Penny', 'Herr Von Muellerhoff' => 'Herr Von Muellerhoff', 'Holtwood One SC' => 'Holtwood One SC', 'Homemade Apple' => 'Homemade Apple', 'Homenaje' => 'Homenaje', 'IM Fell DW Pica' => 'IM Fell DW Pica', 'IM Fell DW Pica SC' => 'IM Fell DW Pica SC', 'IM Fell Double Pica' => 'IM Fell Double Pica', 'IM Fell Double Pica SC' => 'IM Fell Double Pica SC', 'IM Fell English' => 'IM Fell English', 'IM Fell English SC' => 'IM Fell English SC', 'IM Fell French Canon' => 'IM Fell French Canon', 'IM Fell French Canon SC' => 'IM Fell French Canon SC', 'IM Fell Great Primer' => 'IM Fell Great Primer', 'IM Fell Great Primer SC' => 'IM Fell Great Primer SC', 'Iceberg' => 'Iceberg', 'Iceland' => 'Iceland', 'Imprima' => 'Imprima', 'Inconsolata' => 'Inconsolata', 'Inder' => 'Inder', 'Indie Flower' => 'Indie Flower', 'Inika' => 'Inika', 'Irish Grover' => 'Irish Grover', 'Istok Web' => 'Istok Web', 'Italiana' => 'Italiana', 'Italianno' => 'Italianno', 'Jim Nightshade' => 'Jim Nightshade', 'Jockey One' => 'Jockey One', 'Jolly Lodger' => 'Jolly Lodger', 'Josefin Sans' => 'Josefin Sans', 'Josefin Slab' => 'Josefin Slab', 'Judson' => 'Judson', 'Julee' => 'Julee', 'Junge' => 'Junge', 'Jura' => 'Jura', 'Just Another Hand' => 'Just Another Hand', 'Just Me Again Down Here' => 'Just Me Again Down Here', 'Kameron' => 'Kameron', 'Karla' => 'Karla', 'Kaushan Script' => 'Kaushan Script', 'Kelly Slab' => 'Kelly Slab', 'Kenia' => 'Kenia', 'Khmer' => 'Khmer', 'Knewave' => 'Knewave', 'Kotta One' => 'Kotta One', 'Koulen' => 'Koulen', 'Kranky' => 'Kranky', 'Kreon' => 'Kreon', 'Kristi' => 'Kristi', 'Krona One' => 'Krona One', 'La Belle Aurore' => 'La Belle Aurore', 'Lancelot' => 'Lancelot', 'Lato' => 'Lato', 'League Script' => 'League Script', 'Leckerli One' => 'Leckerli One', 'Ledger' => 'Ledger', 'Lekton' => 'Lekton', 'Lemon' => 'Lemon', 'Lilita One' => 'Lilita One', 'Limelight' => 'Limelight', 'Linden Hill' => 'Linden Hill', 'Lobster' => 'Lobster', 'Lobster Two' => 'Lobster Two', 'Londrina Outline' => 'Londrina Outline', 'Londrina Shadow' => 'Londrina Shadow', 'Londrina Sketch' => 'Londrina Sketch', 'Londrina Solid' => 'Londrina Solid', 'Lora' => 'Lora', 'Love Ya Like A Sister' => 'Love Ya Like A Sister', 'Loved by the King' => 'Loved by the King', 'Lovers Quarrel' => 'Lovers Quarrel', 'Luckiest Guy' => 'Luckiest Guy', 'Lusitana' => 'Lusitana', 'Lustria' => 'Lustria', 'Macondo' => 'Macondo', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Magra' => 'Magra', 'Maiden Orange' => 'Maiden Orange', 'Mako' => 'Mako', 'Marck Script' => 'Marck Script', 'Marko One' => 'Marko One', 'Marmelad' => 'Marmelad', 'Marvel' => 'Marvel', 'Mate' => 'Mate', 'Mate SC' => 'Mate SC', 'Maven Pro' => 'Maven Pro', 'Meddon' => 'Meddon', 'MedievalSharp' => 'MedievalSharp', 'Medula One' => 'Medula One', 'Megrim' => 'Megrim', 'Merienda One' => 'Merienda One', 'Merriweather' => 'Merriweather', 'Metal' => 'Metal', 'Metamorphous' => 'Metamorphous', 'Metrophobic' => 'Metrophobic', 'Michroma' => 'Michroma', 'Miltonian' => 'Miltonian', 'Miltonian Tattoo' => 'Miltonian Tattoo', 'Miniver' => 'Miniver', 'Miss Fajardose' => 'Miss Fajardose', 'Modern Antiqua' => 'Modern Antiqua', 'Molengo' => 'Molengo', 'Monofett' => 'Monofett', 'Monoton' => 'Monoton', 'Monsieur La Doulaise' => 'Monsieur La Doulaise', 'Montaga' => 'Montaga', 'Montez' => 'Montez', 'Montserrat' => 'Montserrat', 'Moul' => 'Moul', 'Moulpali' => 'Moulpali', 'Mountains of Christmas' => 'Mountains of Christmas', 'Mr Bedfort' => 'Mr Bedfort', 'Mr Dafoe' => 'Mr Dafoe', 'Mr De Haviland' => 'Mr De Haviland', 'Mrs Saint Delafield' => 'Mrs Saint Delafield', 'Mrs Sheppards' => 'Mrs Sheppards', 'Muli' => 'Muli', 'Mystery Quest' => 'Mystery Quest', 'Neucha' => 'Neucha', 'Neuton' => 'Neuton', 'News Cycle' => 'News Cycle', 'Niconne' => 'Niconne', 'Nixie One' => 'Nixie One', 'Nobile' => 'Nobile', 'Nokora' => 'Nokora', 'Norican' => 'Norican', 'Nosifer' => 'Nosifer', 'Nothing You Could Do' => 'Nothing You Could Do', 'Noticia Text' => 'Noticia Text', 'Nova Cut' => 'Nova Cut', 'Nova Flat' => 'Nova Flat', 'Nova Mono' => 'Nova Mono', 'Nova Oval' => 'Nova Oval', 'Nova Round' => 'Nova Round', 'Nova Script' => 'Nova Script', 'Nova Slim' => 'Nova Slim', 'Nova Square' => 'Nova Square', 'Numans' => 'Numans', 'Nunito' => 'Nunito', 'Odor Mean Chey' => 'Odor Mean Chey', 'Old Standard TT' => 'Old Standard TT', 'Oldenburg' => 'Oldenburg', 'Oleo Script' => 'Oleo Script', 'Open Sans' => 'Open Sans', 'Open Sans Condensed' => 'Open Sans Condensed', 'Orbitron' => 'Orbitron', 'Original Surfer' => 'Original Surfer', 'Oswald' => 'Oswald', 'Over the Rainbow' => 'Over the Rainbow', 'Overlock' => 'Overlock', 'Overlock SC' => 'Overlock SC', 'Ovo' => 'Ovo', 'Oxygen' => 'Oxygen', 'PT Mono' => 'PT Mono', 'PT Sans' => 'PT Sans', 'PT Sans Caption' => 'PT Sans Caption', 'PT Sans Narrow' => 'PT Sans Narrow', 'PT Serif' => 'PT Serif', 'PT Serif Caption' => 'PT Serif Caption', 'Pacifico' => 'Pacifico', 'Parisienne' => 'Parisienne', 'Passero One' => 'Passero One', 'Passion One' => 'Passion One', 'Patrick Hand' => 'Patrick Hand', 'Patua One' => 'Patua One', 'Paytone One' => 'Paytone One', 'Permanent Marker' => 'Permanent Marker', 'Petrona' => 'Petrona', 'Philosopher' => 'Philosopher', 'Piedra' => 'Piedra', 'Pinyon Script' => 'Pinyon Script', 'Plaster' => 'Plaster', 'Play' => 'Play', 'Playball' => 'Playball', 'Playfair Display' => 'Playfair Display', 'Podkova' => 'Podkova', 'Poiret One' => 'Poiret One', 'Poller One' => 'Poller One', 'Poly' => 'Poly', 'Pompiere' => 'Pompiere', 'Pontano Sans' => 'Pontano Sans', 'Port Lligat Sans' => 'Port Lligat Sans', 'Port Lligat Slab' => 'Port Lligat Slab', 'Prata' => 'Prata', 'Preahvihear' => 'Preahvihear', 'Press Start 2P' => 'Press Start 2P', 'Princess Sofia' => 'Princess Sofia', 'Prociono' => 'Prociono', 'Prosto One' => 'Prosto One', 'Puritan' => 'Puritan', 'Quantico' => 'Quantico', 'Quattrocento' => 'Quattrocento', 'Quattrocento Sans' => 'Quattrocento Sans', 'Questrial' => 'Questrial', 'Quicksand' => 'Quicksand', 'Qwigley' => 'Qwigley', 'Radley' => 'Radley', 'Raleway' => 'Raleway', 'Rammetto One' => 'Rammetto One', 'Rancho' => 'Rancho', 'Rationale' => 'Rationale', 'Redressed' => 'Redressed', 'Reenie Beanie' => 'Reenie Beanie', 'Revalia' => 'Revalia', 'Ribeye' => 'Ribeye', 'Ribeye Marrow' => 'Ribeye Marrow', 'Righteous' => 'Righteous', 'Roboto' => 'Roboto', 'Roboto Condensed' => 'Roboto Condensed', 'Rochester' => 'Rochester', 'Rock Salt' => 'Rock Salt', 'Rokkitt' => 'Rokkitt', 'Ropa Sans' => 'Ropa Sans', 'Rosario' => 'Rosario', 'Rosarivo' => 'Rosarivo', 'Rouge Script' => 'Rouge Script', 'Ruda' => 'Ruda', 'Ruge Boogie' => 'Ruge Boogie', 'Ruluko' => 'Ruluko', 'Ruslan Display' => 'Ruslan Display', 'Russo One' => 'Russo One', 'Ruthie' => 'Ruthie', 'Sail' => 'Sail', 'Salsa' => 'Salsa', 'Sanchez' => 'Sanchez', 'Sancreek' => 'Sancreek', 'Sansita One' => 'Sansita One', 'Sarina' => 'Sarina', 'Satisfy' => 'Satisfy', 'Schoolbell' => 'Schoolbell', 'Seaweed Script' => 'Seaweed Script', 'Sevillana' => 'Sevillana', 'Shadows Into Light' => 'Shadows Into Light', 'Shadows Into Light Two' => 'Shadows Into Light Two', 'Shanti' => 'Shanti', 'Share' => 'Share', 'Shojumaru' => 'Shojumaru', 'Short Stack' => 'Short Stack', 'Siemreap' => 'Siemreap', 'Sigmar One' => 'Sigmar One', 'Signika' => 'Signika', 'Signika Negative' => 'Signika Negative', 'Simonetta' => 'Simonetta', 'Sirin Stencil' => 'Sirin Stencil', 'Six Caps' => 'Six Caps', 'Slackey' => 'Slackey', 'Smokum' => 'Smokum', 'Smythe' => 'Smythe', 'Sniglet' => 'Sniglet', 'Snippet' => 'Snippet', 'Sofia' => 'Sofia', 'Sonsie One' => 'Sonsie One', 'Sorts Mill Goudy' => 'Sorts Mill Goudy', 'Special Elite' => 'Special Elite', 'Spicy Rice' => 'Spicy Rice', 'Spinnaker' => 'Spinnaker', 'Spirax' => 'Spirax', 'Squada One' => 'Squada One', 'Stardos Stencil' => 'Stardos Stencil', 'Stint Ultra Condensed' => 'Stint Ultra Condensed', 'Stint Ultra Expanded' => 'Stint Ultra Expanded', 'Stoke' => 'Stoke', 'Sue Ellen Francisco' => 'Sue Ellen Francisco', 'Sunshiney' => 'Sunshiney', 'Supermercado One' => 'Supermercado One', 'Suwannaphum' => 'Suwannaphum', 'Swanky and Moo Moo' => 'Swanky and Moo Moo', 'Syncopate' => 'Syncopate', 'Tangerine' => 'Tangerine', 'Taprom' => 'Taprom', 'Telex' => 'Telex', 'Tenor Sans' => 'Tenor Sans', 'The Girl Next Door' => 'The Girl Next Door', 'Tienne' => 'Tienne', 'Tinos' => 'Tinos', 'Titan One' => 'Titan One', 'Trade Winds' => 'Trade Winds', 'Trocchi' => 'Trocchi', 'Trochut' => 'Trochut', 'Trykker' => 'Trykker', 'Tulpen One' => 'Tulpen One', 'Ubuntu' => 'Ubuntu', 'Ubuntu Condensed' => 'Ubuntu Condensed', 'Ubuntu Mono' => 'Ubuntu Mono', 'Ultra' => 'Ultra', 'Uncial Antiqua' => 'Uncial Antiqua', 'UnifrakturCook' => 'UnifrakturCook', 'UnifrakturMaguntia' => 'UnifrakturMaguntia', 'Unkempt' => 'Unkempt', 'Unlock' => 'Unlock', 'Unna' => 'Unna', 'VT323' => 'VT323', 'Varela' => 'Varela', 'Varela Round' => 'Varela Round', 'Vast Shadow' => 'Vast Shadow', 'Vibur' => 'Vibur', 'Vidaloka' => 'Vidaloka', 'Viga' => 'Viga', 'Voces' => 'Voces', 'Volkhov' => 'Volkhov', 'Vollkorn' => 'Vollkorn', 'Voltaire' => 'Voltaire', 'Waiting for the Sunrise' => 'Waiting for the Sunrise', 'Wallpoet' => 'Wallpoet', 'Walter Turncoat' => 'Walter Turncoat', 'Wellfleet' => 'Wellfleet', 'Wire One' => 'Wire One', 'Yanone Kaffeesatz' => 'Yanone Kaffeesatz', 'Yellowtail' => 'Yellowtail', 'Yeseva One' => 'Yeseva One', 'Yesteryear' => 'Yesteryear', 'Zeyada' => 'Zeyada');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'bold' => 'Bold');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = $data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 1; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted', 'none' => 'None');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
Ejemplo n.º 9
0
 public static function optionsframework_machine($options)
 {
     $pmc_data = get_option(OPTIONS);
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         if (isset($value['id'])) {
             //create array of defaults
             if ($value['type'] == 'multicheck') {
                 if (is_array($value['std'])) {
                     foreach ($value['std'] as $i => $key) {
                         $defaults[$value['id']][$key] = true;
                     }
                 } else {
                     $defaults[$value['id']][$value['std']] = true;
                 }
             } else {
                 if (isset($value['id'])) {
                     $defaults[$value['id']] = $value['std'];
                 }
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             $onclick = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             if (isset($value['onclick'])) {
                 $onclick = $value['onclick'];
             }
             if ($value['type'] != "innerheading") {
                 $output .= '<div class="section section-' . $value['type'] . ' ' . $class . '" onclick = "' . $onclick . '">' . "\n";
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
                 $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
             }
             if ($value['type'] == "innerheading") {
                 $output .= '<div style="margin-top:30px;border-top:3px solid #E7E7E7; border-bottom:3px solid #E7E7E7; background:#E7E7E7; padding:10px 0 0 10px;" class="section section-' . $value['type'] . ' ' . $class . '" onclick = "' . $onclick . '">' . "\n";
                 $output .= '<h1>' . $value['name'] . '</h1>' . "\n";
                 $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
             }
         }
         //End Heading
         switch ($value['type']) {
             case 'innerheading':
                 $output .= '<h2 style="margin:10px 0 0 0 !important;">' . $value['name'] . '</h2>';
                 break;
             case 'text':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $textvalue = str_replace('\\', '', $pmc_data[$value['id']]);
                 $output .= '<input class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $textvalue . '" />';
                 break;
             case 'select':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $option) {
                     $output .= '<option value="' . $option . '" ' . selected($pmc_data[$value['id']], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
             case 'select2':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $output .= '<div class="select_wrapper mini">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<option value="' . $option . '" ' . selected($pmc_data[$value['id']], $option, false) . ' />' . $name . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
             case 'textarea':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = str_replace('\\', '', $pmc_data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
             case "radio":
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($pmc_data[$value['id']], $option, false) . ' />' . $name . '<br/>';
                 }
                 break;
             case "slidercategory":
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $category = '';
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 $categories = get_terms("sliderocategory");
                 $output .= '<option value="0" ' . selected($pmc_data[$value['id']], $category->term_id, false) . ' />None</option>';
                 foreach ($categories as $category) {
                     $output .= '<option value="' . $category->term_id . '" ' . selected($pmc_data[$value['id']], $category->term_id, false) . ' />' . $category->name . '</option>';
                 }
                 $output .= '</select></div>';
                 //$output .= wp_dropdown_categories('show_option_all=Show all&hierarchical=2&name='.$value["id"].'&taxonomy=sliderocategory&selected='.selected($pmc_data[$value["id"]], $option, false).'');
                 break;
             case 'checkbox':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($pmc_data[$value['id']], true, false) . ' />';
                 break;
             case 'multicheck':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $multi_stored = $pmc_data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
             case 'upload':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
             case 'media':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
             case 'slider':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $pmc_data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int, $value['descshow'], $value['team'], $value['nivo']);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         if (isset($slide['order'])) {
                             $oldorder = $slide['order'];
                         } else {
                             $oldorder = 0;
                         }
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int, $value['descshow'], $value['team'], $value['nivo']);
                     }
                 }
                 $output .= '</ul>';
                 if ($value['descshow'] and !$value['team'] and !$value['nivo']) {
                     $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 }
                 if ($value['team'] and !$value['descshow'] and !$value['nivo']) {
                     $output .= '<a href="#" class="button slide_add_button_team">Add New Team</a></div>';
                 }
                 if (!$value['team'] and !$value['descshow'] and !$value['nivo']) {
                     $output .= '<a href="#" class="button slide_add_button_desc">Add New Client</a></div>';
                 }
                 if ($value['nivo'] and !$value['ios']) {
                     $output .= '<a href="#" class="button nivo_slide_add_button">Add New Nivo Slider</a></div>';
                 }
                 if ($value['ios']) {
                     $output .= '<a href="#" class="button nivo_slide_add_button">Add New iosSlider</a></div>';
                 }
                 break;
             case 'sorter':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $sortlists = $pmc_data[$value['id']];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             if ($key == "placebo") {
                                 $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             } else {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
             case 'color':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $pmc_data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $pmc_data[$value['id']] . '" />';
                 break;
             case 'colorrgb':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $pmc_data[$value['id']] . '" data-color-format="rgb"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $pmc_data[$value['id']] . '" />';
                 break;
             case 'sizeColor':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = array('size' => 12, 'color' => '#000000');
                 }
                 $sizeColor = $pmc_data[$value['id']];
                 $output .= '<div class="select_wrapper typography-size">';
                 $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                 for ($i = 9; $i < 44; $i++) {
                     $test = $i . 'px';
                     $output .= '<option value="' . $i . 'px" ' . selected($sizeColor['size'], $test, false) . '>' . $i . 'px</option>';
                 }
                 $output .= '</select></div>';
                 /* Font Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $sizeColor['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-typography of-typography-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $sizeColor['color'] . '" />';
                 break;
             case 'font':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = array('face' => 'arial');
                 }
                 $output .= '<div class="select_wrapper font">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'Helvetica Neue' => 'Helvetica Neue', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'Telex' => 'Telex', 'Droid%20Sans' => 'Droid Sans', 'Convergence' => 'Convergence', 'Oswald' => 'Oswald', 'News%20Cycle' => 'News Cycle', 'Yanone%20Kaffeesatz:300' => 'Yanone Kaffeesatz Light', 'Yanone%20Kaffeesatz:200' => 'Yanone Kaffeesatz ExtraLight', 'Yanone%20Kaffeesatz:400' => 'Yanone Kaffeesatz Regular', 'Duru%20Sans' => 'Duru Sans', 'Open%20Sans' => 'Open Sans', 'PT%20Sans%20Narrow' => 'PT Sans Narrow', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Telex' => 'Telex', 'Sirin%20Stencil' => 'Sirin Stencil', 'Actor' => 'Actor', 'Iceberg' => 'Iceberg', 'Ropa%20Sans' => 'Ropa Sans', 'Amethysta' => 'Amethysta', 'Alegreya' => 'Alegreya', 'Germania One' => 'Germania One', 'Gudea' => 'Gudea', 'Trochut' => 'Trochut', 'Ruluko' => 'Ruluko', 'Alegreya' => 'Alegreya', 'Questrial' => 'Questrial', 'Armata' => 'Armata', 'PT%20Sans' => 'PT Sans');
                 foreach ($faces as $i => $face) {
                     $output .= '<option value="' . $i . '" ' . selected($pmc_data[$value['id']], $i, false) . '>' . $face . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
             case 'typography':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = array('size' => 12, 'face' => 'arial', 'color' => '#000000', 'style' => 'normal');
                 }
                 $typography_stored = $pmc_data[$value['id']];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 44; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'Helvetica Neue' => 'Helvetica Neue', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'Telex' => 'Telex', 'Droid%20Sans' => 'Droid Sans', 'Convergence' => 'Convergence', 'Oswald' => 'Oswald', 'News%20Cycle' => 'News Cycle', 'Yanone%20Kaffeesatz:300' => 'Yanone Kaffeesatz Light', 'Yanone%20Kaffeesatz:200' => 'Yanone Kaffeesatz ExtraLight', 'Yanone%20Kaffeesatz:400' => 'Yanone Kaffeesatz Regular', 'Duru%20Sans' => 'Duru Sans', 'Open%20Sans' => 'Open Sans', 'PT%20Sans%20Narrow' => 'PT Sans Narrow', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Telex' => 'Telex', 'Sirin%20Stencil' => 'Sirin Stencil', 'Actor' => 'Actor', 'Iceberg' => 'Iceberg', 'Ropa%20Sans' => 'Ropa Sans', 'Amethysta' => 'Amethysta', 'Alegreya' => 'Alegreya', 'Germania One' => 'Germania One', 'Gudea' => 'Gudea', 'Trochut' => 'Trochut', 'Ruluko' => 'Ruluko', 'Alegreya' => 'Alegreya', 'Questrial' => 'Questrial', 'Armata' => 'Armata', 'PT%20Sans' => 'PT Sans');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'bold' => 'Bold');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 break;
             case 'border':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 if (!isset($pmc_data[$value['id'] . '_width'])) {
                     $pmc_data[$value['id'] . '_width'] = '';
                 }
                 if (!isset($pmc_data[$value['id'] . '_style'])) {
                     $pmc_data[$value['id'] . '_style'] = '';
                 }
                 if (!isset($pmc_data[$value['id'] . '_color'])) {
                     $pmc_data[$value['id'] . '_color'] = '';
                 }
                 $border_stored = array('width' => $pmc_data[$value['id'] . '_width'], 'style' => $pmc_data[$value['id'] . '_style'], 'color' => $pmc_data[$value['id'] . '_color']);
                 /* Border Width */
                 $border_stored = $pmc_data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
             case 'images':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $i = 0;
                 $select_value = $pmc_data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
             case 'tiles':
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $i = 0;
                 if (isset($pmc_data[$value['id']])) {
                     $select_value = $pmc_data[$value['id']];
                 } else {
                     $select_value = 1;
                 }
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
             case "info":
                 if (!isset($pmc_data[$value['id']])) {
                     $pmc_data[$value['id']] = '';
                 }
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = preg_replace("/[^A-Za-z0-9]/", "", strtolower($value['name']));
                 $jquery_click_hook = preg_replace("/[^A-Za-z0-9]/", "", strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option('BACKUPS');
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>Last Backup :<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($pmc_data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
         }
         // if TYPE is an array, formatted into smaller inputs... ie smaller values
         if (is_array($value['type'])) {
             foreach ($value['type'] as $array) {
                 $id = $array['id'];
                 $std = $array['std'];
                 $saved_std = get_option($id);
                 if ($saved_std != $std) {
                     $std = $saved_std;
                 }
                 $meta = $array['meta'];
                 if ($array['type'] == 'text') {
                     // Only text at this point
                     $output .= '<input class="input-text-small of-input" name="' . $id . '" id="' . $id . '" type="text" value="' . $std . '" />';
                     $output .= '<span class="meta-two">' . $meta . '</span>';
                 }
             }
         }
         if ($value['type'] != 'heading') {
             if ($value['type'] != 'checkbox') {
                 $output .= '<br/>';
             }
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
Ejemplo n.º 10
0
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function Inputs()
 {
     $options = self::$Options;
     $smof_data = of_get_options();
     global $ts_all_fonts;
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         $output = '';
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             $caption = '';
             if (isset($value['caption'])) {
                 $caption = $value['caption'];
             }
             $value['std'] = isset($value['std']) ? $value['std'] : '';
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($smof_data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . esc_attr($value['id']) . '" class="' . esc_attr($fold) . 'section section-' . esc_attr($value['type']) . ' ' . esc_attr($class) . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             //produce caption if there is one
             if (trim($caption)) {
                 $caption = '<div class="caption">' . $caption . '</div>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . $caption . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //radiobox option
             case "hidden":
                 $t_value = '';
                 $t_value = stripslashes($smof_data[$value['id']]);
                 $output .= '<input class="of-input" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" type="' . esc_attr($value['type']) . '" value="' . esc_attr($t_value) . '" />';
                 break;
                 //text input
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = isset($smof_data[$value['id']]) ? stripslashes($smof_data[$value['id']]) : stripslashes($value['std']);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . esc_attr($mini) . '" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" type="' . esc_attr($value['type']) . '" value="' . esc_attr($t_value) . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . esc_attr($mini) . '">';
                 $output .= '<select class="select of-input" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '">';
                 $selected_option = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : (isset($value['std']) ? $value['std'] : "");
                 foreach ($value['options'] as $select_ID => $option) {
                     $select_ID = !isset($select_ID) ? $option : $select_ID;
                     $output .= '<option id="' . esc_attr($select_ID) . '" value="' . esc_attr($select_ID) . '" ' . selected($selected_option, $select_ID, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //select option
             //select option
             case 'multiselect':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select-multiple-wrapper ' . esc_attr($mini) . '">';
                 $output .= '<select class="select-multiple of-input" name="' . esc_attr($value['id']) . '[]" id="' . esc_attr($value['id']) . '" multiple>';
                 $selected_option = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : (isset($value['std']) ? $value['std'] : "");
                 foreach ($value['options'] as $select_ID => $option) {
                     $select_ID = !isset($select_ID) ? $option : $select_ID;
                     if (is_array($selected_option)) {
                         $selected = in_array($select_ID, $selected_option) ? 'selected="selected"' : '';
                     } else {
                         $selected = selected($selected_option, $select_ID, false);
                     }
                     $output .= '<option id="' . esc_attr($select_ID) . '" value="' . esc_attr($select_ID) . '" ' . $selected . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $rows = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                     if (isset($ta_options['rows'])) {
                         $rows = $ta_options['rows'];
                     }
                 }
                 $ta_value = isset($smof_data[$value['id']]) ? stripslashes($smof_data[$value['id']]) : stripslashes($value['std']);
                 $output .= '<textarea class="of-input" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" cols="' . esc_attr($cols) . '" rows="' . $rows . '">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 $checked_val = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : (isset($value['std']) ? $value['std'] : '');
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . esc_attr($value['id']) . '" type="radio" value="' . esc_attr($option) . '" ' . checked($checked_val, $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($smof_data[$value['id']])) {
                     $smof_data[$value['id']] = isset($value['std']) ? $value['std'] : 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . esc_attr($fold) . 'checkbox of-input" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . esc_attr($fold) . 'checkbox of-input" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 //(isset($smof_data[$value['id']]))? $multi_stored = $smof_data[$value['id']] : $multi_stored="";
                 $multi_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : (isset($value['std']) ? $value['std'] : '');
                 foreach ($value['options'] as $key => $option) {
                     if (is_array($multi_stored)) {
                         if (isset($value['keyAsValue']) && $value['keyAsValue'] === true) {
                             $check_this = in_array($key, $multi_stored) ? $key : '';
                         } else {
                             $check_this = isset($multi_stored[$key]) ? $multi_stored[$key] : '';
                         }
                     } else {
                         $check_this = $multi_stored;
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $_val = isset($value['keyAsValue']) && $value['keyAsValue'] === true ? $key : '1';
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . esc_attr($value['id']) . '[' . esc_attr($key) . ']' . '" id="' . esc_attr($of_key_string) . '" value="' . esc_attr($_val) . '" ' . checked($check_this, $_val, false) . ' /><label class="multicheck" for="' . esc_attr($of_key_string) . '">' . $option . '</label><br />';
                 }
                 //$output .= '<pre>'.print_r($multi_stored, true).'</pre>';		// debug
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $color_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 $output .= '<div id="' . esc_attr($value['id']) . '_picker" class="colorSelector"><div style="background-color: ' . esc_attr($color_stored) . '"></div></div>';
                 $output .= '<input class="of-color" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" type="text" value="' . esc_attr($color_stored) . '" />';
                 break;
                 //select option
             //select option
             case 'select_color_scheme':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if (!isset($value['fields']) || !is_array($value['fields'])) {
                     $value['fields'] = array();
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . esc_attr($mini) . '">';
                 $output .= '<select class="select of-input select-color-scheme" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '">';
                 $selected_option = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : (isset($value['std']) ? $value['std'] : "");
                 foreach ($value['options'] as $select_ID => $option) {
                     $select_ID = !isset($select_ID) ? $option : $select_ID;
                     $output .= '<option id="' . esc_attr($select_ID) . '" value="' . esc_attr($select_ID) . '" ' . selected($selected_option, $select_ID, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select>';
                 $output .= '<div class="color-fields-to-change" style="display:none;">';
                 $output .= json_encode($value['fields']);
                 $output .= '</div>';
                 $output .= '</div>';
                 break;
                 //typography option
             //typography option
             case 'big_typography':
             case 'typography':
                 $typography_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 if (is_array($value['std'])) {
                     foreach ($value['std'] as $key => $val) {
                         $typography_stored[$key] = isset($typography_stored[$key]) ? $typography_stored[$key] : $val;
                     }
                 }
                 /* Font Size */
                 if (isset($typography_stored['size']) && isset($value['std']['size'])) {
                     //if(isset($value['std']['size'])) {
                     $typography_stored['size'] = isset($typography_stored['size']) ? $typography_stored['size'] : $value['std']['size'];
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . esc_attr($value['id']) . '[size]" id="' . esc_attr($value['id']) . '_size">';
                     $sizes = array(9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 24, 26, 28, 30, 32, 36, 42, 48, 52, 56, 60, 64, 68, 72);
                     foreach ($sizes as $i) {
                         $test = $i . 'px';
                         $output .= '<option value="' . intval($i) . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . intval($i) . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height']) && isset($value['std']['height'])) {
                     //if(isset($value['std']['height'])) {
                     $typography_stored['height'] = isset($typography_stored['height']) ? $typography_stored['height'] : $value['std']['height'];
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . esc_attr($value['id']) . '[height]" id="' . esc_attr($value['id']) . '_height">';
                     for ($i = 20; $i < 48; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . intval($i) . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . intval($i) . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face']) && isset($value['std']['face'])) {
                     //if(isset($value['std']['face'])) {
                     $typography_stored['face'] = isset($typography_stored['face']) ? $typography_stored['face'] : $value['std']['face'];
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . esc_attr($value['id']) . '[face]" id="' . esc_attr($value['id']) . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                     $faces = $ts_all_fonts;
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . esc_attr($i) . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style']) && isset($value['std']['style'])) {
                     //if(isset($value['std']['style'])) {
                     $typography_stored['style'] = isset($typography_stored['style']) ? $typography_stored['style'] : $value['std']['style'];
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . esc_attr($value['id']) . '[style]" id="' . esc_attr($value['id']) . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . esc_attr($i) . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color']) && isset($value['std']['color'])) {
                     //if(isset($value['std']['color'])) {
                     $typography_stored['color'] = isset($typography_stored['color']) ? $typography_stored['color'] : $value['std']['color'];
                     $output .= '<div id="' . esc_attr($value['id']) . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . esc_attr($value['id']) . '[color]" id="' . esc_attr($value['id']) . '_color" type="text" value="' . esc_attr($typography_stored['color']) . '" />';
                 }
                 break;
             case 'background_positioning':
                 $bg_pos_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 if (is_array($value['std'])) {
                     foreach ($value['std'] as $key => $val) {
                         $bg_pos_stored[$key] = isset($bg_pos_stored[$key]) ? $bg_pos_stored[$key] : $val;
                     }
                 }
                 /* Background Repeat */
                 if (isset($bg_pos_stored['repeat'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Background Repeat">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . esc_attr($value['id']) . '[repeat]" id="' . esc_attr($value['id']) . '_repeat">';
                     foreach ($value['options']['repeat'] as $option) {
                         $output .= '<option value="' . esc_attr($option) . '" ' . selected($bg_pos_stored['repeat'], $option, false) . '>' . $option . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Background Position */
                 if (isset($bg_pos_stored['position'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Background Position">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . esc_attr($value['id']) . '[position]" id="' . esc_attr($value['id']) . '_position">';
                     foreach ($value['options']['position'] as $option) {
                         $output .= '<option value="' . esc_attr($option) . '" ' . selected($bg_pos_stored['position'], $option, false) . '>' . $option . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Background Attachment */
                 if (isset($bg_pos_stored['attachment'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Background Attachment">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . esc_attr($value['id']) . '[attachment]" id="' . esc_attr($value['id']) . '_attachment">';
                     foreach ($value['options']['attachment'] as $option) {
                         $output .= '<option value="' . esc_attr($option) . '" ' . selected($bg_pos_stored['attachment'], $option, false) . '>' . $option . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 break;
             case 'css_shadow':
                 $shadow_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 if (is_array($value['std'])) {
                     foreach ($value['std'] as $key => $val) {
                         $shadow_stored[$key] = isset($shadow_stored[$key]) ? $shadow_stored[$key] : $val;
                     }
                 }
                 /* X-Offset */
                 if (isset($shadow_stored['xoffset'])) {
                     $output .= '<div class="select_wrapper shadow-unit" original-title="X-Offset">';
                     $output .= '<select class="of-typography of-shadow-unit select" name="' . esc_attr($value['id']) . '[xoffset]" id="' . esc_attr($value['id']) . '_xoffset">';
                     $min = isset($value['options']['min']) ? $value['options']['min'] : '-10';
                     $max = isset($value['options']['max']) ? $value['options']['max'] : '10';
                     for ($i = $min; $i <= $max; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . intval($i) . 'px" ' . selected($shadow_stored['xoffset'], $test, false) . '>' . intval($i) . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Y-Offset */
                 if (isset($shadow_stored['yoffset'])) {
                     $output .= '<div class="select_wrapper shadow-unit" original-title="Y-Offset">';
                     $output .= '<select class="of-typography of-shadow-unit select" name="' . esc_attr($value['id']) . '[yoffset]" id="' . esc_attr($value['id']) . '_yoffset">';
                     $min = isset($value['options']['min']) ? $value['options']['min'] : '-10';
                     $max = isset($value['options']['max']) ? $value['options']['max'] : '10';
                     for ($i = $min; $i <= $max; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . intval($i) . 'px" ' . selected($shadow_stored['yoffset'], $test, false) . '>' . intval($i) . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Blur */
                 if (isset($shadow_stored['blur'])) {
                     $output .= '<div class="select_wrapper shadow-unit" original-title="Blur">';
                     $output .= '<select class="of-typography of-shadow-unit select" name="' . esc_attr($value['id']) . '[blur]" id="' . esc_attr($value['id']) . '_blur">';
                     $min = isset($value['options']['min']) ? $value['options']['min'] : '-10';
                     $max = isset($value['options']['max']) ? $value['options']['max'] : '10';
                     for ($i = $min; $i <= $max; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . intval($i) . 'px" ' . selected($shadow_stored['blur'], $test, false) . '>' . intval($i) . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Shadow Color */
                 if (isset($shadow_stored['color'])) {
                     $output .= '<div id="' . esc_attr($value['id']) . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . esc_attr($shadow_stored['color']) . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Shadow Color" name="' . esc_attr($value['id']) . '[color]" id="' . esc_attr($value['id']) . '_color" type="text" value="' . esc_attr($shadow_stored['color']) . '" style="float:left" />';
                 }
                 /* Shadow Opacity */
                 if (isset($shadow_stored['opacity'])) {
                     $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                     //no errors, please
                     $s_val = isset($shadow_stored['opacity']) ? stripslashes($shadow_stored['opacity']) : 100;
                     //values
                     $s_data = 'data-id="' . esc_attr($value['id']) . '_opacity" data-val="' . esc_attr($s_val) . '" data-min="1" data-max="100" data-step="1"';
                     //html output
                     $output .= '<div style="clear:left;margin-top:10px"><input type="text" name="' . esc_attr($value['id']) . '[opacity]" id="' . esc_attr($value['id']) . '_opacity" value="' . esc_attr($s_val) . '" class="mini" />';
                     $output .= '<div id="' . esc_attr($value['id']) . '-opacity-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div></div>';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 if (is_array($value['std'])) {
                     foreach ($value['std'] as $key => $val) {
                         $border_stored[$key] = isset($border_stored[$key]) ? $border_stored[$key] : $val;
                     }
                 }
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . esc_attr($value['id']) . '[width]" id="' . esc_attr($value['id']) . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . intval($i) . '" ' . selected($border_stored['width'], $i, false) . '>' . intval($i) . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . esc_attr($value['id']) . '[style]" id="' . esc_attr($value['id']) . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . esc_attr($i) . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . esc_attr($value['id']) . '_color_picker" class="colorSelector"><div style="background-color: ' . esc_attr($border_stored['color']) . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . esc_attr($value['id']) . '[color]" id="' . esc_attr($value['id']) . '_color" type="text" value="' . esc_attr($border_stored['color']) . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . esc_attr($value['id'] . $i) . '" class="checkbox of-radio-img-radio" value="' . esc_attr($key) . '" name="' . esc_attr($value['id']) . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . esc_url($option) . '" alt="" id="of-radio-img-' . esc_attr($value['id']) . '-button" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . esc_js($value['id'] . $i) . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text_head = '<h3>' . $value['name'] . '</h3>';
                 $info_text_desc = '<p>' . $value['desc'] . '</p>';
                 $info_text = $info_text_head . $info_text_desc;
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 $value['desc'] = '';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . esc_url($src) . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $caption = isset($value['caption']) ? trim($value['caption']) : '';
                 $caption = $caption ? '<span class="caption">' . $caption . '</span>' : '';
                 $class = str_replace(' ', '', strtolower($value['name']));
                 $header_class = isset($value['class']) ? $value['class'] . ' ' . $class : $class;
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 //$menu .= '<li class="'. esc_attr($header_class) .'"><a title="'. esc_attr($value['name']) .'" href="#'. $jquery_click_hook .'">'. $value['name'] .$caption .'</a></li>';
                 $output .= '<div class="group" id="' . esc_attr($jquery_click_hook) . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . esc_attr($value['id']) . '" rel="' . esc_attr($int) . '">';
                 $slides = $smof_data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">' . __('Add New Slide', 'ThemeStockyard') . '</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                 $output .= '<div id="' . esc_attr($value['id']) . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . esc_attr($value['id'] . '_' . $group) . '" class="sortlist_' . esc_attr($value['id']) . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . esc_attr($value['id'] . '[' . $group . '][placebo]') . '" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . esc_attr($key) . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . esc_attr($value['id'] . '[' . $group . '][' . $key . ']') . '" value="' . esc_attr($list) . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . esc_attr($value['id'] . $i) . '" class="checkbox of-radio-tile-radio" value="' . esc_attr($option) . '" name="' . esc_attr($value['id']) . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . esc_attr($selected) . '" style="background: url(' . esc_url($option) . ')" onClick="document.getElementById(\'of-radio-tile-' . esc_js($value['id'] . $i) . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(OF_BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ', 'ThemeStockyard') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="' . __('Backup Options', 'ThemeStockyard') . '">' . __('Backup Options', 'ThemeStockyard') . '</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="' . __('Restore Options', 'ThemeStockyard') . '">' . __('Restore Options', 'ThemeStockyard') . '</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($smof_data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="' . __('Import Options', 'ThemeStockyard') . '">' . __('Import Options', 'ThemeStockyard') . '</a>';
                 break;
                 // google font field
             // google font field
             case 'select_google_font':
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input google_font_select" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '">';
                 $selected_option = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : (isset($value['std']) ? $value['std'] : "");
                 /*foreach ($value['options'] as $select_key => $option) {
                 			$output .= '<option value="'.$select_key.'" ' . selected($selected_option, $option, false) . ' />'.$option.'</option>';
                 		} */
                 foreach ($value['options'] as $option) {
                     $output .= '<option value="' . esc_attr($option) . '" ' . selected($selected_option, $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 if (isset($value['preview']['text'])) {
                     $g_text = $value['preview']['text'];
                 } else {
                     $g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                 }
                 if (isset($value['preview']['size'])) {
                     $g_size = 'style="font-size: ' . esc_attr($value['preview']['size']) . ';"';
                 } else {
                     $g_size = '';
                 }
                 $output .= '<p class="' . esc_attr($value['id']) . '_ggf_previewer google_font_preview" ' . $g_size . '>' . $g_text . '</p>';
                 break;
                 //JQuery UI Slider
             //JQuery UI Slider
             case 'sliderui':
                 $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                 //no errors, please
                 // new-edit
                 //$s_val  = stripslashes($smof_data[$value['id']]);
                 $s_val = isset($smof_data[$value['id']]) ? stripslashes($smof_data[$value['id']]) : $value['std'];
                 if (!isset($value['min'])) {
                     $s_min = '0';
                 } else {
                     $s_min = $value['min'];
                 }
                 if (!isset($value['max'])) {
                     $s_max = $s_min + 1;
                 } else {
                     $s_max = $value['max'];
                 }
                 if (!isset($value['step'])) {
                     $s_step = '1';
                 } else {
                     $s_step = $value['step'];
                 }
                 if (!isset($value['edit'])) {
                     $s_edit = ' readonly="readonly"';
                 } else {
                     $s_edit = '';
                 }
                 if ($s_val == '') {
                     $s_val = $s_min;
                 }
                 //values
                 $s_data = 'data-id="' . esc_attr($value['id']) . '" data-val="' . esc_attr($s_val) . '" data-min="' . esc_attr($s_min) . '" data-max="' . esc_attr($s_max) . '" data-step="' . esc_attr($s_step) . '"';
                 //html output
                 $output .= '<input type="text" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" value="' . esc_attr($s_val) . '" class="mini" ' . $s_edit . ' />';
                 $output .= '<div id="' . esc_attr($value['id']) . '-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div>';
                 break;
                 //Switch option
             //Switch option
             case 'switch':
                 if (!isset($smof_data[$value['id']])) {
                     $smof_data[$value['id']] = isset($value['std']) ? $value['std'] : 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "s_fld ";
                 }
                 $cb_enabled = $cb_disabled = '';
                 //no errors, please
                 //Get selected
                 //if ($smof_data[$value['id']] == 1){
                 if ($smof_data[$value['id']]) {
                     $cb_enabled = ' selected';
                     $cb_disabled = '';
                 } else {
                     $cb_enabled = '';
                     $cb_disabled = ' selected';
                 }
                 //Label ON
                 if (!isset($value['on'])) {
                     $on = "On";
                 } else {
                     $on = $value['on'];
                 }
                 //Label OFF
                 if (!isset($value['off'])) {
                     $off = "Off";
                 } else {
                     $off = $value['off'];
                 }
                 $output .= '<p class="switch-options">';
                 $output .= '<label class="' . esc_attr($fold) . 'cb-enable' . esc_attr($cb_enabled) . '" data-id="' . esc_attr($value['id']) . '"><span>' . $on . '</span></label>';
                 $output .= '<label class="' . esc_attr($fold) . 'cb-disable' . esc_attr($cb_disabled) . '" data-id="' . esc_attr($value['id']) . '"><span>' . $off . '</span></label>';
                 $output .= '<input type="hidden" class="' . esc_attr($fold) . 'checkbox of-input" name="' . esc_attr($value['id']) . '" id="' . esc_attr($value['id']) . '" value="0"/>';
                 $output .= '<input type="checkbox" id="' . esc_attr($value['id']) . '" class="' . esc_attr($fold) . 'checkbox of-input main_checkbox" name="' . esc_attr($value['id']) . '"  value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                 $output .= '</p>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
         $allowed_tags = '<div><p><ul><li><ol><span><a><strong><em><h3><h1><h2><h4><h5><h6><select><input><textarea><button><label><option><img><br>';
         echo strip_tags($output, $allowed_tags);
         // new
     }
     $output = '';
     // new
     $output .= '</div>';
     echo strip_tags($output, '<div>');
 }
 function optionsframework_medialibrary_uploader($_id, $_value, $_mode = 'full', $_desc = '', $_postid = 0, $_name = '')
 {
     $optionsframework_settings = get_option('optionsframework');
     // Gets the unique option id
     $option_name = $optionsframework_settings['id'];
     $output = '';
     $id = '';
     $class = '';
     $int = '';
     $value = '';
     $name = '';
     $att_id = 0;
     $id = strip_tags(strtolower($_id));
     // Change for each field, using a "silent" post. If no post is present, one will be created.
     $int = optionsframework_mlu_get_silentpost($id);
     // If a value is passed and we don't have a stored value, use the value that's passed through.
     if ($_mode == 'with_id') {
         $value = !empty($_value[0]) ? $_value[0] : '';
         $att_id = !empty($_value[1]) ? intval($_value[1]) : 0;
     } elseif ($_value != '' && $value == '') {
         $value = $_value;
     }
     if ($_name != '') {
         $name = $option_name . '[' . $id . '][' . $_name . ']';
     } else {
         $name = $option_name . '[' . $id . ']';
     }
     if ($value) {
         $class = ' has-file';
     }
     if ($_mode == 'with_id') {
         $output .= '<input id="' . $id . '" class="upload' . $class . '" type="text" name="' . $name . '[uri]" value="' . $value . '" />' . "\n";
         $output .= '<input type="hidden" class="upload-id" name="' . $name . '[id]" value="' . $att_id . '" />' . "\n";
     } else {
         $output .= '<input id="' . $id . '" class="upload' . $class . '" type="text" name="' . $name . '" value="' . $value . '" />' . "\n";
     }
     $output .= '<input id="upload_' . $id . '" class="upload_button button" type="button" value="' . _x('Upload', 'backend', LANGUAGE_ZONE) . '" rel="' . $int . '" />' . "\n";
     if ($_desc != '') {
         $output .= '<span class="of_metabox_desc">' . $_desc . '</span>' . "\n";
     }
     $output .= '<div class="screenshot" id="' . $id . '_image">' . "\n";
     if ($value != '') {
         $remove = '<a href="javascript:(void);" class="mlu_remove button">Remove</a>';
         $image = preg_match('/(^.*\\.jpg|jpeg|png|gif|ico*)/i', $value);
         if ($image) {
             $value = dt_get_of_uploaded_image($value);
             $output .= '<img src="' . $value . '" alt="" />' . $remove . '';
         } else {
             $parts = explode("/", $value);
             for ($i = 0; $i < sizeof($parts); ++$i) {
                 $title = $parts[$i];
             }
             // No output preview if it's not an image.
             $output .= '';
             // Standard generic output if it's not an image.
             $title = _x('View File', 'backend', LANGUAGE_ZONE);
             $output .= '<div class="no_image"><span class="file_link"><a href="' . $value . '" target="_blank" rel="external">' . $title . '</a></span>' . $remove . '</div>';
         }
     }
     $output .= '</div>' . "\n";
     return $output;
 }
Ejemplo n.º 12
0
    /**
     * Process options data and build option fields
     *
     * @uses get_option()
     *
     * @access public
     * @since 1.0.0
     *
     * @return array
     */
    public static function optionsframework_machine($options)
    {
        $smof_data = get_option(OPTIONS);
        $defaults = array();
        $counter = 0;
        $menu = '';
        $output = '';
        foreach ($options as $value) {
            $counter++;
            $val = '';
            //create array of defaults
            if ($value['type'] == 'multicheck') {
                if (is_array($value['std'])) {
                    foreach ($value['std'] as $i => $key) {
                        $defaults[$value['id']][$key] = true;
                    }
                } else {
                    $defaults[$value['id']][$value['std']] = true;
                }
            } else {
                if (isset($value['id'])) {
                    $defaults[$value['id']] = $value['std'];
                }
            }
            //Start Heading
            if ($value['type'] != "heading") {
                $class = '';
                if (isset($value['class'])) {
                    $class = $value['class'];
                }
                //hide items in checkbox group
                $fold = '';
                if (array_key_exists("fold", $value)) {
                    if ($smof_data[$value['fold']]) {
                        $fold = "f_" . $value['fold'] . " ";
                    } else {
                        $fold = "f_" . $value['fold'] . " temphide ";
                    }
                }
                $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
                //only show header if 'name' value exists
                if ($value['name']) {
                    $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
                }
                $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
            }
            //End Heading
            //switch statement to handle various options type
            switch ($value['type']) {
                //text input
                case 'text':
                    $t_value = '';
                    $t_value = stripslashes($smof_data[$value['id']]);
                    $mini = '';
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    if ($value['mod'] == 'mini') {
                        $mini = 'mini';
                    }
                    $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                    break;
                    //backup and restore options data
                //backup and restore options data
                case 'import-demo-data':
                    $install_url = admin_url('admin.php?import_data_content=true');
                    $output .= '<div class="backup-box">';
                    $output .= '<div class="instructions"></div>' . "\n";
                    $output .= '<a onclick="return confirm(\'Import data now ?\')" href="' . $install_url . '" class="button" title="Import Demo Data">Import Demo Data</a>';
                    $output .= '</div>';
                    break;
                    //select option
                //select option
                case 'select':
                    $mini = '';
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    if ($value['mod'] == 'mini') {
                        $mini = 'mini';
                    }
                    $output .= '<div class="select_wrapper ' . $mini . '">';
                    $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                    foreach ($value['options'] as $select_ID => $option) {
                        $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($smof_data[$value['id']], $option, false) . ' />' . $option . '</option>';
                    }
                    $output .= '</select></div>';
                    break;
                case 'select2':
                    $mini = '';
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    if ($value['mod'] == 'mini') {
                        $mini = 'mini';
                    }
                    $output .= '<div class="select_wrapper ' . $mini . '">';
                    $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                    foreach ($value['options'] as $select_ID => $option) {
                        $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($smof_data[$value['id']], $select_ID, false) . ' />' . $option . '</option>';
                    }
                    $output .= '</select></div>';
                    break;
                case "content":
                    /* default data */
                    $content_select = array('latest' => 'Latest Post', 'category' => 'Category', 'tag' => 'Tag');
                    $select_content_id = $value['id'] . '-content';
                    $output .= '<div class="select_wrapper">';
                    $output .= '<select class="select of-input" name="' . $value['id'] . '[content]" id="' . $select_content_id . '">';
                    foreach ($content_select as $select_ID => $option) {
                        $id_select = isset($smof_data[$value['id']]['content']) ? $smof_data[$value['id']]['content'] : '0';
                        $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($id_select, $select_ID, false) . ' />' . $option . '</option>';
                    }
                    $output .= '</select></div>';
                    /* control */
                    $output .= '<div class="controls" id="' . $value['id'] . '-child">';
                    /* Categori */
                    $cate_select = isset($smof_data[$value['id']]['content']) ? $smof_data[$value['id']]['content'] : '0';
                    $output .= '<div class="' . ('category' == $cate_select ? '' : 'hide ') . 'block-child content-category"><label for="">Category</label><br /><select class="select of-input" name="' . $value['id'] . '[category]">';
                    foreach ($value['cate'] as $select_ID => $option) {
                        $id_select = isset($smof_data[$value['id']]['category']) ? $smof_data[$value['id']]['category'] : '0';
                        $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($id_select, $select_ID, false) . ' />' . $option . '</option>';
                    }
                    $output .= '</select></div>';
                    /* Tag */
                    $tag_selected = isset($smof_data[$value['id']]['content']) ? $smof_data[$value['id']]['content'] : '0';
                    $tag_value = isset($smof_data[$value['id']]['tag']) ? $smof_data[$value['id']]['tag'] : '';
                    $output .= '<div class="' . ('tag' == $tag_selected ? '' : 'hide ') . 'block-child content-tag">
							<label for="">Tags <small style="color:#999999">Separate tags with commas</small></label>
							<input class="of-input" value="' . $tag_value . '" type="text" name="' . $value['id'] . '[tag]" />
							
						</div>';
                    $output .= '</div>';
                    /* end control */
                    /* javascript to handler */
                    $output .= '<script>
					jQuery(document).ready(function($){
						$(\'#' . $select_content_id . '\').change(function(){
							var select = $(this).val();
							$(\'#' . $value['id'] . '-child\').find(\'div.block-child\').hide(\'fast\');
							if(select ==\'category\'){
								$(\'#' . $value['id'] . '-child\').find(\'div.content-category\').show(\'fast\');
							}
							else if(select ==\'tag\'){
								$(\'#' . $value['id'] . '-child\').find(\'div.content-tag\').show(\'fast\');
							}
						});
					}); </script> ';
                    break;
                case 'select_news_box':
                    $i = 0;
                    $child_op = '';
                    $select_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                    foreach ($value['options'] as $key => $option) {
                        $i++;
                        $checked = '';
                        $selected = '';
                        $hide_child_op = ' class="hide" ';
                        $op = isset($select_value['op']) ? $select_value['op'] : '';
                        if (NULL != checked($op, $key, false)) {
                            $checked = checked($op, $key, false);
                            $selected = 'of-radio-img-selected';
                            $hide_child_op = ' ';
                        }
                        $output .= '<span>';
                        $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '[op]" ' . $checked . ' />';
                        $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                        $output .= '<img 
							src="' . $option . '" 
							data-show="of-list-banner-' . $value['id'] . $i . '"
							alt="" 
							class="of-op-news-' . $value['id'] . ' of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                        $output .= '</span>';
                        if ('list' == $key) {
                            $child_op .= '<div ' . $hide_child_op . ' id="of-list-banner-' . $value['id'] . $i . '">';
                            $child_op .= '<select class="select of-input" name="' . $value['id'] . '[list][]">';
                            foreach ($value['cate'] as $select_ID => $option) {
                                if (is_array($select_value)) {
                                    $id_select = isset($select_value['list'][0]) ? $select_value['list'][0] : '0';
                                } else {
                                    $id_select = 0;
                                }
                                $child_op .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($id_select, $select_ID, false) . ' />' . $option . '</option>';
                            }
                            $child_op .= '</select>';
                            $child_op .= '<select class="select of-input" name="' . $value['id'] . '[list][]">';
                            foreach ($value['cate'] as $select_ID => $option) {
                                $id_select = isset($select_value['list'][1]) ? $select_value['list'][1] : '0';
                                $child_op .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($id_select, $select_ID, false) . ' />' . $option . '</option>';
                            }
                            $child_op .= '</select>';
                            $child_op .= '</div>';
                        } else {
                            if ('block' == $key) {
                                $child_op .= '<div  ' . $hide_child_op . ' id="of-list-banner-' . $value['id'] . $i . '">';
                                $child_op .= '<select class="select of-input" name="' . $value['id'] . '[block][]">';
                                foreach ($value['cate'] as $select_ID => $option) {
                                    if (is_array($select_value)) {
                                        $id_select = isset($select_value['block'][0]) ? $select_value['block'][0] : '0';
                                    } else {
                                        $id_select = 0;
                                    }
                                    $child_op .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($id_select, $select_ID, false) . ' />' . $option . '</option>';
                                }
                                $child_op .= '</select>';
                                $child_op .= '</div>';
                            } else {
                                if ('feed' == $key) {
                                    $feed_value = '';
                                    $feed_capvalue = '';
                                    $feed_value = stripslashes($smof_data[$value['id']]['feed']);
                                    $feed_capvalue = stripslashes($smof_data[$value['id']]['cap']);
                                    $child_op .= '<div  ' . $hide_child_op . ' id="of-list-banner-' . $value['id'] . $i . '">';
                                    $child_op .= '<label>feed url</label> <input type="text" value="' . $feed_value . '"  name="' . $value['id'] . '[feed]" class="of-input ">';
                                    $child_op .= '<label>feed caption</label> <input type="text" value="' . $feed_capvalue . '"  name="' . $value['id'] . '[cap]" class="of-input ">';
                                    $child_op .= '</div>';
                                } else {
                                    if ('shortcode' == $key) {
                                        $shortcode_value = '';
                                        $shortcode_capvalue = '';
                                        $shortcode_value = stripslashes($smof_data[$value['id']]['shortcode']);
                                        $shortcode_capvalue = stripslashes($smof_data[$value['id']]['sccap']);
                                        $child_op .= '<div  ' . $hide_child_op . ' id="of-list-banner-' . $value['id'] . $i . '">';
                                        $child_op .= '<label>shortcode</label> <textarea type="text" name="' . $value['id'] . '[shortcode]" class="of-input ">' . $shortcode_value . '</textarea>';
                                        $child_op .= '<label>shortcode caption</label> <input type="text" value="' . $shortcode_capvalue . '"  name="' . $value['id'] . '[sccap]" class="of-input ">';
                                        $child_op .= '</div>';
                                    }
                                }
                            }
                        }
                    }
                    $output .= '<div class="controls" id="news_box_' . $value['id'] . '">' . $child_op . '</div>';
                    /* javascript to handler */
                    $output .= '<script>
					jQuery(document).ready(function($){
						$(\'.of-op-news-' . $value['id'] . '\').click(function(){
							$(\'#news_box_' . $value['id'] . ' div\').hide();
							var show_op = $(this).attr(\'data-show\');
							$(\'#\'+show_op).show();
						});
						}); </script> ';
                    break;
                    //textarea option
                //textarea option
                case 'textarea':
                    $cols = '8';
                    $ta_value = '';
                    if (isset($value['options'])) {
                        $ta_options = $value['options'];
                        if (isset($ta_options['cols'])) {
                            $cols = $ta_options['cols'];
                        }
                    }
                    $ta_value = stripslashes($smof_data[$value['id']]);
                    $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                    break;
                    //radiobox option
                //radiobox option
                case "radio":
                    $checked = isset($smof_data[$value['id']]) ? checked($smof_data[$value['id']], $option, false) : '';
                    foreach ($value['options'] as $option => $name) {
                        $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($smof_data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                    }
                    break;
                    //checkbox option
                //checkbox option
                case 'checkbox':
                    if (!isset($smof_data[$value['id']])) {
                        $smof_data[$value['id']] = 0;
                    }
                    $fold = '';
                    if (array_key_exists("folds", $value)) {
                        $fold = "fld ";
                    }
                    $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                    $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                    break;
                    //multiple checkbox option
                //multiple checkbox option
                case 'multicheck':
                    isset($smof_data[$value['id']]) ? $multi_stored = $smof_data[$value['id']] : ($multi_stored = "");
                    foreach ($value['options'] as $key => $option) {
                        if (!isset($multi_stored[$key])) {
                            $multi_stored[$key] = '';
                        }
                        $of_key_string = $value['id'] . '_' . $key;
                        $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                    }
                    break;
                    //ajax image upload option
                //ajax image upload option
                case 'upload':
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                    break;
                    // native media library uploader - @uses optionsframework_media_uploader_function()
                // native media library uploader - @uses optionsframework_media_uploader_function()
                case 'media':
                    $_id = strip_tags(strtolower($value['id']));
                    $int = '';
                    $int = optionsframework_mlu_get_silentpost($_id);
                    if (!isset($value['mod'])) {
                        $value['mod'] = '';
                    }
                    $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                    // New AJAX Uploader using Media Library
                    break;
                    //colorpicker option
                //colorpicker option
                case 'color':
                    $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $smof_data[$value['id']] . '"></div></div>';
                    $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $smof_data[$value['id']] . '" />';
                    break;
                    //typography option
                //typography option
                case 'typography':
                    $typography_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                    /* Font Size */
                    if (isset($typography_stored['size'])) {
                        $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                        $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                        for ($i = 9; $i <= 72; $i++) {
                            $test = $i . 'px';
                            $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Line Height */
                    if (isset($typography_stored['height'])) {
                        $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                        $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                        for ($i = 20; $i < 38; $i++) {
                            $test = $i . 'px';
                            $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Font Face */
                    if (isset($typography_stored['face'])) {
                        $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                        $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                        $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'metrophobic' => 'metrophobic', 'helvetica' => 'Helvetica');
                        foreach ($faces as $i => $face) {
                            $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Font Face2 */
                    /*den set gfont face2 to typography*/
                    if (isset($typography_stored['face2'])) {
                        $output .= '<div id="' . $value['id'] . '" class="select_wrapper typography-face section-select_google_font" original-title="Font family">';
                        //den set default face;
                        $faces = $value['options'];
                        $output .= '<select class="of-typography of-typography-face2 select google_font_select" name="' . $value['id'] . '[face2]" id="' . $value['id'] . '_face2">';
                        foreach ($faces as $i => $face2) {
                            $output .= '<option value="' . $i . '" ' . selected($typography_stored['face2'], $i, false) . '>' . $face2 . '</option>';
                        }
                        $output .= '</select></div>';
                        if (isset($value['preview']['text'])) {
                            $g_text = $value['preview']['text'];
                        } else {
                            $g_text = 'Grumpy wizards make toxic brew for the evil Queen and Jack.';
                        }
                        if (isset($value['preview']['size'])) {
                            $g_size = 'style="font-size: ' . $value['preview']['size'] . ';"';
                        } else {
                            $g_size = '';
                        }
                        //	$g_size = '';
                        //	$g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                    }
                    /* Font Weight */
                    if (isset($typography_stored['style'])) {
                        $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                        $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                        $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                        foreach ($styles as $i => $style) {
                            $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                        }
                        $output .= '</select></div>';
                    }
                    /* Font Color */
                    if (isset($typography_stored['color'])) {
                        $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                        $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                    }
                    if (isset($typography_stored['face2'])) {
                        //den set di smof.js
                        $output .= '<span id="show_' . $value['id'] . '" class="button typoshow" rel="">Show</span>';
                        $output .= '<p class="' . $value['id'] . '_face2_ggf_previewer _previewer google_font_preview ihide" ' . $g_size . '>' . $g_text . '</p>';
                    }
                    break;
                    //border option
                //border option
                case 'border':
                    /* Border Width */
                    $border_stored = $smof_data[$value['id']];
                    $output .= '<div class="select_wrapper border-width">';
                    $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                    for ($i = 0; $i < 21; $i++) {
                        $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                    }
                    $output .= '</select></div>';
                    /* Border Style */
                    $output .= '<div class="select_wrapper border-style">';
                    $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                    $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                    foreach ($styles as $i => $style) {
                        $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                    }
                    $output .= '</select></div>';
                    /* Border Color */
                    $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                    $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                    break;
                    //images checkbox - use image as checkboxes
                //images checkbox - use image as checkboxes
                case 'images':
                    $i = 0;
                    $select_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                    foreach ($value['options'] as $key => $option) {
                        $i++;
                        $checked = '';
                        $selected = '';
                        if (NULL != checked($select_value, $key, false)) {
                            $checked = checked($select_value, $key, false);
                            $selected = 'of-radio-img-selected';
                        }
                        $output .= '<span>';
                        $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                        $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                        $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                        $output .= '</span>';
                    }
                    break;
                    //info (for small intro box etc)
                //info (for small intro box etc)
                case "info":
                    $info_text = $value['std'];
                    $output .= '<div class="of-info">' . $info_text . '</div>';
                    break;
                    //display a single image
                //display a single image
                case "image":
                    $src = $value['std'];
                    $output .= '<img src="' . $src . '">';
                    break;
                    //tab heading
                //tab heading
                case 'heading':
                    if ($counter >= 2) {
                        $output .= '</div>' . "\n";
                    }
                    $header_class = str_replace(' ', '', strtolower($value['name']));
                    $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                    $jquery_click_hook = "of-option-" . $jquery_click_hook;
                    $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                    $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                    break;
                    //drag & drop slide manager
                //drag & drop slide manager
                case 'slider':
                    $_id = strip_tags(strtolower($value['id']));
                    $int = '';
                    $int = optionsframework_mlu_get_silentpost($_id);
                    $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                    $slides = $smof_data[$value['id']];
                    $count = count($slides);
                    if ($count < 2) {
                        $oldorder = 1;
                        $order = 1;
                        $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                    } else {
                        $i = 0;
                        foreach ($slides as $slide) {
                            $oldorder = $slide['order'];
                            $i++;
                            $order = $i;
                            $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                        }
                    }
                    $output .= '</ul>';
                    $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                    break;
                    //drag & drop block manager
                //drag & drop block manager
                case 'sorter':
                    $sortlists = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                    $output .= '<div id="' . $value['id'] . '" class="sorter">';
                    if ($sortlists) {
                        foreach ($sortlists as $group => $sortlist) {
                            $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                            $output .= '<h3>' . $group . '</h3>';
                            foreach ($sortlist as $key => $list) {
                                $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                                if ($key != "placebo") {
                                    $output .= '<li id="' . $key . '" class="sortee">';
                                    $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                    $output .= $list;
                                    $output .= '</li>';
                                }
                            }
                            $output .= '</ul>';
                        }
                    }
                    $output .= '</div>';
                    break;
                    //background images option
                //background images option
                case 'tiles':
                    $i = 0;
                    $select_value = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                    foreach ($value['options'] as $key => $option) {
                        $i++;
                        $checked = '';
                        $selected = '';
                        if (NULL != checked($select_value, $option, false)) {
                            $checked = checked($select_value, $option, false);
                            $selected = 'of-radio-tile-selected';
                        }
                        $output .= '<span>';
                        $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                        $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                        $output .= '</span>';
                    }
                    break;
                    //backup and restore options data
                //backup and restore options data
                case 'backup':
                    $instructions = $value['desc'];
                    $backup = get_option(BACKUPS);
                    if (!isset($backup['backup_log'])) {
                        $log = 'No backups yet';
                    } else {
                        $log = $backup['backup_log'];
                    }
                    $output .= '<div class="backup-box">';
                    $output .= '<div class="instructions">' . $instructions . "\n";
                    $output .= '<p><strong>' . __('Last Backup :', 'mtcframework') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                    $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                    $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                    $output .= '</div>';
                    break;
                    //export or import data between different installs
                //export or import data between different installs
                case 'transfer':
                    $instructions = $value['desc'];
                    $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($smof_data)) . '</textarea>' . "\n";
                    $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                    break;
                    // google font field
                // google font field
                case 'select_google_font':
                    $output .= '<div class="select_wrapper">';
                    $output .= '<select class="select of-input google_font_select" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                    foreach ($value['options'] as $select_key => $option) {
                        $output .= '<option value="' . $select_key . '" ' . selected(isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : "", $option, false) . ' />' . $option . '</option>';
                    }
                    $output .= '</select></div>';
                    if (isset($value['preview']['text'])) {
                        $g_text = $value['preview']['text'];
                    } else {
                        $g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                    }
                    if (isset($value['preview']['size'])) {
                        $g_size = 'style="font-size: ' . $value['preview']['size'] . ';"';
                    } else {
                        $g_size = '';
                    }
                    $output .= '<p class="' . $value['id'] . '_ggf_previewer google_font_preview" ' . $g_size . '>' . $g_text . '</p>';
                    break;
                    //JQuery UI Slider
                //JQuery UI Slider
                case 'sliderui':
                    $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                    //no errors, please
                    $s_val = stripslashes($smof_data[$value['id']]);
                    if (!isset($value['min'])) {
                        $s_min = '0';
                    } else {
                        $s_min = $value['min'];
                    }
                    if (!isset($value['max'])) {
                        $s_max = $s_min + 1;
                    } else {
                        $s_max = $value['max'];
                    }
                    if (!isset($value['step'])) {
                        $s_step = '1';
                    } else {
                        $s_step = $value['step'];
                    }
                    if (!isset($value['edit'])) {
                        $s_edit = ' readonly="readonly"';
                    } else {
                        $s_edit = '';
                    }
                    if ($s_val == '') {
                        $s_val = $s_min;
                    }
                    //values
                    $s_data = 'data-id="' . $value['id'] . '" data-val="' . $s_val . '" data-min="' . $s_min . '" data-max="' . $s_max . '" data-step="' . $s_step . '"';
                    //html output
                    $output .= '<input type="text" name="' . $value['id'] . '" id="' . $value['id'] . '" value="' . $s_val . '" class="mini" ' . $s_edit . ' />';
                    $output .= '<div id="' . $value['id'] . '-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div>';
                    break;
                    //Switch option
                //Switch option
                case 'switch':
                    if (!isset($smof_data[$value['id']])) {
                        $smof_data[$value['id']] = 0;
                    }
                    $fold = '';
                    if (array_key_exists("folds", $value)) {
                        $fold = "s_fld ";
                    }
                    $cb_enabled = $cb_disabled = '';
                    //no errors, please
                    //Get selected
                    if ($smof_data[$value['id']] == 1) {
                        $cb_enabled = ' selected';
                        $cb_disabled = '';
                    } else {
                        $cb_enabled = '';
                        $cb_disabled = ' selected';
                    }
                    //Label ON
                    if (!isset($value['on'])) {
                        $on = "On";
                    } else {
                        $on = $value['on'];
                    }
                    //Label OFF
                    if (!isset($value['off'])) {
                        $off = "Off";
                    } else {
                        $off = $value['off'];
                    }
                    $output .= '<p class="switch-options">';
                    $output .= '<label class="' . $fold . 'cb-enable' . $cb_enabled . '" data-id="' . $value['id'] . '"><span>' . $on . '</span></label>';
                    $output .= '<label class="' . $fold . 'cb-disable' . $cb_disabled . '" data-id="' . $value['id'] . '"><span>' . $off . '</span></label>';
                    $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                    $output .= '<input type="checkbox" id="' . $value['id'] . '" class="' . $fold . 'checkbox of-input main_checkbox" name="' . $value['id'] . '"  value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                    $output .= '</p>';
                    break;
                    //den add multiselect
                //den add multiselect
                case 'multiselect':
                    $mini = isset($value['mini']) ? 'mini' : '';
                    $selected_data = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : array();
                    $output .= '<div class="multiselect_wrapper ' . $mini . '">';
                    $output .= '<select multiple="multiple" class="e1 select of-input" name="' . $value['id'] . '[]" id="' . $value['id'] . '">';
                    foreach ($value['options'] as $select_ID => $option) {
                        $selected = in_array($select_ID, $selected_data) ? 'selected="selected"' : '';
                        $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . $selected . ' />' . $option . '</option>';
                    }
                    $output .= '</select></div>';
                    break;
                    /*
                    				 			
                    					(isset($smof_data[$value['id']]))? $multi_stored = $smof_data[$value['id']] : $multi_stored="";
                    								
                    					foreach ($value['options'] as $key => $option) {
                    						if (!isset($multi_stored[$key])) {$multi_stored[$key] = '';}
                    						$of_key_string = $value['id'] . '_' . $key;
                    						$output .= '<input type="checkbox" class="checkbox of-input" name="'.$value['id'].'['.$key.']'.'" id="'. $of_key_string .'" value="1" '. checked($multi_stored[$key], 1, false) .' /><label class="multicheck" for="'. $of_key_string .'">'. $option .'</label><br />';								
                    					}			 
                    */
            }
            //description of each option
            if ($value['type'] != 'heading') {
                if (!isset($value['desc'])) {
                    $explain_value = '';
                } else {
                    $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
                }
                $output .= '</div>' . $explain_value . "\n";
                $output .= '<div class="clear"> </div></div></div>' . "\n";
            }
        }
        $output .= '</div>';
        return array($output, $menu, $defaults);
    }
Ejemplo n.º 13
0
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     //$data = of_get_options();
     //$ish_options = of_get_options();
     global $ish_options;
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     $output .= ishyoboy_get_google_fonts_js();
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 //*****************
                 //Added by IshYoBoy
                 if (substr($value['fold'], 0, 4) == 'off_') {
                     $temp_id = substr($value['fold'], 4);
                     if ($ish_options[$temp_id]) {
                         $fold = "f_" . $value['fold'] . " temphide ";
                     } else {
                         $fold = "f_" . $value['fold'] . " ";
                     }
                 } else {
                     if ($ish_options[$value['fold']]) {
                         $fold = "f_" . $value['fold'] . " ";
                     } else {
                         $fold = "f_" . $value['fold'] . " temphide ";
                     }
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 // Updated by IshYoBoy
                 $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                 $t_value = stripslashes($def);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     //$output .= '<option id="' . $select_ID . '" value="'.$option.'" ' . selected($ish_options[$value['id']], $option, false) . ' />'.$option.'</option>';
                     // IshYoBoy modification:   always use the array key as value not the text of the option.
                     //                          You must always provide an assoc array Array('key', 'Value name');
                     $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                     $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($def, $select_ID, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 // Updated by IshYoBoy
                 $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                 $ta_value = stripslashes($def);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case 'radio':
                 foreach ($value['options'] as $option => $name) {
                     // Updated by IshYoBoy
                     $checked = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                     $output .= '<span class="of-radio-line"><input class="of-input of-radio" name="' . $value['id'] . '" id="' . $value['id'] . '_' . $option . '" type="radio" value="' . $option . '" ' . checked($checked, $option, false) . ' /><label class="radio" for="' . $value['id'] . '_' . $option . '">' . $name . '</label></span>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($ish_options[$value['id']])) {
                     $ish_options[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($ish_options[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 isset($ish_options[$value['id']]) ? $multi_stored = $ish_options[$value['id']] : ($multi_stored = "");
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 // Updated by IshYoBoy
                 $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $def . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $def . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 20; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //typography option
             //typography option
             case 'typography_ishyoboy':
                 $typography_stored = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 20; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $g_faces = json_decode(ishyoboy_get_google_fonts());
                     $r_faces = ishyoboy_get_regular_fonts();
                     if (isset($ish_options[$value['id'] . '-type']) && 'regular' == $ish_options[$value['id'] . '-type']) {
                         foreach ($r_faces as $i => $face) {
                             $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                         }
                     } else {
                         foreach ($g_faces as $i => $face) {
                             $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $i . '</option>';
                         }
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $g_font_variants = json_decode(ishyoboy_get_google_fonts(), true);
                     $r_font_variants = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     if (isset($ish_options[$value['id'] . '-type']) && 'regular' == $ish_options[$value['id'] . '-type']) {
                         // Regular Font
                         foreach ($r_font_variants as $i => $style) {
                             $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                         }
                     } else {
                         // Google Font
                         foreach ($g_font_variants[$typography_stored['face']]['variants'] as $style) {
                             $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $style, false) . '>' . $style . '</option>';
                         }
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 //var_dump($typography_stored);
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 // Updated by IshYoBoy
                 $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                 $border_stored = $def;
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : (isset($value['std']) ? $value['std'] : '');
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "twitter-info":
                 $info_text = $value['std'];
                 $output .= __('To be able to use the Twitter Widget you need to create an application under your
                 twitter account which will allow your widget to communicate with twitter servers and receive your latest posts. Please follow each of the steps below:', 'ishyoboy');
                 $output .= '<br><br><ol>';
                 $output .= '<li>' . __('Add a new Twitter application by visiting:', 'ishyoboy') . ' <a href="https://dev.twitter.com/apps" target="_blank">https://dev.twitter.com/apps</a>' . '</li>';
                 $output .= '<li>' . __('Log in with your twitter account', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('Click on the "Create a new application" button or use an already existing one.', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('Fill in all fields and Callback URL (Website and URLs should start with "http://").', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('Agree to the rules, fill out the captcha, and submit your application.', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('After successful creation, generate an access token by clicking the "Generate my access token." button', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('Wait for a few seconds for the server to reflect the changes and refresh the page.', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('Copy all the keys into the fields below. Make sure not to copy the URLs but the random strings.', 'ishyoboy') . '</li>';
                 $output .= '<li>' . __('Save all changes. You can now create your Twitter Widget in "Appearance -> Widgets".', 'ishyoboy') . '</li>';
                 $output .= '</ol>';
                 $output .= $info_text;
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "ish-acc-section":
                 $output .= '';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $custom_class = isset($value['class']) ? ' ' . $value['class'] : '';
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 // Updated by IshYoBoy
                 if (isset($value['ish-updates']) && '1' == $value['ish-updates'] && Options_Machine::ishyoboy_updates_available()) {
                     $menu .= '<li class="' . $header_class . $custom_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '" class="ish-updates"><span class="title">' . $value['name'] . '</span><span class="update-plugins count-1"><span class="update-count">1</span></span></a></li>';
                 } else {
                     $menu .= '<li class="' . $header_class . $custom_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 }
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 // Updated by IshYoBoy
                 $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                 $slides = $def;
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($ish_options[$value['id']]) && !empty($ish_options[$value['id']]) ? $ish_options[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($ish_options[$value['id']]) && !empty($ish_options[$value['id']]) ? $ish_options[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ', 'ishyoboy') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($ish_options)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
                 // google font field
             // google font field
             case 'select_google_font':
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input google_font_select" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_key => $option) {
                     $output .= '<option value="' . $select_key . '" ' . selected(isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : "", $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 if (isset($value['preview']['text'])) {
                     $g_text = $value['preview']['text'];
                 } else {
                     $g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                 }
                 if (isset($value['preview']['size'])) {
                     $g_size = 'style="font-size: ' . $value['preview']['size'] . ';"';
                 } else {
                     $g_size = '';
                 }
                 $output .= '<p class="' . $value['id'] . '_ggf_previewer google_font_preview" ' . $g_size . '>' . $g_text . '</p>';
                 break;
                 //JQuery UI Slider
             //JQuery UI Slider
             case 'sliderui':
                 $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                 //no errors, please
                 // Updated by IshYoBoy
                 $def = isset($ish_options[$value['id']]) ? $ish_options[$value['id']] : $defaults[$value['id']];
                 $s_val = stripslashes($def);
                 if (!isset($value['min'])) {
                     $s_min = '0';
                 } else {
                     $s_min = $value['min'];
                 }
                 if (!isset($value['max'])) {
                     $s_max = $s_min + 1;
                 } else {
                     $s_max = $value['max'];
                 }
                 if (!isset($value['step'])) {
                     $s_step = '1';
                 } else {
                     $s_step = $value['step'];
                 }
                 if (!isset($value['edit'])) {
                     $s_edit = ' readonly="readonly"';
                 } else {
                     $s_edit = '';
                 }
                 if ($s_val == '') {
                     $s_val = $s_min;
                 }
                 //values
                 $s_data = 'data-id="' . $value['id'] . '" data-val="' . $s_val . '" data-min="' . $s_min . '" data-max="' . $s_max . '" data-step="' . $s_step . '"';
                 //html output
                 $output .= '<input type="text" name="' . $value['id'] . '" id="' . $value['id'] . '" value="' . $s_val . '" class="mini" ' . $s_edit . ' />';
                 $output .= '<div id="' . $value['id'] . '-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div>';
                 break;
                 //Switch option
             //Switch option
             case 'switch':
                 if (!isset($ish_options[$value['id']])) {
                     $ish_options[$value['id']] = isset($value['std']) ? $value['std'] : 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "s_fld ";
                 }
                 $cb_enabled = $cb_disabled = '';
                 //no errors, please
                 //Get selected
                 if ($ish_options[$value['id']] == 1) {
                     $cb_enabled = ' selected';
                     $cb_disabled = '';
                 } else {
                     $cb_enabled = '';
                     $cb_disabled = ' selected';
                 }
                 //Label ON
                 if (!isset($value['on'])) {
                     $on = "On";
                 } else {
                     $on = $value['on'];
                 }
                 //Label OFF
                 if (!isset($value['off'])) {
                     $off = "Off";
                 } else {
                     $off = $value['off'];
                 }
                 $output .= '<p class="switch-options">';
                 $output .= '<label class="' . $fold . 'cb-enable' . $cb_enabled . '" data-id="' . $value['id'] . '"><span>' . $on . '</span></label>';
                 $output .= '<label class="' . $fold . 'cb-disable' . $cb_disabled . '" data-id="' . $value['id'] . '"><span>' . $off . '</span></label>';
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" id="' . $value['id'] . '" class="' . $fold . 'checkbox of-input main_checkbox" name="' . $value['id'] . '"  value="1" ' . checked($ish_options[$value['id']], 1, false) . ' />';
                 $output .= '</p>';
                 break;
                 // Added by IshYoBoy
                 // Theme Update Checker
             // Added by IshYoBoy
             // Theme Update Checker
             case 'theme_update':
                 $xml = Options_Machine::ishyoboy_get_updates();
                 $my_theme = wp_get_theme(THEME_SLUG);
                 $output .= '<div class="update-box">';
                 $output .= '<div class="instructions">' . "\n";
                 $my_version = '' != $my_theme->Version ? $my_theme->Version : '1.0';
                 if (isset($xml->latest) && version_compare($my_version, $xml->latest) == -1) {
                     /* THEMEFOREST
                        $output .= '<div class="ish-update">';
                        $output .= '<p><strong>' . __('New version available!', 'ishyoboy') . '</strong><br />' . __('Please go to your ThemeForest account, download the latest theme update and follow the update instructions within the documentation.', 'ishyoboy') . '</p>';
                        $output .= '<a href="http://themeforest.net/downloads?ref=IshYoBoy" class="button-primary" target="_blank">' . __('Download from ThemeForest', 'ishyoboy') . '</a><br /></div><br /><br />';
                        $output .= '</div>';*/
                     /* OTHER MARKETPLACES */
                     $output .= '<div class="ish-update">';
                     $output .= '<p><strong>' . __('New version available!', 'ishyoboy') . '</strong><br />' . __('Please download the theme again, from the site you have purchased it from, and follow the update instructions in the documentation.', 'ishyoboy') . '</p>';
                     //$output .= '<a href="http://themeforest.net/downloads?ref=IshYoBoy" class="button-primary" target="_blank">' . __('Download from ThemeForest', 'ishyoboy') . '</a><br /></div><br /><br />';
                     $output .= '</div><br /><br />';
                     $output .= '</div>';
                 } else {
                     $output .= '<div class="ish-no-update"><p><strong>' . __('You have the latest theme version! Well done!', 'ishyoboy') . '</strong></p></div></div><br />';
                 }
                 if (isset($xml->changelog)) {
                     $output .= '<div class="update-log">';
                     $output .= '<h4>' . __('Changelog:', 'ishyoboy') . '</h4>';
                     $changelogs = $xml->changelog;
                     $older_versions_printed = false;
                     foreach ($changelogs as $changelog) {
                         $atts = $changelog->attributes();
                         if (isset($atts['version']) && version_compare($my_version, $atts['version']) == -1) {
                             $output .= $changelog;
                         } else {
                             if (!$older_versions_printed) {
                                 $older_versions_printed = true;
                                 $output .= '<p><a href="#" class="button" onclick="jQuery(\'.ish-older-versions\').show(); return false;">' . __('View older versions', 'ishyoboy') . '</a></p>';
                                 $output .= '<div class="ish-older-versions">';
                             }
                             $output .= $changelog;
                         }
                     }
                     if ($older_versions_printed) {
                         $output .= '</div>';
                     }
                     $output .= '</div>';
                 }
                 $output .= '</div>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
 /**
  * Process options data and build option fields
  */
 public static function optionsframework_machine($options)
 {
     $data = get_option(OPTIONS);
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($data[$value['id']], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($data[$value['id']])) {
                     $data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($data[$value['id']], 1, false) . ' />';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">' . __('Add New Slide') . '</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     $data = get_option(OPTIONS);
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if (isset($value['name'])) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($data[$value['id']], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = stripslashes($data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($data[$value['id']])) {
                     $data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 $multi_stored = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $data[$value['id']] . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 35; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 40; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('lobster' => 'Lobster', 'muli' => 'Muli', 'droid sans' => 'Droid Sans', 'droid serif' => 'Droid Serif', 'cabin' => 'Cabin', 'allerta' => 'Allerta', 'crimson text' => 'Crimson Text', 'ubuntu' => 'Ubuntu', 'arvo' => 'Arvo', 'dancing script' => 'Dancing Script', 'pacifico' => 'Pacifico', 'nunito' => 'Nunito', 'hanuman' => 'Hanuman', 'josefin sans' => 'Josefin Sans', 'josefin slab' => 'Josefin Slab', 'crete round' => 'Crete Round', 'molengo' => 'Molengo', 'lekton' => 'Lekton', 'lato' => 'Lato', 'lora' => 'Lora', 'nobile' => 'Nobile', 'open sans' => 'Open Sans', 'montserrat' => 'Montserrat', 'questrial' => 'Questrial', 'francois one' => 'Francois One', 'coustard' => 'Coustard', 'trocchi' => 'Trocchi', 'cuprum' => 'Cuprum', 'oxygen' => 'Oxygen', 'oswald' => 'Oswald', 'codystar' => 'Codystar', 'imprima' => 'Imprima', 'karla' => 'Karla', 'cutive' => 'Cutive', 'glegoo' => 'Glegoo', 'asap' => 'Asap', 'telex' => 'Telex', 'belgrano' => 'Belgrano', 'rokkitt' => 'Rokkitt', 'yanone kaffeesatz' => 'Yanone Kaffeesatz', 'pt sans' => 'PT Sans', 'arimo' => 'Arimo', 'raleway' => 'Raleway', 'fredoka one' => 'Fredoka One', 'abel' => 'Abel', 'kreon' => 'Kreon', 'bitter' => 'Bitter', 'chivo' => 'Chivo', 'news cycle' => 'News Cycle', 'pontano sans' => 'Pontano Sans', 'maiden orange' => 'Maiden Orange', 'bree serif' => 'Bree Serif', 'patua one' => 'Patua One', 'montserrat alternates' => 'Montserrat Alternates', 'archivo black' => 'Archivo Black', 'arbutus slab' => 'Arbutus Slab', 'life savers' => 'Life Savers', 'della respira' => 'Della Respira', 'noticia text' => 'Noticia Text');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('300' => 'Book', '400' => 'Normal', 'italic' => 'Italic', '600' => 'Semi Bold', '700' => 'Bold', '800' => 'Extra Bold');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = $data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = isset($data[$value['id']]);
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 // Make sure to get list of all the default blocks first
                 $all_blocks = $value['std'];
                 $temp = array();
                 // holds default blocks
                 $temp2 = array();
                 // holds saved blocks
                 foreach ($all_blocks as $blocks) {
                     $temp = array_merge($temp, $blocks);
                 }
                 $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 foreach ($sortlists as $sortlist) {
                     $temp2 = array_merge($temp2, $sortlist);
                 }
                 // now let's compare if we have anything missing
                 foreach ($temp as $k => $v) {
                     if (!array_key_exists($k, $temp2)) {
                         $sortlists['disabled'][$k] = $v;
                     }
                 }
                 // now check if saved blocks has blocks not registered under default blocks
                 foreach ($sortlists as $key => $sortlist) {
                     foreach ($sortlist as $k => $v) {
                         if (!array_key_exists($k, $temp)) {
                             unset($sortlist[$k]);
                         }
                     }
                     $sortlists[$key] = $sortlist;
                 }
                 // assuming all sync'ed, now get the correct naming for each block
                 foreach ($sortlists as $key => $sortlist) {
                     foreach ($sortlist as $k => $v) {
                         $sortlist[$k] = $temp[$k];
                     }
                     $sortlists[$key] = $sortlist;
                 }
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup :', 'golden') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
Ejemplo n.º 16
0
 public static function optionsframework_machine($options)
 {
     $data = get_option(OPTIONS);
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             $output .= '<div id="section-' . $value['id'] . '" class="section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             $output .= '<label for="' . $value['id'] . '"" class="heading">' . $value['name'] . '</label>' . "\n";
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         switch ($value['type']) {
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($data[$value['id']], $select_ID, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = stripslashes($data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
             case "radio":
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
             case 'checkbox':
                 if (!isset($data[$value['id']])) {
                     $data[$value['id']] = 0;
                 }
                 $output .= '<input type="hidden" class="checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($data[$value['id']], 1, false) . ' />';
                 break;
             case 'multicheck':
                 $multi_stored = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">aaaa' . $option . '</label><br />';
                 }
                 break;
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
             case 'color':
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $data[$value['id']] . '" />';
                 break;
             case 'typography':
                 $typography_stored = $data[$value['id']];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 20; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
             case 'border':
                 /* Border Width */
                 $border_stored = $data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
             case 'images':
                 $i = 0;
                 $select_value = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = ereg_replace("[^A-Za-z0-9]", "", strtolower($value['name']));
                 $jquery_click_hook = ereg_replace("[^A-Za-z0-9]", "", strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
             case 'sorter':
                 $sortlists = $data[$value['id']];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
             case 'tiles':
                 $i = 0;
                 $select_value = '';
                 $select_value = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 // Background
             // Background
             case 'background':
                 $background = $data[$value['id']];
                 // Background Color
                 $output .= '<div id="' . esc_attr($value['id']) . '_color_picker" class="colorSelector"><div style="' . esc_attr('background-color:' . $background['color']) . '"></div></div>';
                 $output .= '<input class="of-color of-background of-background-color" name="' . esc_attr($option_name . '[' . $value['id'] . '][color]') . '" id="' . esc_attr($value['id'] . '_color') . '" type="text" value="' . esc_attr($background['color']) . '" />';
                 // Background Image - New AJAX Uploader using Media Library
                 if (!isset($background['image'])) {
                     $background['image'] = '';
                 }
                 $output .= optionsframework_medialibrary_uploader($value['id'], $background['image'], null, '', 0, 'image');
                 $class = 'of-background-properties';
                 if ('' == $background['image']) {
                     $class .= ' hide';
                 }
                 $output .= '<div class="' . esc_attr($class) . '">';
                 // Background Repeat
                 $output .= '<select class="of-background of-background-repeat" name="' . esc_attr($option_name . '[' . $value['id'] . '][repeat]') . '" id="' . esc_attr($value['id'] . '_repeat') . '">';
                 $repeats = of_recognized_background_repeat();
                 foreach ($repeats as $key => $repeat) {
                     $output .= '<option value="' . esc_attr($key) . '" ' . selected($background['repeat'], $key, false) . '>' . esc_html($repeat) . '</option>';
                 }
                 $output .= '</select>';
                 // Background Position
                 $output .= '<select class="of-background of-background-position" name="' . esc_attr($option_name . '[' . $value['id'] . '][position]') . '" id="' . esc_attr($value['id'] . '_position') . '">';
                 $positions = of_recognized_background_position();
                 foreach ($positions as $key => $position) {
                     $output .= '<option value="' . esc_attr($key) . '" ' . selected($background['position'], $key, false) . '>' . esc_html($position) . '</option>';
                 }
                 $output .= '</select>';
                 // Background Attachment
                 $output .= '<select class="of-background of-background-attachment" name="' . esc_attr($option_name . '[' . $value['id'] . '][attachment]') . '" id="' . esc_attr($value['id'] . '_attachment') . '">';
                 $attachments = of_recognized_background_attachment();
                 foreach ($attachments as $key => $attachment) {
                     $output .= '<option value="' . esc_attr($key) . '" ' . selected($background['attachment'], $key, false) . '>' . esc_html($attachment) . '</option>';
                 }
                 $output .= '</select>';
                 $output .= '</div>';
                 break;
             case 'backup':
                 $instructions = $value['options'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
         }
         // if TYPE is an array, formatted into smaller inputs... ie smaller values
         if (is_array($value['type'])) {
             foreach ($value['type'] as $array) {
                 $id = $array['id'];
                 $std = $array['std'];
                 $saved_std = get_option($id);
                 if ($saved_std != $std) {
                     $std = $saved_std;
                 }
                 $meta = $array['meta'];
                 if ($array['type'] == 'text') {
                     // Only text at this point
                     $output .= '<input class="input-text-small of-input" name="' . $id . '" id="' . $id . '" type="text" value="' . $std . '" />';
                     $output .= '<span class="meta-two">' . $meta . '</span>';
                 }
             }
         }
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     $data = get_option(OPTIONS);
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($data[$value['id']], $select_ID, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = stripslashes($data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($data[$value['id']])) {
                     $data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 $multi_stored = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $data[$value['id']] . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 20; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 38; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                     foreach ($faces as $i => $face) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = $data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }
Ejemplo n.º 18
0
function dt_metabox_background_options($post)
{
    $box_name = 'dt_background_options';
    $defaults = array('enable' => false, 'bg_image' => '', 'color' => '#000000', 'repeat' => 'repeat', 'v_pos' => 'center', 'h_pos' => 'center', 'fixed' => false);
    $opts = get_post_meta($post->ID, '_' . $box_name, true);
    $opts = wp_parse_args(maybe_unserialize($opts), $defaults);
    // Use nonce for verification
    wp_nonce_field(plugin_basename(__FILE__), $box_name . '_nonce');
    $repeat_arr = array('repeat' => _x('repeat', 'backend options', LANGUAGE_ZONE), 'repeat-x' => _x('repeat-x', 'backend options', LANGUAGE_ZONE), 'repeat-y' => _x('repeat-y', 'backend options', LANGUAGE_ZONE), 'no-repeat' => _x('no-repeat', 'backend options', LANGUAGE_ZONE), 'full-screen' => _x('full screen', 'backend options', LANGUAGE_ZONE));
    $v_arr = array('center' => _x('center', 'backend options', LANGUAGE_ZONE), 'top' => _x('top', 'backend options', LANGUAGE_ZONE), 'bottom' => _x('bottom', 'backend options', LANGUAGE_ZONE));
    $h_arr = array('center' => _x('center', 'backend options', LANGUAGE_ZONE), 'left' => _x('left', 'backend options', LANGUAGE_ZONE), 'right' => _x('right', 'backend options', LANGUAGE_ZONE));
    // image
    $link = dt_melement('text', array('name' => $box_name . '_bg_image', 'class' => 'dt-uploader-textfield widefat', 'description' => __('', 'backend background', LANGUAGE_ZONE), 'wrap' => '%2$s%1$s', 'value' => $opts['bg_image']));
    // upload button
    $upload = dt_melement('link', array('description' => _x('Upload Background', 'backend background', LANGUAGE_ZONE), 'class' => 'dt-uploader-opener button-primary thickbox', 'href' => get_admin_url() . 'media-upload.php?post_id=' . optionsframework_mlu_get_silentpost('background-' . $post->ID) . '&type=image&TB_iframe=1&width=640&height=310'));
    // delete button
    $delete = dt_melement('link', array('description' => _x('Clear', 'backend background', LANGUAGE_ZONE), 'class' => 'dt-uploader-delete button', 'href' => '#'));
    $cp_id = 'dt_color_1';
    $colorpicker_bg = '<div id="' . esc_attr($cp_id . '_picker') . '" class="colorSelector"><div style="' . esc_attr('background-color:' . $opts['color']) . '"></div></div>';
    $colorpicker_bg .= '<input class="of-color" name="' . esc_attr($box_name . '_color') . '" id="' . $cp_id . '" type="text" value="' . esc_attr($opts['color']) . '" />';
    // enable checkbox
    $enable = dt_melement('checkbox', array('description' => _x('Enable individual background', 'backend background', LANGUAGE_ZONE), 'class' => '', 'checked' => $opts['enable'], 'name' => $box_name . '_enable', 'data' => 'data-name="dt_background-show"', 'wrap' => '<label class="dt_switcher">%1$s %2$s</label>'));
    // repeat selector
    $repeat = dt_melement('select', array('description' => _x('Repeat', 'backend background', LANGUAGE_ZONE), 'class' => '', 'options' => $repeat_arr, 'selected' => $opts['repeat'], 'name' => $box_name . '_repeat', 'wrap' => '<label>%2$s %1$s</label>'));
    // repeat selector
    $repeat = dt_melement('select', array('description' => _x('Repeat', 'backend background', LANGUAGE_ZONE), 'class' => '', 'options' => $repeat_arr, 'selected' => $opts['repeat'], 'name' => $box_name . '_repeat', 'wrap' => '<strong>%2$s</strong> %1$s'));
    // vertical position selector
    $v_pos = dt_melement('select', array('description' => _x('Vertical position', 'backend background', LANGUAGE_ZONE), 'class' => '', 'options' => $v_arr, 'selected' => $opts['v_pos'], 'name' => $box_name . '_v_pos', 'wrap' => '<strong>%2$s</strong> %1$s'));
    // horizontal position selector
    $h_pos = dt_melement('select', array('description' => _x('Horizontal position', 'backend background', LANGUAGE_ZONE), 'class' => '', 'options' => $h_arr, 'selected' => $opts['h_pos'], 'name' => $box_name . '_h_pos', 'wrap' => '<strong>%2$s</strong> %1$s'));
    // fixed position
    $fixed = dt_melement('checkbox', array('description' => _x('Fixed background', 'backend background', LANGUAGE_ZONE), 'class' => '', 'checked' => $opts['fixed'], 'name' => $box_name . '_fixed', 'wrap' => '<label>%1$s %2$s</label>'));
    ?>
	<p class="dt_switcher-box"><?php 
    echo $enable;
    ?>
</p>
	<div class="dt_background-show dt_container hide-if-js">
		<div class="dt_hr"></div>
    	<p class="dt_switcher-box"><?php 
    echo $link . '<br /><br />' . $upload . $delete;
    ?>
</p>
		<div class="dt_hr"></div>
		<?php 
    echo $colorpicker_bg;
    ?>
		<p class="dt_switcher-box"><?php 
    echo $repeat;
    ?>
</p>
		<p class="dt_switcher-box"><?php 
    echo $v_pos;
    ?>
</p>
		<p class="dt_switcher-box"><?php 
    echo $h_pos;
    ?>
</p>
		<p class="dt_switcher-box"><?php 
    echo $fixed;
    ?>
</p>
	</div>
	<?php 
}