Started out reformatting the code a little and ended up simplifying

the interface a bit ... hope you like it, Will!
This commit is contained in:
moodler 2003-10-08 03:13:12 +00:00
parent 1e6e23fe93
commit 86183b0716
3 changed files with 272 additions and 262 deletions

View File

@ -6,11 +6,11 @@ $string['allentries'] = "ALL";
$string['allcategories'] = "All Categories";
$string['allowduplicatedentries'] = "Duplicated entries allowed";
$string['alphabet'] = "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z";
$string['areyousuredelete'] = "Are you sure you want to delete it?";
$string['areyousuredelete'] = "Are you sure you want to delete this entry?";
$string['attachment'] = "Attachment";
$string['back'] = "Back";
$string['categories'] = "Categories";
$string['categoryview'] = "By category";
$string['categoryview'] = "Browse by category";
$string['category'] = "Category";
$string['categorydeleted'] = "Category deleted";
$string['concept'] = "Concept";
@ -18,7 +18,7 @@ $string['concepts'] = "Concepts";
$string['definition'] = "Definition";
$string['definitions'] = "Definitions";
$string['deleteentry'] = "Delete entry";
$string['deletingnoneemptycategory'] = "If a non empty category is deleted, its relations with their entries will also be deleted. If you wish to delete the entries, you will have to do so manually.";
$string['deletingnoneemptycategory'] = "Deleting this category will not delete the entries it contains - they will be marked as uncategorised.";
$string['displayformat'] = "Display format";
$string['displayformatdefault'] = "Simple, dictionary style";
$string['displayformat1'] = "Full without author";
@ -29,12 +29,12 @@ $string['editcategories'] = "Edit categories";
$string['entries'] = "Entries";
$string['entrieswithoutcategory'] = "Entries without category";
$string['entry'] = "Entry";
$string['entryalreadyexist'] = "Entry already exists.";
$string['entrydeleted'] = "Entry deleted.";
$string['entryexported'] = "Entry succesfully exported.";
$string['explainspecial'] = "<b>Special</b> will show all concepts that do not begin with a letter.<br>";
$string['explainalphabet'] = "Select the letter you want to look for.<p>";
$string['explainall'] = "<b>ALL</b> will show all entries in one page.";
$string['entryalreadyexist'] = "Entry already exists";
$string['entrydeleted'] = "Entry deleted";
$string['entryexported'] = "Entry succesfully exported";
$string['explainspecial'] = "Shows entries that do not begin with a letter";
$string['explainalphabet'] = "Browse the glossary using this index";
$string['explainall'] = "Shows ALL entries on one page";
$string['exportedentry'] = "Exported entry";
$string['exporttomainglossary'] = "Export to main glossary";
$string['glossarytype'] = "Glossary Type";
@ -42,19 +42,18 @@ $string['mainglossary'] = "Main glossary";
$string['modulename'] = "Glossary";
$string['modulenameplural'] = "Glossaries";
$string['newglossaryentries'] = "New glossary entries:";
$string['nocategorized'] = "Not categorized";
$string['nocategorized'] = "Not categorised";
$string['noentries'] = "No entries found in this section";
$string['noentry'] = "No entry found.";
$string['searchconcept'] = "Search:";
$string['searchindefinition'] = "Search in concept AND definitions?";
$string['searchindefinition'] = "Search definitions too";
$string['secondaryglossary'] = "Secondary glossary";
$string['showspecial'] = "Show 'Special' link";
$string['showalphabet'] = "Show alphabet";
$string['showall'] = "Show 'ALL' link";
$string['special'] = "Special";
$string['standardview'] = "Standard View";
$string['standardview'] = "Browse by alphabet";
$string['studentcanpost'] = "Students can add entries";
$string['warningstudentcapost'] = "(This apply only if the glossary is not the main one)";
$string['writtenby'] = "By";
$string['writtenby'] = "by";
?>

View File

@ -655,22 +655,17 @@ global $CFG, $THEME;
$strallentries = get_string("allentries", "glossary");
if ($glossary->showalphabet) {
$output .= get_string("explainalphabet","glossary");
}
if ($glossary->showspecial) {
$output .= get_string("explainspecial","glossary");
}
if ($glossary->showall) {
$output .= get_string("explainall","glossary");
$output .= get_string("explainalphabet","glossary").'<br />';
}
echo "<CENTER>$output<p>";
echo "<center>$output<p>";
if ( $glossary->showspecial ) {
if ( $l == "SPECIAL" ) {
echo "<b>$strspecial</b> | ";
} else {
echo "<a href=\"$CFG->wwwroot/mod/glossary/view.php?id=$cm->id&l=SPECIAL\">$strspecial</a> | ";
$strexplainspecial = get_string("explainspecial","glossary");
echo "<a title=\"$strexplainspecial\" href=\"$CFG->wwwroot/mod/glossary/view.php?id=$cm->id&l=SPECIAL\">$strspecial</a> | ";
}
}
@ -695,7 +690,8 @@ global $CFG, $THEME;
if ( $l == "ALL" ) {
echo "<b>$strallentries</b></p>";
} else {
echo "<a href=\"$CFG->wwwroot/mod/glossary/view.php?id=$cm->id&l=ALL\">$strallentries</a></p>";
$strexplainall = get_string("explainall","glossary");
echo "<a title=\"$strexplainall\" href=\"$CFG->wwwroot/mod/glossary/view.php?id=$cm->id&l=ALL\">$strallentries</a></p>";
}
}
}

