public function execute() { PHPWS_Core::initModClass('hms', 'HMS_Util.php'); $term = $this->term; $db = new PHPWS_DB('hms_checkin'); // Join hall structure $db->addJoin('', 'hms_checkin', 'hms_hall_structure', 'bed_id', 'bedid'); $db->addColumn('hms_checkin.banner_id'); $db->addColumn('hms_checkin.checkin_date'); $db->addColumn('hms_hall_structure.hall_name'); $db->addColumn('hms_hall_structure.room_number'); $db->addWhere('hms_checkin.term', $term); $db->addWhere('hms_checkin.checkout_date', null, 'IS NULL'); // Sort by hall, then room number $db->addOrder(array('hms_hall_structure.hall_name ASC', 'hms_hall_structure.room_number ASC')); $results = $db->select(); if (PHPWS_Error::isError($results)) { throw new DatabaseException($results->toString()); } // Post-processing, cleanup, making it pretty foreach ($results as $row) { // Updates counts $this->total++; $row['checkin_date'] = HMS_Util::get_short_date_time($row['checkin_date']); // Copy the cleaned up row to the member var for data $this->data[] = $row; } }
/** * Uninstall file for PhatForm v2 * * Rewritten to work with phpwebsite 1.0 * @version $Id$ */ function phatform_uninstall(&$content) { $db = new PHPWS_DB('mod_phatform_forms'); $db->addColumn('id'); $db->addColumn('archiveTableName'); $db->addWhere('saved', 1); $result = $db->select(); if (!empty($result)) { foreach ($result as $form) { if (empty($form['archiveTableName'])) { $table = 'mod_phatform_form_' . $form['id']; if (PHPWS_DB::isTable($table)) { PHPWS_DB::dropTable($table); } } else { $table = $form['archiveTableName']; PHPWS_DB::dropTable($table); } } $content[] = dgettext('phatform', 'Removed all dynamic Form Generator tables.'); } PHPWS_DB::dropTable('mod_phatform_forms'); PHPWS_DB::dropTable('mod_phatform_options'); PHPWS_DB::dropTable('mod_phatform_textfield'); PHPWS_DB::dropTable('mod_phatform_textarea'); PHPWS_DB::dropTable('mod_phatform_dropbox'); PHPWS_DB::dropTable('mod_phatform_multiselect'); PHPWS_DB::dropTable('mod_phatform_radiobutton'); PHPWS_DB::dropTable('mod_phatform_checkbox'); $content[] = dgettext('phatform', 'All Form Generator static tables removed.'); return TRUE; }
function hms_install(&$content) { PHPWS_Core::initModClass('users', 'Users.php'); $DB = new PHPWS_DB('users'); $DB->addWhere('username', 'hms_admin'); $result = $DB->select('one'); if ($result == null) { $user = new PHPWS_User(); $user->setUsername('hms_admin'); $user->setPassword('in the white room, with black curtains'); $user->save(); } $DB = new PHPWS_DB('users'); $DB->addWhere('username', 'hms_student'); $result = $DB->select('one'); if ($result == null) { $user = new PHPWS_User(); $user->setUsername('hms_student'); $user->setPassword('shes my everything, shes my pride and joy'); $user->save(); } $directory = PHPWS_HOME_DIR . 'files/hms_reports/'; if (!is_dir($directory)) { mkdir($directory); } return true; }
function showFP() { $db = new PHPWS_DB('ps_page'); $db->addWhere('front_page', 1); if ($db->isTableColumn('deleted')) { $db->addWhere('deleted', 0); } Key::restrictView($db, 'pagesmith'); $db->loadClass('pagesmith', 'PS_Page.php'); $result = $db->getObjects('PS_Page'); if (!PHPWS_Error::logIfError($result) && !empty($result)) { PHPWS_Core::initModClass('pagesmith', 'PageSmith.php'); foreach ($result as $page) { $content = $page->view(); if ($content && !PHPWS_Error::logIfError($content)) { if (Current_User::allow('pagesmith', 'edit_page', $page->id)) { $content .= sprintf('<p class="pagesmith-edit">%s</p>', $page->editLink()); } Layout::add($content, 'pagesmith', 'view_' . $page->id, TRUE); } } } else { return null; } }
/** * unregisters deleted keys from menu * * @author Matthew McNaney <mcnaney at gmail dot com> * @version $Id$ */ function menu_unregister_key(Key $key) { PHPWS_Core::initModClass('menu', 'Menu_Link.php'); if (empty($key) || empty($key->id)) { return FALSE; } $db = new PHPWS_DB('menu_links'); $db->addWhere('key_id', $key->id); $result = $db->delete(); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); } $db2 = new PHPWS_DB('menu_assoc'); $db2->addWhere('key_id', $key->id); $result = $db2->delete(); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); } $db3 = new PHPWS_DB('menus'); $db3->addWhere('assoc_key', $key->id); $db3->addValue('assoc_key', 0); $db3->addValue('assoc_url', null); $db3->update(); return true; }
public function execute(CommandContext $context) { if (!Current_User::allow('hms', 'edit_role_members')) { PHPWS_Core::initModClass('hms', 'exception/PermissionException.php'); throw new PermissionException('You do not have permission to edit role members.'); } $username = $context->get('username'); $rolename = $context->get('role'); $class = $context->get('className'); $instance = $context->get('instance'); if (is_null($username) || is_null($rolename)) { echo json_encode(false); exit; } $db = new PHPWS_DB('hms_role'); $db->addWhere('name', $rolename); $result = $db->select('row'); if (PHPWS_Error::logIfError($result) || is_null($result['id'])) { echo json_encode(false); exit; } $role_id = $result['id']; $role = new HMS_Role(); $role->id = $role_id; if ($role->load()) { echo json_encode($role->removeUser($username, $class, $instance)); exit; } echo json_encode(false); exit; }
public function execute() { PHPWS_Core::initModClass('hms', 'StudentFactory.php'); if (!isset($this->term) || is_null($this->term)) { throw new InvalidArgumentException('Missing term.'); } $db = new PHPWS_DB('hms_new_application'); $db->addColumn('banner_id'); $db->addColumn('username'); $db->addWhere('term', $this->term); $results = $db->select(); if (empty($results)) { return; } elseif (PEAR::isError($results)) { throw new DatabaseException($results->toString()); } $twentyFiveYearsAgo = strtotime("-25 years"); foreach ($results as $student) { try { $sf = StudentFactory::getStudentByBannerId($student['banner_id'], $this->term); $dob = $sf->getDOB(); if (strtotime($dob) > $twentyFiveYearsAgo) { continue; } $student['dob'] = $dob; $student['full_name'] = $sf->getFullName(); $this->all_rows[] = $student; } catch (Exception $e) { $student['dob'] = $student['full_name'] = null; $this->problems[] = $student['banner_id']; } } }
public function execute(CommandContext $context) { $term = Term::getSelectedTerm(); $messageAll = Current_User::allow('hms', 'email_all'); $db = new PHPWS_DB('hms_residence_hall'); $db->addWhere('term', $term); $results = $db->getObjects('HMS_Residence_Hall'); if (PHPWS_Error::logIfError($results) || is_null($results)) { $errorMsg = array(); if (is_null($results)) { $errorMsg['error'] = 'You do not have permission to message any halls, sorry.'; } else { $errorMsg['error'] = 'There was a problem reading the database, please try reloading the page. If the problem persists contact ESS.'; } echo json_encode($errorMsg); exit; } $permission = new HMS_Permission(); $data = array(); foreach ($results as $hall) { $somethingEnabled = false; $floors = $hall->get_floors(); unset($obj); $obj = new stdClass(); $obj->name = $hall->getHallName(); $obj->id = $hall->getId(); $obj->floors = array(); //$blah = 'Verify: ' . ($permission->verify(UserStatus::getUsername(), $hall, 'email') ? 'true' : 'false'); if ($permission->verify(UserStatus::getUsername(), $hall, 'email') || $messageAll) { $obj->enabled = true; $somethingEnabled = true; foreach ($floors as $floor) { unset($floor_obj); $floor_obj = new stdClass(); $floor_obj->name = "Floor: " . $floor->getFloorNumber(); $floor_obj->id = $floor->getId(); $floor_obj->enabled = true; $obj->floors[] = $floor_obj; } } else { $obj->enabled = false; foreach ($floors as $floor) { unset($floor_obj); $floor_obj = new stdClass(); $floor_obj->name = "Floor: " . $floor->getFloorNumber(); $floor_obj->id = $floor->getId(); $floor_obj->enabled = $permission->verify(Current_User::getUsername(), $floor, 'email'); $obj->floors[] = $floor_obj; if ($floor_obj->enabled) { $somethingEnabled = true; } } } if ($somethingEnabled) { $data[] = $obj; } } echo json_encode($data); exit; }
public static function processAll($term) { $db = new PHPWS_DB('hms_banner_queue'); $db->addWhere('term', $term); $db->addOrder('id'); $items = $db->getObjects('BannerQueueItem'); $errors = array(); foreach ($items as $item) { $result = null; try { $result = $item->process(); } catch (Exception $e) { $error = array(); $error['username'] = $item->asu_username; $error['code'] = $e->getCode(); $error['message'] = $e->getMessage(); $errors[] = $error; continue; } if ($result === TRUE) { $item->delete(); } } if (empty($errors)) { return TRUE; } return $errors; }
public static function saveObject(DbStorable $o) { $vars = $o->extractVars(); $tableName = $o::getTableName(); // Check if the key already exists $query = "SELECT * FROM {$tableName} WHERE id = {$vars['id']}"; $result = \PHPWS_DB::getAll($query); if (count($result) > 0) { $exists = true; } else { $exists = false; } $db = new \PHPWS_DB($o->getTableName()); foreach ($vars as $key => $value) { $db->addValue($key, $value); } if ($exists) { $db->addWhere('id', $vars['id']); $result = $db->update(); } else { $result = $db->insert(false); } if (\PHPWS_Error::logIfError($result)) { throw new \Exception($result->toString()); } }
public function execute(CommandContext $context) { // Check for report ID $reportId = $context->get('reportId'); if (!isset($reportId) || is_null($reportId)) { throw new InvalidArgumentException('Missing report id.'); } PHPWS_Core::initModClass('hms', 'ReportFactory.php'); // Load the report to get its class try { $report = ReportFactory::getReportById($reportId); } catch (InvalidArgumentException $e) { NQ::simple('hms', hms\NotificationView::SUCCESS, 'Report canceled.'); $context->goBack(); } $db = new PHPWS_DB('hms_report'); $db->addWhere('id', $reportId); $result = $db->delete(); if (PHPWS_Error::logIfError($result)) { throw new DatabaseException($result->toString()); } NQ::simple('hms', hms\NotificationView::SUCCESS, 'Report canceled.'); $cmd = CommandFactory::getCommand('ShowReportDetail'); $cmd->setReportClass($report->getClass()); $cmd->redirect(); }
public function execute() { PHPWS_Core::initModClass('hms', 'HousingApplication.php'); PHPWS_Core::initModClass('hms', 'HMS_Util.php'); // Select all cancelled apps for the given term $db = new PHPWS_DB('hms_new_application'); $db->addWhere('cancelled', 1); $db->addWhere('term', $this->term); $results = $db->select(); // Initialize storage for processed rows $this->rows = array(); // Get friendly cancellation reasons from HousingApplication $reasons = HousingApplication::getCancellationReasons(); // Process and store each result foreach ($results as $app) { $row = array(); $row['bannerId'] = $app['banner_id']; $row['username'] = $app['username']; $row['gender'] = HMS_Util::formatGender($app['gender']); $row['application_term'] = $app['application_term']; $row['student_type'] = $app['student_type']; $row['cancelled_reason'] = $reasons[$app['cancelled_reason']]; $row['cancelled_on'] = HMS_Util::get_long_date($app['cancelled_on']); $row['cancelled_by'] = $app['cancelled_by']; $this->rows[] = $row; } }
public function save() { $db = new PHPWS_DB('analytics_tracker'); $result = $db->saveObject($this); if (PHPWS_Error::logIfError($result)) { return $result; } }
function runDbMigration($fileName) { $db = new PHPWS_DB(); $result = $db->importFile(PHPWS_SOURCE_DIR . 'mod/systemsinventory/boost/updates/' . $fileName); if (PEAR::isError($result)) { throw new \Exception($result->toString()); } }
/** * @version $Id$ * @author Matthew McNaney <mcnaney at gmail dot com> */ function filecabinet_unregister($module, &$content) { $db = new PHPWS_DB('folders'); $db->addValue('module_created', null); $db->addWhere('module_created', $module); PHPWS_Error::logIfError($db->update()); $content[] = dgettext('filecabinet', 'Unregistered from File Cabinet.'); return true; }
public function save($insert = TRUE) { $db = new PHPWS_DB('search_stats'); $this->keyword = trim($this->keyword); if (!$insert) { $db->addWhere('keyword', $this->keyword); } return $db->saveObject($this); }
/** * unregisters deleted keys from search * * @author Matthew McNaney <mcnaney at gmail dot com> * @version $Id$ */ function search_unregister_key(Key $key) { if (empty($key->id)) { return FALSE; } $db = new PHPWS_DB('search'); $db->addWhere('key_id', (int) $key->id); return $db->delete(); }
/** * @author Matthew McNaney <mcnaney at gmail dot com> * @version $Id$ */ function calendar_uninstall(&$content) { PHPWS_Core::initModClass('calendar', 'Schedule.php'); // Need functions to remove old event tables $db = new PHPWS_DB('calendar_schedule'); $schedules = $db->getObjects('Calendar_Schedule'); if (PHPWS_Error::isError($schedules)) { return $schedules; } elseif (empty($schedules)) { $result = PHPWS_DB::dropTable('calendar_schedule'); if (PHPWS_Error::isError($result)) { return $result; } $result = PHPWS_DB::dropTable('calendar_notice'); if (PHPWS_Error::isError($result)) { return $result; } $result = PHPWS_DB::dropTable('calendar_suggestions'); if (PHPWS_Error::isError($result)) { return $result; } return true; } $error = false; foreach ($schedules as $sch) { $result = $sch->delete(); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); $error = true; } } $result = PHPWS_DB::dropTable('calendar_schedule'); if (PHPWS_Error::isError($result)) { return $result; } $result = PHPWS_DB::dropTable('calendar_notice'); if (PHPWS_Error::isError($result)) { return $result; } $result = PHPWS_DB::dropTable('calendar_suggestions'); if (PHPWS_Error::isError($result)) { return $result; } if (PHPWS_DB::isTable('converted')) { $db2 = new PHPWS_DB('converted'); $db2->addWhere('convert_name', array('schedule', 'calendar')); $db2->delete(); $content[] = dgettext('calendar', 'Removed convert flag.'); } if (!$error) { $content[] = dgettext('calendar', 'Calendar tables removed.'); } else { $content[] = dgettext('calendar', 'Some errors occurred when uninstalling Calendar.'); } return true; }
/** * Deletes this item from the queue */ public function delete() { $db = new PHPWS_DB('hms_banner_queue'); $db->addWhere('id', $this->id); $result = $db->delete(); if (PHPWS_Error::logIfError($result)) { throw new DatabaseException($result->toString()); } return TRUE; }
/** * update.php - FaxMaster update script * */ function faxmaster_update(&$content, $currentVersion) { switch ($currentVersion) { case version_compare($currentVersion, '0.1.0', '<'): $db = new PHPWS_DB(); $result = $db->importFile(PHPWS_SOURCE_DIR . 'mod/faxmaster/boost/update-0.1.1.sql'); if (PEAR::isError($result)) { return $result; } case version_compare($currentVersion, '0.1.2', '<'): $db = new PHPWS_DB(); $result = $db->importFile(PHPWS_SOURCE_DIR . 'mod/faxmaster/boost/update-0.1.2.sql'); if (PEAR::isError($result)) { return $result; } case version_compare($currentVersion, '0.1.3', '<'): PHPWS_Core::initModClass('users', 'Permission.php'); Users_Permission::registerPermissions('faxmaster', $content); case version_compare($currentVersion, '0.1.5', '<'): PHPWS_Settings::set('faxmaster', 'fax_path', '/var/fax/'); PHPWS_Settings::save('faxmaster'); case version_compare($currentVersion, '0.1.6', '<'): $content[] = '<pre>'; slcUpdateFiles(array('class/FaxPager.php', 'class/Faxmaster.php', 'templates/faxList.tpl', 'templates/style.css', 'templates/statistics.tpl'), $content); $content[] = '0.1.6 Changes --------------- + Added a statistics page to view monthly fax stats. + Added CSV export to the new statistics page.</pre>'; case version_compare($currentVersion, '0.1.7', '<'): $content[] = '<pre>'; // Add 2 new columns to the database related to archiving $db = new PHPWS_DB(); $result = $db->importFile(PHPWS_SOURCE_DIR . 'mod/faxmaster/boost/update-0.1.7.sql'); if (PEAR::isError($result)) { return $result; } slcUpdateFiles(array('boost/boost.php', 'boost/install.sql', 'boost/permission.php', 'boost/update.php', 'boost/update-0.1.7.sql', 'class/ArchiveDownload.php', 'class/exception/InstallException.php', 'class/Fax.php', 'class/FaxPager.php', 'class/Faxmaster.php', 'inc/settings.php', 'templates/archivePager.tpl', 'templates/faxList.tpl', 'templates/settings.tpl', 'templates/style.css'), $content); $content[] = '0.1.7 Changes --------------- + Added an archive method that is only accessbile by URL. + Added the ability to Download an Archive file. + Added permissions related to archiving and settings. + Added 2 database columns needed for archiving. + Added a View Archive page to view a list of all archived faxes. + Added a Settings page to configure the fax and archive paths. </pre>'; case version_compare($currentVersion, '0.1.8', '<'): $db = new PHPWS_DB(); $result = $db->importFile(PHPWS_SOURCE_DIR . 'mod/faxmaster/boost/update-0.1.8.sql'); if (PEAR::isError($result)) { return $result; } } return true; }
public function execute(CommandContext $context) { $db = new PHPWS_DB('hms_role'); $result = $db->select(); if (PHPWS_Error::logIfError($result)) { echo json_encode(array()); } else { echo json_encode($result); } exit; }
public static function getForTerm($term) { $db = new PHPWS_DB('hms_application_feature'); $db->addWhere('term', $term); $result = $db->getObjects('ApplicationFeature'); if (PHPWS_Error::logIfError($result)) { throw new DatabaseException($result->toString()); } // TODO: Reorg so the array is indexed by the class name. return $result; }
public static function checkForWaiver($username, $term = NULL) { $db = new PHPWS_DB('hms_eligibility_waiver'); $db->addWhere('asu_username', $username); if (!isset($term)) { $db->addWhere('term', Term::getCurrentTerm()); } else { $db->addWhere('term', $term); } return !is_null($db->select('row')); }
public static function getChangesForInternship(Internship $internship) { $db = new \PHPWS_DB('intern_change_history'); $db->addWhere('internship_id', $internship->getId()); $db->addOrder('timestamp ASC'); $results = $db->getObjects('\\Intern\\ChangeHistory'); if (\PHPWS_Error::logIfError($results)) { throw new \Exception($results->toString()); } return $results; }
public function save($key_id) { $db = new PHPWS_DB('ps_text'); $result = $db->saveObject($this); if (PHPWS_Error::isError($result)) { return $result; } $search = new Search($key_id); $search->addKeywords($this->content); return $search->save(); }
public static function getUserRolesForInstance($instance) { $db = new PHPWS_DB('hms_user_role'); $db->addWhere('hms_user_role.class', strtolower(get_class($instance))); $db->addWhere('hms_user_role.instance', $instance->id); $result = $db->select(); if (PHPWS_Error::logIfError($result)) { throw new DatabaseException($result->toString()); } return $result; }
public function __construct($term) { parent::__construct($term); $db = new PHPWS_DB('hms_special_assignment'); $db->addWhere('term', $this->term); $result = $db->getObjects('SpecialAssignment'); if (PHPWS_Error::logIfError($result)) { throw new DatabaseException($result->getMessage()); } $this->specials = $result; }
public function save($term) { $this->term = $term; $this->timestamp = time(); $db = new PHPWS_DB('hms_student_cache'); try { $result = $db->saveObject($this); } catch (\Exception $e) { // Silently log any errors PHPWS_Error::logIfError($e); } }
public static function getChangesForInternship(Internship $internship) { PHPWS_Core::initModClass('intern', 'ChangeHistory.php'); $db = new PHPWS_DB('intern_change_history'); $db->addWhere('internship_id', $internship->getId()); $db->addOrder('timestamp ASC'); $results = $db->getObjects('ChangeHistory'); if (PHPWS_Error::logIfError($results)) { throw new Exception($results->toString()); } return $results; }
public static function getRoomByPersistentId($roomId, $term) { $db = new PHPWS_DB('hms_room'); $db->addWhere('term', $term); $db->addWhere('persistent_id', $roomId); $room = new HMS_Room(0); $result = $db->loadObject($room); if (PHPWS_Error::logIfError($result)) { throw new DatabaseException($result->toString()); } return $room; }