<?php // UI elements add_sweetcode('pyLink', 'pyLinkHandler', "NP"); add_sweetcode('pyHint', 'pyHintHandler', "N"); // to allow hint="<pre>" add_sweetcode('pyWarn', 'pyWarnHandler', "NP"); // exercises (and examples) add_sweetcode('pyScramble', 'pyScrambleHandler', "NP"); add_sweetcode('pyExample', 'pyExampleHandler', "NP"); add_sweetcode('pyBox', 'pyBoxHandler', "NP"); add_sweetcode('pyShort', 'pyShortHandler', "NP"); add_sweetcode('pyMulti', 'pyMultiHandler', "NP"); add_sweetcode('pyMultiScramble', 'pyMultiScrambleHandler', "NP"); // for translation and/or embedding exercises in new places (like mail page) add_sweetcode('pyRecall', 'pyRecallHandler', true); function debugEnabled() { return array_key_exists("d", $_GET) || userIsAdmin(); } function loadMostRecent($slug) { if (!is_user_logged_in()) { return NULL; } global $wpdb; $uid = wp_get_current_user()->ID; $table_name = $wpdb->prefix . "pb_submissions"; $sqlcmd = "SELECT usercode FROM {$table_name} WHERE userid = %d AND problem = %s ORDER BY beginstamp DESC LIMIT 1"; return $wpdb->get_var($wpdb->prepare($sqlcmd, $uid, $slug)); }
<?php add_shortcode('br', 'printbr'); function printbr($o, $c) { return '<br/>'; } add_sweetcode('collapsible', 'print_collapsible', true); function print_collapsible($options, $content) { $caption = $options['caption']; $style = "hiding"; if (array_key_exists('show', $options) || in_array('show', $options)) { $style = "showing"; } return "<div class='collapseContain {$style}'>\n<div class='collapseHead'><span class='icon'></span>\n{$caption}\n</div>\n<div class='collapseBody'>" . do_short_and_sweetcode($content) . '</div></div>'; } add_sweetcode('accordion', 'print_accordion', true); function print_accordion($options, $content) { return '<div class="accordion">' . do_short_and_sweetcode($content) . '</div>'; }
<?php add_sweetcode('pyVis', 'pyVisHandler', "NP"); function pyVisHandler($options, $the_content) { $width = getSoft($options, "width", 400); $res = ' '; if (!array_key_exists("code", $options)) { return "pyVis error: code='...' not found"; } $content = $options["code"]; $content = softSafeDereference($content); $content = html_entity_decode(str_replace(" ", ' ', str_replace('<br/>', "\n", $content))); $content = trim($content); $content = trim($content); // for ($i =0; $i<strlen($content); $i++) // $res .= ' ' . ord($content[$i]); //return $res; $tag = 'iframe'; $urlname = 'src'; //$tag = 'object'; $urlname = 'data'; // doesn't seem to be different $url = content_url('plugins/pybox/') . 'OnlinePythonTutor3-cemc/iframe-embed.html#' . 'code=' . urlencode($content) . '&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&curInstr=0&resizeContainer=true&highlightLines&width=' . $width . '&rightStdout=1'; return "<{$tag} width='100%' height='480' frameborder='0' scrolling='no' {$urlname}='{$url}'></{$tag}>"; }