//Initialize $content->text to an empty string here to avoid trying to append to it before //it has been initialized and throwing a warning. Bug 33163 $content->text = ""; // Construct the Panopto data proxy object. $panoptodata = new panopto_data($courseid); if (empty($panoptodata->servername) || empty($panoptodata->instancename) || empty($panoptodata->applicationkey)) { $content->text = get_string('unprovisioned', 'block_panopto') . "\n <br/><br/>\n <a href='{$CFG->wwwroot}/blocks/panopto/provision_course_internal.php?id={$courseid}'>" . get_string('provision_course_link_text', 'block_panopto') . "</a>"; $content->footer = ""; return $content; } try { if (!$panoptodata->sessiongroupid) { $content->text = get_string('no_course_selected', 'block_panopto'); } else { // Get course info from SOAP service. $courseinfo = $panoptodata->get_course(); // Panopto course was deleted, or an exception was thrown while retrieving course data. if ($courseinfo->Access == "Error") { $content->text .= "<span class='error'>" . get_string('error_retrieving', 'block_panopto') . "</span>"; } else { // SSO form passes instance name in POST to keep URLs portable. $content->text .= "\n <form name='SSO' method='post'>\n <input type='hidden' name='instance' value='{$panoptodata->instancename}' />\n </form>"; $content->text .= '<div><b>' . get_string('live_sessions', 'block_panopto') . '</b></div>'; $livesessions = $panoptodata->get_live_sessions(); if (!empty($livesessions)) { $i = 0; foreach ($livesessions as $livesession) { // Alternate gray background for readability. $altclass = $i % 2 ? "listItemAlt" : ""; $livesessiondisplayname = s($livesession->Name); $content->text .= "<div class='listItem {$altclass}'>\n {$livesessiondisplayname}\n <span class='nowrap'>\n [<a href='javascript:panopto_launchNotes(\"{$livesession->LiveNotesURL}\")'\n >" . get_string('take_notes', 'block_panopto') . '</a>]';