public function save_edit($post_data) { $is_module = false; $is_admin = $this->app->user_manager->is_admin(); if ($post_data) { if (isset($post_data['json_obj'])) { $obj = json_decode($post_data['json_obj'], true); $post_data = $obj; } if (isset($post_data['mw_preview_only'])) { $is_no_save = true; unset($post_data['mw_preview_only']); } $is_no_save = false; $is_draft = false; if (isset($post_data['is_draft'])) { unset($post_data['is_draft']); $is_draft = 1; } $the_field_data_all = $post_data; } else { return array('error' => 'no POST?'); } $ustr2 = $this->app->url_manager->string(1, 1); if (isset($ustr2) and trim($ustr2) == 'favicon.ico') { return false; } $ref_page = $ref_page_url = false; if (isset($_SERVER['HTTP_REFERER'])) { $ref_page = $ref_page_url = $_SERVER['HTTP_REFERER']; } if (isset($post_data['id']) and intval($post_data['id']) > 0) { $page_id = intval($post_data['id']); } elseif ($ref_page != '') { //removing hash from url if (strpos($ref_page_url, '#')) { $ref_page = $ref_page_url = substr($ref_page_url, 0, strpos($ref_page_url, '#')); } $ref_page2 = $ref_page = $this->get_by_url($ref_page_url); if ($ref_page2 == false) { $ustr = $this->app->url_manager->string(1); if ($this->app->modules->is_installed($ustr)) { $ref_page = false; } } else { $ref_page = $ref_page2; } if (isset($ustr) and trim($ustr) == 'favicon.ico') { return false; } elseif ($ustr2 == '' or $ustr2 == '/') { $ref_page = $this->homepage(); if ($ref_page_url) { $page_url_ref = $this->app->url_manager->param('content_id', $ref_page_url); if ($page_url_ref !== false) { if ($page_url_ref == 0) { return false; } } } } if ($ref_page == false) { $guess_page_data = new \Microweber\Controllers\DefaultController(); // $guess_page_data = new $this->app->controller($this->app); $ref_page_url = strtok($ref_page_url, '?'); $guess_page_data->page_url = $ref_page_url; $guess_page_data->return_data = true; $guess_page_data->create_new_page = true; $pd = $guess_page_data->index(); $ustr = $this->app->url_manager->string(1); $is_module = false; $pd['url'] = $ustr; if (isset($pd['active_site_template']) and $pd['active_site_template'] == template_name()) { $pd['active_site_template'] = ''; } if ($this->app->modules->is_installed($ustr)) { $is_module = true; $save_page['layout_file'] = 'clean.php'; $save_page['subtype'] = 'module'; $hp_id = $this->app->content_manager->homepage(); if (isset($hp_id['id'])) { $page_id = $hp_id['id']; } else { $page_id = 1; } $is_module = 1; $save_page = false; } if ($is_admin == true and is_array($pd) and $is_module == false) { $save_page = $pd; if (!isset($_GET['mw_quick_edit'])) { if (isset($ref_page_url) and $ref_page_url != false) { $save_page['url'] = $ref_page_url; } else { $save_page['url'] = $this->app->url_manager->string(1); } $title = str_replace('%20', ' ', $this->app->url_manager->string(1)); if ($title == 'editor_tools/wysiwyg' or $title == 'api/module' or $title == 'admin/view:content') { return false; } $save_page['title'] = $title; if ($save_page['url'] == '' or $save_page['url'] == '/' or $save_page['url'] == $this->app->url_manager->site()) { $save_page['url'] = 'home'; $home_exists = $this->homepage(); if ($home_exists == false) { $save_page['is_home'] = 1; } } } if ($save_page['title'] == '') { $save_page['title'] = 'Home'; } if (!isset($save_page['is_active'])) { $save_page['is_active'] = 1; } if (isset($save_page['content_type']) and $save_page['content_type'] == 'page') { if (!isset($save_page['subtype'])) { $save_page['subtype'] = 'static'; if (!isset($save_page['layout_file']) or $save_page['layout_file'] == false) { $save_page['layout_file'] = 'inherit'; } } } if ($save_page != false) { $page_id = $this->save_content_admin($save_page); } } } else { $page_id = $ref_page['id']; $ref_page['custom_fields'] = $this->custom_fields($page_id, false); } } $author_id = user_id(); if ($is_admin == false and $page_id != 0 and $author_id != 0) { $page_data_to_check_author = $this->get_by_id($page_id); if (!isset($page_data_to_check_author['created_by']) or $page_data_to_check_author['created_by'] != $author_id) { return array('error' => 'You dont have permission to edit this content'); } } else { if ($is_admin == false) { return array('error' => 'Not logged in as admin to use ' . __FUNCTION__); } } $save_as_draft = false; if (isset($post_data['save_draft'])) { $save_as_draft = true; unset($post_data['save_draft']); } $json_print = array(); foreach ($the_field_data_all as $the_field_data) { $save_global = false; $save_layout = false; if (isset($page_id) and $page_id != 0 and !empty($the_field_data)) { $save_global = false; $content_id = $page_id; $url = $this->app->url_manager->string(true); $some_mods = array(); if (isset($the_field_data) and is_array($the_field_data) and isset($the_field_data['attributes'])) { if ($the_field_data['html'] != '') { $field = false; if (isset($the_field_data['attributes']['field'])) { $field = trim($the_field_data['attributes']['field']); } if (isset($the_field_data['attributes']['data-field'])) { $field = $the_field_data['attributes']['field'] = trim($the_field_data['attributes']['data-field']); } if ($field != false) { $page_element_id = $field; } if (!isset($the_field_data['attributes']['rel'])) { $the_field_data['attributes']['rel_type'] = 'content'; } else { $the_field_data['attributes']['rel_type'] = $the_field_data['attributes']['rel']; } if (isset($the_field_data['attributes']['rel-id'])) { $content_id = $the_field_data['attributes']['rel-id']; } elseif (isset($the_field_data['attributes']['rel_id'])) { $content_id = $the_field_data['attributes']['rel_id']; } elseif (isset($the_field_data['attributes']['data-rel-id'])) { $content_id = $the_field_data['attributes']['data-rel-id']; } elseif (isset($the_field_data['attributes']['data-rel_id'])) { $content_id = $the_field_data['attributes']['data-rel_id']; } $save_global = false; if (isset($the_field_data['attributes']['rel_type']) and (trim($the_field_data['attributes']['rel_type']) == 'global' or trim($the_field_data['attributes']['rel_type'])) == 'module') { $save_global = true; } else { $save_global = false; } if (isset($the_field_data['attributes']['rel_type']) and trim($the_field_data['attributes']['rel_type']) == 'layout') { $save_global = false; $save_layout = true; } else { $save_layout = false; } if (isset($the_field_data['attributes']['rel'])) { $the_field_data['attributes']['rel_type'] = $the_field_data['attributes']['rel']; } if (!isset($the_field_data['attributes']['data-id'])) { $the_field_data['attributes']['data-id'] = $content_id; } $save_global = 1; if (isset($the_field_data['attributes']['rel_type']) and isset($the_field_data['attributes']['data-id'])) { $rel_ch = trim($the_field_data['attributes']['rel_type']); switch ($rel_ch) { case 'content': $save_global = false; $save_layout = false; $content_id_for_con_field = $content_id = $the_field_data['attributes']['data-id']; break; case 'page': case 'post': $save_global = false; $save_layout = false; $content_id_for_con_field = $content_id = $page_id; break; default: break; } } $inh = false; if (isset($the_field_data['attributes']['rel_type']) and $the_field_data['attributes']['rel_type'] == 'inherit') { $save_global = false; $save_layout = false; $content_id = $page_id; $inh = $this->get_inherited_parent($page_id); if ($inh != false) { $content_id_for_con_field = $content_id = $inh; } } else { if (isset($the_field_data['attributes']['rel_type']) and $the_field_data['attributes']['rel_type'] == 'page') { $save_global = false; $save_layout = false; $content_id = $page_id; $check_if_page = $this->get_by_id($content_id); if (is_array($check_if_page) and isset($check_if_page['content_type']) and isset($check_if_page['parent']) and $check_if_page['content_type'] != '' and intval($check_if_page['parent']) != 0 and $check_if_page['content_type'] != 'page') { $inh = $check_if_page['parent']; if ($inh != false) { $content_id_for_con_field = $content_id = $inh; } } } } $save_layout = false; if (isset($post_data['id'])) { $content_id_for_con_field = $post_data['id']; } elseif ($inh == false and !isset($content_id_for_con_field)) { if (is_array($ref_page) and isset($ref_page['parent']) and isset($ref_page['content_type']) and $ref_page['content_type'] == 'post') { $content_id_for_con_field = intval($ref_page['parent']); } else { $content_id_for_con_field = intval($ref_page['id']); } } $html_to_save = $the_field_data['html']; $html_to_save = $content = mw()->parser->make_tags($html_to_save); if ($save_global == false and $save_layout == false) { if ($content_id) { $for_histroy = $ref_page; $old = false; $field123 = str_ireplace('custom_field_', '', $field); if (stristr($field, 'custom_field_')) { $old = $for_histroy['custom_fields'][$field123]; } else { if (isset($for_histroy['custom_fields'][$field123])) { $old = $for_histroy['custom_fields'][$field123]; } elseif (isset($for_histroy[$field])) { $old = $for_histroy[$field]; } } $history_to_save = array(); $history_to_save['table'] = 'content'; $history_to_save['id'] = $content_id; $history_to_save['value'] = $old; $history_to_save['field'] = $field; $cont_field = array(); $cont_field['rel_type'] = 'content'; $cont_field['rel_id'] = $content_id_for_con_field; $cont_field['value'] = $html_to_save; $cont_field['field'] = $field; if ($is_draft != false) { $cont_id = $content_id_for_con_field; $cont_field['is_draft'] = 1; $cont_field['rel_type'] = $rel_ch; $cont_field['url'] = $url; $to_save_draft = true; if (isset($cont_field['value'])) { $draftmd5 = md5($cont_field['value']); $draftmd5_last = $this->app->user_manager->session_get('content_draft_save_md5'); if ($draftmd5_last == $draftmd5) { $to_save_draft = false; } else { $this->app->user_manager->session_set('content_draft_save_md5', $draftmd5); } } if ($to_save_draft) { $cont_field1 = $this->save_content_field($cont_field); } } else { if ($field != 'content') { $cont_field1 = $this->save_content_field($cont_field); } } $this->app->event_manager->trigger('mw.content.save_edit', $cont_field); $to_save = array(); $to_save['id'] = $content_id; $is_native_fld = $this->app->database_manager->get_fields('content'); if (in_array($field, $is_native_fld)) { $to_save[$field] = $html_to_save; } if ($is_no_save != true and $is_draft == false) { $json_print[] = $to_save; $saved = $this->save_content_admin($to_save); } } else { if (isset($category_id)) { print __FILE__ . __LINE__ . ' category is not implemented ... not ready yet'; } } } else { $cont_field = array(); $cont_field['rel_type'] = $the_field_data['attributes']['rel_type']; $cont_field['rel_id'] = 0; if (isset($the_field_data['attributes']['rel-id'])) { $cont_field['rel_id'] = $the_field_data['attributes']['rel-id']; } elseif (isset($the_field_data['attributes']['rel_id'])) { $cont_field['rel_id'] = $the_field_data['attributes']['rel_id']; } elseif (isset($the_field_data['attributes']['data-rel-id'])) { $cont_field['rel_id'] = $the_field_data['attributes']['data-rel-id']; } elseif ($cont_field['rel_type'] != 'global' and isset($the_field_data['attributes']['content-id'])) { $cont_field['rel_id'] = $the_field_data['attributes']['content-id']; } elseif ($cont_field['rel_type'] != 'global' and isset($the_field_data['attributes']['data-id'])) { $cont_field['rel_id'] = $the_field_data['attributes']['data-id']; } elseif (isset($the_field_data['attributes']['data-rel_id'])) { $cont_field['rel_id'] = $the_field_data['attributes']['data-rel_id']; } $cont_field['value'] = $this->app->parser->make_tags($html_to_save); if ((!isset($the_field_data['attributes']['field']) or $the_field_data['attributes']['field'] == '') and isset($the_field_data['attributes']['data-field'])) { $the_field_data['attributes']['field'] = $the_field_data['attributes']['data-field']; } $cont_field['field'] = $the_field_data['attributes']['field']; if ($is_draft != false) { $cont_field['is_draft'] = 1; $cont_field['url'] = $this->app->url_manager->string(true); $cont_field_new = $this->save_content_field($cont_field); } else { $cont_field_new = $this->save_content_field($cont_field); } if ($save_global == true and $save_layout == false) { $json_print[] = $cont_field; $history_to_save = array(); $history_to_save['table'] = 'global'; $history_to_save['value'] = $cont_field['value']; $history_to_save['field'] = $field; $history_to_save['page_element_id'] = $page_element_id; } } } } } } if (isset($opts_saved)) { $this->app->cache_manager->delete('options'); } return $json_print; }
$name or exit('0'); $name = convert($name, 'UTF-8', DT_CHARSET); template_name($fileid, $name); exit('1'); break; case 'download': $fileid or msg(); $file_ext = $bakid ? '.' . $bakid . '.bak' : '.htm'; file_down($template_root . '/' . $fileid . $file_ext); break; case 'delete': $fileid or msg(); $file_ext = $bakid ? '.' . $bakid . '.bak' : '.htm'; file_del($template_root . '/' . $fileid . $file_ext); if (!$bakid) { template_name(); } dmsg('删除成功', $this_forward); break; case 'cache': cache_clear('php', 'dir', 'tpl'); dmsg('更新成功', $this_forward); break; default: $dirs = $files = $templates = $baks = array(); if (substr($template_root, -1) != '/') { $template_root .= '/'; } $files = glob($template_root . '*'); if (!$files) { msg('模板文件不存在,请先创建', "?file={$file}&action=add&dir={$dir}");
$possible_dir = normalize_path($possible_dir, false); ?> <?php if (is_dir($possible_dir)) { ?> <?php $options = array(); $options['for_modules'] = 1; $options['path'] = $possible_dir; $templates = mw()->layouts_manager->get_all($options); ?> <?php if (is_array($templates)) { ?> <?php if ($site_template['dir_name'] == template_name()) { ?> <optgroup label="<?php print $site_template['name']; ?> "> <?php foreach ($templates as $item) { ?> <?php if (strtolower($item['name']) != 'default') { ?> <?php $opt_val = $site_template['dir_name'] . '/' . 'modules/' . $mod_name . $item['layout_file']; ?> <?php
?> " name="headerbg" id="headerbg" data-property="color" /> <?php /* <select id="mw_set_template_style"> <option value="css/styles/spacelab.css">spacelab</option> <option value="css/styles/superhero.css">superhero</option> <option value="css/styles/amelia.css">superhero</option> </select> <input type="text" class="tpl-field" data-selector="@import" value = "<?php if(isset($data['import']) and isset($data['import']['value'])){ print $data['import']['value']; } ?>" name="import" id="import_css" />*/ ?> <div class="mw_clear"></div> <br /> <module type="content/views/layout_selector_custom_css" template="<?php print template_name(); ?> " />