View File

@ -1,283 +1,298 @@
<?PHP // $Id$
<?php // $Id$
/// This page prints a particular instance of glossary
require_once("../../config.php");
require_once("lib.php");
require_once("dynalink.php");
require_variable($id); // Course Module ID, or
optional_variable($l); // letter to look for
optional_variable($eid); // Entry ID
require_variable($id); // Course Module ID
optional_variable($l); // letter to look for
optional_variable($eid); // Entry ID
optional_variable($search, ""); // search string
optional_variable($includedefinition); // include definition in search function?
optional_variable($currentview); // browsing entries by categories?
optional_variable($cat); // categoryID
optional_variable($includedefinition); // include definition in search function?
optional_variable($currentview); // browsing entries by categories?
optional_variable($cat); // categoryID
if (! $cm = get_record("course_modules", "id", $id)) {
error("Course Module ID was incorrect");
}
}
if (! $course = get_record("course", "id", $cm->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");
$search = trim(strip_tags($search));
if ($search and !$entryid ) {
$l = "";
$searchterms = explode(" ", $search); // Search for words independently
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 = "";
}
if ($l == "" and $search == "" and ($eid == "" or $eid == 0) ) {
$l = "A";
} elseif ( $eid ) {
$l = "";
}
if ( $currentview ) {
$l = "";
$currentview = strtolower($currentview);
if ( $currentview ) {
if ( $cat > 0 ) {
$category = get_record("glossary_categories","id",$cat);
if ( !$category ) {
$cat = "";
}
}
}
}
} elseif ($eid) {
$search = "";
}
if ($l == "" and $search == "" and ($eid == "" or $eid == 0)) {
$l = "A";
} 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 = "<A HREF=\"../../course/view.php?id=$course->id\">$course->shortname</A> ->";
}
$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");
$navigation = "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->";
}
$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 <A HREF=index.php?id=$course->id>$strglossaries</A> -> $glossary->name",
"", "", true, update_module_button($cm->id, $course->id, $strglossary),
navmenu($course, $cm));
"$navigation <A HREF=index.php?id=$course->id>$strglossaries</A> -> $glossary->name",
"", "", true, update_module_button($cm->id, $course->id, $strglossary),
navmenu($course, $cm));
print_heading($glossary->name);
/// Add button
/// Printing the header of the glossary
if (isteacher($course->id) or ($glossary->studentcanpost) and !isguest($course->id)) {
$options = array ("id" => "$cm->id");
echo '<center><p>';
print_single_button("edit.php", $options, $straddentry);
echo '</p></center>';
}
echo "<p><center><b>$glossary->name<p>" ;
/// Search box
print_simple_box_start("center", "70%");
echo "<table width=100% border=0><tr><td width=50% align=right>";
?>
<form method="POST" action="view.php">
<?php p(get_string("searchconcept","glossary")) ?> <input type="text" name="search" size="20" value=""> <br><?php p(get_string("searchindefinition","glossary")) ?> <input type="checkbox" name="includedefinition" value="1">
<input type="submit" value="<?php p(get_string("search")) ?>" name="searchbutton">
<input type="hidden" name="id" value="<?php p($cm->id) ?>">
</form>
<?php
echo "</td><td valign=top align=right width=50%>";
if (isteacher($course->id) or ($glossary->studentcanpost) and !isguest($course->id)) {
$options = array ("id" => "$cm->id");
print_single_button("edit.php", $options, $straddentry );
}
echo "</td></tr></table>";
print_simple_box_start("center", "", $THEME->cellheading);
echo '<p>';
echo '<form method="POST" action="view.php">';
echo '<input type="submit" value="'.$strsearch.'" name="searchbutton"> ';
echo '<input type="text" name="search" size="20" value=""> ';
echo '<input type="checkbox" name="includedefinition" value="1">';
echo $strsearchindefinition;
echo '<input type="hidden" name="id" value="'.$cm->id.'">';
echo '</form>';
echo '</p>';
print_simple_box_end();
echo "<p align=center>";
$data[0]->link = "view.php?id=$id";
$data[0]->caption = get_string("standardview","glossary");
$data[1]->link = "view.php?id=$id&currentview=categories";
$data[1]->caption = get_string("categoryview","glossary");
if ( $currentview ) {
$CurrentTab = 1;
} else {
$CurrentTab = 0;
}
glossary_print_tabbed_table_start($data, $CurrentTab, $tCFG);
echo "<center>";
if ( $currentview ) {
glossary_print_categories_menu($course, $cm, $glossary, $cat, $category);
$currentcategory = "";
} else {
glossary_print_alphabet_menu($cm, $glossary, $l);
if ($l) {
$CurrentLetter = "";
} elseif( $search ) {
echo "<h3>" . get_string("search") . ": $search</h3>";
}
/// Tabbed browsing sections
echo '<p align="center">';
$data[0]->link = "view.php?id=$id";
$data[0]->caption = get_string("standardview", "glossary");
$data[1]->link = "view.php?id=$id&currentview=categories";
$data[1]->caption = get_string("categoryview", "glossary");
if ($currentview) {
$CurrentTab = 1;
} else {
$CurrentTab = 0;
}
echo "<hr>";
}
glossary_print_tabbed_table_start($data, $CurrentTab, $tCFG);
echo "<center>";
if ($currentview) {
glossary_print_categories_menu($course, $cm, $glossary, $cat, $category);
$currentcategory = "";
} else {
glossary_print_alphabet_menu($cm, $glossary, $l);
if ($l) {
$CurrentLetter = "";
} elseif ($search) {
echo "<h3>$strsearch: $search</h3>";
}
echo "<hr>";
}
/// 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 == -1 ) { // Browsing all categories
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 == -1) { // 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
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
$ownentries = get_records("glossary_entries", "glossaryid", $glossary->id,"concept ASC");
$importedentries = get_records("glossary_entries", "sourceglossaryid", $glossary->id,"concept ASC");
if ( $ownentries and $importedentries ) {
$allentries = array_merge($ownentries, $importedentries);
usort($allentries, glossary_sort_entries);
} elseif ( $importedentries ) {
$allentries = $importedentries;
} elseif ( $ownentries ) {
$allentries = $ownentries;
}
}
if ( $allentries ) {
$DumpedDefinitions= 0;
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
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
$ownentries = get_records("glossary_entries", "glossaryid", $glossary->id, "concept ASC");
$importedentries = get_records("glossary_entries", "sourceglossaryid", $glossary->id, "concept ASC");
if ($ownentries and $importedentries) {
$allentries = array_merge($ownentries, $importedentries);
usort($allentries, glossary_sort_entries);
} elseif ($importedentries) {
$allentries = $importedentries;
} elseif ($ownentries) {
$allentries = $ownentries;
}
}
if ($allentries) {
$DumpedDefinitions = 0;
foreach ($allentries as $entry) {
$DumpToScreen = 0;
$FirstLetter = strtoupper( substr(ltrim($entry->concept),0,strlen($l) ) );
if ( $l ) {
if ( $l == "ALL" or $FirstLetter == $l) {
if ( $CurrentLetter != $FirstLetter[0] ) {
$CurrentLetter = $FirstLetter[0];
if ( $glossary->displayformat == 0 ) {
if ( $DumpedDefinitions > 0) {
echo "</table></center><p>";
}
echo "\n<center><TABLE BORDER=0 CELLSPACING=0 width=95% valign=top cellpadding=10><tr><td align=center BGCOLOR=\"$THEME->cellheading2\">";
}
if ( $l == "ALL" ) {
echo "<b>$CurrentLetter</b>";
}
if ( $glossary->displayformat == 0 ) {
echo "\n</center></td></tr></TABLE></center>";
if ( $DumpedDefinitions > 0) {
echo "\n<center><TABLE BORDER=1 CELLSPACING=0 width=95% valign=top cellpadding=10>";
}
}
}
$DumpToScreen = 1;
} elseif ( $l == "SPECIAL" and ord($FirstLetter) != ord("Ñ") and (ord($FirstLetter)<ord("A") or ord($FirstLetter)>ord("Z")) ) {
$DumpToScreen = 1;
}
$FirstLetter = strtoupper(substr(ltrim($entry->concept), 0, strlen($l)));
if ($l) {
if ($l == "ALL" or $FirstLetter == $l) {
if ($CurrentLetter != $FirstLetter[0]) {
$CurrentLetter = $FirstLetter[0];
if ($glossary->displayformat == 0) {
if ($DumpedDefinitions > 0) {
echo "</table></center><p>";
}
echo "\n<center><table border=0 cellspacing=0 width=95% valign=top cellpadding=10><tr><td align=center bgcolor=\"$THEME->cellheading2\">";
}
if ($l == "ALL") {
echo "<b>$CurrentLetter</b>";
}
if ($glossary->displayformat == 0) {
echo "\n</center></td></tr></table></center>";
if ($DumpedDefinitions > 0) {
echo "\n<center><table border=1 cellspacing=0 width=95% valign=top cellpadding=10>";
}
}
}
$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 ( record_exists("glossary_entries_categories","entryid",$entry->id, "categoryid",$category->id) ) {
$DumpToScreen = 1;
}
} else {
if ( $cat < 0 ) { // No 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 == 0 ) {
if ( $DumpedDefinitions > 0) {
echo "</table></center><p>";
}
echo "\n<center><TABLE BORDER=0 CELLSPACING=0 width=95% valign=top cellpadding=10><tr><td align=center BGCOLOR=\"$THEME->cellheading2\">";
}
echo "<b>$entry->name</b>";
}
if ( $glossary->displayformat == 0 ) {
echo "\n</center></td></tr></TABLE></center>";
if ( $DumpedDefinitions > 0) {
echo "\n<center><TABLE BORDER=1 CELLSPACING=0 width=95% valign=top cellpadding=10>";
}
}
if ($currentview) {
if ($category) {
if (record_exists("glossary_entries_categories", "entryid", $entry->id, "categoryid", $category->id)) {
$DumpToScreen = 1;
}
}
}
} else {
if ($cat < 0) { // No 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 == 0) {
if ($DumpedDefinitions > 0) {
echo "</table></center><p>";
}
echo "\n<center><table border=0 cellspacing=0 width=95% valign=top cellpadding=10><tr><td align=center bgcolor=\"$THEME->cellheading2\">";
}
echo "<b>$entry->name</b>";
}
if ($glossary->displayformat == 0) {
echo "\n</center></td></tr></table></center>";
if ($DumpedDefinitions > 0) {
echo "\n<center><table border=1 cellspacing=0 width=95% valign=top cellpadding=10>";
}
}
$DumpToScreen = 1;
}
}
} else {
$DumpToScreen = 1;
}
}
if ( $DumpToScreen ) {
$DumpedDefinitions++;
$concept = $entry->concept;
$definition = $entry->definition;
if ( $DumpedDefinitions == 1 ) {
if ( $glossary->displayformat == 0 ) {
echo "\n<center><TABLE BORDER=1 CELLSPACING=0 width=95% valign=top cellpadding=10>";
}
}
if ($search) {
$entry->concept = highlight($search,$concept);
$entry->definition = highlight($search,$definition);
}
if ( !$glossary->mainglossary ) {
$entry->definition = glossary_dynamic_link($course->id,$definition);
}
glossary_print_entry($course, $cm, $glossary, $entry,$currentview,$cat);
if ( $glossary->displayformat != 0 ) {
echo "<p>";
}
}
}
}
if ( ! $DumpedDefinitions ) {
print_simple_box_start("center", "70%","$THEME->cellheading");
if ( !$search ) {
echo "<center>$strnoentries</center>";
} else {
echo "<center>";
print_string("searchhelp");
echo "</center>";
}
print_simple_box_end();
} else {
if ( $glossary->displayformat == 0 ) {
echo "\n</TABLE></center>";
}
}
echo "</center>";
glossary_print_tabbed_table_end();
}
}
if ($DumpToScreen) {
$DumpedDefinitions++;
$concept = $entry->concept;
$definition = $entry->definition;
if ($DumpedDefinitions == 1) {
if ($glossary->displayformat == 0) {
echo "\n<center><table border=1 cellspacing=0 width=95% valign=top cellpadding=10>";
}
}
if ($search) {
$entry->concept = highlight($search, $concept);
$entry->definition = highlight($search, $definition);
}
if (!$glossary->mainglossary) {
$entry->definition = glossary_dynamic_link($course->id, $definition);
}
glossary_print_entry($course, $cm, $glossary, $entry, $currentview, $cat);
if ($glossary->displayformat != 0) {
echo "<p>";
}
}
}
}
if (! $DumpedDefinitions) {
print_simple_box_start("center", "70%", "$THEME->cellheading");
if (!$search) {
echo "<center>$strnoentries</center>";
} else {
echo "<center>";
print_string("searchhelp");
echo "</center>";
}
print_simple_box_end();
} else {
if ($glossary->displayformat == 0) {
echo "\n</table></center>";
}
}
echo "</center>";
glossary_print_tabbed_table_end();
/// Finish the page
print_footer($course);
?>