Example #1
0
 public function __construct()
 {
     $this->module = $this->getModuleFromControllerName();
     $this->view = new Libraries_View($this->module);
     $this->db = Libraries_Db_Factory::factory(Config_Db_Factory::DRIVER);
     $this->i18n = new Libraries_i18n();
 }
Example #2
0
 public function query($table_name)
 {
     //$table_name = $_POST['table_name'];
     $query = $_GET['term'];
     $sys_object = new Crud_Models_Object();
     $sys_object->load($table_name, 'table_name');
     $sys_object->loadFieldsForObject();
     $searchable_fields = array();
     foreach ($sys_object->sys_field_list as $sys_field) {
         if ($sys_field->is_hidden == 0 && $sys_field->is_identification == 1) {
             $searchable_fields[] = $sys_field->field_name;
         }
     }
     $data = array();
     $sql = "SELECT id, " . implode(', ', $searchable_fields) . "\r\n\t\t        FROM {$table_name} \r\n\t\t        WHERE is_deleted = 0 AND (";
     foreach ($searchable_fields as $searchable_field) {
         $sql .= " {$searchable_field} LIKE ?";
         $data[] = "%" . $query . "%";
         if (end($searchable_fields) != $searchable_field) {
             $sql .= " OR";
         } else {
             $sql .= ')';
         }
     }
     $results = Libraries_Db_Factory::getDb()->fetchAll($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_ASSOC);
     $response = array();
     foreach ($results as $result) {
         $id = array_shift($result);
         $response[] = array('id' => $id, 'value' => implode(', ', $result));
     }
     echo json_encode($response);
 }
Example #3
0
 /**
  * Create DB instance
  * @param string $driver
  * @throws Exception
  * @return Libraries_Db_Adapter
  */
 public static function factory($driver)
 {
     $class_name = 'Libraries_Db_' . ucfirst(strtolower($driver)) . '_Driver';
     // create DB class name
     // check if driver exists
     if (!class_exists($class_name)) {
         throw new Exception("Can't find class " . $class_name);
     }
     return self::$db = call_user_func(array($class_name, 'getInstance'));
 }
Example #4
0
 public static function orderIndexBeforeSaveEvent($sys_object, $object)
 {
     if ($object->isEmpty()) {
         foreach ($sys_object->sys_field_list as $field) {
             if ($field->field_name == 'order_index') {
                 $sql = "SELECT MAX(id) + 1\r\n\t\t\t\t\t\t\tFROM {$sys_object->table_name}";
                 $object->{$field->field_name} = Libraries_Db_Factory::getDb()->fetchColumn($sql);
             }
         }
     }
 }
Example #5
0
 public function canExecuteAction($action)
 {
     $sql = "SELECT * \r\n\t\t\t\tFROM adm_user_role_permission\r\n\t\t\t\tWHERE\tis_deleted = 0 AND\r\n\t\t\t\t\t\taction = ? AND\r\n\t\t\t\t\t\tid_adm_user_role = ?";
     $data = array();
     $data[] = $action;
     $data[] = $this->id;
     $response = Libraries_Db_Factory::getDb()->fetchRow($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_CLASS);
     if (empty($response) || intval($response->is_active) !== 0) {
         return true;
     }
     return false;
 }
Example #6
0
File: log.php Project: vukasins/ocp
 /**
  * 
  * @return bool
  */
 private function fifo()
 {
     $sql = "SELECT COUNT(id)\r\n\t\t\t\tFROM sys_log";
     $count = Libraries_Db_Factory::getDb()->fetchColumn($sql);
     if ($count > Config_Environment::MAX_LOG_ENTRIES) {
         $sql = "DELETE FROM\r\n\t\t\t\t\tsys_log\r\n\t\t\t\t\tORDER BY id\r\n\t\t\t\t\tLIMIT " . ($count - Config_Environment::MAX_LOG_ENTRIES);
         if (Libraries_Db_Factory::getDb()->execute($sql)) {
             return true;
         }
         return false;
     }
     return true;
 }
