course)) { error("Course is misconfigured"); } if (! $glossary = get_record("glossary", "id", $cm->instance)) { error("Course module is incorrect"); } require_login($course->id); if (!$cm->visible and !isteacher($course->id)) { notice(get_string("activityiscurrentlyhidden")); } add_to_log($course->id, "glossary", "view", "view.php?id=$cm->id", "$glossary->id"); if ( $sortorder ) { $sortorder = strtolower($sortorder); if ($sortorder != "asc" and $sortorder != "desc") { $sortorder = ""; } } if ( $sortorder ) { $l = ""; $search =""; } $search = trim(strip_tags($search)); if ($search and !$entryid) { $l = ""; $searchterms = explode(" ", $search); // Search for words independently foreach ($searchterms as $key => $searchterm) { if (strlen($searchterm) < 2) { unset($searchterms[$key]); } } $search = trim(implode(" ", $searchterms)); $currentview = ""; } elseif ($eid) { $search = ""; } $alphabet = explode("|", get_string("alphabet","glossary")); if ($l == "" and $search == "" and $sortkey == "" and ($eid == "" or $eid == 0)) { $l = $alphabet[0]; } elseif ($eid) { $l = ""; } if ($currentview) { $l = ""; $currentview = strtolower($currentview); if ($currentview) { if ($cat > 0) { $category = get_record("glossary_categories", "id", $cat); if (!$category) { $cat = ""; } } } } /// Printing the page header if ($course->category) { $navigation = "id\">$course->shortname ->"; } $strglossaries = get_string("modulenameplural", "glossary"); $strglossary = get_string("modulename", "glossary"); $strallcategories = get_string("allcategories", "glossary"); $straddentry = get_string("addentry", "glossary"); $strnoentries = get_string("noentries", "glossary"); $strsearchconcept = get_string("searchconcept", "glossary"); $strsearchindefinition = get_string("searchindefinition", "glossary"); $strsearch = get_string("search"); print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname", "$navigation id>$strglossaries -> $glossary->name", "", "", true, update_module_button($cm->id, $course->id, $strglossary), navmenu($course, $cm)); print_heading($glossary->name); /// Info box if ( $glossary->intro ) { print_simple_box_start("center","70%"); echo '

'; echo $glossary->intro; echo '

'; print_simple_box_end(); } /// Add button if (isteacher($course->id) or ($glossary->studentcanpost) and !isguest($course->id)) { $options = array ("id" => "$cm->id"); echo '

'; print_single_button("edit.php", $options, $straddentry); echo '

'; } /// Search box print_simple_box_start("center", "", $THEME->cellheading); echo '

'; echo '

'; echo ' '; echo ' '; echo ''; echo $strsearchindefinition; echo ''; echo '
'; echo '

'; print_simple_box_end(); /// Tabbed browsing sections echo '

'; $data[0]->link = "view.php?id=$id"; $data[0]->caption = get_string("standardview", "glossary"); $data[1]->link = "view.php?id=$id¤tview=categories"; $data[1]->caption = get_string("categoryview", "glossary"); if ($currentview) { $currenttab = GLOSSARY_CATEGORY_VIEW; //1; } else { $currenttab = GLOSSARY_STANDARD_VIEW; //0; } $glossary_tCFG->TabTableBGColor = $THEME->cellheading; $glossary_tCFG->ActiveTabColor = $THEME->cellheading; $glossary_tCFG->InactiveTabColor = $THEME->cellcontent2; $glossary_tCFG->InactiveFontColor= $THEME->hidden; $glossary_tCFG->TabTableWidth = "70%"; $glossary_tCFG->TabsPerRow = 5; $glossary_tCFG->TabSeparation = 4; glossary_print_tabbed_table_start($data, $currenttab, $glossary_tCFG); echo "

"; if ($currentview) { glossary_print_categories_menu($course, $cm, $glossary, $cat, $category); $currentcategory = ""; } else { glossary_print_alphabet_menu($cm, $glossary, $l, $sortkey, $sortorder); if ($l or $sortkey) { $currentletter = ""; } elseif ($search) { echo "

$strsearch: $search

"; } echo "
"; } /// Printing the entries if ($search) { // looking for a term $allentries = glossary_search_entries($searchterms, $glossary, $includedefinition); } elseif ($eid) { // looking for an entry $allentries = get_records("glossary_entries", "id", $eid); } elseif ($currentview and $cat == GLOSSARY_SHOW_ALL_CATEGORIES) { // Browsing all categories $sql = "SELECT gec.id gecid, gc.name, gc.id CID, ge.* FROM {$CFG->prefix}glossary_entries ge, {$CFG->prefix}glossary_entries_categories gec, {$CFG->prefix}glossary_categories gc WHERE (ge.glossaryid = '$glossary->id' or ge.sourceglossaryid = '$glossary->id') AND gec.entryid = ge.id AND gc.id = gec.categoryid "; if ( $glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS ) { $sql .= "ORDER BY gc.name, ge.timecreated"; } else { $sql .= "ORDER BY gc.name, ge.concept"; } $allentries = get_records_sql($sql); } else { // looking for terms that begin with a specify letter or entries with no category associated if ( $sortkey == "CREATION" or $sortkey == "UPDATE" or $glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS) { if ( !$sortkey and $glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS) { $sortkey = "CREATION"; $sortorder = "asc"; } if ( !$sortorder ) { $sortorder = "asc"; } if ($sortkey == "CREATION") { $orderby = "timecreated $sortorder"; } else { $orderby = "timemodified $sortorder"; } } else { $orderby = "concept ASC"; } $ownentries = get_records("glossary_entries", "glossaryid", $glossary->id, $orderby); $importedentries = get_records("glossary_entries", "sourceglossaryid", $glossary->id, $orderby); if ($ownentries and $importedentries) { $allentries = array_merge($ownentries, $importedentries); usort($allentries, glossary_sort_entries); } elseif ($importedentries) { $allentries = $importedentries; } elseif ($ownentries) { $allentries = $ownentries; } } if ($allentries) { if ($glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS) { echo "
"; } $dumpeddefinitions = 0; foreach ($allentries as $entry) { $dumptoscreen = 0; $firstletter = strtoupper(substr(ltrim($entry->concept), 0, strlen($l))); if ($l) { if ($l == "ALL" or $sortkey == "CREATION" or $sortkey == "UPDATE" or $firstletter == $l) { if ($currentletter != $firstletter[0]) { $currentletter = $firstletter[0]; if ($glossary->displayformat == GLOSSARY_FORMAT_SIMPLE) { if ($dumpeddefinitions > 0) { echo "

"; } echo "\n

cellheading2\">"; } if ($l == "ALL" and $glossary->displayformat != GLOSSARY_FORMAT_CONTINUOUS) { echo "$currentletter"; } if ($glossary->displayformat == GLOSSARY_FORMAT_SIMPLE) { echo "\n
"; if ($dumpeddefinitions > 0) { echo "\n
"; } } } $dumptoscreen = 1; } elseif ($l == "SPECIAL" and ord($firstletter) != ord("Ñ") and (ord($firstletter) < ord("A") or ord($firstletter) > ord("Z"))) { $dumptoscreen = 1; } } else { if ($currentview) { if ($category) { // if we are browsing a category if (record_exists("glossary_entries_categories", "entryid", $entry->id, "categoryid", $category->id)) { $dumptoscreen = 1; } } else { if ($cat == GLOSSARY_SHOW_NOT_CATEGORISED) { // Not categorized if (! record_exists("glossary_entries_categories", "entryid", $entry->id)) { $dumptoscreen = 1; } } else { // All categories if ($currentcategory != $entry->CID) { $currentcategory = $entry->CID; if ($glossary->displayformat == GLOSSARY_FORMAT_SIMPLE) { if ($dumpeddefinitions > 0) { echo "

"; } echo "\n

cellheading2\">"; } if ( $glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS ) { echo "
"; } echo "$entry->name"; if ( $glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS ) { echo "

"; } } if ($glossary->displayformat == GLOSSARY_FORMAT_SIMPLE) { echo "\n

"; if ($dumpeddefinitions > 0) { echo "\n
"; } } $dumptoscreen = 1; } } } else { $dumptoscreen = 1; } } if ($dumptoscreen) { $dumpeddefinitions++; $concept = $entry->concept; $definition = $entry->definition; if ($dumpeddefinitions == 1) { if ($glossary->displayformat == GLOSSARY_FORMAT_SIMPLE) { echo "\n
"; } } if ($search) { $entry->concept = highlight($search, $concept); $entry->definition = highlight($search, $definition); } glossary_print_entry($course, $cm, $glossary, $entry, $currentview, $cat); if ($glossary->displayformat != GLOSSARY_FORMAT_SIMPLE) { echo "

"; } } } } if (! $dumpeddefinitions) { print_simple_box_start("center", "70%", "$THEME->cellheading2"); if (!$search) { echo "

$strnoentries
"; } else { echo "
"; print_string("searchhelp"); echo "
"; } print_simple_box_end(); } else { if ($glossary->displayformat == GLOSSARY_FORMAT_CONTINUOUS) { echo "
"; } if ($glossary->displayformat == GLOSSARY_FORMAT_SIMPLE) { echo "\n
"; } } echo ""; glossary_print_tabbed_table_end(); /// Finish the page print_footer($course); ?>