Current version: 3.4.13
Recent changes
November 5, 2012 (v3.4.13)
- Thanks to symsec for the Dutch (Nederlands) language file!
- Otherwise, mostly some incidental code improvements and cleanup.
October 21, 2012 (v3.4.12)
- On the Upload Page, added an option to select either automatic rename or overwrite of pre-existing files.
October 16, 2012 (v3.4.11)
- Just a few code tweaks & improvements.
Language files
- Thanks to symsec for the Dutch (Nederlands) language file!
- Thanks to fermuch for the Spanish language file!
- Thanks to codeless for the German language file!
OneFileCMS
Yes, that's exactly what it is!
OneFileCMS is just that: It's a flat, light, one file CMS (Content Management System) contained entirely in an easy-to-implement database-less PHP script.
Coupling a utilitarian code editor with basic file managing functions, OneFileCMS can maintain an entire website completely in-browser without any external programs.
Demo
- Just download & try the current stable version - it's one file!
Features
- All the basic file management features like renaming, moving, copying, deleting, and uploading. (For complex processes, like batch renaming or mass uploads, you're going to want to use an FTP program.)
- A basic text editor.
- Alerts if you try to leave editing with unsaved changes.
- A Login delay after too many invalid login attempts.
- Adjustable idle time before auto-logout.
- Easily modifiable & re-brandable.
- Multi-language support.
PossiblyThe easiest installation process ever!
Installation
-
Download this file.
-
Upload to anywhere on your site.
-
Log in to OneFileCMS with the default "username" and "password", and set your own username and password!
Depending on how your web stack is set up, you may also have to modify the file permissions of your site's folders to allow OneFileCMS to modify and create files. (More about that here.) Make sure onefilecms.php and its parent folder are allowed to execute, with CHMOD at 755. Check with your host if you're not sure, and be aware of any inherent security concerns.
You can also change the file name of OneFileCMS.php to something else, such as "Admin.php". (Be careful about making it a folder's default file: your server may get stuck in redirects.)
FAQ
Where's the WYSIWYG? What about syntax highlighting?
WYSWIWYG editors have been requested, but probably won't become standard, as they'd make it more than one file, sort of defeating the whole "OneFile" point. Plus, when working with PHP or non-HTML code, they can be more of a hindrance than an asset.
However, just because I don't want to do it, doesn't mean it's impossible. Look for the Edit_Page_form() function. Its textarea can be modified to work with whatever editor you like.
I found something that could be better. Can I suggest it to you?
Yes, of course!
I may not have the time/bandwidth/inclination to implement every feature, but I 'll do what I can. If you find a bug, please file a report on the issues page.
This is basically just a file manager with a text editor- why is it being called a CMS?
Well, because "OneFileCMS" sounds way cooler (relatively speaking) than "OneFileFileManagerwithTextEditor".
Multi-Language Support?
Yes! Currently, English (EN), German (DE), Spanish (ES), and Dutch (NL) are available.
If you speak another language and would like to contribute, translations into other languages are welcomed and appreciated! Just use the English language file (or any of the others) as a template, and translate each word, phrase, etc., as appropriate. (Someone told me he was working on an Esparento translation...)
Can I have more than one username/password?
Yes! Well, sort of - indirectly. Upload or create addional copies of OneFileCMS, but give them different file names.(ie: OneFile1.php and OneFile2.php etc...) Then, in each copy, maintain different usernames and passwords. Also, so that one user does not login/logout the other, change the value of the $session_name config variable.
Now, since there is no database or other means of granular control or access logging, multiple usernames may be kind of pointless. However, having at least one working backup copy of OneFileCMS available is recommended in case the primary copy gets corrupted.
Requirements
- PHP 5.1+ (Only tested on versions 5.2.8, 5.2.17, 5.3.3, and 5.4 + )
- File permission privileges on your host.
- Javascript enabled browswer.
- And- but if you wish to see the icons- a browser that supports inline SVG.
(If your browser doesn't support inline SVG, OneFileCMS will still work, just without any icons.)
License, Credit, Et Cetera
- Available under the MIT and BSD licenses.
- Maintained by github/Self-Evident
- Original concept and development by github.com/rocktronica
- Contributors: A. M Balakrishnan, github.com/codeless, github.com/fermuch, github.com/symsec
- Written in PHP, JavaScript, HTML, CSS, and SVG.
- Icons for versions thru 1.1.6 by famfamfam.
- To report a bug or request a feature, please file an issue via Github.
- And, of course, please feel free to fork away!
##Needed/potential improvements
- With Chrome, and possibly Safari, issue with Edit page: Clicking browser [back] & then browser [forward], with file changed and not saved. On return (after [forward] clicked), file still has changes, but indicators are green (saved/unchanged). Does not affect FF 7+ or IE 8+.
- Issue with Chrome's XSS filter: Editing some legitimate files with OneFileCMS will trigger the filter and disable much of the javascript provided functionallity, but only while on the edit page with such a file, and only after a [Save].
- The connection is not encrypted (doesn't use SSL), so passwords & usernames are sent in clear text during login. However, this is true of most online login systems, unless SSL or the like is employed.
- Be aware that only some very basic data & error checking is performed. (But, it's getting better...)
- Anything else?
General layout/structure of OneFileCMS.php
CONFIGURATION SECTION
SYSTEM SETUP/VARIABLES
DEFAULT LANGUAGE
SESSION & MISC FUNCTIONS
SVG $ICONS & FUNCTIONS
PAGE & RESPONSE FUNCTIONS
JAVASCRIPT FUNCTIONS
STYLESHEET
LOGIC TO DETERMINE PAGE ACTION
GENERATE/OUTPUT THE PAGE

