public static function show_preview() { echo '<div id="content">'; self::load_settings(); // Run first to ensure global settings loaded $crayon = CrayonWP::instance(); // Settings to prevent from validating $preview_settings = array(self::SAMPLE_CODE); // Load settings from GET and validate foreach ($_POST as $key => $value) { // echo $key, ' ', $value , '<br/>'; $value = stripslashes($value); if (!in_array($key, $preview_settings)) { $_POST[$key] = CrayonSettings::validate($key, $value); } else { $_POST[$key] = $value; } } $crayon->settings($_POST); if (!isset($crayon_preview_dont_override_get) || !$crayon_preview_dont_override_get) { $settings = array(CrayonSettings::TOP_SET => TRUE, CrayonSettings::TOP_MARGIN => 10, CrayonSettings::BOTTOM_SET => FALSE, CrayonSettings::BOTTOM_MARGIN => 0); $crayon->settings($settings); } // Print the theme CSS $theme_id = $crayon->setting_val(CrayonSettings::THEME); if ($theme_id != NULL) { echo CrayonResources::themes()->get_css($theme_id, date('U')); } $font_id = $crayon->setting_val(CrayonSettings::FONT); if ($font_id != NULL) { echo CrayonResources::fonts()->get_css($font_id); } // Load custom code based on language $lang = $crayon->setting_val(CrayonSettings::FALLBACK_LANG); $path = crayon_pf(CRAYON_UTIL_PATH . '/sample/' . $lang . '.txt', FALSE); if (isset($_POST[self::SAMPLE_CODE])) { $crayon->code($_POST[self::SAMPLE_CODE]); } else { if ($lang && @file_exists($path)) { $crayon->url($path); } else { $code = "\n// A sample class\nclass Human {\n\tprivate int age = 0;\n\tpublic void birthday() {\n\t\tage++;\n\t\tprint('Happy Birthday!');\n\t}\n}\n"; $crayon->code($code); } } $crayon->title('Sample Code'); $crayon->marked('5-7'); $crayon->output($highlight = true, $nums = true, $print = true); echo '</div>'; crayon_load_plugin_textdomain(); exit; }
$_GET[$key] = CrayonSettings::validate($key, $value); } } $crayon->settings($_GET); if (!isset($crayon_preview_dont_override_get) || !$crayon_preview_dont_override_get) { $settings = array(CrayonSettings::TOP_SET => TRUE, CrayonSettings::TOP_MARGIN => 10, CrayonSettings::BOTTOM_SET => FALSE, CrayonSettings::BOTTOM_MARGIN => 0); $crayon->settings($settings); } // Print the theme CSS $theme_id = $crayon->setting_val(CrayonSettings::THEME); if ($theme_id != NULL) { echo CrayonResources::themes()->get_css($theme_id); } $font_id = $crayon->setting_val(CrayonSettings::FONT); if ($font_id != NULL) { echo CrayonResources::fonts()->get_css($font_id); } // Load custom code based on language $lang = $crayon->setting_val(CrayonSettings::FALLBACK_LANG); $path = crayon_pf(dirname(__FILE__) . '/sample/' . $lang . '.txt', FALSE); if ($lang && @file_exists($path)) { $crayon->url($path); } else { $code = "\r\n// A sample class\r\nclass Human {\r\n\tprivate int age = 0;\r\n\tpublic void birthday() {\r\n\t\tage++;\r\n\t\tprint('Happy Birthday!');\r\n\t}\r\n}\r\n"; $crayon->code($code); } $crayon->title('Sample Code'); $crayon->marked('5-7'); $crayon->output($highlight = true, $nums = true, $print = true); echo '</div>'; crayon_load_plugin_textdomain();
function crayon_is_php_file($filepath, $valid) { $path = pathinfo(crayon_pf($filepath)); return is_file($filepath) && $path['extension'] === 'php' && $path['filename'] === $valid; }
define('CRAYON_HIGHLIGHTER', 'CrayonHighlighter'); define('CRAYON_ELEMENT_CLASS', 'CrayonElement'); define('CRAYON_SETTING_CLASS', 'CrayonSetting'); // Directories define('CRAYON_DIR', crayon_pf(basename(dirname(__FILE__)))); define('CRAYON_LANG_DIR', crayon_s('langs')); define('CRAYON_THEME_DIR', crayon_s('themes')); define('CRAYON_FONT_DIR', crayon_s('fonts')); define('CRAYON_UTIL_DIR', crayon_s('util')); define('CRAYON_CSS_DIR', crayon_s('css')); define('CRAYON_JS_DIR', crayon_s('js')); define('CRAYON_TRANS_DIR', crayon_s('trans')); define('CRAYON_THEME_EDITOR_DIR', crayon_s('theme-editor')); define('CRAYON_TAG_EDITOR_DIR', crayon_s('tag-editor')); // Paths define('CRAYON_ROOT_PATH', crayon_pf(dirname(__FILE__))); define('CRAYON_LANG_PATH', CRAYON_ROOT_PATH . CRAYON_LANG_DIR); define('CRAYON_THEME_PATH', CRAYON_ROOT_PATH . CRAYON_THEME_DIR); define('CRAYON_FONT_PATH', CRAYON_ROOT_PATH . CRAYON_FONT_DIR); define('CRAYON_UTIL_PATH', CRAYON_ROOT_PATH . CRAYON_UTIL_DIR); define('CRAYON_TAG_EDITOR_PATH', CRAYON_ROOT_PATH . CRAYON_UTIL_DIR . CRAYON_TAG_EDITOR_DIR); define('CRAYON_THEME_EDITOR_PATH', CRAYON_ROOT_PATH . CRAYON_UTIL_DIR . CRAYON_THEME_EDITOR_DIR); // Files define('CRAYON_LOG_FILE', CRAYON_ROOT_PATH . 'log.txt'); define('CRAYON_TOUCH_FILE', CRAYON_UTIL_PATH . 'touch.txt'); define('CRAYON_LOG_MAX_SIZE', 50000); // Bytes define('CRAYON_README_FILE', CRAYON_ROOT_PATH . 'readme.txt'); define('CRAYON_LANG_EXT', CRAYON_LANG_PATH . 'extensions.txt'); define('CRAYON_LANG_ALIAS', CRAYON_LANG_PATH . 'aliases.txt'); define('CRAYON_LANG_DELIM', CRAYON_LANG_PATH . 'delimiters.txt');