Exemplo n.º 1
0
 public function do_submit()
 {
     $module = new _cms_module([], $this->mid);
     $field = new field_type([], $this->type);
     $old_field = new _cms_field([], $this->fid);
     $type = '\\form\\field_' . $field->title;
     /** @var \form\field $field_type */
     $field_type = new $type('');
     if ($inner = $field_type->get_database_create_query()) {
         db::query('ALTER TABLE ' . $module->table_name . ' MODIFY `' . $old_field->field_name . '` `' . $this->field_name . '` ' . $field_type->get_database_create_query(), [], 1);
     }
     if ($field->title == 'mlink' && $old_field->type !== 'mlink') {
         $source_module = new _cms_module(['table_name', 'primary_key'], $this->link_module);
         db::create_table_join(\classes\get::__class_name($this), $source_module->table_name);
     }
     $insert = db::update('_cms_field')->add_value('title', $this->title)->add_value('type', $field->title)->add_value('field_name', $this->field_name)->add_value('link_module', $this->link_module)->add_value('link_field', $this->link_field)->filter_field('fid', $this->fid);
     $insert->execute();
     table::rebuild_modules();
     table::reset_module_fields($module->mid);
     ajax::update($module->get_fields_list()->get());
     ajax::update($this->get_html()->get());
 }
Exemplo n.º 2
0
 public function update_cms_setting()
 {
     if (\core::is_admin()) {
         db::update('_cms_field')->add_value($_REQUEST['field'], $_REQUEST['value'])->filter_field('fid', $_REQUEST['fid'])->execute();
     }
     return 1;
 }
Exemplo n.º 3
0
 /**
  * @param field_file $field
  * @return string
  */
 protected function do_upload_file(field_file $field)
 {
     if ($field->field_name == 'file') {
         if (isset($_FILES[$field->field_name]) && !$_FILES[$field->field_name]['error']) {
             $tmp_name = $_FILES[$field->field_name]['tmp_name'];
             $name = $_FILES[$field->field_name]['name'];
             $ext = pathinfo($name, PATHINFO_EXTENSION);
             if ($ext == 'zip') {
                 $root = root . '/uploads/comp/' . $this->get_primary_key();
                 if (!is_dir($root)) {
                     mkdir($root);
                 }
                 $this->file = str_replace(root, '', $root) . '/comp.zip';
                 $zip = new \ZipArchive();
                 $zip->open(root . $this->file);
                 $zip->extractTo($root . '/');
                 $files = glob($root . '/*.igc');
                 $files = array_map(function ($file) {
                     $exp = explode("/", $file);
                     return ['name' => trim(preg_replace('/[^a-zA-Z ]/', '', substr(end($exp), 0, -3))), 'source' => $file];
                 }, $files);
                 if ($files) {
                     $coords = json_decode($this->coords);
                     $parser = new igc_parser();
                     $parser->exec($this->get_primary_key(), ['type' => 'comp', 'sources' => $files, 'destination' => $root, 'task' => ['type' => 'lat/lng', 'coordinates' => array_map(function ($coord) {
                         return ['lat' => (double) $coord->lat, 'lng' => (double) $coord->lon];
                     }, $coords)]]);
                 }
                 move_uploaded_file($tmp_name, root . $this->file);
                 db::update('comp')->add_value('file', $this->file)->filter_field('cid', $this->cid)->execute();
             }
         }
     } else {
         parent::do_upload_file($field);
     }
 }
Exemplo n.º 4
0
 public function run_patch($patch)
 {
     $function = 'patch_v' . $patch;
     $this->{$function}();
     db::update('_cms_setting')->add_value('value', $patch)->filter(['`key`="cms_version"'])->execute();
 }
Exemplo n.º 5
0
 /**
  *
  */
 public function do_reorder_fields()
 {
     if (isset($_REQUEST['mid']) && isset($_REQUEST['fid'])) {
         $this->set_from_mid($_REQUEST['mid']);
         $fields = object\_cms_field::get_all([], ['where_equals' => ['mid' => $_REQUEST['mid']]]);
         $reverse = false;
         if (isset($_REQUEST['dir']) && $_REQUEST['dir'] == 'down') {
             $reverse = true;
             $fields->reverse();
         }
         $cnt = $reverse ? count($fields) + 1 : 0;
         /** @var object\_cms_field $previous */
         $previous = $fields[0];
         $fields->iterate(function (object\_cms_field $field) use(&$previous, $reverse, &$cnt) {
             $cnt += $reverse ? -1 : 1;
             $field->position = $cnt;
             $field->position = $cnt;
             if ($field->fid == $_REQUEST['fid']) {
                 $field->position = $previous->position;
                 $previous->position = $cnt;
             }
             $previous = $field;
         });
         if ($reverse) {
             $fields->reverse();
         }
         $fields->uasort(function (object\_cms_field $a, object\_cms_field $b) {
             return $a->position - $b->position;
         });
         $cnt = 1;
         $fields->iterate(function (object\_cms_field $field) use(&$cnt) {
             db::update('_cms_field')->add_value('position', $cnt++)->filter_field('fid', $field->fid)->execute();
         });
         table::reset_module_fields($this->module->mid);
         ajax::update($this->module->get_fields_list()->get());
     }
 }
Exemplo n.º 6
0
 /**
  *
  */
 public function do_reorder()
 {
     if (isset($_REQUEST['id'])) {
         /** @var table $object */
         static::$retrieve_unlive = true;
         static::$retrieve_deleted = true;
         $object = new static(['position'], $_REQUEST['id']);
         if (isset($_REQUEST['dir']) && $_REQUEST['dir'] == 'down') {
             _db::update(_get::__class_name($object))->add_value('position', $object->position)->filter_field('position', $object->position + 1)->execute();
             _db::update(_get::__class_name($object))->add_value('position', $object->position + 1)->filter_field($object->get_primary_key_name(), $object->get_primary_key())->execute();
         } else {
             _db::update(_get::__class_name($object))->add_value('position', $object->position)->filter_field('position', $object->position - 1)->execute();
             _db::update(_get::__class_name($object))->add_value('position', $object->position - 1)->filter_field($object->get_primary_key_name(), $object->get_primary_key())->execute();
         }
         $list = new _cms_table_list(self::$cms_modules[get_called_class()], 1);
         _ajax::update($list->get_table());
     }
 }