Example #7
0
 public function content($sys_object_id)
 {
     $sys_object = new Crud_Models_Object();
     $sys_object->load(intval($sys_object_id));
     $sys_object->loadFieldsForObject();
     if ($sys_object->is_system == 1 && $this->user->role->safe_title != 'administrator') {
         echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>';
         exit;
     }
     if (!$this->user->role->canExecuteAction('can_view_' . $sys_object->table_name)) {
         echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>';
         exit;
     }
     $order = array();
     $order[] = array('title', 'ASC');
     $role = new Libraries_Db_Mysql_Model('adm_user_role');
     $roles = $role->search(array(), $order);
     if (isset($_POST) && !empty($_POST)) {
         foreach ($roles as $role) {
             $sql = "DELETE \r\n\t\t\t\t\t\tFROM adm_user_role_permission\r\n\t\t\t\t\t\tWHERE id_adm_user_role = ?";
             $data = array($role->id);
             Libraries_Db_Factory::getDb()->execute($sql, $data);
             foreach ($_POST as $action => $data) {
                 $permission = new Libraries_Db_Mysql_Model('adm_user_role_permission');
                 $permission->id_adm_user_role = $role->id;
                 $permission->action = $action;
                 $permission->is_active = array_key_exists($role->id, $data) && $data[$role->id] == 1 ? 1 : 0;
                 $permission->save();
             }
         }
         Libraries_Flashdata::set('saved', __('Permissions is saved'));
     }
     $order = array();
     $order[] = array('table_name', 'ASC');
     $where = array();
     $where[] = array('AND', 'is_system', '!=', 1);
     $objects = $sys_object->search($where, $order);
     Libraries_View::getInstance()->roles = $roles;
     Libraries_View::getInstance()->objects = $objects;
     Libraries_View::getInstance()->saved_status = Libraries_Flashdata::get('saved');
     $content = Libraries_View::getInstance()->setModule('admin')->load('permissions');
     Libraries_Layout::getInstance()->setTheme('admin');
     Libraries_Layout::getInstance()->setLayout('admin');
     Libraries_Layout::getInstance()->setRegionContent('content', $content);
     Libraries_Layout::getInstance()->render();
 }
Example #8
0
 public function reordermanual()
 {
     $object = new Crud_Models_Object();
     $object->load($_POST['object_id']);
     $field = new Crud_Models_Field();
     $field->load($_POST['field_id']);
     $row = new Libraries_Db_Mysql_Model($object->table_name);
     $row->load($_POST['row_id']);
     $where = array();
     $order = array();
     $replacement_row = new Libraries_Db_Mysql_Model($object->table_name);
     $replacement_row->load(intval($_POST['value']), $field->field_name);
     if ($replacement_row->isEmpty()) {
         $sql = "SELECT MIN({$field->field_name}) as min, MAX({$field->field_name}) as max\r\n\t\t\t\t\tFROM {$object->table_name}\r\n\t\t\t\t\tWHERE is_deleted = 0";
         $min_max = Libraries_Db_Factory::getDb()->fetchRow($sql, array(), Libraries_Db_Adapter::FETCH_TYPE_CLASS);
         if ($_POST['value'] < $min_max->min) {
             $replacement_row = $replacement_row->load($min_max->min, $field->field_name);
             $_POST['value'] = $min_max->min;
         }
         if ($_POST['value'] > $min_max->max) {
             $replacement_row = $replacement_row->load($min_max->max, $field->field_name);
             $_POST['value'] = $min_max->max;
         }
         /*
         $response = array();
         $response['error'] = 'Can\'t find this object';
         
         echo json_encode($response);
         return;
         */
     }
     $replacement_row->{$field->field_name} = $row->{$field->field_name};
     $replacement_row->save();
     $row->{$field->field_name} = $_POST['value'];
     $row->save();
     $response = array();
     $response['success'] = 1;
     echo json_encode($response);
     return;
 }
Example #9
0
 public function __construct($table_name, array $data = array())
 {
     $this->db = Libraries_Db_Factory::getDb();
     $this->table_name = $table_name;
     $this->data = $data;
 }
