public static function get_cloud_service($force_network_settings = false) { require_once 'SCORMCloud_PHPLibrary/ScormEngineService.php'; require_once 'SCORMCloud_PHPLibrary/ScormEngineUtilities.php'; if (ScormCloudPlugin::is_network_managed() || $force_network_settings) { $appid = get_site_option('scormcloud_appid'); $secretkey = get_site_option('scormcloud_secretkey'); $engine_url = get_site_option('scormcloud_engine_url'); $proxy = get_site_option('proxy'); } else { $appid = get_option('scormcloud_appid'); $secretkey = get_option('scormcloud_secretkey'); $engine_url = get_option('scormcloud_engine_url'); $proxy = get_option('proxy'); } $origin = ScormEngineUtilities::getCanonicalOriginString('Rustici Software', 'WordPress', '1.1.2'); //arbitrary number 17 is the length of 'EngineWebServices' if (strlen($engine_url) < 17) { $engine_url = "http://cloud.scorm.com/EngineWebServices"; } return new ScormEngineService($engine_url, $appid, $secretkey, $origin, $proxy); }
<h1><?php _e("Add training to your post", "scormcloud"); ?> </h1> <span class="labelheader"><?php _e("First select a course", "scormcloud"); ?> : </span> <select class="courseSelector"> <?php echo "<option value=''></option>"; $coursesFilter = ScormCloudPlugin::is_network_managed() && get_site_option('scormcloud_sharecourses') !== '1' ? $GLOBALS['blog_id'] . "-.*" : null; $courseService = $ScormService->getCourseService(); $allResults = $courseService->GetCourseList($coursesFilter); foreach ($allResults as $course) { echo "<option value='" . $course->getCourseId() . "'>" . $course->getTitle() . "</option>"; } ?> </select> <br /> <br /> <div class='selectOptionsDiv'><span class="labelheader"><?php _e("Next select some options", "scormcloud"); ?> : </span> <table>
$ScormService = ScormCloudPlugin::get_cloud_service(); try { if (!$ScormService->isValidUrl()) { echo "<div class='updated'><p class='failed'><strong>" . __("Invalid Service Url. Check your URL click 'Update Options' or clear out the bad URL and the default URL will be used.", "scormcloud") . "</strong></p></div>"; } elseif (!$ScormService->isValidAccount()) { echo "<div class='updated'><p><strong>" . __("Please fill in your SCORM Cloud credentials and click 'Update Options'.", "scormcloud") . "</strong></p></div>"; } } catch (Exception $e) { echo '<div class="updated"><p class="failed"><strong>' . __('Your SCORM Cloud credentials could not be verified. Please check that the Service URL, App ID, and Secret Key options are correct.', 'scormcloud') . '</strong></p></div>'; } $appid = get_option('scormcloud_appid'); $secretkey = get_option('scormcloud_secretkey'); $engine_url = strlen(get_option('scormcloud_engine_url')) > 0 ? get_option('scormcloud_engine_url') : "http://cloud.scorm.com/EngineWebServices"; $player_cssurl = strlen(get_option('scormcloud_player_cssurl')) > 0 ? get_option('scormcloud_player_cssurl') : 'http://cloud.scorm.com/sc/css/cloudPlayer/cloudstyles.css'; $proxy = get_option('proxy'); $network_managed = ScormCloudPlugin::is_network_managed(); } ?> <div class="scormcloud-admin-page settings"> <div class="wrap"><?php echo "<h2>" . __('Rustici Software SCORM Cloud Settings', 'scormcloud') . "</h2>"; ?> <p><em><?php _e('To configure the SCORM Cloud for WordPress plugin, you need the AppID and Secret Key credentials for your account. They can be found by going to your Apps page on the SCORM Cloud site.', 'scormcloud'); ?> <?php _e('If you need an account on SCORM Cloud,', 'scormcloud'); ?>
/** * Displays the Widget * */ function widget($args, $instance) { extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']); $requireLogin = isset($instance['requirelogin']) ? (bool) $instance['requirelogin'] : true; $regsRemaining = ScormCloudPlugin::remaining_registrations(); # Before the widget echo $before_widget; # The title if ($title) { echo $before_title . $title . $after_title; } # Make the widget echo '<link rel="stylesheet" type="text/css" href="' . get_option('siteurl') . '/wp-content/plugins/scormcloud/css/scormcloud.widget.css" />'; //echo '<h2>SCORM Cloud Courses</h2>'; global $current_user; global $wpdb; get_currentuserinfo(); $coursesFilter = ScormCloudPlugin::is_network_managed() && get_site_option('scormcloud_sharecourses') !== '1' ? $GLOBALS['blog_id'] . "-.*" : null; $ScormService = ScormCloudPlugin::get_cloud_service(); $courseService = $ScormService->getCourseService(); $courseObjArray = $courseService->GetCourseList($coursesFilter); if ($requireLogin && !is_user_logged_in()) { echo '<a href="wp-login.php">Log in</a> to see the course catalog.'; } else { $regService = $ScormService->getRegistrationService(); //echo count($regs); echo '<div class="courselistDiv">'; echo "<div class='helpMsg'>" . __("Click course title to launch.", "scormcloud") . " <br/><a class='catalogMoreInfo toggleButton' href='javascript:void(0);' toggleobject='.courselistDiv .catalog.moreInfo' onText='" . __("hide info", "scormcloud") . "' offText='" . __("more info", "scormcloud") . "'>" . __("more info", "scormcloud") . "</a></div>"; echo "<div class='catalog moreInfo'>"; if ($current_user->user_login != '') { echo "<p>" . __("If you have taken a course before, your most recent results will display by clicking 'show details' and your most recent training will launch by clicking the course title.", "scormcloud") . "</p>"; } else { echo "<p>" . __("To launch a course, you must provide a name and email address. This will allow your training results to be tracked.", "scormcloud") . "</p>"; echo "<p>" . __("By registering or logging in, your results will be associated with your user identity and you will be able to see your training results in this widget.", "scormcloud") . "</p>"; } echo "</div>"; foreach ($courseObjArray as $course) { $courseId = $course->getCourseId(); $courseTitle = $course->getTitle(); if (isset($current_user->user_login) && $current_user->user_login != '') { $invTable = ScormCloudDatabase::get_invitations_table(); $regTable = ScormCloudDatabase::get_registrations_table(); $query = $wpdb->prepare('SELECT reg.reg_id, inv.course_title, inv.course_id, inv.active, reg.update_date FROM ' . $regTable . ' reg JOIN ' . $invTable . ' inv ON reg.invite_id = inv.invite_id WHERE reg.user_id = %s AND inv.course_id = %s ORDER BY reg.update_date DESC', array($current_user->ID, $courseId)); $reg = $wpdb->get_row($query, OBJECT); if ($reg != null) { $regId = $reg->reg_id; $regResultsXmlStr = $regService->GetRegistrationResult($regId, 0, 0); $resXml = simplexml_load_string($regResultsXmlStr); $completion = $resXml->registrationreport->complete; $success = $resXml->registrationreport->success; $seconds = $resXml->registrationreport->totaltime; $score = $resXml->registrationreport->score; echo "<div class='usercourseblock'>"; if ($reg->active == 1) { echo "<a class='courseTitle' href='javascript:void(0);' key='{$regId}' onclick='ScormCloud.Widget.getLaunchURL(\"{$regId}\",\"Catalog\");' url='" . get_option('siteurl') . "/wp-content/plugins/scormcloud/ajax.php' title='" . __("Click to launch course ", "scormcloud") . "{$courseTitle}'>{$courseTitle}</a>"; } else { echo "<span class='courseTitle' title='" . __("This course is currently inactive.", "scormcloud") . "'>{$courseTitle}</span>"; } echo "<br/><a href='javascript:void(0);' class='toggleButton showDetails' toggleobject='.courselistDiv .catalog.courseDetails.{$regId}' onText='" . __("hide details", "scormcloud") . "' offText='" . __("show details", "scormcloud") . "'>" . __("show details", "scormcloud") . "</a>"; echo "<div class='catalog courseDetails {$regId}' >"; if ($seconds > 0) { echo "<div class=''>" . __("Completion", "scormcloud") . ": <span class='{$completion}'>" . __($completion) . "</span></div>"; echo "<div class=''>" . __("Success", "scormcloud") . ": <span class='{$success}'>" . __($success) . "</span></div>"; echo "<div class=''>" . __("Score", "scormcloud") . ": " . ($score == "unknown" ? "-" : $score . "%") . "</div>"; echo '<div class="time">' . floor($seconds / 60) . "min " . $seconds % 60 . __("sec spent in course", "scormcloud") . '</div>'; } else { echo '<div class="">' . __("Not Started", "scormcloud") . '</div>'; } echo "</div>"; } else { echo "<div class='usercourseblock'>"; if ($regsRemaining > 0) { echo "<a class='courseTitle' href='javascript:void(0);' coursetitle='{$courseTitle}' key='{$courseId}' onclick='ScormCloud.Widget.getCatalogLaunchURL(\"{$courseId}\");' url='" . get_option('siteurl') . "/wp-content/plugins/scormcloud/ajax.php' title='" . __("Click to launch course ", "scormcloud") . "{$courseTitle}'>{$courseTitle}</a>"; } else { echo "<span class='courseTitle' title='" . __("This course is currently inactive.", "scormcloud") . "'>{$courseTitle}</span>"; } } } else { echo "<div class='usercourseblock'>"; if ($regsRemaining > 0) { echo "<a class='courseTitle anonLaunch' href='javascript:void(0);' key='{$courseId}' title='" . __("Click to launch course", "scormcloud") . " {$courseTitle}'>{$courseTitle}</a>"; echo "<div class='anonlaunchdiv' key='{$courseId}'>" . __("First Name", "scormcloud") . ":<br/><input name='scormcloudfname' type='text' key='{$courseId}'/><br/>"; echo __("Last Name", "scormcloud") . ":<br/><input name='scormcloudlname' type='text' key='{$courseId}'/><br/>"; echo __("Email", "scormcloud") . ":<br/><input name='scormcloudemail' type='text' key='{$courseId}'/>"; echo "<input name='launch' type='button' class='catalogLaunchBtn' key='{$courseId}' coursetitle='{$courseTitle}' onclick='ScormCloud.Widget.getAnonCatalogLaunchURL(\"{$courseId}\");' url='" . get_option('siteurl') . "/wp-content/plugins/scormcloud/ajax.php' value='" . __("Start Training", "scormcloud") . "'/>"; echo "<div class='launchMessage'>message</div></div>"; } else { echo "<span class='courseTitle' title='" . __("This course is currently inactive.", "scormcloud") . "'>{$courseTitle}</span>"; } } echo "</div>"; } echo '</div>'; //echo '<script language="javascript">'.$widgetscript.'</script>'; echo '<script language="javascript" src="' . get_option('siteurl') . '/wp-content/plugins/scormcloud/scripts/scormcloud.widget.js" >' . '</script>'; } # After the widget echo $after_widget; }
$packageid = $GLOBALS['blog_id'] . '-' . uniqid(); ?> <div id="UploadFrame"><iframe width="100%" height="50px" style="border: 0;" src="<?php echo get_option('siteurl'); ?> /wp-content/plugins/scormcloud/uploadpif.php?id=<?php echo $packageid; ?> " id="ifmImport"></iframe></div> <?php $coursesFilter = null; if (ScormCloudPlugin::is_network_managed() && get_site_option('scormcloud_sharecourses') !== '1') { $coursesFilter = $GLOBALS['blog_id'] . "-.*"; } $courseService = $ScormService->getCourseService(); $courseObjArray = $courseService->GetCourseList($coursesFilter); $courseCount = count($courseObjArray); $courseObjArray = array_reverse($courseObjArray); if ($courseCount > 0) { ?> <div> <h2><?php _e("All Courses", "scormcloud"); ?> </h2> </div> <table class="widefat" cellspacing="0" id="CourseListTable">
private static function get_db_prefix() { global $wpdb; if (ScormCloudPlugin::is_network_managed()) { return get_site_option('scormcloud_db_prefix'); } else { return $wpdb->prefix; } }