├── extras
├── OneFileCMS.config.SAMPLE.php
├── OneFileCMS.css
├── plugin-ckeditor_init.php
└── plugin-tinymce_init.php
├── info
├── OneFileCMS.License.BSD.txt
├── OneFileCMS.License.MIT.txt
├── OneFileCMS_structure.txt
└── changelog.markdown
├── languages
├── OneFileCMS.LANG.DE.php
├── OneFileCMS.LANG.EN.php
├── OneFileCMS.LANG.ES.php
├── OneFileCMS.LANG.NL.php
└── OneFileCMS.LANG.RU.php
├── onefilecms.php
└── readme.markdown
/extras/OneFileCMS.config.SAMPLE.php:
--------------------------------------------------------------------------------
1 | defining page layout. Can be px, pt, em, or %. Assumes px otherwise.
24 | $WIDE_VIEW_WIDTH = '97%'; //Width to set Edit page if [Wide View] is clicked. Can be px, pt, em, or %. Assumes px otherwise.
25 |
26 | $LINE_WRAP = "on"; //"on", anything else = "off". Default for edit page. Once on page, line-wrap can toggle on/off.
27 | $TAB_SIZE = 8; //Some browsers recognize a css tab-size. Some don't (IE/Edge, as of mid-2016).
28 |
29 | $MAX_EDIT_SIZE = 250000; // Edit gets flaky with large files in some browsers. Trial and error your's.
30 | $MAX_VIEW_SIZE = 1000000; // If file > $MAX_EDIT_SIZE, don't even view in OneFileCMS.
31 | // The default max view size is completely arbitrary. Basically, it was 2am, and seemed like a good idea at the time.
32 |
33 | $MAX_IMG_W = 810; //Max width (in px) to display images. (main width is 810)
34 | $MAX_IMG_H = 1000; //Max height (in px). I don't know, it just looks reasonable.
35 |
36 | $UPLOAD_FIELDS = 10; //Number of upload fields on Upload File(s) page. Max value is ini_get('max_file_uploads').
37 |
38 | $FAVICON = "favicon.ico"; //Path is relative to root of website.
39 |
40 | $EXCLUDED_FILES = ""; //csv list of filenames to exclude from directory listings- CaSe sEnsiTive!
41 |
42 | $EDIT_FILES = "svg,asp,cfg,conf,csv,css,dtd,htm,html,xhtml,htaccess,ini,js,log,markdown,md,php,pl,txt,text"; //Editable file types.
43 | $SHOW_FILES = "*"; // Shown types; only files of the given types should show up in the file-listing
44 | // Use $SHOW_FILES exactly like $EDIT_FILES: a list of extensions separated by commas.
45 | // If $SHOW_FILES is set to null - by intention or by error - only folders will be shown.
46 | // If $SHOW_FILES is set to the *-wildcard (the default), all files will show up.
47 | // If $SHOW_FILES is set to "html,htm" for example, only file with the extension "html" or "htm" will get listed.
48 |
49 | $SHOW_IMGS = "jpg,gif,png,bmp,ico"; //image types to display on edit page.
50 | //File types (extensions). _ftypes & _fclass must have the same number of values. bin is default.
51 | $FILE_TYPES = "bin,z,gz,7z,zip,jpg,gif,png,bmp,ico,svg,asp,cfg,conf,csv,css,dtd,htm,html,xhtml,htaccess,ini,js,log,markdown,md,php,pl,txt,text";
52 | //Cooresponding file classes to _ftypes - used to determine icons for directory listing.
53 | $FILE_CLASSES = "bin,z,z ,z ,z ,img,img,img,img,img,svg,txt,txt,cfg ,txt,css,txt,htm,htm ,htm ,txt ,txt,txt,txt,txt ,txt,php,php,txt,txt";
54 |
55 | $EX = '( ! ) '; //EXclaimation point "icon" Used in $MESSAGE's
56 |
57 | $PAGEUPDOWN = 10; //Number of rows to jump using Page Up/Page Down keys on directory listing.
58 |
59 | $SESSION_NAME = 'OFCMS'; //Name of session cookie. Change if using multiple copies of OneFileCMS concurrently.
60 |
61 | //Optional: restrict access to a particular sub folder from root.
62 | //$ACCESS_ROOT = '/some/path';
63 | //If blank or invalid, default is $_SERVER['DOCUMENT_ROOT'].
64 | //$ACCESS_ROOT = '/home/user';
65 |
66 |
67 | //Optional: specify a default start path on login.
68 | //$DEFAULT_PATH = 'some/path/deeper/'
69 | //Must be a decendant of $ACCESS_ROOT.
70 | //If blank or invalid, defaults to $ACCESS_ROOT.
71 | //$DEFAULT_PATH = '/home/user/public_html';
72 |
73 |
74 | //URL of optional external style sheet. Used as an href in
75 | //If file is not found, or is incomplete, built-in defaults will be used.
76 | //$CSS_FILE = 'OneFileCMS.css';
77 |
78 |
79 | //Notes for $LANGUAGE_FILE, $WYSIWYG_PLUGIN, and $CONFIG_FILE:
80 | //
81 | // Filename path examples:
82 | // 1) $SOME_FILE = "/some/path/from/system/root/somefile.php" //Absolue to filesystem.
83 | // 2) $SOME_FILE = $_SERVER['DOCUMENT_ROOT']."/some/path/from/web/root/somefile.php" //Relative to root of web site.
84 |
85 | //Name of optional external language file. If file is not found, the built-in defaults will be used.
86 | //$LANGUAGE_FILE = "/home/user/public_html/OneFileCMS.LANG.EN.php";
87 |
88 | //Init file for optional external wysiwyg editor.
89 | //Sample init files are availble in the "extras\" folder of the OneFileCMS repo, but the actual editors are not.
90 | //$WYSIWYG_PLUGIN = '/home/user/public_html/plugins/plugin-tinymce_init.php';
91 | //$WYSIWYG_PLUGIN = '/home/user/public_html/plugins/plugin-ckeditor_init.php';
92 |
93 | //Name of optional external config file. Any settings it contains will supersede those above.
94 | //See the sample file in the OneFileCMS github repo for format example.
95 | //Basically, it is just a php file with a copy/paste of this configuration section.
96 | //$CONFIG_FILE = '/home/user/public_html/extras/OneFileCMS.config.SAMPLE.php';
97 |
98 | //end CONFIGURABLE OPTIoNS *****************************************************
99 |
--------------------------------------------------------------------------------
/extras/OneFileCMS.css:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | Sample, OPTIONAL, external style sheet, as of OneFileCMS v3.6.08
3 |
4 | This is just a copy of the primary section in OneFileCMS
5 | *******************************************************************************/
6 |
7 | /* --- reset --- */
8 | * { border : 0; outline: 0; margin: 0; padding: 0;
9 | font-family: inherit; font-weight: inherit; font-style : inherit;
10 | font-size : 100%; vertical-align: baseline; box-sizing: border-box; }
11 |
12 | :before, :after { box-sizing: border-box; } /*not currently used anywhere, but you never know...*/
13 |
14 | /* --- general formatting --- */
15 |
16 | html { background: linear-gradient(170deg, white, rgb(50, 120, 250)); background-attachment: fixed;}
17 |
18 | body { height: 100%; font-size: 1em; font-family: sans-serif; overflow-y: scroll; }
19 |
20 | svg { position: relative; top: 2px; }
21 |
22 | p, table, ol { margin-bottom: .6em;}
23 |
24 | h1,h2,h3,h4,h5,h6 { font-weight: bold; }
25 | h2, h3 { font-size: 1.2em; margin: .4em 0 .4em 0; } /*TRBL*/
26 |
27 | li { margin-left: 2em }
28 |
29 | i, em { font-style : italic; }
30 | b, strong { font-weight: bold; }
31 |
32 | :focus {outline:0;}
33 | :hover {border-color: #333;}
34 |
35 | table { border-collapse:separate; border-spacing:0; }
36 | th,td { text-align:left; font-weight:400; }
37 |
38 | label { font-size : 1em; font-weight: bold; }
39 |
40 | pre { background: white; border: 1px solid #777; padding: .2em; margin: 0; }
41 |
42 | input[type="text"] { width: 100%; border: 1px solid #777; padding: 1px; font : 1em Courier; }
43 | input[type="password"] { width: 100%; border: 1px solid #777; padding: 1px 1px 0px 1px; }
44 | input[type="file"] { width: 100%; border: 1px solid #777; background-color: white; margin: 0; }
45 | input[type="radio"] { margin: 0 1px 2px 3px; vertical-align: middle; cursor : pointer; }
46 |
47 | input[readonly] { color: #333; background-color: #EEE; }
48 | input[disabled] { color: #555; background-color: #EEE; }
49 |
50 | input:focus { background-color: rgb(255,250,150); border: 1px solid #333; }
51 | input:hover { background-color: rgb(255,250,150); }
52 |
53 | /*-- Must be after input:focus, as it alters border --*/
54 | input[type="checkbox"] { cursor: pointer; border: none;}
55 |
56 | button, .button {border-radius: 5px;}
57 |
58 | button:hover { background-color: rgb(255,250,150); border-color: #333;}
59 | button:focus { background-color: rgb(255,250,150); border-color: #333;}
60 | button:active { background-color: rgb(245,245,50); border-color: #333;}
61 |
62 | button:active, .button:active{ position:relative; top :1px; left:1px; }
63 |
64 | /* --- layout --- */
65 |
66 | #main {
67 | border : 0px solid #777;
68 | width : 810px; /*Adjusted by $MAIN_WIDTH config variable*/
69 | margin : 0 auto 2em auto;
70 | }
71 |
72 |
73 | #header {
74 | border-bottom : 1px solid #777;
75 | padding: 4px 0px 1px 0px;
76 | margin : 0 0 0 0;
77 | }
78 |
79 |
80 | #logo {
81 | font-family: 'Trebuchet MS', sans-serif;
82 | font-size:2em;
83 | font-weight: bold;
84 | color: black;
85 | padding: .1em;
86 | }
87 |
88 |
89 | .h2_filename {
90 | border: 1px solid #777;
91 | padding: .1em .2em .1em .2em;
92 | font-weight: 700;
93 | font-family: courier;
94 | background-color: #EEE;
95 | }
96 |
97 |
98 | #message_box { border: none; margin: .2em 0 .1em 0; padding: 0; min-height: 3em; }
99 |
100 | .message_box_contents { border: 1px solid gray; padding: 3px 2px 2px 4px; background: #FFF000; }
101 |
102 | #message_box #message_left {float: left; margin: 0; padding: 0; border: none; font-weight: 900; }
103 |
104 | #message_box #X_box {
105 | display: block;
106 | float : right;
107 | margin : 0;
108 | padding: 0px 0px 0 1px;
109 | border : 1px solid gray;
110 | font-size : 20px;
111 | line-height: 16px;
112 | background : #EEE;
113 | }
114 |
115 | #message_box #X_box:hover {background-color: rgb(255,250,150); border-color: #333}
116 | #message_box #X_box:focus {background-color: rgb(255,250,150); border-color: #333}
117 | #message_box #X_box:active {background-color: rgb(245,245,50); }
118 |
119 | .filename { font-family: courier; }
120 |
121 | #submitty { margin-left: 1em; }
122 | #hr_bottom { border-color: white; }
123 |
124 |
125 | /* ------ INDEX Page ------ */
126 |
127 | #index_page_buttons { margin: 0; }
128 | #index_page_buttons div { display: inline-block; vertical-align: bottom; }
129 |
130 |
131 | /*** Select All [x] ***/
132 | #select_all_label {
133 | font : 400 .84em arial;
134 | color : #333;
135 | display: inline-block;
136 | padding: 4px 0 3px 0;
137 | cursor : pointer;
138 | width : 72px; /*Adjusted by langauge files*/
139 | border-right: solid transparent 1px;
140 | }
141 |
142 | #select_all_label:hover { background-color: rgb(255,250,150); }
143 | #select_all_label:active { background-color: rgb(245,245, 50); }
144 |
145 | label.ckbox_label_focus { background-color: rgb(255,250,150) }
146 | .ckbox.ckbox_label_focus { background-color: rgb(255,250,150) }
147 |
148 |
149 | /*** Directory list file select boxes ***/
150 | /*ckbox is assigned to
that contain
*/
151 | .ckbox {padding: 3px 3px 1px 3px; display: inline-block; border: solid 1px transparent; }
152 | .ckbox:hover {background-color: rgb(255,240,140);}
153 | .ckbox:active {background-color: rgb(245,245, 50);}
154 |
155 | .ckbox.ckbox_parent_focus { background-color: rgb(255,235,90); border: solid 1px rgb(220,190,0); }
156 |
157 |
158 | /* Slightly darker colors for [m][c][d] file options since they are small & less noticable*/
159 | .index_T a.MCD:hover {background-color: rgb(255,240,140);}
160 | .index_T a.MCD:focus {background-color: rgb(255,240,140);}
161 | .index_T a.MCD:active {background-color: rgb(245,245, 50);}
162 |
163 | .index_T a.MCD { border: solid 1px transparent; }
164 | .index_T a.MCD:focus { border: solid 1px rgb(220,190,0); }
165 |
166 |
167 | input.perms {
168 | display: inline-block;
169 | width: 2.4rem;
170 | padding: 2px 2px;
171 | border: solid 1px transparent;
172 | background-color: transparent;
173 | text-align: right;
174 | }
175 |
176 |
177 | td.perms { padding: 0; }
178 |
179 | input.perms {height: 1.42rem;}
180 |
181 | input.perms.edit_perms { background-color: rgb(255,240,140); box-shadow: 0 0 10px 2px #F44; }
182 |
183 | .perms:focus { border: solid 1px rgb(190,160,0); background-color: #EEE }
184 |
185 | .perms:hover { cursor : pointer; }
186 |
187 |
188 |
189 |
190 | /*** [x] (folders first) ***/
191 |
192 | #ff_ckbox_div {float: left;}
193 |
194 | #folders_first_label {
195 | display: inline-block;
196 | float: left;
197 | font-size : .9em;
198 | font-weight: normal;
199 | border : solid 1px transparent;
200 | color : #333;
201 | margin : 0 0 0 0;
202 | padding: 4px 3px 2px 0;
203 | cursor : pointer;
204 | }
205 |
206 | #folders_first_label:hover {
207 | background-color : rgb(255,250,150);
208 | border-left-color : silver;
209 | border-right-color: silver;
210 | }
211 |
212 | #folders_first_label:active {background-color : rgb(245,245, 50);}
213 |
214 |
215 | /* --- Directory Listing --- */
216 |
217 | table.index_T {
218 | min-width: 30em;
219 | font-size: .95em;
220 | border : 1px solid #777;
221 | border-collapse: collapse;
222 | margin: .5em 0 .5em 0;
223 | background-color: #FFF;
224 | }
225 |
226 | table.index_T tr:hover {border: 1px solid #777; background-color: #EEE}
227 | table.index_T th { border: 1px inset silver; vertical-align: middle; text-align: center; padding: 0 ;}
228 | table.index_T td { border: 1px inset silver; vertical-align: middle; white-space: nowrap; }
229 | table.index_T th:hover { background-color: white;}
230 |
231 | .index_T td a { display: block; height: 1.42rem; border: none; padding: 2px 4px 2px 4px; overflow : hidden; }
232 | .index_T th a { padding: 1px 0 1px 0; border-width: 0px;}
233 |
234 | th.file_name {min-width: 15em}
235 |
236 | .index_T th.file_name a {
237 | display: inline-block;
238 | padding: 4px 1em 3px 1em;
239 | border-top-width: 0px;
240 | border-bottom-width: 0px;
241 | text-align: center;
242 | }
243 |
244 | #header_filename {border-width: 0 1px 0 1px; display: block; overflow: auto;}
245 | #header_filename:hover {border-color: silver;}
246 | #header_filename:focus {border-color: silver;}
247 |
248 | .index_T th.file_size a { display : block; padding: 4px 0 3px 0; }
249 | .index_T th.file_time a { display : block; padding: 4px 0 3px 0; }
250 |
251 | #header_sorttype {float: right; padding: 4px 5px 3px 4px; border-width: 0px 0 0 1px;}
252 | #header_sorttype:hover {border-color: silver;}
253 | #header_sorttype:focus {border-color: silver;}
254 |
255 | .file_name { max-width: 26em; }
256 | .file_size { min-width: 6em; }
257 | .file_time { min-width: 10em; }
258 |
259 | .meta_T { padding: 0 .5em; text-align: right; font: bold .9rem courier; color: #333}
260 | .meta_T2 { border: solid 1px black; background-color: white; font-size: 1rem; }
261 |
262 |
263 | #DIRECTORY_FOOTER {text-align: center; font-size: .9em; color: #333; padding: 3px 0 0 0; }
264 |
265 |
266 | /*** front_links: [New File] [New Folder] [Upload File] ***/
267 | .front_links { float: right; }
268 |
269 | .front_links a {
270 | display : inline-block;
271 | border : 1px solid #777;
272 | font-size : 1em; /*Adjusted by langauge files*/
273 | margin-left : 1em; /*Adjusted by langauge files*/
274 | padding : 3px 5px 2px 4px; /*TRBL*/
275 | background-color: #EEE;
276 | border-radius: 5px;
277 | }
278 |
279 | .front_links svg { position: relative; top: 1px; margin-right: 5px; }
280 |
281 | /*These must go after .front_links and other style that affect
tags*/
282 | a { border: 1px solid transparent; text-decoration: none; }
283 | a:focus { border: 1px solid #333; background-color: rgb(255,250,150); }
284 | a:hover { border: 1px solid #333; background-color: rgb(255,250,150); }
285 | a:active { border: 1px solid #333; background-color: rgb(245,245,50); }
286 |
287 |
288 | /*** [Move] [Copy] [Delete] ***/
289 |
290 | #mcd_submit { margin: 0; }
291 |
292 | #mcd_submit button {
293 | height : 1.75em;
294 | cursor : pointer;
295 | border : 1px solid #777;
296 | padding : 0px 3px 0px 2px; /*TRBL*/
297 | margin-right: 1.0em; /* Adjusted by language files */
298 | font-size: .9em;
299 | color : rgb(100,45,0);
300 | background-color: #EEE;
301 | }
302 |
303 | #mcd_submit svg { margin-right: 5px; }
304 |
305 | #mcd_submit button:focus { border: 1px solid #333; background-color: rgb(255,250,150); }
306 | #mcd_submit button:hover { border: 1px solid #333; background-color: rgb(255,250,150); }
307 | #mcd_submit button:active { border: 1px solid #333; background-color: rgb(245,245, 50); }
308 |
309 | .buttons_right { float: right; }
310 | .buttons_right .button { margin-left: .5em; }
311 |
312 | .button {
313 | cursor : pointer;
314 | border : 1px solid #777;
315 | color : black;
316 | padding : 4px 7px 4px 7px; /*Adjusted by langauge files*/
317 | font-size : .9em; /*Adjusted by langauge files*/
318 | font-family: sans-serif;
319 | background-color: #EEE;
320 | }
321 |
322 | .button:hover { border: 1px solid #333; background-color: rgb(255,250,150); }
323 | .button:focus { border: 1px solid #333; background-color: rgb(255,250,150); }
324 | .button:active { background-color: rgb(245,245,50); } /*first */
325 | .button[disabled] { color: #777; background-color: #EEE; cursor: default} /*second - order matters*/
326 |
327 | #renamefile_btn {padding: 2px 7px 4px 7px;}
328 |
329 |
330 | /* --- header --- */
331 |
332 | .nav { float: right; display: inline-block; margin-top: 1.35em; font-size : 1em; }
333 | .nav a { border: 1px solid transparent; font-weight: bold; padding: .2em .6em .1em .6em; }
334 | .nav a:hover { border: 1px solid #333; }
335 | .nav a:focus { border: 1px solid #333; }
336 |
337 |
338 | /* --- edit --- */
339 |
340 | #edit_header {margin: .5em 0 0 0;}
341 | #edit_header a:hover { border: 1px solid #000; }
342 |
343 | #edit_form {margin: 0;}
344 |
345 | .edit_disabled {
346 | border : 1px solid #777;
347 | width : 99%;
348 | height : 35em;
349 | padding: .2em;
350 | margin : .5em 0 .6em 0;
351 | color : #222;
352 | background-color: #FFF000;
353 | line-height: 1.4em;
354 | white-space: pre-wrap;
355 | word-wrap: break-word;
356 | overflow: auto;
357 | }
358 |
359 | .view_file { font: .9em Courier; background-color: #F8F8F8; }
360 |
361 |
362 |
363 | #wrapper_linenums_editor {
364 | vertical-align : top;
365 | white-space : nowrap;
366 | padding : 0px;
367 | border : none;
368 | width : 100%;
369 | }
370 |
371 | #line_numbers, #file_editor {
372 | vertical-align : top;
373 | display : inline-block;
374 | height : 40em;
375 | white-space : pre;
376 | margin : 0;
377 | font : normal .9em courier;
378 | }
379 |
380 |
381 | #line_numbers {
382 | min-width : 3.1em; /* Must be wider than scroll-bar left-right arrows, or no scrollbar appears. */
383 | padding : 1px .3em 0 .2em;
384 | border : 1px solid #777;
385 | background : #ccc;
386 | color : #444;
387 | overflow-y : hidden;
388 | overflow-x : scroll; /*This may be grayed out, but provides visual consistancy with #file_editor.*/
389 | text-align : right;
390 | float : left; /*only needed to help eliminate whitespace between #line_numbers & #file_editor*/
391 | }
392 |
393 | #line_0, #line_1 {margin: 0; display: inline-block; }
394 |
395 | #file_editor {
396 | font : .9em Courier;
397 | border : 1px solid #777;
398 | width : 96%; /* Dynamically set by Set_File_Textarea_Width(), base on Normal or Wide view. */
399 | margin : 0 0 .7em 2px;
400 | padding : 1px 0 0 3px;
401 | overflow : scroll;
402 | word-wrap : normal;
403 | word-break : break-all;
404 | white-space: pre-wrap;
405 | resize : none;
406 |
407 | color : black; /* Default. May make themeable, along with background-color. Someday... */
408 | background-color: white; /* Set in Reset_file_status_indicators() and Check_for_changes() */
409 | }
410 |
411 |
412 | #file_editor:focus { border-color: #000; }
413 |
414 | .tab_size { tab-size: 8; -o-tab-size: 8; -moz-tab-size: 8; }
415 |
416 |
417 | .file_meta { float: left; margin-top: .6em; font-size: .95em; color: #222; }
418 |
419 | #edit_notes { font-size: .8em; color: #222 ;margin-top: 1em; clear:both; }
420 |
421 | .notes { margin-bottom: .4em; }
422 |
423 |
424 |
425 |
426 |
427 | /* --- log in --- */
428 |
429 | #login_page {
430 | border : 1px solid #777;
431 | width : 370px;
432 | margin : 5em auto;
433 | padding : .5em 1.2em .1em 1em;
434 | }
435 |
436 | #login_page .nav { margin-top: .5em; }
437 |
438 | #login_page input {margin: 0 0 .7em 0;}
439 |
440 |
441 | hr { /*-- -- -- -- -- -- --*/
442 | line-height : 0;
443 | Xfont-size : 1px;
444 | display : block;
445 | position: relative;
446 | padding : 0;
447 | margin : .6em auto;
448 | width : 100%;
449 | clear : both;
450 | border : none;
451 | border-top : 1px solid #777;
452 | Xborder-bottom: 1px solid #eee;
453 | overflow: visible;
454 | }
455 |
456 |
457 | .verify {
458 | min-width : 50%;
459 | font : 1em Courier;
460 | border : 1px solid gray;
461 | border-collapse : collapse;
462 | background-color: white;
463 | }
464 |
465 | .verify th {
466 | border : 1px solid gray;
467 | padding : 0 1em 0 1em;
468 | text-align : center;
469 | font-weight : 900;
470 | font-family : arial;
471 | background-color: #EEE;
472 | }
473 |
474 | .verify td {
475 | border : 1px inset silver;
476 | padding: .1em 1em .1em .5em;
477 | vertical-align: middle;
478 | }
479 |
480 | .verify_del {
481 | font : 1em Courier;
482 | border: 1px solid #F00;
483 | padding: .2em .4em;
484 | color : #222;
485 | background-color: #FDD;
486 | }
487 |
488 | .verify_del td { border: 1px solid #F44; }
489 |
490 |
491 | #admin {padding: 3px 5px;}
492 |
493 | .admin_buttons .button {margin-right: .5em;}
494 |
495 | .clear {clear:both; padding: 0; margin: 0; border: none}
496 |
497 | .web_root { border: 1px solid #777; border-right: none; font: 1em Courier; padding: 1px; background-color: #EEE;}
498 |
499 | .mono {font-family: courier;}
500 |
501 | .info {margin: .7em 0 .5em 0; background: #f9f9f9; padding: .2em .5em;}
502 |
503 | .path {padding: 1px 5px 1px 5px} /*TRBL*/
504 |
505 | .timer {border: 1px solid #eee; padding: 3px .5em 4px .5em;}
506 |
507 | .timeout {float:right; font-size: .95em; color: #111; padding-right: .3em;}
508 |
509 | .edit_btns_top {margin: .2em 0 .5em 0;}
510 |
511 | .image_info {
512 | color: #222;
513 | font-size: 1em ; /*Adjusted by langauge files*/
514 | margin: .7em 0 1em 0;
515 | }
516 |
517 | .edit_btns_bottom {float: right;}
518 | .edit_btns_bottom .button { margin-left: .7em; } /*Adjusted by langauge files*/
519 |
520 | input[type="text"]#new_name {width : 50%; margin-bottom: .2em;}
521 | #new_location {border-left: none;}
522 |
523 | #del_backup { margin: 0; padding: 2px 5px; border: 1px solid transparent;}
524 |
525 | /*** For old IE only: text "icons" for Rename, Copy, and Delete ***/
526 | .RCD1 {font: 900 7pt arial; padding: 0px 3px 0px 3px; margin: 0px; float: left}
527 | .R {color: #00a; border: 1px solid #804000}
528 | .C {color: #006400; border: 1px solid #008400}
529 | .D {color: #b00; border: 1px solid #b00}
530 |
531 | .action {display: inline-block}
532 | .ren_over {display: inline-block}
533 | .ren_over input {margin: 0 0 0 2em}
534 | .ren_over label {font-weight: normal}
535 |
536 | #path_header{
537 | display: inline-block;
538 | background-color:white;
539 | border: solid 1px #777;
540 | font-weight: normal;
541 | padding: 0 .5em 0 0;
542 | margin: .5em 0 0 0;
543 | }
544 |
545 | #path_header a {
546 | outline: none;
547 | border: none;
548 | border-left : solid 1px transparent;
549 | border-right: solid 1px transparent;
550 | display: inline-block;
551 | padding: 1px 5px 0 5px;
552 | }
553 |
554 | #path_header a:hover { border-left : solid 1px #777; border-right: solid 1px #777; }
555 | #path_header a:focus { border-left : solid 1px #777; border-right: solid 1px #777; }
556 |
--------------------------------------------------------------------------------
/extras/plugin-ckeditor_init.php:
--------------------------------------------------------------------------------
1 | tag.*
23 | 2) specify the id of the OneFileCMS textarea, "file_editor", in the CKEDITOR.replace() call
24 |
25 | *Note: In the
33 |
39 |
40 |
--------------------------------------------------------------------------------
/extras/plugin-tinymce_init.php:
--------------------------------------------------------------------------------
1 | tag.*
23 |
24 |
25 | *Note: In the
33 |
83 |
--------------------------------------------------------------------------------
/info/OneFileCMS.License.BSD.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Self-Evident/OneFileCMS/d1ff5045ebeaea77434490beae83949fe37a0a11/info/OneFileCMS.License.BSD.txt
--------------------------------------------------------------------------------
/info/OneFileCMS.License.MIT.txt:
--------------------------------------------------------------------------------
1 | OneFileCMS
2 |
3 | Copyright © 2009-2012 https://github.com/rocktronica
4 | Copyright © 2012- https://github.com/Self-Evident David W. Gay
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy of
7 | this software and associated documentation files (the "Software"), to deal in
8 | the Software without restriction, including without limitation the rights to
9 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10 | of the Software, and to permit persons to whom the Software is furnished to do
11 | so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
--------------------------------------------------------------------------------
/info/OneFileCMS_structure.txt:
--------------------------------------------------------------------------------
1 | OneFileCMS Version 3.5.21 structure/layout
2 |
3 | LICENSE
4 |
5 | SOME BASIC SECURITY & ERROR LOG SETTINGS
6 |
7 | CONFIGURATION SECTION
8 |
9 | MISC FUNCTIONS:
10 | System_setup()
11 | Default_Language()
12 | validate_units()
13 | hsc()
14 | Convert_encoding()
15 | Session_Startup()
16 | Verify_IDLE_POST_etc()
17 | hashit()
18 | Error_reporting_and_early_output()
19 | Update_Recent_Pages()
20 | undo_magic_quotes()
21 | strip_array()
22 | Validate_params()
23 | Valid_Path()
24 | Get_GET()
25 | Verify_Page_Conditions()
26 | has_invalid_char()
27 | URLencode_path()
28 | dir_name()
29 | Check_path()
30 | Sort_Seperate()
31 | add_serial_num()
32 | supports_svg()
33 | rCopy()
34 | rDel()
35 |
36 | MISC PAGE SECTIONS/FUNCTIONS
37 | Current_Path_Header()
38 | Page_Header()
39 | Cancel_Submit_Buttons()
40 | show_image()
41 | Timeout_Timer()
42 |
43 | Init_Macros()
44 |
45 | SVG ICONS
46 | Init_ICONS()
47 | svg_icon_txt()
48 | svg_icon_folder()
49 |
50 | PAGE & RESPONSE FUNCTIONS:
51 | List_File()
52 | List_Backups_and_Logs()
53 | Admin_Page()
54 | Hash_Page()
55 | Hash_response()
56 | Change_PWUN_Page()
57 | Update_config()
58 | Change_PWUN_response()
59 | Logout()
60 | Login_Page()
61 | Login_response()
62 | Create_Table_for_Listing()
63 | Get_DIRECTORY_DATA()
64 | Send_data_to_js_and_display()
65 | Index_Page_buttons_top()
66 | Index_Page()
67 | Edit_Page_buttons_top()
68 | Edit_Page_buttons()
69 | RCD_buttons()
70 | Edit_Page_form()
71 | Edit_Page_Notes()
72 | Edit_Page()
73 | Edit_response()
74 | Upload_Page()
75 | Upload_response()
76 | New_Page()
77 | New_response()
78 | Set_Input_width()
79 | CRM_Page()
80 | CRM_response()
81 | Delete_response()
82 | MCD_Page()
83 | MCD_response()
84 | Page_Title()
85 | Load_Selected_Page()
86 | Respond_to_POST()
87 |
88 | JAVASCRIPT FUNCTIONS:
89 | init_ICONS_js()
90 | common_scripts()
91 | pad()
92 | hsc()
93 | trim()
94 | FormatTime()
95 | format_number()
96 | Countdown()
97 | Start_Countdown()
98 | FileTimeStamp()
99 | Display_Messages()
100 | Index_Page_events()
101 | (various onclicks)
102 | document.onmousedown()
103 | on_Tab_down()
104 | document.onkeydown
105 | Index_Page_scripts()
106 | Sort_FOlder_First()
107 | sort_DIRECTORY()
108 | Init_Dir_table_rows()
109 | Assemble_row()
110 | Build_Directory
111 | Directory_Summary()
112 | Sort_and_Show()
113 | Select_All()
114 | Confirm_Submit()
115 | Edit_Page_scripts()
116 | Set_File_Textarea_Width()
117 | Correct_Word_Wrapping()
118 | Wide_View()
119 | Toggle_Line_Wrap()
120 | Reset_file_status_indicators()
121 | Check_for_changes()
122 | Reset_File()
123 | Line_Numbering()
124 | Display_Width_Chars()
125 | Line_Count()
126 | Effective_Line_Length()
127 | Create_Line_Numbers()
128 | Set_Line_Numbers()
129 | Global variables
130 | Event assignments
131 | pwun_event_scripts()
132 | events_down()
133 | events_up()
134 | pre_validate_pwun()
135 | js_hash_scripts()
136 | hex_sha256() (& related...)
137 | hash()
138 |
139 | STYLESHEET FUNCTIONS:
140 | style_sheet()
141 | Language_and_config_adjusted_styles()
142 | Load_style_sheet()
143 |
144 | LOGIC TO DETERMINE PAGE ACTION
145 | Load Default_Language()
146 | System_setup()
147 | Session_Startup()
148 | Init_Icons()
149 | Get_GET()
150 | Valid_Path()
151 | Validate_params()
152 | Init_Macros()
153 | Respond_to_POST()
154 | Verify_page_conditions()
155 | Update_Recent_Pages();
156 |
157 | OUTPUT ...
158 |
--------------------------------------------------------------------------------
/info/changelog.markdown:
--------------------------------------------------------------------------------
1 | # OneFileCMS Change Log
2 |
3 | ### v3.6.12 (2017-10-08)
4 |
5 | - Admin page now shows username OneFileCMS is running as.
6 | - Index & Edit pages now indicate files that are not writable (rather than just responding with an error message after trying to edit/delete said files).
7 | - When editing file permissions, message box shows current expanded perms [rwxrwxrwx] owner group :current user:
8 | (But, can still only edit the octal form by the file name.)
9 |
10 | ### v3.6.11 (2017-10-06)
11 |
12 | - Switched to php short tags: `= ?>` (from ``) Because I felt like it. I wanted to years ago, in my beginning of this project, but my web host was still on some 5.3 version of php, and didn't always have 'em enabled. But now, as php is up to v7.something, and most hosts have, at least, php 5.4, it seems like a safe move at this point. If not, oh well!
13 |
14 | ### v3.6.10 (2017-10-06)
15 |
16 | - Fixed a minor bug introduced by prior commit's code "improvements".
17 | - Directory list now shows link targets: some\_symlink -> /target/of/symlink
18 | - Reworked keyboard nav a bit.
19 | - Some misc code improvements.
20 |
21 | ### v3.6.09 (2017-10-04)
22 |
23 | - Some minor keyboard nav improvements on index page.
24 | - Some misc code improvements.
25 |
26 | ### v3.6.08 (2017-09-30)
27 |
28 | - [Mov], [Del], & [X] are unavailable if file is readonly.
29 | - Fixed minor issue where if perms changed, new value not always displayed.
30 | - A bit of restructure/refactor of perm & Assemble\_Insert\_Row() related functions.
31 | - "(on php 5.x.x)" version, and link to phpinfo, now only shows on Admin page.
32 | - Andd some css...
33 |
34 | ### v3.6.07 (2017-09-29)
35 |
36 | - Mostly some code improvements.
37 | - And some css...
38 |
39 | ### v3.6.06 (2017-09-27)
40 |
41 | - Added ability to edit file permissions.
42 |
43 | ### v3.6.05 (2017-09-24)
44 |
45 | - Fixed a couple bugs in keyboard navigation when there's only one item in current diretory.
46 | (Couldn't "arrow up" when in the file row [M][C][D][x][perms] [Filename])
47 | (It was submitting on enter when on checkboxes.)
48 |
49 | ### v3.6.04 (2017-09-20)
50 |
51 | - A _little_ bit of code improvement/cleanup - using onfocus/blur in lieu of the prior scatter gun approach.
52 |
53 |
54 | ### v3.6.03 (2017-09-20)
55 |
56 | - Removed Rename/Delete/Edit options for readonly files.
57 | (previously would simple have generated an error.)
58 | - Some more prep work for eventual option to edit file perms.
59 |
60 | ### v3.6.02 (2017-09-18)
61 |
62 | - Fixed a minor bug with tabindex on directory listing page.
63 | - Increased default $PRE\_ITERATIONS from 1000 to 10000. Had kept low as IE8 was slow.
64 | - Now attempts to set a session\_save\_path() based on username. (default is /tmp, or /var/lib/php5/, etc)
65 |
66 | ### v3.6.01 (2017-09-18)
67 |
68 | - Fixed a couple of minor display bugs.
69 |
70 | ### v3.6 (2017-09-17)
71 |
72 | - Fixed a minor bug in $ACCESS\_ROOT.
73 | - Did some prep work for editing of file permissions. Not yet editable.
74 |
75 |
76 | ### v3.5.23 (2017-09-08)
77 |
78 | - OneFileCMS is no longer restricted to just public_html.
79 | - Increased $MAX\_EDIT\_SIZE to 250000. (It could probably go higher.)
80 |
81 | ### v3.5.22 (2017-09-05)
82 |
83 | - Added file permissions to directory list.
84 | - A couple of minor bug-fixes.
85 | - Some minor code improvements.
86 |
87 | ### v3.5.21 (2016-06-26)
88 |
89 | - Some code cleanup & a little local js re-org.
90 | - Some minor static & active css improvements.
91 | - Added some basic validation to a config value.
92 |
93 | ### v3.5.20 (2016-06-21)
94 |
95 | - Fixed sporadic directory-won't-display issue.
96 | - Fixed wrapping & line-numbering issue when toggling between wrap on & wrap off.
97 | - Added line-numbers to read-only files also.
98 |
99 | ### v3.5.19 (2016-06-16)
100 |
101 | - Added line numbers to left of edit window. A current side effect is wrapping is now break-word, instead of word-break. That is, lines may wrap in the midddle of words, not just on white-space.
102 | - Added a word-wrap toggle option on the edit page. Only works on editable files. Files with edit disabled still just word-wrap normally as appropriate.
103 | - And some code cleanup etc.
104 |
105 | ### v3.5.18 (2016-06-09)
106 |
107 | - And a few more improvements to arrow key handling.
108 | - A couple minor bug fixes
109 | - Some code cleanup etc.
110 |
111 | ### v3.5.17 (2014-04-20)
112 |
113 | - Additional improvments to arrow key handling, particularly in regards to $message box.
114 |
115 | ### v3.5.16 (2014-04-04)
116 |
117 | - Improved logic for handling Left & Rigth arrow keys in Index\_Page\_events()
118 | - Left some //##### comments in as reminders for potential improvements.
119 |
120 | ### v3.5.15 (2014-04-03)
121 |
122 | - Fixed a minor keyboard navigation bug on Index page if active copy of OnefileCMS is listed.
123 | - Fixed css "glitch" that ony affected IE - removed borders on checkboxes.
124 |
125 | ### v3.5.14 (2014-04-02)
126 |
127 | - Improved keyboard navigation of directory listings (Arrows, Page Up/Down, etc...)
128 | - Asked "how hard can it be?" - and found out...
129 | - Fixed a minor bug on the Edit page (affected IE only).
130 | - Some css adjustments/cleanup (needs lots more).
131 |
132 | ### v3.5.13 (2014-03-30)
133 |
134 | - Added basic keyboard navigation on directory listings.
135 | - Removed [View Raw] button when viewing images.
136 | - And tweaked some css...
137 |
138 | ### v3.5.12 (2014-03-25)
139 |
140 | - Fixed a minor glitch in the countdown used in login delays.
141 | - Associated/misc code tweaks & imrovements.
142 | - Added the countdown timer to the two-minute time-out "Warning..." message.
143 |
144 | ### v3.5.11 (2014-03-24)
145 |
146 | - Improved some $message handling & focus() responses.
147 | - Some minor readme updates.
148 | - some css...
149 |
150 | ### v3.5.10 (2014-03-23)
151 |
152 | - Just a quick fix to a minor issue: needed to urlencode an onclick parameter.
153 | - Also a few minor updates to the readme.
154 |
155 | ### v3.5.09 (2014-03-22)
156 |
157 | - Restored IE 8+ support.
158 | - And, you know, tweaked some css...
159 |
160 | ### v3.5.08 (2014-03-21)
161 |
162 | - Mostly just some code improvements/cleanup.
163 | - ...and css...
164 |
165 |
166 | ### v3.5.07 (2014-03-15)
167 |
168 | - Removed ability for OneFileCMS to edit itself - it is too risky an option. If needed, make a copy & edit it.
169 | - Added a [View Raw] button on the Edit/View page. It displays the raw/plain text of the current file.
170 | - Fixed issue using Chrome & editing some files containing javascript.
171 | - Some changes to "file changed" visual feedback (textarea & [Save] button styles).
172 | - Some general code improvements to Edit\_Page\_... functions.
173 | - Some other general code improvements.
174 | - And, a bit of css tweakin...
175 |
176 | ### v3.5.06 (2014-03-11)
177 |
178 | - Added optional logging of login attempts, both successful & failed.
179 |
180 | ### v3.5.05 (2014-03-09)
181 |
182 | - Copy & Rename pages ignore blank "New Name" fields.
183 | - Some minor improvemnts & css tweaks.
184 |
185 | ### v3.5.04 (2014-03-08)
186 |
187 | - Fixed "minor" bug - editor not saving changes (introduced in 3.5.02, but just noticed)
188 | - Some general code improvements & shuffling
189 | - Some CSS shuffling & tweaks.
190 |
191 | ### v3.5.03 (2014-03-06)
192 |
193 | - Minor update to Get\_DIRECTORY\_DATA(). Didn't seem to affect all php versions.
194 |
195 | ### v3.5.02 (2014-03-06)
196 |
197 | - OneFileCMS can now work with non-ASCII filenames.
198 | - (But, OneFileCMS itself can not be named with non-ASCII characters. I don't know why.)
199 | - Increased $PRE_ITERATIONS from 200 to 1000. This will affect, at least, older IE's, and maybe other browsers as well. For instance, it takes IE8 37 times longer to perform the "pre-iterations" than Firefox. In anycase, it can, of course, be changed back if needed.
200 | (However, OneFileCMS does not currenly work in IE, so it's kinda academic for now.)
201 | - Some css tweaks & improvements.
202 |
203 | ### v3.5.01 (2014-02-22)
204 |
205 | - Mostly behind the scenes stuff...
206 | - Replaced use of htmlentities() with htmlspecialchars(). With UTF-8, htmlentites() is superfluous.
207 | - Added hsc() to a number of strings where should have already been.
208 | - Changed directory sort function a bit. Note: when selecting/deselecting the 'folders first' option, the primary sort will be the last sorted column.
209 | - Split out a new function, Send\_data\_to\_js(), from Index\_Page().
210 | - Also, in prep for an upcoming update, tagged several places (with //##### ) where file system calls are made. The $filename strings used in the calls may need to be encoded with something other than UTF-8, depending on the underlying OS's filesystem. (such as NTFS, which uses UTF-16)
211 |
212 | ### v3.5 (2014-02-19)
213 |
214 | - The directory list can now be sorted by column: name, .ext, size, date.
215 | - Also has an option to list folders first, or to sort without regard to file or folder.
216 | - In accomplishing the above, most sorting moved client side. This permits resorts without another server hit.
217 | - Added & tweaked some css...
218 | - Slight restructure of the repo (ie: move a few "extras" files around).
219 | - NOTE: versions 3.4.23 and later DO NOT WORK IN IE! I don't know why yet, mostly likely js related.
220 |
221 | ### v3.4.23 (2014-02-12)
222 |
223 | - More changes in prep for sort by column
224 | - Directory list is now built & displayed client side via javascript.
225 |
226 | ### v3.4.22 (2014-02-10)
227 |
228 | - Mostly some changes to prep for sort by column (name, size, or date) feature.
229 |
230 | ### v3.4.21 (2014-02-08)
231 |
232 | - Added back the option for external style sheets
233 | - Cooresponding updates to sample external config file.
234 | - In addition to specific file names, specific folder names may now be excluded from directory listings.
235 | - Fixed minor missing page title on Copy Folder page
236 | - Tweaked a couple css defaults
237 |
238 |
239 | ### (2013-01-19)
240 |
241 | - Just some minor updates/wording changes to the readme & plugin/*.init files.
242 |
243 | ### v3.4.20 (2012-12-19)
244 |
245 | - The $ACCESS_ROOT option has been reimplemented and is now fully functional\*. This option limits access to a specified folder (and it's sub-folders). To use, just specify a valid path relative to the root of the website (no leading slash).
246 | (*Well, as best as I can tell...)
247 |
248 | - All OneFileCMS configuration variables that reference external files ($CONFIG\_file, $LANGUAGE\_FILE, $WYSIWYG\_PLUGIN) must be specified in one of two ways:
249 | 1. Relative to the root of the website - with NO leading slash: "some/path/from/webroot/somefile.php"
250 | 2. Absolute to the file system - WITH a leading slash: "/some/path/from/system/root/somefile.php"
251 | (On Windows, the drive letter may also be used, but it is not required if all is on same drive.)
252 |
253 | ### v3.4.19 (2012-12-12)
254 |
255 | - Slightly adjusted how wysiwyg plugins are implemented - removed $WYSIWIG\_SOURCE config variable.
256 | (It's value is now specified directly in the "init" file specified by $WYSIWYG\_PLUGIN.)
257 |
258 | - Two steps forward, one step back...
259 | Just for now - removed the $ACCESS_ROOT option. I was coding in circles and getting no where while trying to reconcile various issues:
260 |
261 | - With OneFileCMS in any folder other than the web root,
262 | - With OneFileCMS in a folder other than $ACCESS_ROOT
263 | - Depending on the above, can't delete the backup copy of OneFileCMS created by a p/w or u/n change).
264 | - External file references (config, language, plugins) affected by the above.
265 | - Should $ACCESS_ROOT also restrict access to OneFileCMS itself? That would prevent p/w & u/n changes.
266 | - Display of the current/path/header/ varies depending on $ACESS_ROOT.
267 | - Combining the above.
268 |
269 | A solution is in the works, but I'm going to take some time to make sure no new problems are introduced by the eventual fix. (hahaha...) It will probably end up being simple, but it's not yet...
270 |
271 | - Just a general note on security: due to the fundamental structure of OneFileCMS - primarily that it's one file, and that there is no seperate database for authentication - there are certain inherent security limitations that should be kept in mind:
272 | - The first is that all OneFileCMS users are "admins", with the ability to upload and edit files with any type of code.
273 | - Next, as a direct consequence of the prior point, is that any restriction imposed by some potential feature, such as the $ACCESS_ROOT option that limited access to a specific folder, is only - at most - a guard against accidental access and modification of files outside of the "accessible" folder. This is not to say that such features are not useful - this is simply meant to provide a realistic expectation of security, and that OneFileCMS should only be used with trusted users.
274 |
275 | ### v3.4.18 (2012-12-03)
276 |
277 | Of course, everything comes with a price (exacerbated by my apparent lack of testing...)
278 |
279 | - Anyway, the current release partly fixes an issue when trying to use a wysiwyg editor with onefilecms.php installed in a sub-folder of a site. The issue is - it didn't work. Now it does - mostly. However, there is still an issue using wysiwyg editors if the $ACCESS_ROOT variable is set to anything but blank (root).
280 |
281 | ### 2012-12-03
282 |
283 | - Just a note: there is an issue using a wysiwyg editor when onefilecm.php is in a sub-folder, or related to using the $ACCESS_ROOT option (restricting onefilecms access to a folder). WYSIWYG seems to otherwise work fine when onefilecms.php is in the root folder of a site.
284 |
285 | ### v3.4.17 (2012-11-29)
286 |
287 | - WYSIWYG is here!
288 | Due to popular demand (ie: it has been requested more than once), WYSYWIG editors can now be "plugged in" and used with OneFileCMS. Currently, only [TinyMCE](http://tinymce.moxiecode.com/) and [CKEditor](http://ckeditor.com/) have been tested (and on a very limited scale). Others may work - but I don't know yet. And, naturally, the use or inclusion of such editors is completely optional, of course.
289 |
290 | **No actual WYSIWYG editors are included with OneFileCMS** - any desired editor must be obtained seperately.
291 |
292 | A brief how-to on using either editor can be found in their respective sample "init" files included in the plugins folder of the OneFileCMS repo. Any suitable init file for a given editor may be used, as long as the correct path to the editor's javascript source file is specified, and - for CKEditor - the id of the OneFileCMS textarea, "file_editor", is also be specified.
293 |
294 | Now, while everything seems to work, I have little to no experience using TinyMCE, CKEditor, or any other such application. So, if there is something missing or not working as expected, please let me know (open an "issue" on the Issues page).
295 |
296 | Notes:
297 |
298 | - These editors have their own, extensive, event controls (responses to keyboard & mouse input), so the OneFileCMS edit page event scripts are not loaded when an editor is in use. The primary effect is the loss of incidental file status indicators - [Save] will not change to [SAVE CHANGES!], background color will not change, etc., and any "unsaved changes" alerts should be handled by the active editor. Also, the [Wide View] button will be unavailable.
299 |
300 | - The TinyMCE "init" file included in the OneFileCMS repo specifies the use of the TinyMCE "fullpage" plugin, which produces an "unsaved changes" alert every time you exit the Edit page - even if no changes have been made to the file in the editor.
301 |
302 | - The CKEditor, on the other hand, does not seem to present an alert at all when you leave the editor page - even with unsaved changes.
303 |
304 | ### v3.4.16 (2012-11-23)
305 |
306 | - Added icons to lower buttons on edit page.
307 | - And a few code tweaks & improvements.
308 |
309 | ### v3.4.15 (2012-11-18)
310 |
311 | - Added client-side hashing of passwords.
312 | This is primarily a benefit for the user, as it does not really add any security to the server side application that uses it (such as OneFileCMS). The reason is that this "pre-hash" simply becomes the actual password as far as the server is concerned, and is just as vulnerable to exposure while in transit. However, it does help to protect the user's plain-text password, which may be used elsewhere.
313 |
314 | - Also added a "please wait..." message while computing the client-side hashes - primarily for IE versions < 9, which are MUCH slower than FF or Chrome (by a factor of 37 or more). Subsequently, the number of iterations for the client-side hashing is quite low (compared to the server side), but still causes a 1 - 2 second delay on the login screen, and a 3 - 6 second delay on the Change Password screen. On FF and Chrome, however, the delay is much shorter, almost unnoticable.
315 |
316 | - I want to thank [fermuch](http://github.com/fermuch) for the client-side hashing suggestion. While a somewhat different approach was ultlimately employed, his original solution provided the insight needed to approach the idea in general.
317 |
318 | ### 3.4.14 (2012-11-12)
319 |
320 | - Courtesy of [Fuchur777](github.com/Fuchur777), added option to restrict OneFileCMS to a specified folder (and it's sub-folders).
321 | - Fixed issue on Upload page if using PHP v3.2.12 or earlier.
322 | - A few miscellaneous code improvements.
323 |
324 | ### (2012-11-11)
325 |
326 | - Thanks to [zaykin](https://github.com/zaykin) for the Russion language file!
327 |
328 | ### 3.4.13 (2012-11-05)
329 |
330 | - Thanks to [symsec](http://github.com/symsec) for the Dutch (Nederlands) language file!
331 | - Otherwise, mostly some incidental code improvements and cleanup.
332 |
333 | ### 3.4.12 (2012-10-21)
334 |
335 | - On the Upload Page, added an option to select either automatic rename or overwrite of pre-existing files.
336 |
337 | ### 3.4.11 (2012-10-16)
338 |
339 | - Just a few code tweaks and improvements.
340 |
341 | ### 3.4.10 (2012-10-08)
342 |
343 | - Folders are now listed ahead of files in main file list.
344 | - Quite of bit of code consolidation and improvement.
345 | - Converted svg icons from functions into an array of $ICONS[]
346 |
347 | ### 3.4.09
348 |
349 | - Can now recursively copy folders.
350 | - Consolidated some functions.
351 | - Removed some svg icons no longer used.
352 | - The usual "code cleanup" and "tweaked some css"...
353 |
354 | ### 3.4.07
355 |
356 | - Can now recursively delete non-empty folders (just be careful!)
357 | - Consolidated some functions.
358 | - Minor bug fix & a few misc code improvements.
359 | - Darkened folder icons.
360 | - Removed & changed a few $_[] language strings.
361 |
362 | ### 3.4.06
363 |
364 | - Minor bug fix: Index page would not display folders that started with a period ("hidden" folders on *nix)
365 |
366 | ### 3.4.05
367 |
368 | - Consolidated index page radio & submit buttons (for Move, Copy, Delete) into just three standard buttons.
369 | - Added multi-file upload ability.
370 | - Index page: removed extra Upload/New/Rename/Delete buttons from bottom of page.
371 | - Subsequent to the above, a bit of code cleanup & improvement.
372 |
373 | ### 3.4.04
374 |
375 | - Minor bug fix.
376 |
377 | ### 3.4.02-3.4.03
378 |
379 | - Primary user noticable change: on rename/move/copy pages, split "New Name" from "New Location".
380 | - A couple minor bug fixes.
381 | - Consolidated four functions into two.
382 | - Other general code cleanup & improvements.
383 | - Numerous new, changed, and removed langauge settings.
384 |
385 | ### 3.4.01
386 |
387 | - A couple of minor bug fixes.
388 | - Some code cleanup & improvements.
389 |
390 | ### 3.3.17 - 3.4.0 (2012-08-29)
391 |
392 | - Added option to select and move, copy, or delete multiple files.
393 | - And other general code tweaks and improvements.
394 |
395 | ### 3.3.11 - 3.3.16
396 |
397 | - Added screens for changing username and password.
398 | - Plaintext $PASSWORD option is no longer available.
399 | - Added options to Rename, Copy, or Delete files from Index screen.
400 | - Improved validation of $_GET parameters & other general code improvements.
401 |
402 | ### 3.3.10
403 |
404 | - Created an actual "Admin" page that has links to admin functions: Hash Page, Edit OneFileCMS, and (soon) Change Password.
405 |
406 | ### 3.3.09
407 |
408 | - Minor code improvements & cleanup.
409 |
410 | ### 3.3.08
411 |
412 | - Added some basic error handling and now using buffering to capture errant early output.
413 | - Seperate function to handle dynamic css values.
414 |
415 | ### 3.3.07
416 |
417 | - Language file formats are now php instead of ini.
418 | - Minor improvement to version checking.
419 |
420 | ### 3.3.06
421 |
422 | - Increased hash iterations from 1000 to 10000. (I've read that lots of iterations help slow down brute force p/w recovery)
423 | - Format for external config files is now just php (instead of ini).
424 | - Some miscellaneous code & css improvements.
425 |
426 | ### 3.3.05a
427 |
428 | - Just removed some trouble-shooting code that was left in unintentionally.
429 |
430 | ### 3.3.05
431 |
432 | - Added a few settings to the language files to adjust certain css values if needed. In some instances, some langauges may use significantly longer words or phrases than others. So, a smaller font or less spacing may be desirable in those places to preserve page layout.
433 | - And, of course, some minor code improvements hear and there.
434 |
435 | ### 3.3.04
436 |
437 | - Added Spanish language file courtesy of [fermuch](https//github.com/fermuch).
438 | - Some misc code improvements.
439 | - Added notes regarding using .ini file for password storage.
440 |
441 | ### 3.3.03
442 |
443 | - "Wide View" option on Edit page now persists across saves.
444 | - Improved handling of language files. However, kinda' like "online security", "multi-language support" is nebulous and a bit finicky.
445 |
446 | ### 3.3.02
447 |
448 | - Added German language file courtesy of [codeless](http://github.com/codeless).
449 |
450 | ### 3.3.01
451 |
452 | - Fixed a "minor" issue after adding multi-language support- OneFileCMS stopped working altogether on versions of PHP < 5.3.
453 |
454 | ### 3.3.0
455 |
456 | - Added support for optional external language files. Now to get some translations...
457 | - The default, English, is included directly in OneFileCMS, of course.
458 | - A sample language file (English) is included in the repo for reference for anyone that may be interested.
459 |
460 |
461 | ### 3.2.3
462 |
463 | - Thanks to github.com/codeless: added the ability to process a seperate config file.
464 | (This is just an option for flexibility, and is not required)
465 | - Added a [Wide View] button to Edit page.
466 | - Some minor code improvement & css tweaking.
467 |
468 | ### 3.2.2
469 |
470 | - Thanks to github.com/codeless: added a configurable whitelist of files to show.
471 | - Fixed minor issue on hash page (needed htmlspecialchars)
472 | - And, of course, various style & code tweaks.
473 |
474 |
475 | ### 3.2.1
476 |
477 | - Added timer to "Please wait..." message after too many invalid login attempts.
478 | - Mostly some misc code cleanup & improvement.
479 |
480 | ### 3.2.0
481 |
482 | - Added a few security improvements.
483 | - Added "timeout" timer as a warning to save edits before they're lost.
484 |
485 |
486 | ### 3.1.9
487 |
488 | - Password may now be stored as an encrypted hash, instead of in plain text.
489 | - Added an "Admin" page to generate password hashes.
490 | - A bunch of other code tweakin' & improvements.
491 |
492 | ### 3.1.6 thru 3.1.8
493 |
494 | - Converted bulk of rest of code into functions (easier to work with).
495 | - Resolved issue (I hope) with differing versions of PHP and how magic_quotes & stripslashes are handled.
496 |
497 | ### 3.1.2 thru 3.1.5
498 |
499 | - Added file size limits to the Edit/View page. (Some browsers don't like large files in an HTML textarea.)
500 | - Added some data validation to $_GET parameters
501 | - Some misc code cleanup & organization etc.
502 | - And other misc stuff...
503 |
504 | ### 3.1.1
505 |
506 | - Fixed minor issue with data encoding of file for editting in a <textarea>
507 |
508 | ### 3.1
509 |
510 | - (Very) moderate data validation improvements.
511 | - Reorganized & funcionalized() most of the code.
512 |
513 | ### 3.0
514 |
515 | - Implemented svg icons
516 |
517 | ### 2.0
518 |
519 | - OneFileCMS is now actually ONE FILE! No external style sheets or icons.
520 | (Of course, external style sheets & icons can be added back in, if you like.)
521 |
522 | - This is OneFileCMS "Lite", and will be maintained along with v3.0
523 |
524 | ### 1.5
525 |
526 | - Style sheet is now part of onfilecms.php file, but still uses external icons.
527 | - Some minor logic improvements on Edit & Index pages.
528 |
529 | ### 1.4.0
530 |
531 | - Substantial code reorganization & updates.
532 |
533 |
534 | ### 1.2.4 - 1.3.0
535 |
536 | - DO NOT USE THESE VERSIONS!
537 | - Mostly just a bunch of code modifications.
538 | - These versions have issues, primarily when on the home/root page your site.
539 |
540 | ### 1.2.3
541 |
542 | - Fixed check for local css. If not found, loads hosted copy.
543 | (This will soon be a moot point...)
544 |
545 | ### 1.2.2
546 |
547 | - On "Edit" page, images are now displayed directly, instead of a disabled textarea.
548 | - Logout page replaced with standard "alert" message on login screen.
549 |
550 | ### 1.2.1
551 |
552 | - Fixed security hole that affected versions 1.1.7 - 1.2.0.
553 |
554 | ### 1.2.0
555 |
556 | - List of files now sorted alphabetically, without regard to case.
557 | - Further improved Edit page & screen feedback of file state (changed/unchanged).
558 | - Added [X] dismiss button on message box
559 | - File dates shown on Index & Edit pages are now in user's local time.
560 | - Moved from xhtml to html syntax & doctype.
561 |
562 | ### 1.1.9
563 |
564 | - Improved Edit page & screen feedback of file state (changed/unchanged).
565 | - Removed use of jquery in move towards a true "OneFileCMS".
566 |
567 | ### 1.1.8
568 |
569 | - Added a table list view option (default). Either List or original "Block" view selectable with $VIEW_MODE variable. (On screen selection in the works)
570 | - (And, of course, numerous other code tweaks/improvements.
571 |
572 | ### 1.1.7
573 |
574 | - Added [Cancel] button to most screens. Numerous minor UI & code tweaks/improvements. Changed where .css is hosted (may change back later). Removed "Rendered in (microseconds)...". Added license info & copyright notice.
575 |
576 | ### 1.1.6
577 |
578 | - Breadcrumb navigation (courtesy of [Self-Evident](https://github.com/Self-Evident/)), CSS file and some minor changes to it
579 | - Installation is still as usual, but now, if you have _onefilecms.css_ in the same folder as _onefilecms.php_, it'll be linked instead of the normal [http://onefilecms.com/style.css](http://onefilecms.com/style.css).
580 |
581 | ### 1.1.5
582 |
583 | - Fixed a disallowed redirect vulnerability
584 | Many thanks to Abhi M Balakrishnan from [OWASP Mantra Team](http://www.getmantra.com/) for his help
585 |
586 | ### 1.1.4
587 |
588 | - JavaScript cleanup and jQuery upgrade
589 | - Visit Site = /
590 | - Now on GitHub!
591 |
592 | ### 1.1.3 (1/10/2012)
593 |
594 | - Fixed a upload bug leftover from 1.1.2's CSRF protection
595 |
596 | ### 1.1.2 (9/21/11)
597 |
598 | - More CSRF protection for logged-in users
599 |
600 | ### 1.1.1 (1/9/10)
601 |
602 | - CSRF protection (thanks Steve and Rene)
603 | - Support for storing password as an MD5 hash (thanks, durilka!)
604 |
605 | ### 1.1.0 (10/18/09)
606 |
607 | - config_footer variable for branding or analytics code
608 | - config_disabled variable to disallow editing of files like images, zips, icons, etc
609 | - config_excluded variable to exclude specific files (or filetypes) from being shown in the index
610 | - Shows hidden files (files that start with a "." like ".htaccess") on index listing
611 | - "noindex" meta tag so Google doesn't crawl your backend
612 | - Fixed a couple minor CSS and link bugs in the example site.
613 | - Updated license page to clarify commercial license usage per domain and upgrade.
614 |
615 | ### 1.0.1 (9/24/09)
616 |
617 | - Relative CSS links and navigation in example site to work better with the demo (No change to OneFileCMS itself)
618 |
619 | ### 1.0 (9/5/09)
620 |
621 | - Launch!
622 |
--------------------------------------------------------------------------------
/languages/OneFileCMS.LANG.DE.php:
--------------------------------------------------------------------------------
1 | ';
158 | $_['too_large_to_edit_02'] = 'Einige Browser (wie zum Beispiel der Internet Explorer) bleiben stecken oder werden instabil, sobald größere Textmengen in einer HTML