function prereqs_content_alter
Search API
7.x prereqs.module | prereqs_content_alter(&$render, $content_id) |
6.x prereqs.module | prereqs_content_alter(&$render, $content_id) |
Implememnt hook_content_alter
File
- modules/
prereqs/ prereqs.module, line 744 - This is the module file for the prereqs module.
Code
function prereqs_content_alter(&$render, $content_id) {
// TODO: Make this a setting?
// Do we simply wish to DISPLAY prereq warnings in the popup window at all?
if ($content_id == "AdvisingScreen_display_popup_course_description") {
fp_add_css(fp_get_module_path("prereqs") . "/css/prereqs.css");
$course = @$render ["#course"]["value"];
if (!is_object($course)) {
return; // some kind of problem...
}
$student = @$GLOBALS ["screen"]->student;
$warnings = prereqs_get_prereq_warnings_for_course($course, $student);
if (count($warnings) > 0) {
$warning_msg = "";
foreach ($warnings as $details) {
$msg = $details ["plain_text"];
$bool_using_plain_text = TRUE;
if (isset($details ["full_html"])) {
$msg = $details ["full_html"];
$bool_using_plain_text = FALSE;
}
$msg = str_replace("\\n", "\n", $msg);
$msg = str_replace(" ", " ", $msg);
if ($bool_using_plain_text) {
$msg = nl2br($msg);
}
$warning_msg .= "<div class='prereq-popup-warning-msg'>" . $msg . "</div>";
}
$render ["prereq_warnings"] = array(
"label" => t("Prerequisites Warning:"),
"value" => $warning_msg,
"attributes" => array("class" => "popup-description-section tenpt"),
"weight" => 500,
);
// Do we have permission to override the prereq for this course?
if (!user_has_permission('override_course_locks')) {
// Set a temporary variable in our GLOBALS array so we know this course cannot be advised. Used in the advise.module, to make sure
// if we get a description from within a group, we do not have this course selected when we change tabs back to the list.
$GLOBALS ['prereqs_no_advise_course_id'][] = $course->course_id;
$render ['hidden_vars_and_buttons']['value'] = "<p class='no-override-permission'><label>" . t("Cannot Advise") . "</label>" . t("Sorry, but you do not have permission to override the advising lock on this course.") . "<p>";
}
} // count of warnings > 0
} // simply in the course description popup.
///////////////////////////////
///////////////////////////////
///////////////////////////////
///////////////////////////////
///////////////////////////////
// We want to place "anticipated availability" for the course in its popup window.
// Only do this based on our setting.
if ($content_id == "AdvisingScreen_display_popup_course_description" && function_exists("course_search_get_course_rotation_schedule")
&& variable_get("prereqs_show_availability_in_popup", "no") == "yes") {
// This is the popup window we see when we click on a course to get its description.
//fpm($render);
$course = @$render ["#course"]["value"];
if (!is_object($course)) {
return; // some kind of problem...
}
$school_id = $course->school_id;
// What is the current advising term?
//fpm($GLOBALS["fp_advising"]);
$advising_term_id = $GLOBALS ["fp_advising"]["advising_term_id"];
// Get the advising year from the term.
$year = substr($advising_term_id, 0, 4);
$rotation_schedule = course_search_get_course_rotation_schedule($course->course_id, $year, 5);
$bool_not_anticipated = course_search_get_course_rotation_schedule_not_anticipated($course->course_id);
//fpm($rotation_schedule);
$bool_use_term_abbreviation = (variable_get("prereqs_use_term_desc_abbr_in_popup", "yes") == "yes");
// By default, the scehdule text is saying that nothing is anticipated.
$schedule_text = "<span class='prereqs-schedule-not-anticipated'>" . variable_get("prereqs_not_anticipated_text", "This course isn't currently anticipated to be offered. Please ask your advisor to learn more.");
$schedule_text .= "</span>";
if (!$bool_not_anticipated) {
$x = "";
foreach ($rotation_schedule as $term_id)
{
$x .= " <span class='term-rot-avail'>" . htmlentities(get_term_description($term_id, $bool_use_term_abbreviation, $school_id), ENT_QUOTES) . "</span><span class='comma'>,</span>";
}
$x = rtrim($x, ',');
if ($x) {
$schedule_text = "<span class='term-rotation-schedule-terms'>$x</span>";
}
}
if ($schedule_text) {
// Add it to our render array. Weeee.
$render ["schedule"] = array(
"label" => t("<b>Anticipated availability:</b>"),
"value" => " <div class='prereqs-schedule-text'>" . $schedule_text . "</div>",
"attributes" => array("class" => "popup-description-section tenpt"),
"weight" => 510,
);
}
} // if content_id == AdvisingScreen_display_popup_course_description and showing availability
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
// Show course prereqs in the popup window too.
if ($content_id == "AdvisingScreen_display_popup_course_description"
&& variable_get("prereqs_show_courses_in_popup", "no") == "yes") {
$course = @$render ["#course"]["value"];
if (!is_object($course)) {
return; // some kind of problem...
}
$prereq_data = prereqs_get_prereq_string_for_course($course->course_id);
if ($prereq_data != "") {
fp_add_css(fp_get_module_path("prereqs") . "/css/prereqs.css");
// Format the string for HTML.
$prereq_data = "- " . str_replace("\n", "<br>- ", $prereq_data);
$prereq_data = "<div class='popup-prereq-course-req'>$prereq_data</div>";
$render ["prereq_courses"] = array(
"value" => t("<b>Prerequisite courses:</b>") . $prereq_data,
"attributes" => array("class" => "popup-description-section"),
);
}
} // if in course description popup and showing course prereqs.
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
// This is from the course_search module. Are we displaying rereq courses in the course description?
if ($content_id == "course_search_display_courses" && variable_get("prereqs_show_courses_in_popup", "no") == "yes") {
// Go through the render array, and find the "blocks" where we have our HTML about the courses.
foreach ($render as $key => $details) {
if (strstr($key, "course_search_course_block__")) {
// Found it!
// Get the course_id.
$course_id = str_replace("course_search_course_block__", "", $key);
// Okay, let's get our prereq data...
$prereq_data = prereqs_get_prereq_string_for_course($course_id);
if ($prereq_data != "") {
fp_add_css(fp_get_module_path("prereqs") . "/css/prereqs.css");
// Format the string for HTML.
$prereq_data = "- " . str_replace("\n", "<br>- ", $prereq_data);
$prereq_data = "<!-- PREREQ_COURSE--><div class='popup-prereq-course-req'>$prereq_data</div>";
$html = t("<b>Prerequisite courses:</b>") . $prereq_data;
// "attributes" => array("class" => "popup-description-section"),
// Insert this html just after the description. (above the <!-- DETAILS --> comment)
$render [$key]["value"] = str_replace("<!-- DETAILS -->", "$html<!-- DETAILS -->", $render [$key]["value"]);
} // prereq_data != ""
} // in course_search_course_block
}
} // course_search display courses
}