Ejemplo n.º 1
0
 public function __construct($lib_guides_xml_path, Logger $log, Querier $db, CatalogMigrator $cm)
 {
     $libguides_xml = new \SimpleXMLElement(file_get_contents($lib_guides_xml_path, 'r'));
     $this->libguidesxml = $libguides_xml;
     $this->log = $log;
     $this->db = $db;
     $this->connection = $db->getConnection();
     $this->cm = $cm;
 }
Ejemplo n.º 2
0
 public function __construct(Querier $db)
 {
     $this->connection = $db->getConnection();
     $statement = $this->connection->prepare("SELECT title_id FROM title");
     $statement->execute();
     $title_ids = $statement->fetchAll();
     foreach ($title_ids as $title_id) {
         $azrecord = new AzRecord($db);
         $azrecord->getRecord($title_id['title_id']);
         $this->records[] = $azrecord->toArray();
     }
 }
Ejemplo n.º 3
0
function isCool($emailAdd = "", $password = "", $shibboleth = false)
{
    $db = new Querier();
    global $subcat;
    global $CpanelPath;
    global $PublicPath;
    global $debugger;
    global $salt;
    if ($shibboleth == true) {
        $connection = $db->getConnection();
        $statement = $connection->prepare("SELECT staff_id, ip, fname, lname, email, user_type_id, ptags, extra\n        FROM staff\n        WHERE email = :mail");
        $statement->bindParam(":mail", $emailAdd);
        $statement->execute();
        $result = $statement->fetchAll();
    } else {
        $query = "SELECT staff_id, ip, fname, lname, email, user_type_id, ptags, extra\n        FROM staff\n        WHERE email = '" . scrubData($emailAdd, "email") . "' AND password = '******'";
        $db = new Querier();
        $result = $db->query($query);
    }
    $numrows = count($result);
    if ($numrows > 0) {
        $user = $result;
        if (is_array($user)) {
            //set session variables
            session_start();
            session_regenerate_id();
            // Create session vars for the basic types
            $_SESSION['checkit'] = md5($user[0][4]) . $salt;
            $_SESSION['staff_id'] = $user[0][0];
            $_SESSION['ok_ip'] = $user[0][1];
            $_SESSION['fname'] = $user[0][2];
            $_SESSION['lname'] = $user[0][3];
            $_SESSION['email'] = $user[0][4];
            $_SESSION['user_type_id'] = $user[0][5];
            // unpack our extra
            if ($user[0][7] != NULL) {
                $jobj = json_decode($user[0][7]);
                $_SESSION['css'] = $jobj->{'css'};
            }
            // unpack our ptags
            $current_ptags = explode("|", $user[0][6]);
            foreach ($current_ptags as $value) {
                $_SESSION[$value] = 1;
            }
            $result = "success";
        }
    } else {
        $result = "failure";
    }
    return $result;
}
Ejemplo n.º 4
0
 public function __construct(Querier $db)
 {
     $this->connection = $db->getConnection();
     $statement = $this->connection->prepare("SELECT subject_id FROM subject WHERE active = :active AND `type` = :type");
     $statement->bindParam(':active', $this->active);
     $statement->bindParam(':type', $this->type);
     $statement->execute();
     $subject_ids = $statement->fetchAll();
     foreach ($subject_ids as $subject_id) {
         $record = new Record($db);
         $record->getRecord($subject_id['subject_id']);
         $this->records[] = $record;
     }
 }
Ejemplo n.º 5
0
/**
 *   @file index.php
 *   @brief Display the subject guides by collection splash page
 *
 *   @author adarby
 *   @date sept 2015
 */