Example #10
0
 public function map($object_name)
 {
     $sql = "SHOW COLUMNS FROM `{$object_name}`";
     $fields = Libraries_Db_Factory::getDb()->fetchAll($sql, array(), Libraries_Db_Adapter::FETCH_TYPE_CLASS);
     $raw_field_names = array();
     $has_id_field = false;
     $has_is_deleted_field = false;
     $has_last_modify_field = false;
     foreach ($fields as $field) {
         if ($field->Field == 'id') {
             $has_id_field = true;
         }
         if ($field->Field == 'is_deleted') {
             $has_is_deleted_field = true;
         }
         if ($field->Field == 'last_modify') {
             $has_last_modify_field = true;
         }
         $raw_field_names[] = $field->Field;
     }
     if (!$has_id_field) {
         $sql = "ALTER TABLE `{$object_name}` ADD COLUMN `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST";
         Libraries_Db_Factory::getDb()->execute($sql);
         $raw_field_names[] = 'id';
         // reinit fields
         $sql = "SHOW COLUMNS FROM `{$object_name}`";
         $fields = Libraries_Db_Factory::getDb()->fetchAll($sql, array(), Libraries_Db_Adapter::FETCH_TYPE_CLASS);
     }
     if (!$has_is_deleted_field) {
         $sql = "ALTER TABLE `{$object_name}` ADD COLUMN `is_deleted` tinyint(1) NOT NULL default 0";
         Libraries_Db_Factory::getDb()->execute($sql);
         $raw_field_names[] = 'is_deleted';
         // reinit fields
         $sql = "SHOW COLUMNS FROM `{$object_name}`";
         $fields = Libraries_Db_Factory::getDb()->fetchAll($sql, array(), Libraries_Db_Adapter::FETCH_TYPE_CLASS);
     }
     if (!$has_last_modify_field) {
         $sql = "ALTER TABLE `{$object_name}` ADD COLUMN `last_modify` timestamp NULL ON UPDATE CURRENT_TIMESTAMP";
         Libraries_Db_Factory::getDb()->execute($sql);
         $raw_field_names[] = 'last_modify';
         // reinit fields
         $sql = "SHOW COLUMNS FROM `{$object_name}`";
         $fields = Libraries_Db_Factory::getDb()->fetchAll($sql, array(), Libraries_Db_Adapter::FETCH_TYPE_CLASS);
     }
     $mapped_object = new Crud_Models_Object();
     $mapped_object->load($object_name, 'table_name');
     $mapped_object->loadFieldsForObject();
     $is_remap = false;
     if ($mapped_object->isEmpty()) {
         $mapped_object->table_name = $object_name;
         $mapped_object->table_title = $object_name;
         $mapped_object->group_name = __('Just added');
         $mapped_object->save();
     } else {
         foreach ($mapped_object->sys_field_list as $mapped_field) {
             if (!in_array($mapped_field->field_name, $raw_field_names)) {
                 $mapped_field->delete();
             }
         }
         $is_remap = true;
     }
     foreach ($fields as $i => $field) {
         $where = array();
         $where[] = array('AND', 'id_sys_object', '=', $mapped_object->id);
         $where[] = array('AND', 'field_name', '=', $field->Field);
         $field_object = new Crud_Models_Field();
         $field_objects = $field_object->search($where);
         if (!empty($field_objects)) {
             continue;
         }
         $default_control = new Controls_Models_Control();
         $default_control->load(1, 'is_default');
         $field_object->id_sys_object = $mapped_object->id;
         $field_object->id_sys_control = $default_control->id;
         $field_object->field_name = $field->Field;
         $field_object->field_title = $field->Field;
         $field_object->is_hidden = $field->Field == 'is_deleted' || $field->Field == 'id' ? 1 : 0;
         $field_object->is_identification = $field->Field == 'is_deleted' || $i >= 4 || $is_remap == true ? 0 : 1;
         $field_object->is_primary_key = strstr($field->Key, 'PRI') !== false ? 1 : 0;
         $field_object->save();
     }
 }
Example #11
0
echo SITE_ROOT_URI . '/admin/auth/logout/';
?>
"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
                        </li>
                    </ul>
                </li>
            </ul>
            <!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
            <div class="collapse navbar-collapse navbar-ex1-collapse">
                <ul class="nav navbar-nav side-nav">
                	<li class="treeview">
		                <a href="#"><i class="fa fa-folder"></i> <span>Objects</span><i class="fa fa-angle-left pull-right"></i></a>
                        
                        <?php 
$sql = "SELECT id, group_name\n                        \t\t\tFROM sys_object\n                        \t\t\tWHERE \tis_deleted = 0 AND\n                        \t\t\t\t\tis_system = 0\n                        \t\t\tGROUP BY group_name\n                        \t\t\tORDER BY group_name";
$groups = Libraries_Db_Factory::getDb()->fetchAll($sql, array(), Libraries_Db_Adapter::FETCH_TYPE_CLASS);
?>
                        
                        <?php 
