<?php $table_name = $control_properties->table_name; $conditional_field_id = isset($control_properties->conditional_field_id) ? $control_properties->conditional_field_id : ''; $sys_object = new Crud_Models_Object(); if (!empty($table_name)) { $sys_object->load($table_name, 'table_name'); $sys_object->loadFieldsForObject(); } else { $sys_field = new Crud_Models_Field(); $sys_field->load($conditional_field_id); $sys_field->loadControl(); $sys_object->load($row->{$sys_field->field_name}); $sys_object->loadFieldsForObject(); } if ($sys_object->isEmpty()) { $data = array(); } else { $data = new Libraries_Db_Mysql_Model($sys_object->table_name); $data = $data->search(); } ?> <div class="ocp-select"> <select id="<?php echo $field->field_name; ?> " name="<?php echo $field->field_name; ?> " class="form-control" tabindex="<?php echo $index;
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(); } }
<th>Title</th> <th style="width: 240px;"><i class="fa fa-cogs"></i> Actions</th> </tr> </tfoot> <tbody role="alert" aria-live="polite" aria-relevant="all"> <?php $system_objects = array(); ?> <?php foreach ($available_db_objects as $i => $available_db_object) { ?> <?php $object = new Crud_Models_Object(); $object->load($available_db_object, 'table_name'); if (!$object->isEmpty() && $object->is_system == 1) { $system_objects[] = $object; continue; } ?> <tr class="<?php echo ($i + 1) % 2 == 0 ? 'event' : 'odd'; ?> "> <td><?php echo $i + 1; ?> </td> <td><?php echo $available_db_object; ?>