use SubjectsPlus\Control\CompleteMe;
use SubjectsPlus\Control\Querier;
$use_jquery = array("ui");
$page_title = _("Research Guide Collections");
$description = _("The best stuff for your research.  No kidding.");
$keywords = _("research, databases, subjects, search, find");
$noheadersearch = TRUE;
$db = new Querier();
$connection = $db->getConnection();
// let's use our Pretty URLs if mod_rewrite = TRUE or 1
if ($mod_rewrite == 1) {
    $guide_path = "";
} else {
    $guide_path = "guide.php?subject=";
}
///////////////////////
// Have they done a search?
$search = "";
if (isset($_POST["search"])) {
    $search = scrubData($_POST["search"]);
}
// Get the subjects for jquery autocomplete
$suggestibles = "";
// init
Ejemplo n.º 6
0
 public function search()
 {
     $db = new Querier();
     $connection = $db->getConnection();
     $search_param = "%" . $this->param . "%";
     $subject_id = $this->subject_id;
     switch ($this->collection) {
         case "home":
             $statement = $connection->prepare("SELECT subject_id AS 'id', subject AS 'matching_text',subject AS 'label', description as 'additional_text', shortform AS 'short_form', 'Subject Guide' as 'content_type', '' as 'additional_id', '' as 'parent' FROM subject\n                    WHERE description LIKE :search_term\n                    OR subject LIKE :search_term\n                    OR keywords LIKE :search_term\n                    UNION\n                    SELECT p.pluslet_id, p.title,p.title AS 'label', su.subject_id AS 'parent_id', su.shortform, 'Pluslet' AS 'content_type', t.tab_index as 'additional_id',su.subject as 'parent' FROM pluslet AS p\n                    INNER JOIN pluslet_section AS ps\n                    ON ps.pluslet_id = p.pluslet_id\n                    INNER JOIN section AS s\n                    ON ps.section_id = s.section_id\n                    INNER JOIN tab AS t\n                    ON s.tab_id = t.tab_id\n                    INNER JOIN subject AS su\n                    ON su.subject_id = t.subject_id\n                    WHERE p.body LIKE :search_term\n                    OR p.title LIKE :search_term\n                    UNION\n                    SELECT faq_id AS 'id', question AS 'matching_text',question AS 'label',  answer as 'additional_text','' AS 'short_form','FAQ' as 'content_type', '' as 'additional_id', '' as 'parent' FROM faq\n                    WHERE question LIKE :search_term\n                    OR answer LIKE :search_term\n                    OR keywords LIKE :search_term\n                    UNION\n                    SELECT talkback_id AS 'id', question AS 'matching_text' ,question AS 'label', answer as 'additional_text','' AS 'short_form', 'Talkback' as 'content_type', '' as 'additional_id', '' as 'parent' FROM talkback\n                    WHERE question LIKE :search_term\n                    OR answer LIKE :search_term\n                    UNION\n                    SELECT staff_id AS 'id', email AS 'matching_text' ,email AS 'label', fname as 'additional_text','' AS 'short_form', 'Staff' as 'content_type', '' as 'additional_id', '' as 'parent' FROM staff\n                    WHERE fname LIKE :search_term\n                    OR lname LIKE :search_term\n                    OR email LIKE :search_term\n                    OR tel LIKE :search_term\n                    UNION\n                    SELECT department_id AS 'id', name AS 'matching_text' , name AS 'label', telephone as 'additional_text','' AS 'short_form', 'Department' as 'content_type', '' as 'additional_id','' as 'parent' FROM department\n                    WHERE name LIKE :search_term\n                    OR telephone LIKE  :search_term\n                    UNION\n                    SELECT video_id AS 'id', title AS 'matching_text' ,title AS 'label', description as 'additional_text','' AS 'short_form', 'Video' as 'content_type', '' as 'additional_id', '' as 'parent' FROM video\n                    WHERE title LIKE :search_term\n                    OR description LIKE :search_term\n                    OR vtags LIKE :search_term");
             break;
         case "guides":
             $statement = $connection->prepare("SELECT subject_id as 'id', subject,'Subject Guide' as 'content_type', subject AS 'label',shortform AS 'short_form' \n       FROM subject \n       WHERE active = '1'\n       AND (subject LIKE :search_term\n           OR shortform LIKE :search_term\n           OR description LIKE :search_term\n           OR keywords LIKE :search_term\n           OR type LIKE :search_term)\n           ");
             break;
         case "all_guides":
             $statement = $connection->prepare("SELECT subject_id as 'id', subject,'Subject Guide' as 'content_type', subject AS 'label',shortform AS 'short_form'\n       FROM subject\n       WHERE (subject LIKE :search_term\n           OR shortform LIKE :search_term\n           OR description LIKE :search_term\n           OR keywords LIKE :search_term\n           OR type LIKE :search_term)\n           ORDER BY subject\n           ");
             break;
         case "guide":
             $statement = $connection->prepare("SELECT p.pluslet_id as 'id',su.shortform as 'short_form','Pluslet' as 'content_type',p.type as 'type', p.title, p.title AS 'label', ps.section_id, t.tab_index AS 'additional_id', t.subject_id, su.subject FROM pluslet AS p\n                    INNER JOIN pluslet_section AS ps\n                    ON ps.pluslet_id = p.pluslet_id\n                    INNER JOIN section AS s\n                    ON ps.section_id = s.section_id\n                    INNER JOIN tab AS t\n                    ON s.tab_id = t.tab_id\n                    INNER JOIN subject AS su\n                    ON su.subject_id = t.subject_id\n                    WHERE p.body LIKE :search_term\n      \t\t\t    AND t.subject_id = :subject_id");
             $statement->bindParam(":subject_id", $subject_id);
             break;
         case "current_guide":
             $statement = $connection->prepare("SELECT p.pluslet_id as 'id',su.shortform as 'short_form','Pluslet' as 'content_type',p.type as 'type', p.title, p.title AS 'label', ps.section_id, t.tab_index AS 'additional_id', t.subject_id, su.subject FROM pluslet AS p\n                    INNER JOIN pluslet_section AS ps\n                    ON ps.pluslet_id = p.pluslet_id\n                    INNER JOIN section AS s\n                    ON ps.section_id = s.section_id\n                    INNER JOIN tab AS t\n                    ON s.tab_id = t.tab_id\n                    INNER JOIN subject AS su\n                    ON su.subject_id = t.subject_id\n                    WHERE p.title LIKE :search_term\n      \t\t\t    AND t.subject_id = :subject_id");
             $statement->bindParam(":subject_id", $subject_id);
             break;
         case "records":
             $statement = $connection->prepare("SELECT DISTINCT title.title_id as 'id','Record' as 'content_type', title.title as 'label', location.location as 'location_url'\nFROM title\nINNER JOIN location_title\nON title.title_id = location_title.title_id\nINNER JOIN location\nON location.location_id = location_title.location_id\nAND title.title LIKE :search_term");
             break;
         case "azrecords":
             $statement = $connection->prepare("SELECT DISTINCT title.title_id as 'id','Record' as 'content_type', title.title as 'label', location.location as 'location_url'\nFROM title\nINNER JOIN location_title \nON title.title_id = location_title.title_id\nINNER JOIN location\nON location.location_id = location_title.location_id\nAND eres_display = 'Y'\nAND title.title LIKE :search_term");
             break;
         case "faq":
             $statement = $connection->prepare("SELECT faq_id AS 'id',question AS 'label', LEFT(question, 55), \n        \t\t'FAQ' as 'content_type'  FROM faq WHERE question LIKE :search_term");
             break;
         case "talkback":
             $statement = $connection->prepare("SELECT talkback_id AS 'id',question AS 'label','Talkback' \n        \t\tas content_type, LEFT(question, 55) FROM talkback WHERE question LIKE :search_term");
             break;
         case "admin":
             $statement = $connection->prepare("SELECT staff_id AS 'id',email AS 'label','Staff' \n        \t\tas 'content_type', CONCAT(fname, ' ', lname, ' (', email, ')') as fullname \n        \t\tFROM staff WHERE (fname LIKE :search_term) OR (lname LIKE :search_term)");
             break;
         case "pluslet":
             $statement = $connection->prepare("SELECT p.pluslet_id AS 'pluslet_id', p.title,p.title AS 'label',p.type as 'type', p.pluslet_id AS 'id', su.shortform as 'short_form', 'Pluslet' AS 'content_type', t.tab_index as 'additional_id',su.subject as 'parent' FROM pluslet AS p\n                    INNER JOIN pluslet_section AS ps\n                    ON ps.pluslet_id = p.pluslet_id\n                    INNER JOIN section AS s\n                    ON ps.section_id = s.section_id\n                    INNER JOIN tab AS t\n                    ON s.tab_id = t.tab_id\n                    INNER JOIN subject AS su\n                    ON su.subject_id = t.subject_id\n                    WHERE p.title LIKE :search_term\n      \t\t\t\n      \t\t\t\t");
             break;
         case "my_pluslets":
             $statement = $connection->prepare("SELECT p.pluslet_id AS 'pluslet_id', p.title,p.title AS 'label',p.type as 'type', p.pluslet_id AS 'id', su.shortform as 'short_form', 'Pluslet' AS 'content_type', t.tab_index as 'additional_id',su.subject as 'parent' FROM pluslet AS p\n                    INNER JOIN pluslet_section AS ps\n                    ON ps.pluslet_id = p.pluslet_id\n                    INNER JOIN section AS s\n                    ON ps.section_id = s.section_id\n                    INNER JOIN tab AS t\n                    ON s.tab_id = t.tab_id\n                    INNER JOIN subject AS su\n                    ON su.subject_id = t.subject_id\n                    INNER JOIN staff_subject AS st_sub\n                    ON st_sub.subject_id = su.subject_id\n                    WHERE p.title LIKE :search_term\n                    AND st_sub.staff_id = :staff_id\n      \t\t\t\n      \t\t\t\t");
             $statement->bindParam(":staff_id", $this->staff_id);
             break;
     }
     $search_param = '%' . $search_param . '%';
     $statement->bindParam(":search_term", $search_param);
     $statement->execute();
     $result = $statement->fetchAll();
     $arr = array();
     $i = 0;
     // This takes the results and creates an array that will be turned into JSON
     foreach ($result as $myrow) {
         //add no title label if empty
         $myrow['label'] = empty($myrow['label']) ? '[no title]' : $myrow['label'];
         $arr[$i]['label'] = html_entity_decode($myrow['label']);
         if (isset($myrow['content_type'])) {
             if (isset($myrow['id'])) {
                 $arr[$i]['id'] = $myrow['id'];
             }
             $arr[$i]['content_type'] = $myrow['content_type'];
             if (isset($myrow['location_url'])) {
                 $arr[$i]['location_url'] = $myrow['location_url'];
             }
             if (isset($myrow['short_form'])) {
                 $arr[$i]['shortform'] = $myrow['short_form'];
             }
             if (isset($myrow['matching_text'])) {
                 $arr[$i]['value'] = $myrow['matching_text'];
             }
             if (isset($myrow['parent'])) {
                 $arr[$i]['parent'] = $myrow['parent'];
             }
             if (isset($myrow['additional_id'])) {
                 $arr[$i]['parent_id'] = $myrow['additional_id'];
             }
             switch ($myrow['content_type']) {
                 case "Record":
                     $arr[$i]['label'] = html_entity_decode($myrow['label']);
                     if ($this->getSearchPage() == "control") {
                         $arr[$i]['url'] = 'record.php?record_id=' . $myrow['id'];
                     } else {
                         $db = new Querier();
                         $record_url_sql = "SELECT location, title\n        FROM location l, title t, location_title lt \n        WHERE  t.title_id = lt.title_id\n        AND l.location_id = lt.location_id AND t.title_id = " . $db->quote($myrow['id']) . " ";
                         $record_url_result = $db->query($record_url_sql);
                         if (isset($record_url_result[0]['location'])) {
                             $arr[$i]['url'] = $record_url_result[0]['location'];
                         } else {
                             $arr[$i]['url'] = '';
                         }
                     }
                     break;
                 case "Subject Guide":
                     if ($this->getSearchPage() == "control") {
                         $arr[$i]['url'] = getControlURL() . 'guides/guide.php?subject_id=' . $myrow['id'];
                     } else {
                         $arr[$i]['url'] = 'guide.php?subject=' . $myrow['short_form'];
                     }
                     break;
                 case "FAQ":
                     $arr[$i]['label'] = html_entity_decode($myrow['label']);
                     $arr[$i]['url'] = 'faq.php?faq_id=' . $myrow['id'];
                     break;
                 case "Pluslet":
                     if ($this->getSearchPage() == "control") {
                         $arr[$i]['url'] = getControlURL() . 'guides/guide.php?subject_id=' . $myrow['short_form'] . '#box-' . $myrow['additional_id'] . '-' . $myrow['id'];
                         $arr[$i]['hash'] = '#box-' . $myrow['additional_id'] . '-' . $myrow['id'];
                         $arr[$i]['label'] = html_entity_decode($myrow['label']);
                         if (isset($myrow['type'])) {
                             $arr[$i]['type'] = $myrow['type'];
                         }
                         if (isset($arr[$i]['pluslet_id'])) {
                             $arr[$i]['pluslet_id'] = $myrow['id'];
                         }
                     } else {
                         $arr[$i]['url'] = 'guide.php?subject=' . $myrow['short_form'] . '#box-' . $myrow['additional_id'] . '-' . $myrow['id'];
                         $arr[$i]['hash'] = '#box-' . $myrow['additional_id'] . '-' . $myrow['id'];
                         $arr[$i]['tab_index'] = $myrow['additional_id'];
                         $arr[$i]['pluslet_id'] = $myrow['id'];
                     }
                     break;
                 case "Talkback":
                     $arr[$i]['label'] = html_entity_decode($myrow['label']);
                     if ($this->getSearchPage() == "control") {
                         $arr[$i]['url'] = 'talkback.php?talkback_id=' . $myrow['id'];
                     } else {
                         $arr[$i]['url'] = 'talkback.php';
                     }
                     break;
                 case "Staff":
                     if ($myrow['fullname'] != null) {
                         $arr[$i]['label'] = $myrow['fullname'];
                     } else {
                         $arr[$i]['label'] = "";
                     }
                     if ($this->getSearchPage() == "control") {
                         $arr[$i]['url'] = 'user.php?staff_id=' . $myrow['id'];
                     } else {
                         $name = explode('@', $myrow['label']);
                         $arr[$i]['url'] = 'staff_details.php?name=' . $name[0];
                     }
                     break;
             }
         } else {
             $arr[$i]['value'] = $myrow[0];
         }
         $i++;
     }
     $response = json_encode($arr);
     return $response;
 }
