function link() { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $url = get_post_meta($_POST['course_post'], "courseURL", true); $token = get_post_meta($_POST['course_post'], "courseToken", true); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $url, "token" => $token, "webService" => "CURL")); $post = get_post($_POST['page_id']); $publish = "true"; if ($post->post_status != "publish") { $publish = "false"; } $pages = new InstructureCanvasAPI\Courses\Pages\Pages(); $pages->setAPI($API); $pages->setCourseID($_POST['course']); $data = $pages->createPage($_POST['title'], array("wiki_page[body]" => stripslashes($_POST['content']), "wiki_page[title]" => $_POST['title'], "wiki_page[published]" => $publish, "wiki_page[editing_roles]" => "teachers")); update_post_meta($post->ID, "CanvasLinked", true); update_post_meta($post->ID, "CanvasCourse", $_POST['course']); update_post_meta($post->ID, "postCanvasID", $data->content->page_id); update_post_meta($post->ID, "postURL", $data->content->url); update_post_meta($post->ID, "postHTMLURL", $data->content->html_url); $modules = new InstructureCanvasAPI\Courses\Modules\Modules(); $modules->setAPI($API); $modules->setCourseID($_POST['course']); $data = $modules->addModuleItem($_POST['module'], array("module_item[title]" => $_POST['title'], "module_item[type]" => "Page", "module_item[page_url]" => $data->content->url, "module_item[position]" => $_POST['place'], "module_item[content_id]" => $data->content->page_id, "module_item[indent]" => $_POST['indent'])); $this->new_form($_POST['page_id'], $data->content->html_url); die; }
function download() { $course_id = get_post_meta($_POST['page_id'], "CanvasCourse", true); global $wpdb; $course_post = $wpdb->get_results("select post_id from " . $wpdb->prefix . "postmeta where meta_key='CourseID' and meta_value = '" . $course_id . "'"); $course_post = get_post($course_post[0]->post_id); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($course_post->ID, "courseURL", true), "token" => get_post_meta($course_post->ID, "courseToken", true), "webService" => "CURL")); $pages = new InstructureCanvasAPI\Courses\Pages\Pages(); $pages->setAPI($API); $pages->setCourseID(get_post_meta($course_post->ID, "courseID", true)); $data = $pages->getPage(get_post_meta($_POST['page_id'], "postURL", true)); $new_content = $data->content->body; //print_r($new_content); //print_r($_POST); $update = $wpdb->update($wpdb->prefix . "posts", array("post_content" => $new_content), array("ID" => $_POST['page_id'])); if ($update === false) { print_r($wpdb); echo json_encode(array("error")); } else { echo json_encode(array($new_content)); } die; }
function media_added($post_id) { $post = get_post($post_id); $linked = get_post_meta($post->post_parent, "CanvasLinked", true); if ($linked == 1) { if (get_post_meta($post_id, "CanvasCourseIDFileID", true) == "") { $course_id = get_post_meta($post->post_parent, "CanvasCourse", true); global $wpdb; $course_post = $wpdb->get_results("select post_id from " . $wpdb->prefix . "postmeta where meta_key='CourseID' and meta_value = '" . $course_id . "'"); $course_post = get_post($course_post[0]->post_id); $file_system = get_post_meta($course_post->ID, "courseFileSystem", true); foreach ($file_system as $folder_id => $file_data) { if (strpos($file_data['actual_path'], $course_id . "/course files/") === FALSE) { $folder = $folder_id; $actual_path = $file_data['actual_path']; } } $file = get_attached_file($post_id); $parts = explode("/", $file); $new_name = $actual_path . "/" . array_pop($parts); rename($file, $new_name); $dir = wp_upload_dir(); $change_path = str_replace("\\", "/", $dir['basedir']) . "/"; $new_path = str_replace($change_path, "", $new_name); $data = wp_generate_attachment_metadata($post_id, $new_name); update_post_meta($post_id, "_wp_attached_file", $new_path); update_post_meta($post_id, "_wp_attachment_metadata", $data, true); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($course_post->ID, "courseURL", true), "token" => get_post_meta($course_post->ID, "courseToken", true), "webService" => "CURL")); $files = new InstructureCanvasAPI\Courses\Files\Files(); $files->setAPI($API); $files->setCourseID($course_id); $parts = explode("/", $post->guid); $name = array_pop($parts); $data = $files->requestUpload(array("name" => $name, "content_type" => $post->post_mime_type, "parent_folder_id" => $folder)); $file_data = array("file" => $change_path . $new_path); $file_data = $files->upload($data->content->upload_url, $data->content->upload_params, $file_data); $header_parts = explode("\n", $file_data->header); foreach ($header_parts as $part) { if (strpos($part, "Location:") !== FALSE) { $confirm_url = trim(substr($part, strpos($part, ":") + 1)); } } $confirm_data = $files->confirm($confirm_url); $parts = explode("verifier=", $confirm_data->content->url); $verifier = array_pop($parts); update_post_meta($course_post->ID, "molie_file_" . $confirm_data->content->id, $post_id); update_post_meta($post_id, "CanvasCourse", $course_id); update_post_meta($post_id, "CanvasFileVerifier", $verifier); update_post_meta($post_id, "CanvasCourseIDFileID", $course_id . "," . $_POST['item']); update_post_meta($post_id, "CanvasFileURL", $confirm_data->content->url); } } }
/** * Allow plugins to register a namespace for class loading. */ function wp_psr4_class_loader() { // Create a new instance of the autoloader $loader = new Psr4AutoloaderClass(); // Register this instance $loader->register(); $namespaces = apply_filters('wp_psr4_namespaces', array()); foreach ($namespaces as $ns => $path) { $loader->addNamespace($ns, $path, TRUE); } }
function get_student($post, $student_id) { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($post->ID, "courseURL", true), "token" => get_post_meta($post->ID, "courseToken", true), "webService" => "CURL")); $user = new InstructureCanvasAPI\Courses\Users\Users(); $user->setAPI($API); $data = $user->getProfile($student_id); $loader->unregister(); return $data; }
private function get_file($post) { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($post->ID, "courseURL", true), "token" => get_post_meta($post->ID, "courseToken", true), "webService" => "CURL")); $file = new InstructureCanvasAPI\Courses\Files\Files(); $file->setAPI($API); $file->setCourseID(get_post_meta($post->ID, "courseID", true)); $file_data = $file->getFile($_POST['item']); return $file_data->content; }
function get_discussion($post) { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($post->ID, "courseURL", true), "token" => get_post_meta($post->ID, "courseToken", true), "webService" => "CURL")); $discussion = new InstructureCanvasAPI\Courses\DiscussionTopics\DiscussionTopics(); $discussion->setAPI($API); $discussion->setCourseID(get_post_meta($post->ID, "courseID", true)); $data = $discussion->getDiscussionTopic($_POST['item']); $discussion = $data->content; $loader->unregister(); return $discussion; }
/** * Begins execution of the plugin. * * Since everything within the plugin is registered via hooks, * then kicking off the plugin from this point in the file does * not affect the page life cycle. * * @since 1.0.0 */ function run_citrix_connect() { require_once plugin_dir_path(__FILE__) . 'includes/class-autoloader.php'; // instantiate the loader // dd(plugin_dir_path( __FILE__ ) . 'includes/Citrix'); $loader = new Psr4AutoloaderClass(); // register the autoloader $loader->register(); // register the base directories for the namespace prefix $loader->addNamespace('Citrix', plugin_dir_path(__FILE__) . 'includes/Citrix'); // $loader->addNamespace('Admin/Citrix', plugin_dir_path( __FILE__ ) . 'admin/Citrix' ); // $loader->addNamespace('Foo\Bar', '/path/to/packages/foo-bar/tests'); $plugin = new Citrix_Connect(); $plugin->run(); }
function course_place() { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $url = get_post_meta($_POST['course_post'], "courseURL", true); $token = get_post_meta($_POST['course_post'], "courseToken", true); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $url, "token" => $token, "webService" => "CURL")); $modules = new InstructureCanvasAPI\Courses\Modules\Modules(); $modules->setAPI($API); $modules->setCourseID($_POST['course_id']); $data = $modules->getModules($_POST['course_id']); if ($data) { echo "<button onclick='javascript:molie_canvas_link_page(event);'>" . __("Add page, but not to a module") . "</button> "; echo "<button onclick='javascript:molie_canvas_link_page(event);'>" . __("Link page to the spot below") . "</button>"; echo "<div id='course_choose'>"; if (count($data->content) != 0) { $first = true; foreach ($data->content as $module) { echo "<p>" . __("Module") . " : " . $module->name . "</p>"; echo "<ul>"; $moduleItems = $modules->getModuleItems($module->id); foreach ($moduleItems->content as $item) { $last_positon = $item->position; echo "<li><input "; if ($first) { echo " checked "; $first = false; } echo " name='place' style='margin-left:" . 10 * $item->indent . "px;' indent='" . $item->indent . "' course_id='" . $_POST['course_post'] . "' page='" . $_POST['page'] . "' place='" . $item->position . "' course='" . $_POST['course_id'] . "' module_name='" . addslashes($module->name) . "' module='" . $module->id . "' type='radio' />" . __("Add page before") . " " . $item->title . "</li>"; } echo "<li><input name='place' style='margin-left:" . 10 * $item->indent . "px;' indent='" . $item->indent . "' course_id='" . $_POST['course_post'] . "' page='" . $_POST['page'] . "' place='" . ($last_position + 1) . "' course='" . $_POST['course_id'] . "' module_name='" . addslashes($module->name) . "' module='" . $module->id . "' type='radio' />" . __("Add at the end") . "</li>"; echo "</ul>"; } } echo "</div>"; } $loader->unregister(); die; }
function course_list() { if (wp_verify_nonce($_POST['nonce'], "molie_admin_choose")) { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $url = str_replace("http://", "https://", $_POST['url']); if (strpos($url, "https://") === FALSE) { $url = "https://" . $url; } $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $url, "token" => $_POST['token'], "webService" => "CURL")); $courses = new InstructureCanvasAPI\Courses\Courses(); $courses->setAPI($API); $data = $courses->getCoursesForThisUser(); if ($data) { if (count($data->content) != 0) { echo "<form method='post' action='" . $_POST['admin_url'] . "admin.php?page=molie_choose'>"; wp_nonce_field("molie-link", "molie-link-nonce"); echo "<p>" . __("Now Choose a Course") . "</p>"; echo "<p><select name='molie_course'>"; foreach ($data->content as $course) { echo "<option value='" . $course->id . "|" . $course->name . "'>" . $course->name . "</option>"; } echo "</select></p>"; echo "<input type='hidden' name='token' value='" . $_POST['token'] . "' />"; echo "<input type='hidden' name='url' value='" . $url . "' />"; echo "<input type='submit' value='" . __("Link Course") . "'>"; echo "</form>"; } else { echo "<p>" . __("There was an error connecting") . "</p>"; echo "<p>" . $data[1] . "</p>"; } } $loader->unregister(); } else { print_r($_POST); echo "Nonce failed"; } wp_die(); }
function remove($post_id) { $post = get_post($post_id); $course_id = get_post_meta($post_id, "CanvasCourse", true); global $wpdb; $course_post = $wpdb->get_results("select post_id from " . $wpdb->prefix . "postmeta where meta_key='CourseID' and meta_value = '" . $course_id . "'"); $course_post = get_post($course_post[0]->post_id); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($course_post->ID, "courseURL", true), "token" => get_post_meta($course_post->ID, "courseToken", true), "webService" => "CURL")); $pages = new InstructureCanvasAPI\Courses\Pages\Pages(); $pages->setAPI($API); $pages->setCourseID($course_id); $data = $pages->deletePage(get_post_meta($post_id, "postURL", true)); delete_post_meta($post_id, "CanvasCourse"); delete_post_meta($post_id, "postCanvasID"); delete_post_meta($post_id, "postURL"); delete_post_meta($post_id, "postHTMLURL"); }
private function get_course_syllabus($post) { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($post->ID, "courseURL", true), "token" => get_post_meta($post->ID, "courseToken", true), "webService" => "CURL")); $course = new InstructureCanvasAPI\Courses\Courses(); $course->setAPI($API); $data = $course->getCoursesForThisUserWithSyllabus(); $courseID = get_post_meta($post->ID, "courseID", true); foreach ($data->content as $course) { if ($course->id == $courseID) { $syllabus = new StdClass(); $syllabus->content = new StdClass(); $syllabus->content->title = __("Syllabus"); $syllabus->content->url = "course-syllabus"; $syllabus->content->body = $course->syllabus_body; $syllabus->content->published = 1; } } return $syllabus; }
function calendar() { if (isset($_POST['molie-calendar-nonce'])) { if (wp_verify_nonce($_POST['molie-calendar-nonce'], "molie-calendar-nonce")) { $course_id = get_post_meta($_POST['course_id'], "courseID", true); $course_token = get_post_meta($_POST['course_id'], "courseToken", true); $course_url = get_post_meta($_POST['course_id'], "courseURL", true); $categories = $this->create_categories(get_post($_POST['course_id'])); if (get_post_meta($_POST['course_id'], "canvasCalendarPage", true) == "") { $calendar_post = wp_insert_post(array("post_type" => 'post', "post_status" => 'publish', "post_title" => __("Course Calendar"), "post_author" => get_current_user_id())); wp_set_post_categories($roster_post, $categories); update_post_meta($calendar_post, "CanvasCalendar", "true", true); update_post_meta($calendar_post, "CanvasCourse", $course_id, true); update_post_meta($_POST['course_id'], "canvasCalendarPage", $calendar_post, true); } else { $calendar_post = get_post_meta($_POST['course_id'], "canvasCalendarPage", true); } require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $course_url, "token" => $course_token, "webService" => "CURL")); $calendar = new InstructureCanvasAPI\Courses\Courses(); $calendar->setAPI($API); $data = $calendar->getCoursesForThisUserWithSyllabus(); foreach ($data->content as $course_data) { if ($course_data->id == $course_id) { $data = $course_data; } } $calendar = file_get_contents($data->calendar->ics); $calendar = explode("\n", $calendar); $parse = false; $content = array(); $post_content = ""; for ($x = 0; $x <= count($calendar); $x++) { $line = trim(str_replace("\n", "", $calendar[$x])); if ($line == "BEGIN:VEVENT") { $parse = true; } if ($parse) { if ($line == "END:VEVENT") { $post_content = $content['date'] . $content['summary'] . $content['location'] . $content['link']; $parse = false; } $parts = explode(":", $line); if (count($parts) != 1) { if ($parts[0] == "URL") { $data = str_replace("\n", "", str_replace("\r", "", str_replace($parts[0] . ":", "", $line) . trim($calendar[$x + 1]))); } else { $data = $parts[1]; } if ($parts[0] == "LOCATION") { $content['location'] = "<p>Location " . $data . "</p>"; } if ($parts[0] == "SUMMARY") { $content['summary'] = "<p>Summary " . $data . "</p>"; } if ($parts[0] == "URL") { $content['link'] = "<p>Link <a href='" . $data . "'>" . $data . "</a></p>"; } if ($parts[0] == "DTSTART") { if (strpos($data, "=") == FALSE) { $time = mktime(substr($data, 10, 2), substr($data, 12, 2), substr($data, 14, 2), substr($data, 4, 2), substr($data, 6, 2), substr($data, 0, 4)); } $content['date'] = "<p>Date " . date("l, jS F Y G:i:s A", $time) . "</p>"; } if ($parts[0] == "DTSTART;VALUE=DATE") { $time = mktime(0, 0, 0, substr($data, 4, 2), substr($data, 6, 2), substr($data, 0, 4)); $content['date'] = "<p>Date " . date("l, jS F Y G:i:s A", $time) . "</p>"; } } } } wp_update_post(array("ID" => $calendar_post, "post_content" => $post_content)); $loader->unregister(); echo "<h1>" . __("Calendar linking") . "</h1>"; echo "<p>" . __("Calendar linked") . "</p>"; echo "<h2>" . __("Linking complete") . "</h2>"; global $wpdb; $data = $wpdb->get_results('select ' . $wpdb->prefix . 'posts.ID, post_title, meta_key, meta_value from ' . $wpdb->prefix . 'posts, ' . $wpdb->prefix . 'postmeta where post_type = "post" and ID = post_id and meta_key = "CanvasCourse" and meta_value = ' . $course_id); $admin_url = admin_url("edit.php?course=" . $course_id . "&canvas_linked=true"); ?> <p><?php echo count($data) . " " . __("course pages linked"); ?> <a href="<?php echo $admin_url; ?> "><?php echo __("See pages in this course"); ?> </a></p><?php $data = $wpdb->get_results('select ' . $wpdb->prefix . 'posts.ID, post_title, meta_key, meta_value from ' . $wpdb->prefix . 'posts, ' . $wpdb->prefix . 'postmeta where post_type = "attachment" and ID = post_id and meta_key = "CanvasCourse" and meta_value = ' . $course_id); $admin_url = admin_url('admin.php?page=molie_media_mgmt&course_id=' . $course_id); ?> <p><?php echo count($data) . " " . __("course files linked"); ?> <a href="<?php echo $admin_url; ?> "><?php echo __("See media in this course"); ?> </a></p><?php $data = $wpdb->get_results('select ' . $wpdb->prefix . 'posts.ID, post_title, meta_key, meta_value from ' . $wpdb->prefix . 'posts, ' . $wpdb->prefix . 'postmeta where post_type = "linkedcanvasuser" and ID = post_id and meta_key = "CanvasCourse" and meta_value = ' . $course_id); $admin_url = admin_url("edit.php?post_type=linkedcanvasuser&course=" . $course_id . "&canvas_linked=true"); ?> <p><?php echo count($data) . " " . __("users linked"); ?> <a href="<?php echo $admin_url; ?> "><?php echo __("See users in this course"); ?> </a></p><?php $data = $wpdb->get_results('select ' . $wpdb->prefix . 'posts.ID, post_title, meta_key, meta_value from ' . $wpdb->prefix . 'posts, ' . $wpdb->prefix . 'postmeta where post_type = "linkedcanvasquiz" and ID = post_id and meta_key = "CanvasCourse" and meta_value = ' . $course_id); $admin_url = admin_url("edit.php?post_type=linkedcanvasquiz&course=" . $course_id . "&canvas_linked=true"); ?> <p><?php echo count($data) . " " . __("quizzes linked"); ?> <a href="<?php echo $admin_url; ?> "><?php echo __("See quizzes in this course"); ?> </a></p><?php $data = $wpdb->get_results('select ' . $wpdb->prefix . 'posts.ID, post_title, meta_key, meta_value from ' . $wpdb->prefix . 'posts, ' . $wpdb->prefix . 'postmeta where post_type = "linkedcanvasamt" and ID = post_id and meta_key = "CanvasCourse" and meta_value = ' . $course_id); $admin_url = admin_url("edit.php?post_type=linkedcanvasamt&course=" . $course_id . "&canvas_linked=true"); ?> <p><?php echo count($data) . " " . __("assignments linked"); ?> <a href="<?php echo $admin_url; ?> "><?php echo __("See assignments in this course"); ?> </a></p><?php $data = $wpdb->get_results('select ' . $wpdb->prefix . 'posts.ID, post_title, meta_key, meta_value from ' . $wpdb->prefix . 'posts, ' . $wpdb->prefix . 'postmeta where post_type = "linkedcanvasdis" and ID = post_id and meta_key = "CanvasCourse" and meta_value = ' . $course_id); $admin_url = admin_url("edit.php?post_type=linkedcanvasdis&course=" . $course_id . "&canvas_linked=true"); ?> <p><?php echo count($data) . " " . __("discussions linked"); ?> <a href="<?php echo $admin_url; ?> "><?php echo __("See discussions in this course"); ?> </a></p><?php $admin_url = admin_url("admin.php?page=molie_help"); echo "<p>" . __("So now see the guidance on the tool") . " <a href='" . $admin_url . "'>" . __("MOLIE Help") . "</a></p>"; } else { print_r($_POST); } } else { $args = array("post_type" => "linkedcanvascourse", "post_status" => "publish"); $courses = get_posts($args); if (count($courses) != 0) { echo "<h2>" . __("Choose a course") . "</h2>"; $nonce = wp_create_nonce("molie-calendar-nonce"); foreach ($courses as $course) { ?> <form method="post" action='<?php echo admin_url("admin.php?page=molie_calendar"); ?> '> <p><?php echo $course->post_title; ?> </p> <input type="hidden" name="molie-calendar-nonce" value="<?php echo $nonce; ?> "/> <input type="hidden" name="url" value="<?php echo get_post_meta($course->ID, "courseURL", true); ?> " /> <input type="hidden" name="token" value="<?php echo get_post_meta($course->ID, "courseToken", true); ?> " /> <input name="course_id" type="hidden" value="<?php echo $course->ID; ?> " /> <input type="submit" value="<?php echo __("Get Calendar"); ?> " /> </form> <?php } } } }
define('YII_DEBUG', false); error_reporting(0); } } else { error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED); // Not needed if user don't remove his 'debug'=>0, for application/config/config.php (Installation is OK with E_ALL) } if (version_compare(PHP_VERSION, '5.3.3', '<')) { die('This script can only be run on PHP version 5.3.3 or later! Your version: ' . PHP_VERSION . '<br />'); } /** * Load Psr4 autoloader, should be replaced by composer autoloader at some point. */ require_once 'application/Psr4AutoloaderClass.php'; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('ls\\pluginmanager', __DIR__ . '/application/libraries/PluginManager'); $loader->addNamespace('ls\\pluginmanager', __DIR__ . '/application/libraries/PluginManager/Storage'); /* * -------------------------------------------------------------------- * LOAD THE BOOTSTRAP FILE * -------------------------------------------------------------------- * * And away we go... * */ require_once BASEPATH . 'yii' . EXT; require_once APPPATH . 'core/LSYii_Application' . EXT; $config = (require_once APPPATH . 'config/internal' . EXT); if (!file_exists(APPPATH . 'config/config' . EXT)) { // If Yii can not start due to unwritable runtimePath, present an error
<?php define('APPLICATION_PATH', __DIR__ . '/application/'); define('LIBRARY_PATH', __DIR__ . '/library/'); define('PUBLIC_PATH', __DIR__ . '/public/'); define('FRONTEND_PATH', APPLICATION_PATH . 'modules/frontend/'); define('BACKEND_PATH', APPLICATION_PATH . 'modules/backend/'); // Get autoload Zend/Symfony Standard PS-4 require_once LIBRARY_PATH . 'Core/Autoload.php'; // Autoload Instance $autoload = new Psr4AutoloaderClass(); // Load Needed Namespaces for the application $autoload->addNamespace('Core', LIBRARY_PATH . 'Core')->addNamespace('Application', APPLICATION_PATH)->addNamespace('Backend', BACKEND_PATH)->addNamespace('Frontend', FRONTEND_PATH); $autoload->register(); // estaria bueno definir las routes aca y el acces list? // onda.. Access list y se lo inyecto a la aplicacion. //$acl = new Acl(); //$acl->addRole(); // lo mismo con las routes.. // las routes es tambien para forwardear un 404, un 500 etc.. // Create the Application via Namespace.. $api = new Core\Application(); $api->init()->start();
function choose() { if (isset($_POST['molie-link-nonce'])) { if (wp_verify_nonce($_POST['molie-link-nonce'], "molie-link")) { $course_details = explode("|", $_POST['molie_course']); $posts = get_posts(array("post_type" => 'linkedcanvascourse')); $post_insert = true; foreach ($posts as $post) { if ($post->post_title == $course_details[1]) { $post_insert = false; $course = $post->ID; } } if ($post_insert) { $course = wp_insert_post(array("post_type" => 'linkedcanvascourse', "post_status" => 'publish', "post_title" => $course_details[1], "post_author" => get_current_user_id())); update_post_meta($course, "courseID", $course_details[0], true); update_post_meta($course, "courseToken", $_POST['token'], true); update_post_meta($course, "courseURL", $_POST['url'], true); } $urls = get_user_meta(get_current_user_id(), "courseLinkURLsTokens", true); if (!is_array($urls)) { $urls = array(); } if (!isset($urls[$_POST['url']])) { $urls[$_POST['url']] = array($_POST['token']); } else { $insert = true; foreach ($urls[$_POST['url']] as $token) { if ($token == $_POST['token']) { $insert = false; } } if ($insert) { $urls[$_POST['url']][] = $_POST['token']; } } update_user_meta(get_current_user_id(), "courseLinkURLsTokens", $urls); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $_POST['url'], "token" => $_POST['token'], "webService" => "CURL")); $modules = new InstructureCanvasAPI\Courses\Modules\Modules(); $modules->setAPI($API); $modules->setCourseID($course_details[0]); $data = $modules->getModules($course_details[0]); if ($data) { if (count($data->content) != 0) { $module_pages = array(); echo "<div id='molie_choose'>"; echo "<h2>" . __("Modules and Pages in this course") . "</h2>"; echo "<p>" . __("Select the pages you'd like to import") . "</p>"; echo "<div id='importProgress'><p><strong>" . __("Import Progress") . " <span id='importTotal'></span></strong></p><div id='importProgressBar'></div></div>"; echo '<form id="molie_choose_form" action="javascript:function connect(){return false;};">'; echo "<input type='submit' id='molie_choose_submit' value='" . __("Import pages") . "' />"; echo "<input type='submit' id='molie_choose_skip' value='" . __("Skip step") . "' />"; echo "<p><span><a href='javascript:molie_select_all()'>" . __("Select All") . "</a></span> <span><a href='javascript:molie_unselect_all()'>" . __("Unselect All") . "</a></span></p>"; echo "<p>" . __("Course syllabus") . "</p>"; echo "<ul>"; $link_info = ""; $link_checked = ""; if ($this->linked($course, "course_" . $course . "_course-syllabus")) { $link_info = "<span class='pageLinked'>" . __("Page already linked - importing will override") . "</span>"; $link_checked = " override='true' "; } else { $link_checked = "checked"; } echo "<li><input " . $link_checked . " course='" . $course . "' type='checkbox' id='course-syllabus'/>" . __("Course Syllabus") . " " . $link_info . "</li>"; echo "</ul>"; echo "<p>" . __("Course home page") . "</p>"; echo "<ul>"; $link_info = ""; $link_checked = ""; if ($this->linked($course, "course_" . $course . "_course-home-page")) { $link_info = "<span class='pageLinked'>" . __("Page already linked - importing will override") . "</span>"; $link_checked = " override='true' "; } else { $link_checked = "checked"; } echo "<li><input " . $link_checked . " course='" . $course . "' type='checkbox' id='course-home-page'/>" . __("Course Home Page") . " " . $link_info . "</li>"; echo "</ul>"; foreach ($data->content as $module) { echo "<p>" . __("Module") . " : " . $module->name . "</p>"; echo "<ul>"; $moduleItems = $modules->getModuleItems($module->id); foreach ($moduleItems->content as $item) { $link_info = ""; $link_checked = ""; if ($this->linked($course, "course_" . $course . "_" . $item->page_url)) { $link_info = "<span class='pageLinked'>" . __("Page already linked - importing will override") . "</span>"; $link_checked = " override='true' "; } else { $link_checked = "checked"; } array_push($module_pages, $item->page_url); echo "<li><input " . $link_checked . " course='" . $course . "' module_name='" . addslashes($module->name) . "' module='" . $module->id . "' type='checkbox' id='" . $item->id . "'/>" . $item->title . " " . $link_info . "</li>"; } echo "</ul>"; } $pages = new InstructureCanvasAPI\Courses\Pages\Pages(); $pages->setAPI($API); $pages->setCourseID($course_details[0]); $data = $pages->getPages(); echo "<p>" . __("Pages outside modules") . "</p>"; echo "<ul>"; foreach ($data->content as $item) { if ($item->front_page != 1) { if (!in_array($item->url, $module_pages)) { $link_info = ""; $link_checked = ""; if ($this->linked($course, "course_" . $course . "_" . $item->url)) { $link_info = "<span class='pageLinked'>" . __("Page already linked - importing will override") . "</span>"; $link_checked = " override='true' "; } else { $link_checked = "checked"; } echo "<li><input " . $link_checked . " course='" . $course . "' type='checkbox' id='" . $item->url . "'/>" . $item->title . " " . $link_info . "</li>"; } } } echo "</ul>"; echo "<input type='submit' id='molie_choose_submit' value='" . __("Import pages") . "' />"; echo "</form>"; echo "</div>"; echo "<div id='molie_files' style='display:none'>"; echo "<p>" . __("Page Linking complete") . "</p>"; ?> <form method="post" action='<?php echo admin_url("admin.php?page=molie_files"); ?> '><?php $nonce = wp_create_nonce("molie-files"); echo '<input type="hidden" name="molie-files-nonce" value="' . $nonce . '"/>'; echo "<input type='hidden' name='course_ID' value='" . $course . "' />"; echo "<p><input type='submit' value='" . __("Now, lets connect files") . "' /></p>"; echo "</div>"; } } $loader->unregister(); } else { print_r($_POST); echo "nonce failed"; } } else { $args = array("post_type" => "linkedcanvascourse", "post_status" => "publish"); $courses = get_posts($args); if (count($courses) != 0) { echo "<h2>" . __("Choose a course") . "</h2>"; $args = array("post_type" => "linkedcanvascourse", "post_status" => "publish"); $courses = get_posts($args); if (count($courses) != 0) { $nonce = wp_create_nonce("molie-link"); foreach ($courses as $course) { ?> <form method="post" action='<?php echo admin_url("admin.php?page=molie_choose"); ?> '> <p><?php echo $course->post_title; ?> </p> <input type="hidden" name="molie-link-nonce" value="<?php echo $nonce; ?> "/> <input type="hidden" name="molie_course" value="<?php echo get_post_meta($course->ID, "courseID", true) . "|" . $course->post_title; ?> " /> <input type="hidden" name="url" value="<?php echo get_post_meta($course->ID, "courseURL", true); ?> " /> <input type="hidden" name="token" value="<?php echo get_post_meta($course->ID, "courseToken", true); ?> " /> <input name="course" type="hidden" value="<?php echo get_post_meta($course->ID, "courseID", true); ?> " /> <input type="submit" value="<?php echo __("Choose course pages"); ?> " /> </form> <?php } } } } }
<?php use FigureTask\Drawer\Drawers\Image\ImageDrawerFactory; use FigureTask\Drawer\Drawers\Image\ImageRenderOptions; use FigureTask\Drawer\Drawers\Points\PointsDrawerFactory; require_once __DIR__ . '/../util/psr4.php'; $psr4AutoLoader = new Psr4AutoloaderClass(); $psr4AutoLoader->addNamespace('FigureTask', __DIR__ . '/FigureTask'); $psr4AutoLoader->register(); call_user_func(function () { $figures = [['type' => 'rectangle', 'shape' => ['stroke' => ['color' => 'black', 'size' => 1], 'foreground' => ['color' => 'red'], 'background' => ['color' => 'white']], 'size' => 250], ['type' => 'circle', 'shape' => ['stroke' => ['color' => 'black', 'size' => 1], 'foreground' => ['color' => 'red'], 'background' => ['color' => 'white']], 'radius' => 100]]; echo "Input: ", json_encode($figures, JSON_PRETTY_PRINT), "\n\n"; echo "Output:", "\n\n"; // Создаем изображения, $imageDrawerFactory = new ImageDrawerFactory(new ImageRenderOptions('image.png', 640, 480)); $imageDemo = new \FigureTask\Demo($imageDrawerFactory); $imageDemo->run($figures); // Или, например, $pointsDrawerFactory = new PointsDrawerFactory(); $pointsDemo = new \FigureTask\Demo($pointsDrawerFactory); $pointsDemo->run($figures); });
function check_calendar() { if (wp_verify_nonce($_POST['nonce'], "molie_admin_check")) { require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($_POST['course'], "courseURL", true), "token" => get_post_meta($_POST['course'], "courseToken", true), "webService" => "CURL")); $course_id = get_post_meta($_POST['course'], "courseID", true); $calendar = new InstructureCanvasAPI\Courses\Courses(); $calendar->setAPI($API); $data = $calendar->getCoursesForThisUserWithSyllabus(); foreach ($data->content as $course_data) { if ($course_data->id == $course_id) { $data = $course_data; } } $calendar = file_get_contents($data->calendar->ics); $calendar = explode("\n", $calendar); $parse = false; $content = array(); $post_content = ""; for ($x = 0; $x <= count($calendar); $x++) { $line = trim(str_replace("\n", "", $calendar[$x])); if ($line == "BEGIN:VEVENT") { $parse = true; } if ($parse) { if ($line == "END:VEVENT") { $post_content = $content['date'] . $content['summary'] . $content['location'] . $content['link']; $parse = false; } $parts = explode(":", $line); if (count($parts) != 1) { if ($parts[0] == "URL") { $data = str_replace("\n", "", str_replace("\r", "", str_replace($parts[0] . ":", "", $line) . trim($calendar[$x + 1]))); } else { $data = $parts[1]; } if ($parts[0] == "LOCATION") { $content['location'] = "<p>Location " . $data . "</p>"; } if ($parts[0] == "SUMMARY") { $content['summary'] = "<p>Summary " . $data . "</p>"; } if ($parts[0] == "URL") { $content['link'] = "<p>Link <a href='" . $data . "'>" . $data . "</a></p>"; } if ($parts[0] == "DTSTART") { if (strpos($data, "=") == FALSE) { $time = mktime(substr($data, 10, 2), substr($data, 12, 2), substr($data, 14, 2), substr($data, 4, 2), substr($data, 6, 2), substr($data, 0, 4)); } $content['date'] = "<p>Date " . date("l, jS F Y G:i:s A", $time) . "</p>"; } if ($parts[0] == "DTSTART;VALUE=DATE") { $time = mktime(0, 0, 0, substr($data, 4, 2), substr($data, 6, 2), substr($data, 0, 4)); $content['date'] = "<p>Date " . date("l, jS F Y G:i:s A", $time) . "</p>"; } } } } $calendar = get_post(get_post_meta($_POST['course'], "canvasCalendarPage", true)); if ($calendar->post_content == $post_content) { echo json_encode(array(true)); } else { echo json_encode(array(false)); } } else { echo "Nonce failed"; } wp_die(); }
// replace the namespace prefix with the base directory, // replace namespace separators with directory separators // in the relative class name, append with .php $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php'; // if the mapped file exists, require it if ($this->requireFile($file)) { // yes, we're done return $file; } } // never found it return false; } /** * If a file exists, require it from the file system. * * @param string $file The file to require. * @return bool True if the file exists, false if not. */ protected function requireFile($file) { if (file_exists($file)) { require $file; return true; } return false; } } $autoloader = new Psr4AutoloaderClass(); $autoloader->register(); $autoloader->addNamespace('Serializers', dirname(__FILE__) . '/../src');
function roster() { if (isset($_POST['molie-roster-nonce'])) { if (wp_verify_nonce($_POST['molie-roster-nonce'], "molie-roster-nonce")) { $course_id = get_post_meta($_POST['course_id'], "courseID", true); $course_token = get_post_meta($_POST['course_id'], "courseToken", true); $course_url = get_post_meta($_POST['course_id'], "courseURL", true); $categories = $this->create_categories(get_post($_POST['course_id'])); if (get_post_meta($_POST['course_id'], "canvasRosterPage", true) == "") { $roster_post = wp_insert_post(array("post_type" => 'post', "post_status" => 'publish', "post_title" => __("Course Roster"), "post_author" => get_current_user_id())); wp_set_post_categories($roster_post, $categories); update_post_meta($roster_post, "CanvasRoster", "true", true); update_post_meta($roster_post, "CanvasCourse", $course_id, true); update_post_meta($_POST['course_id'], "canvasRosterPage", $roster_post, true); } require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $course_url, "token" => $course_token, "webService" => "CURL")); $roster = new InstructureCanvasAPI\Courses\Users\Users(); $roster->setAPI($API); $roster->setCourseID($course_id); $data = $roster->getUsers(); if ($data) { if (count($data->content) != 0) { echo "<div id='molie_choose'>"; echo "<h2>" . __("Course users") . "</h2>"; echo "<div id='importProgress'><p><strong>" . __("Import Progress") . " <span id='importTotal'></span></strong></p><div id='importProgressBar'></div></div>"; echo '<form id="molie_choose_form" action="javascript:function connect(){return false;};">'; echo "<input type='submit' id='molie_roster_submit' value='" . __("Add to roster") . "' />"; echo "<input type='submit' id='molie_roster_skip' value='" . __("Skip step") . "' />"; echo "<p><span><a href='javascript:molie_select_all()'>" . __("Select All") . "</a></span> <span><a href='javascript:molie_unselect_all()'>" . __("Unselect All") . "</a></span></p>"; echo "<ul>"; foreach ($data->content as $student) { echo "<li>"; if (get_post_meta($_POST['course_id'], "canvasStudent_" . $student->id, true) != "") { $link_checked = ""; $link_info = __("Student already linked"); } else { $link_checked = "checked"; $link_info = ""; } echo "<input type='checkbox' " . $link_checked . " id='" . $student->id . "' course_post='" . $_POST['course_id'] . "'>" . $student->short_name . "<span id='update" . $student->id . "'>" . $link_info . "</span></li>"; } echo "</ul>"; echo "<input type='submit' id='molie_roster_submit' value='" . __("Add to roster") . "' />"; echo "</form>"; echo "</div>"; echo "<div id='molie_calendar' style='display:none'>"; echo '<form method="post" action="' . admin_url("admin.php?page=molie_calendar") . '">'; echo "<input name='course_id' type='hidden' value='" . $_POST['course_id'] . "' />"; echo wp_nonce_field("molie-calendar-nonce", "molie-calendar-nonce"); echo "<input type='submit' value='" . __("Link Calendar") . "' />"; echo "</form>"; echo "</div>"; } } $loader->unregister(); } else { print_r($_POST); } } else { $args = array("post_type" => "linkedcanvascourse", "post_status" => "publish"); $courses = get_posts($args); if (count($courses) != 0) { echo "<h2>" . __("Choose a course") . "</h2>"; $nonce = wp_create_nonce("molie-roster-nonce"); foreach ($courses as $course) { ?> <form method="post" action='<?php echo admin_url("admin.php?page=molie_roster"); ?> '> <p><?php echo $course->post_title; ?> </p> <input type="hidden" name="molie-roster-nonce" value="<?php echo $nonce; ?> "/> <input type="hidden" name="url" value="<?php echo get_post_meta($course->ID, "courseURL", true); ?> " /> <input type="hidden" name="token" value="<?php echo get_post_meta($course->ID, "courseToken", true); ?> " /> <input name="course_id" type="hidden" value="<?php echo $course->ID; ?> " /> <input type="submit" value="<?php echo __("Get Roster"); ?> " /> </form> <?php } } } }
function link_post($post_id) { if (count($_POST) != 0 && isset($_POST['_wp_http_referer'])) { $linked = get_post_meta($post_id, "CanvasLinked", true); if ($linked == 1) { $this->post = $post_id; $post = get_post($this->post); $this->content = $post->post_content; $this->change_src(); $this->change_links(); $strip = explode("body>", $this->content); $this->content = substr($strip[1], 0, strlen($strip[1]) - 2); $styles = $this->stylesheets($post); require_once dirname(__FILE__) . "/../lib/emogrifier.php"; foreach ($styles as $style) { if (strpos($style, network_site_url()) !== FALSE) { $dir = wp_upload_dir(); $style = str_replace(network_site_url() . "/wp-content/", str_replace("uploads", "", $dir['basedir']), $style); $style = explode("?", $style); $style = $style[0]; } $css = preg_replace("/\\/[\\*]*[^\\*]*\\*\\//", "", file_get_contents($styles[1])); $emogrifier = new emogrifier($this->content, $css); $this->content = $emogrifier->emogrify(); } $canvas_id = get_post_meta($post_id, "postCanvasID", true); $course_id = get_post_meta($post_id, "CanvasCourse", true); global $wpdb; $course_post = $wpdb->get_results("select post_id from " . $wpdb->prefix . "postmeta where meta_key='CourseID' and meta_value = '" . $course_id . "'"); $course_post = get_post($course_post[0]->post_id); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($course_post->ID, "courseURL", true), "token" => get_post_meta($course_post->ID, "courseToken", true), "webService" => "CURL")); $pages = new InstructureCanvasAPI\Courses\Pages\Pages(); $pages->setAPI($API); $pages->setCourseID(get_post_meta($course_post->ID, "courseID", true)); $post = get_post($post_id); $publish = 1; if ($post->post_status != "publish") { $publish = 0; } $data = $pages->updatePage($post->post_title, array("wiki_page[body]" => stripslashes(str_replace(" ", " ", $this->content)), "wiki_page[title]" => $post->post_title, "wiki_page[published]" => $publish)); } } }
function assignment() { if (isset($_POST['molie-assignment-nonce'])) { if (wp_verify_nonce($_POST['molie-assignment-nonce'], "molie-assignment-nonce")) { $course_id = get_post_meta($_POST['course_id'], "courseID", true); $course_token = get_post_meta($_POST['course_id'], "courseToken", true); $course_url = get_post_meta($_POST['course_id'], "courseURL", true); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $course_url, "token" => $course_token, "webService" => "CURL")); $assignments = new InstructureCanvasAPI\Courses\Assignments\Assignments(); $assignments->setAPI($API); $assignments->setCourseID($course_id); $data = $assignments->getAssignments(); if ($data) { if (count($data->content) != 0) { echo "<div id='molie_choose'>"; echo "<h2>" . __("Assignments in this course") . "</h2>"; echo "<div id='importProgress'><p><strong>" . __("Import Progress") . " <span id='importTotal'></span></strong></p><div id='importProgressBar'></div></div>"; echo '<form id="molie_choose_form" action="javascript:function connect(){return false;};">'; echo "<input type='submit' id='molie_assignment_submit' value='" . __("Link Assignments") . "' />"; echo "<input type='submit' id='molie_assignment_skip' value='" . __("Skip step") . "' />"; echo "<p><span><a href='javascript:molie_select_all()'>" . __("Select All") . "</a></span> <span><a href='javascript:molie_unselect_all()'>" . __("Unselect All") . "</a></span></p>"; echo "<ul>"; foreach ($data->content as $quiz) { echo "<li>"; if (get_post_meta($_POST['course_id'], "canvasQuiz_" . $quiz->id, true) != "") { $link_checked = ""; $link_info = __("Quiz already linked"); } else { $link_checked = "checked"; $link_info = ""; } echo "<input type='checkbox' " . $link_checked . " id='" . $quiz->id . "' course_post='" . $_POST['course_id'] . "'>" . $quiz->name . "<span id='update" . $quiz->id . "'>" . $link_info . "</span></li>"; } echo "</ul>"; echo "<input type='submit' id='molie_assignment_submit' value='" . __("Link Assignments") . "' />"; echo "</form>"; echo "</div>"; echo "<div id='molie_discussions' style='display:none'>"; echo '<form method="post" action="' . admin_url("admin.php?page=molie_discussions") . '">'; echo "<input name='course_id' type='hidden' value='" . $_POST['course_id'] . "' />"; echo wp_nonce_field("molie-discussion-nonce", "molie-discussion-nonce"); echo "<input type='submit' value='" . __("Now, Discussions") . "' />"; echo "</form>"; echo "</div>"; } } $loader->unregister(); } else { echo "HELLO"; print_r($_POST); } } else { $args = array("post_type" => "linkedcanvascourse", "post_status" => "publish"); $courses = get_posts($args); if (count($courses) != 0) { echo "<h2>" . __("Choose a course") . "</h2>"; $nonce = wp_create_nonce("molie-assignment-nonce"); foreach ($courses as $course) { ?> <form method="post" action='<?php echo admin_url("admin.php?page=molie_assignments"); ?> '> <p><?php echo $course->post_title; ?> </p> <input type="hidden" name="molie-assignment-nonce" value="<?php echo $nonce; ?> "/> <input type="hidden" name="url" value="<?php echo get_post_meta($course->ID, "courseURL", true); ?> " /> <input type="hidden" name="token" value="<?php echo get_post_meta($course->ID, "courseToken", true); ?> " /> <input name="course_id" type="hidden" value="<?php echo $course->ID; ?> " /> <input type="submit" value="<?php echo __("Get Assignments"); ?> " /> </form> <?php } } } }
function files() { if (!isset($_POST['molie-files-nonce'])) { $args = array("post_type" => "linkedcanvascourse", "post_status" => "publish"); $courses = get_posts($args); if (count($courses) != 0) { echo "<h2>" . __("Choose a course") . "</h2>"; $nonce = wp_create_nonce("molie-files"); foreach ($courses as $course) { ?> <form method="post" action="<?php echo admin_url("admin.php?page=molie_files"); ?> "> <p><?php echo $course->post_title; ?> </p> <input type="hidden" name="molie-files-nonce" value="<?php echo $nonce; ?> "/> <input type="hidden" name="url" value="<?php echo get_post_meta($course->ID, "courseURL", true); ?> " /> <input type="hidden" name="token" value="<?php echo get_post_meta($course->ID, "courseToken", true); ?> " /> <input name="course_ID" type="hidden" value="<?php echo $course->ID; ?> " /> <input type="submit" value="<?php echo __("Get Files"); ?> " /> </form> <?php } } } else { if (wp_verify_nonce($_POST['molie-files-nonce'], "molie-files")) { $course_id = get_post_meta($_POST['course_ID'], "courseID", true); $course_token = get_post_meta($_POST['course_ID'], "courseToken", true); $course_url = get_post_meta($_POST['course_ID'], "courseURL", true); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => $course_url, "token" => $course_token, "webService" => "CURL")); $folders = new InstructureCanvasAPI\Courses\Folders\Folders(); $folders->setAPI($API); $folders->setCourseID($course_id); $data = $folders->getFolders(); $folders = $data->content; $this->file_system = array(); foreach ($folders as $folder) { if ($folder->name == "course files") { $base_id = $folder->id; } if (!isset($this->file_system[$folder->id])) { $this->file_system[$folder->id] = array("name" => $folder->name, "id" => $folder->id, "url" => $folder->files_url); $this->file_system[$folder->id]['children'] = array(); if ($folder->parent_folder_id != "") { if (!isset($this->file_system[$folder->parent_folder_id])) { $this->file_system[$folder->parent_folder_id] = array(); $this->file_system[$folder->parent_folder_id]["children"] = array(); } array_push($this->file_system[$folder->parent_folder_id]['children'], $folder->id); } } else { $this->file_system[$folder->id]["name"] = $folder->name; $this->file_system[$folder->id]["id"] = $folder->id; $this->file_system[$folder->id]["url"] = $folder->files_url; if ($folder->parent_folder_id != "") { if (!isset($this->file_system[$folder->parent_folder_id])) { $this->file_system[$folder->parent_folder_id] = array(); $this->file_system[$folder->parent_folder_id]["children"] = array(); } array_push($this->file_system[$folder->parent_folder_id]['children'], $folder->id); } } } $upload_dir = wp_upload_dir(); $base_path = $upload_dir['basedir']; if (!is_dir($base_path . "/" . $course_id)) { mkdir($base_path . "/" . $course_id); } $this->make_folders($base_id, $base_path . "/" . $course_id); foreach ($this->file_system as $index => $id) { unset($this->file_system[$index]['name']); unset($this->file_system[$index]['id']); unset($this->file_system[$index]['children']); } delete_post_meta($_POST['course_ID'], "courseFileSystem"); add_post_meta($_POST['course_ID'], "courseFileSystem", $this->file_system, true); $files = new InstructureCanvasAPI\Courses\Files\Files(); $files->setAPI($API); $files->setCourseID($course_id); $data = $files->getFiles(); $files = $data->content; if ($data) { if (count($data->content) != 0) { echo "<div id='molie_choose'>"; echo "<h2>" . __("Files in this course") . "</h2>"; echo "<p>" . __("You should import all files") . "</p>"; echo "<div id='importProgress'><p><strong>" . __("Import Progress") . " <span id='importTotal'></span></strong></p><div id='importProgressBar'></div></div>"; echo '<form id="molie_choose_form" action="javascript:function connect(){return false;};">'; echo "<input type='submit' id='molie_file_submit' value='" . __("Import files") . "' />"; echo "<input type='submit' id='molie_choose_skip' value='" . __("Skip step") . "' />"; echo "<p><span><a href='javascript:molie_select_all()'>" . __("Select All") . "</a></span> <span><a href='javascript:molie_unselect_all()'>" . __("Unselect All") . "</a></span></p>"; echo "<ul>"; foreach ($data->content as $file) { echo "<li>"; if (isset($file->thumbnail_url)) { echo "<img src='" . $file->thumbnail_url . "' />"; } $file_size = $file->size / 1000; $file_size_parts = explode(".", $file_size); if (strlen($file_size_parts[0]) >= 4) { $file_size = $file->size / 1000000; $file_size = substr($file_size, 0, 4) . "MB"; } else { $file_size = substr($file_size, 0, 4) . "KB"; } if ($this->is_file_downloaded($_POST['course_ID'], $file)) { $checked = ""; $downloaded = __("Already Downloaded"); } else { $checked = "checked"; $downloaded = ""; } $parts = explode("verifier=", $file->url); $verifier = array_pop($parts); echo "<input verifier='" . $verifier . "' type='checkbox' " . $checked . " filename='" . $file->display_name . "' folder='" . $file->folder_id . "' url='" . $file->url . "' id='" . $file->id . "' course_post='" . $_POST['course_ID'] . "'>" . $file->display_name . " (" . $file_size . ")<span id='update" . $file->id . "'>" . $downloaded . "</span></li>"; } echo "</ul>"; echo "<input type='submit' id='molie_file_submit' value='" . __("Import files") . "' />"; echo "</form>"; echo "</div>"; echo "<div id='molie_quiz_assignments'>"; echo '<form method="post" action="' . admin_url("admin.php?page=molie_quiz") . '">'; echo "<input name='course_id' type='hidden' value='" . $_POST['course_ID'] . "' />"; echo wp_nonce_field("molie-quiz-nonce", "molie-quiz-nonce"); echo "<input type='submit' value='" . __("Now, Quizzes") . "' />"; echo "</form>"; echo "</div>"; } } $loader->unregister(); } } }
/** * Регистрация автозагрузки классов */ protected function AutoloadRegister() { spl_autoload_register(array('Engine', 'autoload')); /** * Подключаем PSR-4 автозагрузчик */ require_once Config::Get('path.framework.libs_vendor.server') . DIRECTORY_SEPARATOR . 'php-fig' . DIRECTORY_SEPARATOR . 'PSR-4' . DIRECTORY_SEPARATOR . 'Psr4AutoloaderClass.php'; self::$oAutoloader = new Psr4AutoloaderClass(); self::$oAutoloader->register(); }
function pre() { global $post; if ($post->post_type == "post" && isset($_GET['action'])) { $linked = get_post_meta($post->ID, "CanvasLinked", true); if ($linked == 1) { $canvas_id = get_post_meta($post->ID, "postCanvasID", true); $course_id = get_post_meta($post->ID, "CanvasCourse", true); global $wpdb; $course_post = $wpdb->get_results("select post_id from " . $wpdb->prefix . "postmeta where meta_key='CourseID' and meta_value = '" . $course_id . "'"); $course_post = get_post($course_post[0]->post_id); require_once __DIR__ . "/../../API/Psr4AutoloaderClass.php"; $loader = new Psr4AutoloaderClass(); $loader->register(); $loader->addNamespace('InstructureCanvasAPI', __DIR__ . "/../../API/InstructureCanvasAPI/src"); $API = new InstructureCanvasAPI\InstructureCanvasAPI(array("site" => get_post_meta($course_post->ID, "courseURL", true), "token" => get_post_meta($course_post->ID, "courseToken", true), "webService" => "CURL")); $pages = new InstructureCanvasAPI\Courses\Pages\Pages(); $pages->setAPI($API); $pages->setCourseID(get_post_meta($course_post->ID, "courseID", true)); $data = $pages->getPage(get_post_meta($post->ID, "postURL", true)); $this->canvas = $data->content->body; $this->wp = $post->post_content; $this->prepare(); $this->wp = explode("body>", $this->wp); $this->wp = substr($this->wp[1], 0, strlen($this->wp[1]) - 2); $this->canvas = explode("body>", $this->canvas); $this->canvas = substr($this->canvas[1], 0, strlen($this->canvas[1]) - 2); if ($this->compare()) { ?> <div id='canvassyncmessage' class="notice notice-success" style="border:1px solid #000"> <p><?php echo __("This post is up to date on Canvas and WP"); ?> : <span class="molieoptions">(<?php echo __("Click for Options"); ?> )</span></p> <div id="molielinkoptions"> <p><a href="<?php echo get_post_meta($post->ID, "postHTMLURL", true); ?> "><?php echo __("See this page on Canvas"); ?> </p> <p><a href="javascript:molie_update_post(<?php echo $post->ID; ?> ,'<?php echo get_post_meta($post->ID, "postURL", true); ?> ','upload');">Update Canvas with this page</a></p> <p><a href="javascript:molie_update_post(<?php echo $post->ID; ?> ,'<?php echo get_post_meta($post->ID, "postURL", true); ?> ','download');">Update this page with Canvas content</a></p> </div> </div> <?php } else { ?> <div id='canvassyncmessage' class="notice notice-info" style="border:1px solid #000"> <p><?php echo __("This post does not appear to be the same as the one it is linked to on Canvas"); ?> : <span class="molieoptions">(<?php echo __("Click for Options"); ?> )</span></p> <div id="molielinkoptions"> <p><a href="<?php echo get_post_meta($post->ID, "postHTMLURL", true); ?> "><?php echo __("See this page on Canvas"); ?> </p> <p><a href="javascript:molie_update_post(<?php echo $post->ID; ?> ,'<?php echo get_post_meta($post->ID, "postURL", true); ?> ','upload');">Update Canvas with this page</a></p> <p><a href="javascript:molie_update_post(<?php echo $post->ID; ?> ,'<?php echo get_post_meta($post->ID, "postURL", true); ?> ','download');">Update this page with Canvas content</a></p> </div> </div> </div> <?php } } } }