annotate .cms/mod/pages.mod.php @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 <?php
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3 $cms["modules"]["pages.mod.php"] = array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 "name" => "pages_module_name",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 "description" => "pages_module_description",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 "files" => array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 ".cms/mod/pages.mod.php",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 ".cms/js/pages.js",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 ".cms/css/pages.css",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 ".cms/lang/ru_RU.UTF-8/pages.mod.php",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 ".cms/lang/en_US.UTF-8/pages.mod.php",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 ".cms/lang/uk_UA.UTF-8/pages.mod.php",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 // Return if module disabled
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 if ( ! empty( $cms["config"]["pages.mod.php"]["disabled"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 if ( is_admin() ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 if ( empty( $_COOKIE["pages_pager"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 if ( PHP_VERSION_ID < 70300 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 setcookie( "pages_pager", 100 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 setcookie( "pages_pager", 100, array( "SameSite" => "Lax" ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 hook_add_fn( "create_tables", "cms_pages_create_tables" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 hook_add_fn( "admin", "cms_pages_admin" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 hook_add_fn( "admin_header", "cms_pages_admin_header" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 hook_add_fn( "api", "cms_pages_api" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 hook_add_fn( "mod_menu_item", "cms_pages_menu_item" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 hook_add_fn( "query", "cms_pages_query" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 hook_add_fn( "menu", "cms_pages_menu" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 function cms_pages_menu_item() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 if ( empty( $cms["menu.mod.php"]["item"]["found"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 $q = "SELECT id, title, url FROM pages WHERE id={$cms["menu.mod.php"]["item"]['id']}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 if ( $res_page = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 if ( $page = mysqli_fetch_assoc( $res_page ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 $cms["menu.mod.php"]["item"]["link_title"] = $page["title"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 $cms["menu.mod.php"]["item"]["select_title"] = $page["title"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 $cms["menu.mod.php"]["item"]["url"] = $page["url"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 $cms["menu.mod.php"]["item"]["found"] = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 $cms["menu.mod.php"]["item"]["link_title"] = __( "deleted_page" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 $cms["menu.mod.php"]["item"]["select_title"] = __( "deleted_page" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 $cms["menu.mod.php"]["item"]["found"] = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 function cms_pages_admin_header() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 $hide = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 foreach ( $cms["config"]["pages.mod.php"]["menu"] as $menu ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 $hide = $hide && ( ! empty( $menu["hide"] ) || ! empty( $cms["config"]["admin_sections"][ $menu["section"] ]["hide"] ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 if ( ! $hide ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 echo "<link rel=stylesheet href='{$cms['base_path']}css/pages.css'>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 echo "<link rel=stylesheet href='{$cms['base_path']}lib/codemirror/lib/codemirror.css'>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 echo "<link rel=stylesheet href='{$cms['base_path']}lib/codemirror/addon/hint/show-hint.css'>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 echo "<link rel=stylesheet href='{$cms['base_path']}lib/codemirror/addon/dialog/dialog.css'>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 echo "<script src='{$cms['base_path']}lib/codemirror/lib/codemirror.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 echo "<script src='{$cms['base_path']}lib/codemirror/addon/hint/show-hint.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 echo "<script src='{$cms['base_path']}lib/codemirror/addon/hint/xml-hint.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 echo "<script src='{$cms['base_path']}lib/codemirror/addon/hint/html-hint.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 echo "<script src='{$cms['base_path']}lib/codemirror/addon/hint/javascript-hint.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 echo "<script src='{$cms['base_path']}lib/codemirror/addon/hint/anyword-hint.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 echo "<script src='{$cms['base_path']}lib/codemirror/addon/hint/css-hint.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 echo "<script src='{$cms['base_path']}lib/codemirror/addon/selection/active-line.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 echo "<script src='{$cms['base_path']}lib/codemirror/addon/search/search.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 echo "<script src='{$cms['base_path']}lib/codemirror/addon/search/searchcursor.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 echo "<script src='{$cms['base_path']}lib/codemirror/addon/search/jump-to-line.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 echo "<script src='{$cms['base_path']}lib/codemirror/addon/dialog/dialog.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 echo "<script src='{$cms['base_path']}lib/codemirror/addon/edit/matchbrackets.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 echo "<script src='{$cms['base_path']}lib/codemirror/addon/edit/matchtags.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 echo "<script src='{$cms['base_path']}lib/codemirror/addon/edit/closebrackets.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 echo "<script src='{$cms['base_path']}lib/codemirror/addon/edit/closetag.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 #region folding
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 echo "<link rel=stylesheet href='{$cms['base_path']}lib/codemirror/addon/fold/foldgutter.css'>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/foldcode.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/foldgutter.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/brace-fold.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/xml-fold.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 //echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/indent-fold.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 //echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/markdown-fold.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 echo "<script src='{$cms['base_path']}lib/codemirror/addon/fold/comment-fold.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 #endregion
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 echo "<script src='{$cms['base_path']}lib/codemirror/mode/htmlmixed/htmlmixed.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 echo "<script src='{$cms['base_path']}lib/codemirror/mode/xml/xml.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 echo "<script src='{$cms['base_path']}lib/codemirror/mode/javascript/javascript.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 echo "<script src='{$cms['base_path']}lib/codemirror/mode/css/css.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 echo "<script src='{$cms['base_path']}lib/codemirror/mode/clike/clike.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 echo "<script src='{$cms['base_path']}lib/codemirror/mode/php/php.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 echo "<script src='{$cms['base_path']}js/pages.js'></script>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 function cms_pages_api() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 if ( ! empty( $_POST["fn"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 switch ( $_POST["fn"] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 case "create_page":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 if ( empty( $cms["base"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 "no_database" => "<span class=no-database>" . __( "no_connect_db" ) . "</span>",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 // Read template settings
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 cms_template_load_settings();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 $tpl = "page";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 // Default text for new page from template
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 if ( ! empty( $cms["templates"][ $cms["template"] ]["page_templates"][$tpl] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 $text = mysqli_real_escape_string( $cms["base"], $cms["templates"][ $cms["template"] ]["page_templates"][$tpl] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 $text = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 $modified = number_format( microtime( true ), 6, ".", "" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 //$modified = 0; // Это позволит исключить новые страницы из RSS, но сортировка страниц в админке по этому полю
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 $created = date( "Y-m-d H:i:s", $modified );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 $q = "INSERT INTO pages SET created='{$created}', modified='{$modified}', tpl='{$tpl}', text='{$text}'";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 if ( $r = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 $id = mysqli_insert_id( $cms["base"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 "info_text" => __( "error_creating_page" ) . mysqli_error( $cms["base"] ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 "info_class" => "info-error",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 // Create title, url and update in database
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 $title = __( "page_default_title" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 $url = "{$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 // Если страница одна, то сделать ее главной
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 $q = "SELECT COUNT(*) FROM pages";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 $res = mysqli_query( $cms["base"], $q );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 $row = mysqli_fetch_assoc( $res );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 $count = $row["COUNT(*)"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 if ( $count == 1 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 $url = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 $title = __( "home_page" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 $q = "UPDATE pages SET title='{$title}', url='{$url}' WHERE id={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 if ( $r = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 $_POST["where"] = "id={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 $r = cms_pages_get_pages_list();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 $r = array_merge( $r,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 "info_text" => __( "page_created" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 )
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 echo( json_encode( $r ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 "info_text" => __( "error_creating_page" ) . mysqli_error( $cms["base"] ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 "info_class" => "info-error",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 case "save_prop":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193 $_POST["url"] = trim( $_POST["url"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 if ( substr( $_POST["url"], 0, 1 ) === "/" ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 $_POST["url"] = substr( $_POST["url"], 1 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 // Read template settings
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199 cms_template_load_settings();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 $id = (int) $_POST["id"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 $title = mysqli_real_escape_string( $cms["base"], $_POST["title"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203 $seo_title = mysqli_real_escape_string( $cms["base"], $_POST["seo_title"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 $description = mysqli_real_escape_string( $cms["base"], $_POST["description"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 $tags = mysqli_real_escape_string( $cms["base"], $_POST["tags"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207 // get page text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 $q = "SELECT `text` FROM `pages` WHERE `id`={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 $r = mysqli_query( $cms["base"], $q );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 $row = mysqli_fetch_assoc( $r );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 $text = $row["text"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 $update_text = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 // Default text for old_template
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215 if ( ! empty( $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["old_template"] ] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216 $text2 = $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["old_template"] ];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218 $text2 = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221 // Change template text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 if ( $_POST["old_template"] !== $_POST["template"] and $text === $text2 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 // Default text for template
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 if ( ! empty( $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["template"] ] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 $text = mysqli_real_escape_string( $cms["base"], $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["template"] ] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226 $update_text = ", `text`='{$text}'";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230 $esc_url = mysqli_real_escape_string( $cms["base"], $_POST["url"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 // Check dupl
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233 if ( $r = mysqli_query( $cms["base"], "SELECT COUNT(*) FROM `pages` WHERE `url`='{$esc_url}' AND `id`<>{$id}" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234 if ( $cnt = mysqli_fetch_assoc( $r ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 if ( $cnt["COUNT(*)"] > 0 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236 $_POST["url"] = cms_uid();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 $esc_url = mysqli_real_escape_string( $cms["base"], $_POST["url"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 if ( empty( $_POST["date"] ) ) { $_POST["date"] = "0000-00-00"; }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 if ( empty( $_POST["time"] ) ) { $_POST["time"] = "00:00"; }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244 $created = mysqli_real_escape_string( $cms["base"], $_POST["date"] . " " . $_POST["time"] . ":00" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245 $tpl = mysqli_real_escape_string( $cms["base"], $_POST["template"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
246 $modified = str_replace( ",", ".", microtime( true ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
247 $q = "UPDATE `pages` SET
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
248 `title`='{$title}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
249 `seo_title`='{$seo_title}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
250 `description`='{$description}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
251 `tags`='{$tags}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
252 `created`='{$created}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
253 `modified`='{$modified}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
254 `tpl`='{$tpl}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
255 `url`='{$esc_url}'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
256 {$update_text}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
257 WHERE id={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
258
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
259 // clear cache before change url
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
260 if ( function_exists( "cms_clear_cache" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
261 cms_clear_cache();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
262 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
263 if ( $r = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
264 if ( strtotime( $created ) > time() ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
265 $planned = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
266 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
267 $planned = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
268 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
269 $time = strtotime( $created );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
270 $created = date( "d.m.Y", $time )."<br>".date( "H:i", $time );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
271
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
272 $r = array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
273 "info_text" => __( "updated" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
274 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
275 "info_time" => 1000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
276 "title" => htmlspecialchars( $_POST["title"] ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
277 "url" => $_POST["url"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
278 "base_path" => $cms["base_path"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
279 "created" => $created,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
280 "planned" => $planned,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
281 "ok" => "true",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
282 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
283 if ( function_exists( "cms_sitemap_update" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
284 cms_sitemap_update();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
285 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
286 if ( function_exists( "cms_rss_update" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
287 cms_rss_update();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
288 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
289
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
290 // Если страница задействована в меню, то нужно сообщить,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
291 // что требуется перезагрузить страницу меню
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
292 $q = "SELECT * FROM `menu` WHERE `id`={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
293 if ( mysqli_query( $cms["base"], $q ) and mysqli_affected_rows( $cms["base"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
294 $r["update_menu"] = "true";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
295 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
296 $r["update_menu"] = "false";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
297 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
298
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
299 echo( json_encode( $r ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
300 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
301 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
302 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
303
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
304 case "save_page":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
305
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
306 $_POST["url"] = trim( $_POST["url"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
307 if ( substr( $_POST["url"], 0, 1 ) === "/" && strlen( $_POST["url"] ) > 1 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
308 $_POST["url"] = substr( $_POST["url"], 1 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
309 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
310
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
311 // Read template settings
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
312 cms_template_load_settings();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
313
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
314 // hook for save page
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
315 do_hook( "save_page" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
316
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
317 $id = (int) $_POST["id"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
318 $old_modified = mysqli_real_escape_string( $cms["base"], $_POST["modified"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
319 $modified = number_format( microtime( true ), 6, ".", "" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
320 $text = mysqli_real_escape_string( $cms["base"], $_POST["text"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
321
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
322 // Default text for old_template
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
323 if ( ! empty( $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["old_template"] ] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
324 $text2 = mysqli_real_escape_string( $cms["base"], $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["old_template"] ] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
325 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
326 $text2 = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
327 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
328
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
329 // Change template text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
330 $new_text = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
331 if ( $_POST["old_template"] !== $_POST["template"] and $text === $text2 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
332 // Default text for template
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
333 if ( ! empty( $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["template"] ] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
334 $new_text = $cms["templates"][ $cms["template"] ]["page_templates"][ $_POST["template"] ];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
335 $text = mysqli_real_escape_string( $cms["base"], $new_text );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
336 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
337 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
338
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
339
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
340 $title = mysqli_real_escape_string( $cms["base"], $_POST["title"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
341 $seo_title = mysqli_real_escape_string( $cms["base"], $_POST["seo_title"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
342 $description = mysqli_real_escape_string( $cms["base"], $_POST["description"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
343 $tags = mysqli_real_escape_string( $cms["base"], $_POST["tags"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
344
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
345
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
346 $esc_url = mysqli_real_escape_string( $cms["base"], $_POST["url"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
347
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
348 // Check dupl
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
349 if ( $r = mysqli_query( $cms["base"], "SELECT COUNT(*) FROM `pages` WHERE `url`='{$esc_url}' AND `id`<>{$id}" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
350 if ( $cnt = mysqli_fetch_assoc( $r ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
351 if ( $cnt["COUNT(*)"] > 0 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
352 $_POST["url"] = cms_uid();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
353 $esc_url = mysqli_real_escape_string( $cms["base"], $_POST["url"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
354 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
355 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
356 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
357
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
358 if ( empty( $_POST["date"] ) ) { $_POST["date"] = "0000-00-00"; }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
359 if ( empty( $_POST["time"] ) ) { $_POST["time"] = "00:00"; }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
360 $created = mysqli_real_escape_string( $cms["base"], $_POST["date"] . " " . $_POST["time"] . ":00" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
361 $tpl = mysqli_real_escape_string( $cms["base"], $_POST["template"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
362
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
363 $q = "UPDATE pages SET
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
364 text='{$text}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
365 modified={$modified},
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
366 title='{$title}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
367 seo_title='{$seo_title}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
368 description='{$description}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
369 tags='{$tags}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
370 created='{$created}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
371 tpl='{$tpl}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
372 url='{$esc_url}'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
373 WHERE id={$id} AND modified={$old_modified}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
374
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
375 // clear cache before change url
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
376 if ( function_exists( "cms_clear_cache" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
377 cms_clear_cache();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
378 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
379
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
380 if ( mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
381
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
382 if ( ! mysqli_affected_rows( $cms["base"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
383 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
384 "ok" => "false",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
385 "info_text" => __( "page_changed" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
386 "info_class" => "info-error",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
387 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
388 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
389 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
390 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
391
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
392 // update sitemap and rss
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
393 if ( function_exists( "cms_sitemap_update" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
394 cms_sitemap_update();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
395 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
396 if ( function_exists( "cms_rss_update" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
397 cms_rss_update();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
398 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
399
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
400 if ( strtotime( $created ) > time() ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
401 $planned = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
402 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
403 $planned = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
404 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
405
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
406 $r = array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
407 "ok" => "true",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
408 "info_text" => __( "saved" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
409 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
410 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
411 "modified" => $modified,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
412 "planned" => $planned,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
413 "title" => htmlspecialchars( $_POST["title"] ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
414 "url" => $_POST["url"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
415 "base_path" => $cms["base_path"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
416 "new_text" => $new_text,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
417 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
418
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
419 // Если страница задействована в меню, то нужно сообщить,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
420 // что требуется перезагрузить страницу меню
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
421 $q = "SELECT * FROM `menu` WHERE `id`={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
422 if ( mysqli_query( $cms["base"], $q ) and mysqli_affected_rows( $cms["base"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
423 $r["update_menu"] = "true";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
424 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
425 $r["update_menu"] = "false";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
426 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
427
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
428 echo( json_encode( $r ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
429 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
430 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
431 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
432 "ok" => "false",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
433 "info_text" => mysqli_error( $cms["base"] ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
434 "info_class" => "info-error",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
435 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
436 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
437 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
438 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
439 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
440
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
441 case "page_pin":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
442 $id = (int) $_POST['id'];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
443 $pin = (int) $_POST['pin'];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
444 $q = "UPDATE `pages` SET `pin`={$pin} WHERE `id`={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
445 if ( $res = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
446 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
447 "ok" => "true",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
448 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
449 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
450 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
451 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
452
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
453 case "page_publish":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
454 $id = (int) $_POST['id'];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
455 $published = (int) $_POST['published'];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
456 $q = "UPDATE `pages` SET `published`={$published} WHERE `id`={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
457 if ( $res = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
458 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
459 "ok" => "true",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
460 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
461 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
462 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
463 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
464
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
465 case "get_page":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
466 if ( $id = (int) $_POST['id'] and $res = mysqli_query( $cms["base"], "SELECT * FROM `pages` WHERE `id`={$id}" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
467 if ( $page = mysqli_fetch_assoc( $res ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
468
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
469 // date and time
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
470 $date = date( "Y-m-d", strtotime( $page["created"] ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
471 $time = date( "H:i", strtotime( $page["created"] ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
472
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
473 // template
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
474 $templates_list = array();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
475 $expr = "{$cms['cms_dir']}/{$cms['config']['template.mod.php']['template']}/*.php";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
476 foreach ( glob( $expr ) as $tpl ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
477 $name = preg_replace( "/.*\/([^\/]+)\.php/u", "$1", $tpl );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
478 if ( $name !== "html" && strpos( $name, "." ) === false ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
479 array_push( $templates_list, $name );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
480 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
481 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
482
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
483 cms_template_load_settings();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
484 $current_template = $cms["config"]["template.mod.php"]["template"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
485
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
486 $template_options = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
487 foreach( $templates_list as $tpl ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
488 if ( $tpl !== $page['tpl'] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
489 $template_options .= "<div class=option value='{$tpl}'>" . __( $tpl, $current_template ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
490 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
491 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
492 // Добавляем текущий подшаблон страницы в список если его там нет.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
493 // Такое может быть если переключен главный шаблон.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
494 if ( ! in_array( $page['tpl'], $templates_list ) && ! empty( $page['tpl'] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
495 $template_options .= "<div class=option value='{$page['tpl']}'>" . __( $page['tpl'], $current_template ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
496 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
497
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
498
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
499 // files
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
500 $farr = array();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
501 foreach ( glob( "{$cms['site_dir']}/uploads/{$page['id']}/*", GLOB_NOSORT ) as $path ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
502 if ( is_file( $path ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
503 $farr[] = array( "path" => $path, "sort" => filemtime( $path ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
504 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
505 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
506 cms_asort( $farr );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
507
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
508 $flist = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
509 foreach ( $farr as $f ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
510 // cut path
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
511 $path_name = str_replace( $_SERVER["DOCUMENT_ROOT"], "", $f["path"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
512 //$rel_path_name = str_replace( $cms['site_dir'], "$", $f["path"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
513 $name = preg_replace( "/.*\//u", "", $path_name );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
514 $ext = strtolower( preg_replace( "/.*\./u", ".", $path_name ) ); // .jpg
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
515 // icon file
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
516 if ( file_exists( "{$cms['cms_dir']}/img/icon{$ext}.svg" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
517 $icon = "{$cms['base_path']}img/icon{$ext}.svg";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
518 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
519 $icon = "{$cms['base_path']}img/icon.default.svg";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
520 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
521 // no need icon for image
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
522 switch ( $ext ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
523 case ".webp":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
524 case ".tiff":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
525 case ".jpeg":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
526 case ".jpg":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
527 case ".png":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
528 case ".svg":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
529 case ".gif":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
530 case ".bmp":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
531 case ".ico":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
532 $size = getimagesize( $f["path"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
533 if ( ! empty( $size[3] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
534 $size = $size[3];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
535 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
536 $size = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
537 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
538 // $upd = time();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
539 // ?upd={$upd}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
540 $flist = "<div class=file-block><div class=media-name>{$name}</div><img src='{$path_name}' data-src='{$path_name}' {$size}><input type=checkbox><div class=ext>{$ext}</div></div>{$flist}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
541 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
542
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
543 default:
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
544 $flist = "<div class=file-block><div class=media-name>{$name}</div><img src='{$icon}' data-src='{$path_name}'><input type=checkbox><div class=ext>{$ext}</div></div>{$flist}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
545 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
546 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
547 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
548 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
549 "result" => "ok",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
550 "page" => $page,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
551 "base_path" => $cms["base_path"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
552 "flist" => $flist,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
553 "date" => $date,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
554 "time" => $time,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
555 "options" => $template_options,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
556 "option" => $page['tpl'],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
557 "option_tr" => __( $page['tpl'], $current_template ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
558 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
559 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
560 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
561 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
562 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
563
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
564 case "del_files":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
565 foreach ( $_POST["flist"] as $path_name ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
566 $f = "{$_SERVER["DOCUMENT_ROOT"]}{$path_name}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
567 if ( is_file( $f ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
568 unlink( $f );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
569 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
570 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
571 $dir = dirname( $f );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
572 if ( is_dir_and_empty( $dir ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
573 rmdir( $dir );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
574 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
575 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
576 "info_text" => __( "files_deleted" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
577 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
578 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
579 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
580 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
581 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
582
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
583 case "get_pages_list":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
584 echo( json_encode( cms_pages_get_pages_list() ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
585 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
586 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
587
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
588 case "del_pages":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
589 // Clear cache
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
590 if ( function_exists( "cms_clear_cache" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
591 cms_clear_cache();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
592 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
593 // Создание корзины
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
594 $trash = $cms["site_dir"] . "/uploads/.trash";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
595 if ( ! is_dir( $trash ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
596 mkdir( $trash );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
597 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
598 foreach( $_POST["ids"] as $id ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
599 if ( $id = (int) $id ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
600 // Вытаскивание и сохранение страницы
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
601 $q = "SELECT * FROM pages WHERE `id`={$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
602 $res = mysqli_query( $cms["base"], $q );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
603 $p = mysqli_fetch_assoc( $res );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
604 file_put_contents( "{$trash}/{$id}.txt", "url {$p['url']}\nid {$p['id']}\npin {$p['pin']}\npublished {$p['published']}\ncreated {$p['created']}\nmodified {$p['modified']}\ntpl {$p['tpl']}\ntitle {$p['title']}\nseo_title {$p['seo_title']}\ndescription {$p['description']}\ntags {$p['tags']}\ntext\n{$p['text']}\n" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
605
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
606 // Delete page from base
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
607 mysqli_query( $cms["base"], "DELETE FROM `pages` WHERE `id`={$id}" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
608
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
609 // Перемещение файлов страницы
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
610 $files_dir = "{$cms['site_dir']}/uploads/{$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
611 if ( $files_dir ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
612 rename( $files_dir, "{$trash}/{$id}" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
613 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
614 // Delete page files
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
615 /*
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
616 foreach ( glob( "{$cms['site_dir']}/uploads/{$id}/*", GLOB_NOSORT ) as $f ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
617 if ( is_file( $f ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
618 unlink( $f );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
619 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
620 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
621
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
622 if ( isset( $f ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
623 $dir = dirname( $f );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
624 if ( is_dir_and_empty( $dir ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
625 rmdir( $dir );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
626 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
627 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
628 */
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
629
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
630 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
631 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
632
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
633 // update sitemap and rss
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
634 if ( function_exists( "cms_sitemap_update" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
635 cms_sitemap_update();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
636 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
637 if ( function_exists( "cms_rss_update" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
638 cms_rss_update();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
639 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
640
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
641 // Если страницы задействованы в меню, то нужно сообщить,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
642 // что требуется перезагрузить страницу меню
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
643 $q = "SELECT * FROM `menu` WHERE `id` IN ( " . implode( ",", $_POST["ids"] ) . " )";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
644 if ( mysqli_query( $cms["base"], $q ) and mysqli_affected_rows( $cms["base"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
645 $update_menu = "true";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
646 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
647 $update_menu = "false";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
648 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
649
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
650 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
651 "info_text" => __( "pages_deleted" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
652 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
653 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
654 "update_menu" => $update_menu,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
655 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
656 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
657 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
658
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
659 case "upload_files":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
660 $id = (int) $_POST["id"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
661 $path = "{$cms['base_path']}uploads/{$id}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
662 $dir = $_SERVER["DOCUMENT_ROOT"] . $path;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
663 // create dir if not exists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
664 if ( ! is_dir( $dir ) && ! mkdir( $dir, 0777, true ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
665 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
666 "info_text" => __( "error_create_folder" ) . " " . $dir,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
667 "info_class" => "info-error",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
668 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
669 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
670 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
671 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
672 $flist = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
673 $success = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
674 foreach ( $_FILES["myfile"]["name"] as $n => $name ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
675 if ( $_FILES["myfile"]["error"][$n] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
676 $success = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
677 $text = __( "error_upload_file" ) . " \"{$name}\"";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
678 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
679 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
680 // Транслит
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
681 $ext = strtolower( preg_replace( "/.*\./u", ".", $name ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
682 $name = substr( $name, 0, strlen( $name ) - strlen( $ext ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
683 $name = strtolower( cms_translit_file( $name ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
684 $name = "{$name}{$ext}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
685 // Перемещение с заменой. Проверка на одинаковость и предупреждение об этом сделано на js
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
686 if ( ! move_uploaded_file( $_FILES["myfile"]["tmp_name"][$n], "{$dir}/{$name}" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
687 $success = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
688 $text = __( "file_move_error" ) . " \"{$dir}/{$name}\"";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
689 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
690 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
691 if ( file_exists( "{$cms['cms_dir']}/img/icon{$ext}.svg" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
692 $icon = "{$cms['base_path']}img/icon{$ext}.svg";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
693 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
694 $icon = "{$cms['base_path']}img/icon.default.svg";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
695 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
696 if ( $success ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
697 switch ( $ext ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
698 case ".webp":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
699 case ".tiff":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
700 case ".jpeg":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
701 case ".jpg":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
702 case ".png":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
703 case ".svg":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
704 case ".gif":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
705 case ".bmp":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
706 case ".ico":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
707 $size = getimagesize( "{$dir}/{$name}" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
708 if ( ! empty( $size[3] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
709 $size = $size[3];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
710 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
711 $size = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
712 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
713 $upd = time();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
714 $flist .= "<div class='file-block'><div class=media-name>{$name}</div><img src='{$path}/{$name}?upd={$upd}' data-src='{$path}/{$name}' {$size}><input type=checkbox><div class=ext>{$ext}</div></div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
715 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
716
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
717 default:
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
718 $flist .= "<div class='file-block'><div class=media-name>{$name}</div><img src='{$icon}' data-src='{$path}/{$name}'><input type=checkbox><div class=ext>{$ext}</div></div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
719 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
720 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
721
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
722 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
723 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
724
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
725 if ( $success ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
726 $text = __( "files_uploaded" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
727 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
728 "info_text" => $text,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
729 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
730 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
731 "flist" => $flist,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
732 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
733 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
734 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
735 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
736 "info_text" => $text,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
737 "info_class" => "info-error",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
738 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
739 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
740 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
741 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
742 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
743
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
744 case "replace_in_pages":
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
745 $table = mysqli_real_escape_string( $cms["base"], $_POST["table"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
746 $id_col = mysqli_real_escape_string( $cms["base"], $_POST["id_col"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
747 $column = mysqli_real_escape_string( $cms["base"], $_POST["column"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
748 $q = "SELECT `{$id_col}`, `{$column}` FROM `{$table}`";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
749 $t = trim( $_POST["search_regex"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
750 if ( ! empty( $t ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
751 if ( $res = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
752 $regex = preg_replace( "/\//u", "\\/", $_POST["search_regex"] ); // Escape / for regexp
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
753 while( $page = mysqli_fetch_assoc( $res ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
754 $new_text = preg_replace( "/{$regex}/u", $_POST["replace"], $page[$_POST["column"]] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
755 $text = mysqli_real_escape_string( $cms["base"], $new_text );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
756 $id_val = $page[$_POST["id_col"]];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
757 $q = "UPDATE `{$table}` SET `{$column}`='{$text}' WHERE `{$id_col}`='{$id_val}'";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
758 mysqli_query( $cms["base"], $q );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
759 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
760 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
761 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
762
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
763 echo( json_encode( array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
764 "info_text" => __( "replace_ok" ),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
765 "info_class" => "info-success",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
766 "info_time" => 5000,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
767 ) ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
768 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
769 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
770 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
771 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
772 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
773
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
774 // Create pages list
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
775 // $_POST["where"] = "id=123"; нужно для момента создания страницы
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
776 // $_POST["count"] = "1000";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
777 // $_POST["search"] = "test";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
778 // $_COOKIE["pages_pager"] = 10;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
779 function cms_pages_get_pages_list() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
780 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
781
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
782 if ( empty( $cms["base"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
783 return array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
784 "no_database" => "<span class=no-database>" . __( "no_connect_db" ) . "</span>",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
785 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
786 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
787
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
788 $templates_list = array();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
789 $expr = "{$cms['cms_dir']}/{$cms['config']['template.mod.php']['template']}/*.php";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
790 foreach ( glob( $expr ) as $tpl ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
791 $name = preg_replace( "/.*\/([^\/]+)\.php/u", "$1", $tpl );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
792 if ( $name !== "html" && strpos( $name, "." ) === false ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
793 array_push( $templates_list, $name );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
794 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
795 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
796
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
797 if ( ! empty( $_POST["where"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
798 $where = $_POST["where"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
799 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
800 $where = "1";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
801 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
802
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
803 if ( empty( $_COOKIE["pages_pager"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
804 $pager = 100;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
805 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
806 $pager = (int) $_COOKIE["pages_pager"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
807 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
808
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
809 if ( empty( $_POST["offset"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
810 $_POST["offset"] = 0;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
811 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
812 $offset = $_POST["offset"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
813
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
814 if ( ! empty( $_POST["count"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
815 $pager = $_POST["count"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
816 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
817 $limit = "LIMIT {$offset}, {$pager}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
818
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
819 if ( ! empty( $_POST["search"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
820
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
821 // Shift разбивает искомое на символы
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
822 if ( $_POST["Shift"] === "true" ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
823 $s = preg_replace( "/\s/u", "", $_POST["search"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
824 $s = preg_split( '//u', $s, -1, PREG_SPLIT_NO_EMPTY );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
825 foreach( $s as $n => $ch ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
826 $s[$n] = mysqli_real_escape_string( $cms["base"], $ch );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
827 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
828 $s = implode( "%", $s );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
829 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
830 $s = mysqli_real_escape_string( $cms["base"], $_POST["search"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
831 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
832
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
833 // Ctrl ищет только по тексту
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
834 if ( $_POST["Ctrl"] === "true" ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
835 $search = "( text LIKE '%{$s}%' )";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
836 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
837 $search = "( title LIKE '%{$s}%' OR url LIKE '%{$s}%' OR tpl LIKE '%{$s}%' OR tags LIKE '%{$s}%' )";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
838 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
839
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
840 $q_count = "SELECT COUNT(*) FROM `pages` WHERE {$search}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
841 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
842 $search = "1";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
843 $q_count = "SELECT COUNT(*) FROM `pages`";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
844 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
845 // count pages
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
846 if ( ! $res = mysqli_query( $cms["base"], $q_count ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
847 return array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
848 "no_database" => "<span class=no-tables>" . __( "no_tables_db" ) . "</span>",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
849 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
850 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
851 $res = mysqli_fetch_assoc( $res );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
852 $count = $res["COUNT(*)"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
853
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
854 $pages = array();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
855 $start = microtime( true );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
856 $overload = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
857 $q = "SELECT `id`, `published`, `pin`, `title`, `seo_title`, `description`, `created`, `url`, `tpl`, `tags`, `modified` FROM `pages` WHERE {$search} AND {$where} ORDER BY `pin` DESC, FROM_UNIXTIME( `modified` ) DESC {$limit}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
858
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
859 if ( $res = mysqli_query( $cms["base"], $q ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
860
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
861 $tTitle = __( "title" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
862 $tDescription = __( "description" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
863 $tSeoTitle = __( "seo_title" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
864 $tTemplate = __( "template" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
865 $tPublished = __( "published" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
866 $tUnPublished = __( "unpublished" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
867 $tDate = __( "date" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
868 $tTime = __( "time" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
869 $tSave = __( "save" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
870 $tProperties = __( "properties" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
871 $tEdit = __( "edit" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
872 $tr_pin = __( "pin" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
873
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
874 cms_template_load_settings();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
875 $current_template = $cms["config"]["template.mod.php"]["template"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
876
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
877 while ( $page = mysqli_fetch_assoc( $res ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
878
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
879 $time = strtotime( $page["created"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
880 if ( time() >= $time ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
881 $date_class = "past";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
882 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
883 $date_class = "future";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
884 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
885 $created = date( "d.m.Y", $time ) . "<br>" . date( "H:i", $time );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
886 $date = date( "Y-m-d", $time );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
887 $time = date( "H:i", $time );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
888
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
889 $template_options = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
890 foreach( $templates_list as $tpl ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
891 if ( $tpl !== $page['tpl'] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
892 $template_options .= "<div class=option value='{$tpl}'>" . __( $tpl, $current_template ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
893 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
894 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
895 // Добавляем текущий подшаблон страницы в список если его там нет.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
896 // Такое может быть если переключен главный шаблон.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
897 if ( ! in_array( $page['tpl'], $templates_list ) && ! empty( $page['tpl'] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
898 $template_options .= "<div class=option value='{$page['tpl']}'>" . __( $page['tpl'], $current_template ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
899 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
900
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
901 if ( $page["published"] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
902 $tpub = $tPublished;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
903 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
904 $tpub = $tUnPublished;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
905 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
906
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
907 if ( $page["url"] == "" ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
908 $class = "class=home";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
909 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
910 $class = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
911 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
912
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
913 if ( empty( $page["tpl"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
914 $tpl_translated = __( "no_template" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
915 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
916 $tpl_translated = __( $page['tpl'], $current_template );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
917 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
918
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
919 $html = "
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
920 <div {$class} data-id={$page['id']} data-pin={$page['pin']} data-published={$page['published']}>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
921
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
922 <a class=page-name href='{$cms['base_path']}{$page["url"]}' target=_blank title='id={$page['id']}'>{$page['title']}</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
923 <div class=pin title='" . $tr_pin . "'></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
924 <div class=published title='{$tpub}'></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
925 <div class=page-buttons>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
926 <div class=page-edit-btn>{$tEdit}</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
927 <div class=page-prop-btn>{$tProperties}</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
928 <div class=page-prop-save-btn>{$tSave}</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
929 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
930 <div class='page-date {$date_class}'>{$created}</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
931 <input type=checkbox>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
932
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
933 <div class=page-prop>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
934
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
935 <div class='page title'>{$tTitle}:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
936 <input name=title type=text value='{$page['title']}'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
937
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
938 <div class='url title'>URL:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
939 <div class=url-input>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
940 <input name=url type=text value='{$page['url']}' placeholder='" . __( "front_url" ) . "'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
941 <div class=url-translit title='" . __( "url_translit" ) . "'></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
942 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
943
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
944 <div class='seo title'>{$tSeoTitle}:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
945 <input name=seo_title type=text value='{$page['seo_title']}'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
946
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
947 <div class='description title'>{$tDescription}:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
948 <textarea name=description rows=3>{$page['description']}</textarea>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
949
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
950 <div class='template title'>{$tTemplate}:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
951 <div class=template-select-grid>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
952 <div class=field-select data-template='{$page['tpl']}' data-old-template='{$page['tpl']}'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
953 <div class=value>{$tpl_translated}</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
954 <div class=icon></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
955 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
956 <div class=field-options>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
957 {$template_options}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
958 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
959 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
960
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
961 <div class='date title'>{$tDate}:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
962 <input name=date type=date value='{$date}'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
963 <div class='time title'>{$tTime}:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
964 <input name=time type=time value='{$time}'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
965
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
966 <div class='tags title'>" . __( "tags" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
967 <textarea name=tags rows=3>" . htmlspecialchars( $page["tags"] ) . "</textarea>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
968
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
969 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
970
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
971 </div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
972 array_push( $pages, array( "id" => (int) $page["id"], "html" => $html ) );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
973 if ( microtime( true ) - $start > 1 ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
974 $overload = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
975 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
976 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
977 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
978 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
979 if ( isset( $_POST["search"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
980 $search = trim( $_POST["search"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
981 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
982 $search = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
983 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
984
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
985 return array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
986 "pages" => $pages,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
987 "offset" => $_POST["offset"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
988 "count" => $count,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
989 "overload" => $overload,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
990 "search" => $search,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
991 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
992 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
993
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
994
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
995 function cms_pages_query() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
996 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
997
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
998 // Skip SQL query if file exists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
999 if ( is_file( $cms["cms_file"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1000 return;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1001 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1002
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1003 // fix template warnings
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1004 $cms["page"]["id"] = 0;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1005 $cms["page"]["tpl"] = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1006
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1007 if ( empty( $cms["base"] ) ) return; // fix 500 error
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1008 $url = mysqli_real_escape_string( $cms["base"], $cms["url"]["path"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1009 if ( $res = mysqli_query( $cms["base"], "SELECT * FROM pages WHERE url = '{$url}' OR CONCAT( url, '/' ) = '{$url}' OR url = CONCAT( '{$url}', '/' )" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1010 if ( $page = mysqli_fetch_assoc( $res ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1011 $cms["page"] = $page;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1012 if ( $cms["page"]["created"] <= date( "Y-m-d H:i:s" ) && $cms["page"]["published"] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1013 $cms["status"] = "200";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1014 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1015 $cms["status"] = "404"; // disable write to disk but echo if admin
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1016 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1017 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1018 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1019 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1020
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1021 function cms_pages_create_tables() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1022 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1023
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1024 mysqli_query( $cms["base"], "
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1025 CREATE TABLE IF NOT EXISTS `pages` (
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1026 `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1027 `pin` tinyint(1) NOT NULL DEFAULT 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1028 `published` tinyint(1) NOT NULL DEFAULT 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1029 `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1030 `modified` double NOT NULL DEFAULT 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1031 `tpl` varchar(64) DEFAULT NULL,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1032 `title` varchar(255) DEFAULT NULL,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1033 `seo_title` varchar(255) DEFAULT NULL,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1034 `text` longtext DEFAULT NULL,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1035 `url` varchar(255) DEFAULT NULL,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1036 `description` varchar(2048) NOT NULL DEFAULT '',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1037 `tags` varchar(2048) NOT NULL DEFAULT '',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1038 UNIQUE KEY `id` (`id`)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1039 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1040 ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1041
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1042 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1043
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1044
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1045 function cms_pages_admin() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1046 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1047
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1048 $conf = $cms["config"]["pages.mod.php"]["menu"]["pages"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1049 if ( empty( $conf["hide"] ) && empty( $cms["config"]["admin_sections"][ $conf["section"] ]["hide"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1050
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1051 // Read template settings
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1052 cms_template_load_settings();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1053
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1054 $tMaxUploadSize = __( "max_size" ) . " " . number_format( file_upload_max_size(), 0, ".", " " ) . " " . __( "bytes" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1055
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1056 $help_file = "{$cms['config']['template.mod.php']['template']}/instruction.{$cms['config']['locale']}.html";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1057 if ( is_file( "{$cms['cms_dir']}/{$help_file}" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1058 $help_blanks = "<a target=_blank href='{$cms['base_path']}{$help_file}'>" . __( "blanks" ) . "</a>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1059 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1060 $help_blanks = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1061 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1062
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1063 $help_file = "man/{$cms['config']['locale']}/codemirror.html";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1064 if ( is_file( "{$cms['cms_dir']}/{$help_file}" ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1065 $help_codemirror = "<a target=_blank href='{$cms['base_path']}{$help_file}'>" . __( "codemirror" ) . "</a>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1066 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1067 $help_codemirror = "";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1068 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1069
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1070 $files_panel = "
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1071 <div class=mediateka-grid>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1072 <div class=mediateka-files-hscroll>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1073 <div class=mediateka-files-grid>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1074
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1075 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1076 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1077
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1078 <div class=mediateka-buttons>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1079 <div class=upload-files>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1080 <input id=upload-btn type=file name='myfile[]' multiple class=inputfile title='{$tMaxUploadSize}'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1081 <label for=upload-btn title='{$tMaxUploadSize}'>" . __( "upload" ) . "</label>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1082 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1083 <div class=link-file>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1084 <span class=link-file-tag></span>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1085 <span class=link-file-copy-btn>" . __( "copy" ) . "</span>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1086 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1087 <div class='del-uploaded-files disabled'>" . __( "delete" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1088 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1089
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1090 </div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1091
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1092 $buttons = "<div class=save-page-button>" . __( "save" ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1093 $buttons .= "<div class=open-properties>" . __( "properties" ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1094 $buttons .= "<div class=open-mediateka>" . __( "mediateka" ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1095 $buttons .= "<div class=tags-helper>" . __( "tags" ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1096 $buttons .= "<div class=codemirror-replace>" . __( "replace" ) . "</div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1097 $buttons .= $help_blanks;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1098 $buttons .= $help_codemirror;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1099
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1100 $page = "
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1101 <div class=main-header>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1102
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1103 <div class=search-wrapper>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1104 <input class=page-search type=text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1105 placeholder='" . __( "search" ) . "'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1106 title='" . __( "search_with_ctrl" ) . "'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1107 autocomplete=off data-result-of=''>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1108 <div class=reset></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1109 <button class=page-search-button></button>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1110 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1111
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1112 <div class=add-page-btn>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1113 <div class=x1></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1114 <div class=x2></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1115 <div class=add-page-label>" . __( "add_page_title" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1116 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1117
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1118 <div> </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1119
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1120 <a class=del-pages-btn title='" . __( "delete_pages" ) . "'></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1121
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1122 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1123
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1124 <div class=main-main>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1125
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1126 <div class=pages-grid>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1127 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1128
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1129 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1130
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1131 <div class=main-footer>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1132 <div class=pager></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1133 <div class=counters>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1134 <input class=loaded value=0 autocomplete=off data-offset=0>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1135 <span>" . __( "of" ) . "</span>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1136 <span class=count>0</span>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1137 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1138 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1139
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1140 <div class='page-editor-bg hidden'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1141 <div class='page-editor-grid editor-grid'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1142
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1143 <div class=page-editor-header>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1144 <div class=close-page-button></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1145 <a data-page-title class=page-editor-title target=_blank></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1146 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1147
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1148 <div class=page-editor-buttons>{$buttons}</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1149
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1150 <div class='page-properties hidden'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1151
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1152 <div class='page title'>" . __( "title" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1153 <input name=title type=text>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1154
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1155 <div class='url title'>URL:</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1156 <div class=url-input>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1157 <input name=url type=text placeholder='" . __( "front_url" ) . "'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1158 <div class=url-translit title='" . __( "url_translit" ) . "'></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1159 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1160
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1161 <div class='seo title'>" . __( "seo_title" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1162 <input name=seo_title type=text>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1163
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1164 <div class='description title'>" . __( "description" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1165 <textarea name=description rows=3></textarea>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1166
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1167 <div class='template title'>" . __( "template" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1168 <div class=template-select-grid>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1169 <div class=field-select data-template data-old-template>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1170 <div class=value></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1171 <div class=icon></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1172 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1173 <div class=field-options>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1174
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1175 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1176 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1177
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1178 <div class='date title'>" . __( "date" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1179 <input name=date type=date>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1180 <div class='time title'>" . __( "time" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1181 <input name=time type=time>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1182
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1183 <div class='tags title'>" . __( "tags" ) . ":</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1184 <textarea name=tags rows=3></textarea>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1185
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1186 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1187
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1188 <div class='page-editor-panel hidden'>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1189 <div class=upload-progress></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1190 {$files_panel}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1191 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1192
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1193 <div class=page-editor>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1194 <textarea data-modified class=coffee-editorpage-area name=add_editorpage></textarea>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1195 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1196
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1197 <div class=tags>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1198 <div class=tags-grid>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1199 <div data-type=wrap data-otag='<h1>' data-ctag='</h1>' data-len=4><span>" . __( "h1" ) . "</span> <span class=tag>&lt;h1></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1200 <div data-type=wrap data-otag='<h2>' data-ctag='</h2>' data-len=4><span>" . __( "h1" ) . "</span> <span class=tag>&lt;h2></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1201 <div data-type=wrap data-otag='<p>' data-ctag='</p>' data-len=3><span>" . __( "p" ) . "</span> <span class=tag>&lt;p></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1202 <div data-type=wrap data-otag='<div>' data-ctag='</div>' data-len=5><span>" . __( "div" ) . "</span> <span class=tag>&lt;div></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1203 <div data-type=wrap-a><span>" . __( "link" ) . "</span> <span class=tag>&lt;a></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1204 <div data-type=wrap data-otag='<code>' data-ctag='</code>' data-len=6><span>" . __( "code" ) . "</span> <span class=tag>&lt;code></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1205 <div data-type=wrap data-otag='<pre><code>' data-ctag='</code></pre>' data-len=11><span>" . __( "code" ) . "</span> <span class=tag>&lt;pre>&lt;code></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1206 <div data-type=wrap data-otag='<span>' data-ctag='</span>' data-len=6><span>" . __( "span" ) . "</span> <span class=tag>&lt;span></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1207 <div data-type=wrap data-otag='<blockquote>' data-ctag='</blockquote>' data-len=12><span>" . __( "cite" ) . "</span> <span class=tag>&lt;blockquote></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1208 <div data-type=wrap-list data-tag=ul><span>" . __( "ul" ) . "</span> <span class=tag>&lt;ul></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1209 <div data-type=wrap-list data-tag=ol><span>" . __( "ol" ) . "</span> <span class=tag>&lt;ol></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1210 <div data-type=wrap data-otag='<li>' data-ctag='</li>' data-len=4><span>" . __( "li" ) . "</span> <span class=tag>&lt;li></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1211 <div data-type=wrap data-otag='<figure>\n ' data-ctag='\n <figcaption></figcaption>\n</figure>' data-ch=4 data-line=1><span>" . __( "figure" ) . "</span> <span class=tag>&lt;figure></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1212 <div data-type=wrap data-otag='<!-- ' data-ctag=' -->' data-len=5><span class=tag>&lt;!--</span>&nbsp;<span>" . __( "comment" ) . "</span>&nbsp;<span class=tag>--></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1213 <div data-type=wrap data-otag='<b>' data-ctag='</b>' data-len=3><span>" . __( "bold" ) . "</span> <span class=tag>&lt;b></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1214 <div data-type=wrap data-otag='<kbd>' data-ctag='</kbd>' data-len=5><span>" . __( "kbd" ) . "</span> <span class=tag>&lt;kbd></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1215 <div data-type=wrap data-otag='<mark>' data-ctag='</mark>' data-len=6><span>" . __( "mark" ) . "</span> <span class=tag>&lt;mark></span></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1216 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1217 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1218 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1219 </div>";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1220
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1221 // Create menu item if not exists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1222 if ( empty( $cms["config"]["pages.mod.php"]["menu"]["pages"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1223 $cms["config"]["pages.mod.php"]["menu"]["pages"] = array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1224 "title" => "pages_module_name",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1225 "sort" => 10,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1226 "section" => "content",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1227 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1228 cms_save_config();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1229 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1230
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1231 $cms["admin_pages"]["pages"] = $page;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1232
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1233 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1234
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1235
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1236
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1237 $conf = $cms["config"]["pages.mod.php"]["menu"]["pages-utils"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1238 if ( empty( $conf["hide"] ) && empty( $cms["config"]["admin_sections"][ $conf["section"] ]["hide"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1239
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1240 // Create menu item if not exists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1241 if ( empty( $cms["config"]["pages.mod.php"]["menu"]["pages-utils"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1242 $cms["config"]["pages.mod.php"]["menu"]["pages-utils"] = array(
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1243 "title" => "pages_utils",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1244 "sort" => 15,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1245 "section" => "content",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1246 "hide" => true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1247 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1248 cms_save_config();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1249 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1250
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1251
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1252 $page = "
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1253 <div class=pages-utils-main>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1254 <div class=replace-util>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1255 <p>" . __( "replace_instruction" ) . "</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1256 <div class=replace-inputs>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1257 <div class=replace_table>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1258 <div class=title>" . __( "replace_table" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1259 <input type=text name=table autocomplete=off value=pages>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1260 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1261 <div class=stub></div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1262 <div class=replace_id_col>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1263 <div class=title>" . __( "replace_id_col" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1264 <input type=text name=id_col autocomplete=off value=id>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1265 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1266 <div class=replace_column>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1267 <div class=title>" . __( "replace_column" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1268 <input type=text name=column autocomplete=off value=text>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1269 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1270 <div class=regex>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1271 <div class=title>" . __( "regex_title" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1272 <input type=text name=search_regex autocomplete=off>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1273 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1274 <div class=replace>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1275 <div class=title>" . __( "replace_title" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1276 <input type=text name=replace autocomplete=off>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1277 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1278 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1279 <div class=replace-btn>" . __( "replace_btn" ) . "</div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1280 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1281 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1282 ";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1283
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1284 $cms["admin_pages"]["pages-utils"] = $page;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1285
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1286 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1287 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1288
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1289
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1290 function cms_pages_menu() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1291 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1292
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1293 foreach( $cms["menu"] as $id => $menu ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1294 if ( is_array( $menu["items"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1295 cms_pages_menu_items( $cms["menu"][$id]["items"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1296 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1297 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1298 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1299
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1300
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1301 function cms_pages_menu_items( &$items ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1302 global $cms;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1303
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1304 foreach( $items as $id => $item ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1305 if ( $item["id"] ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1306 $q_pages = "SELECT * FROM pages WHERE id={$item['id']}";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1307 if ( $res_p = mysqli_query( $cms["base"], $q_pages ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1308 if ( $page = mysqli_fetch_assoc( $res_p ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1309 if ( empty( $items[$id]["title"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1310 $items[$id]["title"] = $page["title"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1311 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1312 $items[$id]["url"] = $page["url"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1313 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1314 $items[$id]["title"] = __( "deteled_page" );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1315 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1316 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1317 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1318 if ( is_array( $items[$id]["items"] ) ) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1319 cms_pages_menu_items( $items[$id]["items"] );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1320 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1321 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1322 }