<?php include_once "models/Admin_Table.class.php"; $createNewAdmin = isset($_POST['new-admin']); if ($createNewAdmin) { $newEmail = $_POST['email']; $newPassword = $_POST['password']; $adminTable = new Admin_Table($db); try { $adminTable->create($newEmail, $newPassword); $adminFormMessage = "New user created for {$newEmail}"; } catch (Exception $e) { $adminFormMessage = $e->getMessage(); } } $newAdminForm = (include_once "views/admin/new-admin-form-html.php"); return $newAdminForm;
<?php include_once "models/Admin_Table.class.php"; $loginFormSubmitted = isset($_POST['log-in']); if ($loginFormSubmitted) { $email = $_POST['email']; $password = $_POST['password']; $adminTable = new Admin_Table($db); try { $adminTable->checkCredentials($email, $password); $admin->login(); } catch (Exception $e) { //login failed } } $loggingOut = isset($_POST['logout']); if ($loggingOut) { $admin->logout(); } if ($admin->isLoggedIn()) { $view = (include_once "views/admin/logout-form-html.php"); } else { $view = (include_once "views/admin/login-form-html.php"); } return $view;
public function getManualFilters($table) { $query = false; $session = $this->getSession($table); $keys = $this->getSetVar($session, 'manual_key', 'manual_key'); if ($this->model instanceof LinesModel) { $advanced_options = Admin_Lines::getOptions(); } else { if ($this->model instanceof BalancesModel) { // TODO: make refactoring of the advanced options for each page (lines, balances, etc) $advanced_options = array($keys[0] => array('type' => 'number', 'display' => 'usage')); } else { if ($this->model instanceof EventsModel) { $avanced_options = array($keys[0] => array('type' => 'text')); } else { return $query; } } } $operators = $this->getSetVar($session, 'manual_operator', 'manual_operator'); $values = $this->getSetVar($session, 'manual_value', 'manual_value'); settype($operators, 'array'); settype($values, 'array'); for ($i = 0; $i < count($keys); $i++) { if ($keys[$i] == '' || $values[$i] == '') { continue; } switch ($advanced_options[$keys[$i]]['type']) { case 'number': $values[$i] = floatval($values[$i]); break; case 'date': if (Zend_Date::isDate($values[$i], 'yyyy-MM-dd hh:mm:ss')) { $values[$i] = new MongoDate((new Zend_Date($values[$i], null, new Zend_Locale('he_IL')))->getTimestamp()); } else { continue 2; } default: break; } if (isset($advanced_options[$keys[$i]]['case'])) { $values[$i] = Admin_Table::convertValueByCaseType($values[$i], $advanced_options[$keys[$i]]['case']); } // TODO: decoupling to config of fields switch ($operators[$i]) { case 'starts_with': $operators[$i] = '$regex'; $values[$i] = "^{$values[$i]}"; break; case 'ends_with': $operators[$i] = '$regex'; $values[$i] = "{$values[$i]}\$"; break; case 'like': $operators[$i] = '$regex'; $values[$i] = "{$values[$i]}"; break; case 'lt': $operators[$i] = '$lt'; break; case 'lte': $operators[$i] = '$lte'; break; case 'gt': $operators[$i] = '$gt'; break; case 'gte': $operators[$i] = '$gte'; break; case 'ne': $operators[$i] = '$ne'; break; case 'equals': $operators[$i] = '$in'; $values[$i] = array($values[$i]); break; default: break; } if ($advanced_options[$keys[$i]]['type'] == 'dbref') { $collection = Billrun_Factory::db()->{$advanced_options[$keys[$i]]['collection'] . "Collection"}(); $pre_query[$advanced_options[$keys[$i]]['collection_key']][$operators[$i]] = $values[$i]; $cursor = $collection->query($pre_query); $values[$i] = array(); foreach ($cursor as $entity) { $values[$i][] = $entity->createRef($collection); } $operators[$i] = '$in'; } $query[$keys[$i]][$operators[$i]] = $values[$i]; } return $query; }
public function applyFilter($filter_field, $value) { if ($filter_field['input_type'] == 'number') { if ($value != '') { if ($filter_field['comparison'] == 'equals') { return array($filter_field['db_key'] => array('$in' => array_map('floatval', explode(',', $value)))); } } } else { if ($filter_field['input_type'] == 'text') { if ($value != '') { if ($filter_field['comparison'] == 'contains') { if (isset($filter_field['case_type'])) { $value = Admin_Table::convertValueByCaseType($value, $filter_field['case_type']); } return array($filter_field['db_key'] => array('$regex' => strval($value))); } } } else { if ($filter_field['input_type'] == 'date') { if (is_string($value) && Zend_Date::isDate($value, 'yyyy-MM-dd hh:mm:ss')) { //yyyy-MM-dd hh:mm:ss $value = new MongoDate((new Zend_Date($value, null, new Zend_Locale('he_IL')))->getTimestamp()); return array($filter_field['db_key'] => array($filter_field['comparison'] => $value)); } } else { if ($filter_field['input_type'] == 'multiselect') { if (is_array($value) && !empty($value)) { return array($filter_field['db_key'] => array($filter_field['comparison'] => $value)); } } } } } return false; }
public function applyFilter($filter_field, $value) { if ($filter_field['input_type'] == 'number') { if ($value != '') { if ($filter_field['comparison'] == 'equals') { if (is_array($filter_field['db_key'])) { $ret = array('$or' => array(array($filter_field['db_key'][0] => array('$in' => array_map('floatval', explode(',', $value)))), array($filter_field['db_key'][1] => array('$in' => array_map('strval', explode(',', $value)))))); } else { $ret = array($filter_field['db_key'] => array('$in' => array_map('floatval', explode(',', $value)))); } return $ret; } } } else { if ($filter_field['input_type'] == 'text') { if ($value != '') { if ($filter_field['comparison'] == 'contains') { if (isset($filter_field['case_type'])) { $value = Admin_Table::convertValueByCaseType($value, $filter_field['case_type']); } return array($filter_field['db_key'] => array('$regex' => strval($value))); } } } else { if ($filter_field['input_type'] == 'date') { if (is_string($value) && Zend_Date::isDate($value, 'yyyy-MM-dd hh:mm:ss')) { //yyyy-MM-dd hh:mm:ss $value = new MongoDate((new Zend_Date($value, null, new Zend_Locale('he_IL')))->getTimestamp()); return array($filter_field['db_key'] => array($filter_field['comparison'] => $value)); } } else { if ($filter_field['input_type'] == 'multiselect') { if (isset($filter_field['ref_coll']) && isset($filter_field['ref_key'])) { $collection = Billrun_Factory::db()->{$filter_field['ref_coll'] . "Collection"}(); $pre_query = array($filter_field['ref_key'] => array('$in' => $value)); $cursor = $collection->query($pre_query); $value = array(); foreach ($cursor as $entity) { $value[] = $entity->createRef($collection); } } if (is_array($value) && !empty($value)) { if ($this instanceof QueueModel && $filter_field['db_key'] == 'calc_name') { $value = $this->prev_calc($value); } return array($filter_field['db_key'] => array($filter_field['comparison'] => $value)); } } } } } return false; }