public function do_submit() { $module = new _cms_module([], $this->mid); $field = new field_type([], $this->type); $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 . ' ADD `' . $this->field_name . '` ' . $field_type->get_database_create_query(), [], 1); } if ($field->title == 'mlink') { $source_module = new _cms_module(['table_name', 'primary_key'], $this->link_module); db::create_table_join(get::__class_name($this), $source_module->table_name); } $res = db::select('_cms_field')->retrieve('MAX(position) AS pos')->filter_field('mid', $this->mid)->execute()->fetchObject(); $insert = db::insert('_cms_field')->add_value('title', $this->title)->add_value('type', $field->title)->add_value('field_name', $this->field_name)->add_value('mid', $this->mid)->add_value('position', $res->pos + 1); if ($field->title == 'link' || $field->title == 'mlink') { $insert->add_value('link_module', $this->link_module)->add_value('link_field', $this->link_field); } $insert->execute(); table::rebuild_modules(); table::reset_module_fields($module->mid); ajax::update($module->get_fields_list()->get()); ajax::update($this->get_html()->get()); }
public function get_title_tag() { $parts = [parent::get_title_tag(), 'CMS', ucwords(str_replace('_', ' ', \classes\get::__class_name($this)))]; if (isset($this->module->current)) { $parts[] = ucwords(str_replace('_', ' ', get::__class_name($this->module->current))); if ($this->module->current->get_primary_key()) { if ($title = $this->module->current->get_title()) { $parts[] = $title; } else { $parts[] = $this->module->current->get_primary_key(); } } } return implode(' | ', $parts); }
public function filter() { $res = $this->getIterator(); if (!isset($this->filters)) { $this->set_filters(); } foreach ($this->filters->fields as $field) { if ($field->field_name != 'identifier' && isset($this->filters->{$field->field_name}) && $this->filters->{$field->field_name}) { $key = $field->field_name; if ($field->original_field instanceof field_link) { $key = get::__class_name($field->original_field->get_link_module()); } $res = new collection_filter($res, $key, $this->filters->{$field->field_name}); } } $result_set = []; foreach ($res as $object) { $result_set[] = $object; } $this->exchangeArray($result_set); }
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()); }
public function get_table_class() { return get::__class_name($this->get_table_object()); }
public function get_cms_admin_edit() { $cols = []; $cols[] = node::create('td span.btn.btn-default.live' . ($this->live ? '' : '.not_live'), [], icon::get($this->live ? 'ok' : 'remove')); $cols[] = node::create('td span.btn.btn-default.edit', ['href' => '/' . $this->fid . '/?module=\\module\\cms\\object\\_cms_module&act=get_edit_field_form&fid=' . $this->fid, 'data-target' => '#modal', 'data-toggle' => 'modal'], icon::get('pencil')); $cols[] = node::create('td', [], $this->fid); $cols[] = node::create('td', [], node::create('a.up.reorder.btn.btn-default', ['data-ajax-click' => 'cms:do_reorder_fields', 'data-ajax-post' => '{"mid":' . $this->parent_form->get_module_id() . ',"fid":' . $this->fid . ',"dir":"up"}'], icon::get('arrow-up')) . node::create('a.down.reorder.btn.btn-default', ['data-ajax-click' => 'cms:do_reorder_fields', 'data-ajax-post' => '{"mid":' . $this->parent_form->get_module_id() . ',"fid":' . $this->fid . ',"dir":"down"}'], icon::get('arrow-down'))); $cols[] = node::create('td', [], $this->title); $cols[] = node::create('td', [], $this->field_name); $cols[] = node::create('td', [], get::__class_name($this)); $fields = ['list', 'required', 'filter']; foreach ($fields as $field) { $list_options = ['data-ajax-change' => 'form\\field_boolean:update_cms_setting', 'data-ajax-post' => '{"fid":' . $this->fid . ', "field":"' . $field . '"}', 'value' => 1, 'type' => 'checkbox']; if ($this->{$field}) { $list_options['checked'] = 'checked'; } $cols[] = node::create('td input#' . $this->fid . '_list', $list_options); } $cols[] = node::create('td', [], $this instanceof field_image ? $this->get_image_edit_link() : ''); return $cols; }
/** * @param $object * @param array $fields_to_retrieve * @param $options * @return \db\select */ public static function get_query($object, array $fields_to_retrieve, $options) { $query = db::select(_get::__class_name($object)); $base_object = _get::__class_name($object); if (!empty($fields_to_retrieve)) { foreach ($fields_to_retrieve as $field) { if (strstr($field, '.') && !strstr($field, '.*') && !strstr($field, ' AS ')) { $query->add_field_to_retrieve($field . ' AS `' . str_replace('.', '@', $field) . '`'); } else { if (strstr($field, '(') === false && strstr($field, '.*') === false && strstr($field, '.') === false) { $query->add_field_to_retrieve($base_object . '.' . $field); } else { $query->add_field_to_retrieve($field); } } } } else { $query->add_field_to_retrieve($base_object . '.*'); } if (isset($options['parameters'])) { $query->filter('1', $options['parameters']); } if (isset($options['join'])) { foreach ($options['join'] as $key => $val) { $query->add_join($key, $val); } } if (isset($options['where'])) { $query->filter($options['where']); } if (isset($options['where_equals']) && $options['where_equals']) { foreach ($options['where_equals'] as $key => $val) { $query->filter_field($key, $val); } } if (isset($options['order'])) { $query->set_order($options['order']); } if (isset($options['limit'])) { $query->set_limit($options['limit']); } if (isset($options['group'])) { $query->add_grouping($options['group']); } return $query; }
/** * @param table_array $elements * @param string $class * * @return node */ public function get_table_rows($elements, $class = '') { $nodes = node::create('tbody'); $keys = $this->allowed_keys; /** * @var \classes\table $obj * @return string */ return $elements->iterate_return(function (table $obj) use($nodes, $keys, $class) { if ($obj->_has_child && in_array($obj->get_primary_key(), $keys)) { $obj->_is_expanded = true; $children = $this->get_elements($obj->get_primary_key()); } else { $obj->_is_expanded = false; $children = false; } return node::create('tr#' . get::__class_name($obj) . $obj->get_primary_key() . ($obj->deleted ? '.danger.deleted' : '') . $class . '.vertical-align', [], $obj->get_cms_list()) . ($children ? $this->get_table_rows($children, '.active') : ''); }); }
public function do_delete() { $module = new _cms_module([], $_REQUEST['mid']); $object = $module->get_class(); $class = $module->get_class_name(); $class::$retrieve_deleted = true; $object->do_retrieve_from_id(['deleted'], $_REQUEST['id']); if ($object->get_primary_key()) { if ($object->deleted) { db::delete(get::__class_name($class))->filter($object->get_primary_key_name() . '=' . $_REQUEST['id'])->execute(); } else { $object->deleted = true; $object->do_save(); } } $list = new object\_cms_table_list($module, 1); ajax::update($list->get_table()); }
public function get_id() { return str_replace('\\', '_', _get::__class_name($this)); }
public function get_view() { $html = node::create('div', [], node::create('h2.page-header.container-fluid', [], 'View all ' . ucwords(get::__class_name($this->module->current)) . 's') . $this->module->get_inner()); return $html; }
/** * */ 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()); } }