1<?php
2
3/**
4 * SQL.PHP
5 *    This file is include from view.php and print.php
6 * @copyright 2003
7 **/
8
9/**
10 * This file defines, or redefines, the following variables:
11 *
12 * bool $userispivot Whether the user is the pivot.
13 * bool $fullpivot Whether the pivot should be displayed in full.
14 * bool $printpivot Whether the pivot should be displayed.
15 * string $pivotkey The property of the record at which the pivot is.
16 * int $count The number of records matching the request.
17 * array $allentries The entries matching the request.
18 * mixed $field Unset in this file.
19 * mixed $entry Unset in this file.
20 * mixed $canapprove Unset in this file.
21 *
22 * It relies on the following variables:
23 *
24 * object $glossary The glossary object.
25 * context $context The glossary context.
26 * mixed $hook The hook for the selected tab.
27 * string $sortkey The key to sort the records.
28 * string $sortorder The order of the sorting.
29 * int $offset The number of records to skip.
30 * int $pagelimit The number of entries on this page, or 0 if unlimited.
31 * string $mode The mode of browsing.
32 * string $tab The tab selected.
33 */
34
35$userispivot = false;
36$fullpivot = true;
37$pivotkey = 'concept';
38
39switch ($tab) {
40
41    case GLOSSARY_AUTHOR_VIEW:
42        $userispivot = true;
43        $pivotkey = 'userid';
44        $field = ($sortkey == 'LASTNAME' ? 'LASTNAME' : 'FIRSTNAME');
45        list($allentries, $count) = glossary_get_entries_by_author($glossary, $context, $hook,
46            $field, $sortorder, $offset, $pagelimit);
47        unset($field);
48        break;
49
50    case GLOSSARY_CATEGORY_VIEW:
51        $hook = (int) $hook; // Make sure it's properly casted to int.
52        list($allentries, $count) = glossary_get_entries_by_category($glossary, $context, $hook, $offset, $pagelimit);
53        $pivotkey = 'categoryname';
54        if ($hook != GLOSSARY_SHOW_ALL_CATEGORIES) {
55            $printpivot = false;
56        }
57        break;
58
59    case GLOSSARY_DATE_VIEW:
60        $printpivot = false;
61        $field = ($sortkey == 'CREATION' ? 'CREATION' : 'UPDATE');
62        list($allentries, $count) = glossary_get_entries_by_date($glossary, $context, $field, $sortorder,
63            $offset, $pagelimit);
64        unset($field);
65        break;
66
67    case GLOSSARY_APPROVAL_VIEW:
68        $fullpivot = false;
69        $printpivot = false;
70        list($allentries, $count) = glossary_get_entries_to_approve($glossary, $context, $hook, $sortkey, $sortorder,
71            $offset, $pagelimit);
72        break;
73
74    case GLOSSARY_STANDARD_VIEW:
75    default:
76        $fullpivot = false;
77        switch ($mode) {
78            case 'search':
79                list($allentries, $count) = glossary_get_entries_by_search($glossary, $context, $hook, $fullsearch,
80                    $sortkey, $sortorder, $offset, $pagelimit);
81                break;
82
83            case 'term':
84                $printpivot = false;
85                list($allentries, $count) = glossary_get_entries_by_term($glossary, $context, $hook, $offset, $pagelimit);
86                break;
87
88            case 'entry':
89                $printpivot = false;
90                $entry = glossary_get_entry_by_id($hook);
91                $canapprove = has_capability('mod/glossary:approve', $context);
92                if ($entry && ($entry->glossaryid == $glossary->id || $entry->sourceglossaryid != $glossary->id)
93                        && (!empty($entry->approved) || $entry->userid == $USER->id || $canapprove)) {
94                    $count = 1;
95                    $allentries = array($entry);
96                } else {
97                    $count = 0;
98                    $allentries = array();
99                }
100                unset($entry, $canapprove);
101                break;
102
103            case 'letter':
104            default:
105                list($allentries, $count) = glossary_get_entries_by_letter($glossary, $context, $hook, $offset, $pagelimit);
106                break;
107        }
108        break;
109}
110