Ejemplo n.º 7
0
 public function __construct(Querier $db)
 {
     $this->db = $db;
     $this->connection = $db->getConnection();
 }
Ejemplo n.º 8
0
 function displaySubjects()
 {
     $db = new Querier();
     $connection = $db->getConnection();
     $statement = $connection->prepare("SELECT subject, subject_id FROM subject WHERE active = '1' AND type = 'Subject' ORDER BY subject");
     $statement->bindParam(":qualifer", $letter);
     $statement->execute();
     $r = $statement->fetchAll();
     // check row count for 0 returns
     $num_rows = count($r);
     if ($num_rows == 0) {
         return "<div class=\"no_results\">" . _("Sorry, there are no results at this time.") . "</div>";
     }
     // prepare header
     $items = "<table width=\"98%\" class=\"item_listing\">";
     $row_count = 0;
     $colour1 = "oddrow";
     $colour2 = "evenrow";
     foreach ($r as $myrow) {
         $row_colour = $row_count % 2 ? $colour1 : $colour2;
         $items .= "\n\t<tr class=\"zebra {$row_colour}\" valign=\"top\">\n\t\t<td><a href=\"databases.php?letter=bysub&subject_id={$myrow['1']}\">{$myrow['0']}</a></td>\n\t</tr>";
         $row_count++;
     }
     $items .= "</table>";
     return $items;
 }
Ejemplo n.º 9
0
 public function __construct($location_id, $title_id, Querier $db)
 {
     $this->location_id = $location_id;
     $this->title_id = $title_id;
     $this->connection = $db->getConnection();
 }