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']) ? '&nbsp;' : $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;
     }
 }