foreach ($groups as $group) {
    ?>
                        	<ul class="treeview-menu">
								<li>
									<a data-target="#collapse-<?php 
    echo $group->id;
    ?>
" data-toggle="collapse" href="javascript:;"><i class="fa fa-folder"></i> <?php 
    echo $group->group_name;
    ?>
 <i class="fa fa-fw fa-caret-down"></i></a>
									
Example #12
0
 public function restore($sys_object_id, $row_id)
 {
     $sys_object = new Crud_Models_Object();
     $sys_object->load(intval($sys_object_id));
     $sql = "UPDATE {$sys_object->table_name}\r\n\t\t\t\tSET is_deleted = 0\r\n\t\t\t\tWHERE id = ?";
     $data = array($row_id);
     Libraries_Db_Factory::getDb()->execute($sql, $data);
 }
Example #13
0
 public function getSectorsForProject()
 {
     $sql = "SELECT sectors.*\r\n\t\t\t\tFROM projects_sectors\r\n\t\t\t\tINNER JOIN sectors ON sectors.id = projects_sectors.sector_id\r\n\t\t\t\tWHERE \tprojects_sectors.is_deleted = 0 AND\r\n\t\t\t\t\t\tsectors.is_deleted = 0 AND\r\n\t\t\t\t\t\tprojects_sectors.project_id = ?";
     $data = array($this->id);
     return Libraries_Db_Factory::getDb()->fetchAll($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_CLASS);
 }
Example #14
0
 public function index()
 {
     $where = array();
     $all_projects_ids = array();
     $project_ids = array();
     // Load All projects //
     $sql = "SELECT id\r\n\t\t\t\tFROM projects";
     $data = array();
     $obj_all_projects_ids = Libraries_Db_Factory::getDb()->fetchAll($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_CLASS);
     // id-s from all projects
     foreach ($obj_all_projects_ids as $obj) {
         $all_projects_ids[] = $obj->id;
         // getting array of id-s of projects
     }
     // Loading sectors select //
     $sector = new Home_Models_Sector();
     $sectors = $sector->search();
     Libraries_View::getInstance()->sectors = $sectors;
     // Loading regions-cities //
     $city = new Home_Models_City();
     $order = array();
     $order[] = array('name', 'ASC');
     $cities = $city->search(array(), $order);
     Libraries_View::getInstance()->cities = $cities;
     // Search by project title //
     if (isset($_POST['name']) && !empty($_POST['name'])) {
         $where[] = array('AND', 'title', 'LIKE', '%' . $_POST['name'] . '%');
     }
     // Sector search //
     if (isset($_POST['sectors'])) {
         $sectors = join(',', array_filter($_POST['sectors'], 'intval'));
         $sql = "SELECT project_id, COUNT(id) AS 'sectors_count'\r\n\t\t\t\t\tFROM projects_sectors\r\n\t\t\t\t\tWHERE sector_id IN ({$sectors})\r\n\t\t\t\t\tGROUP BY project_id\r\n\t\t\t\t\tHAVING sectors_count = " . count($_POST['sectors']);
         $data = array();
         $obj_ids_projects_by_sectors = Libraries_Db_Factory::getDb()->fetchAll($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_CLASS);
         // project_id-s from table project_sectors
         $ids_projects_by_sectors = array();
         foreach ($obj_ids_projects_by_sectors as $obj) {
             $ids_projects_by_sectors[] = $obj->project_id;
             // getting array of id-s of projects
         }
         $project_ids = array_intersect($all_projects_ids, $ids_projects_by_sectors);
     }
     // Regions=Cities search //
     if (isset($_POST['regions-select'])) {
         $cities = join(',', array_filter($_POST['regions-select'], 'intval'));
         $sql = "SELECT project_id, COUNT(id) AS 'cities_count'\r\n\t\t\t\t\tFROM cities_projects\r\n\t\t\t\t\tWHERE city_id IN ({$cities},23)\r\n\t\t\t\t\tGROUP BY project_id\r\n\t\t\t\t\tHAVING cities_count = " . count($_POST['regions-select']);
         $data = array();
         $obj_ids_projects_by_cities = Libraries_Db_Factory::getDb()->fetchAll($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_CLASS);
         // project_id-s from table cities_projects
         $ids_projects_by_cities = array();
         foreach ($obj_ids_projects_by_cities as $obj) {
             $ids_projects_by_cities[] = $obj->project_id;
             // getting array of id-s of projects
         }
         $project_ids = array_intersect($all_projects_ids, $ids_projects_by_cities);
     }
     if (!empty($_POST)) {
         if (empty($project_ids)) {
             $where[] = array('AND', '1', '=', 1);
         } else {
             $where[] = array('AND', 'id', 'IN', $project_ids);
         }
     }
     //echo '<pre>'; print_r($where); echo '</pre>';
     $project = new Home_Models_Project();
     $projects = $project->search($where);
     //echo '<pre>'; print_r($projects); echo '</pre>';
     Libraries_View::getInstance()->projects = $projects;
     echo Libraries_View::getInstance()->setModule('home')->load('home');
 }