Self-Evident / OneFileCMS

A single file cms - all in one file!
http://onefilecms.com/
166 stars 58 forks source link

OneFileCMS

Yes, that's exactly what it is!

OneFileCMS is a simple CMS (Content Management System) contained entirely in a single, database-less, PHP/Javascript.

With basic editing, upload, and file managing functions, OneFileCMS can maintain an entire website completely in-browser without any external programs.

File Manager:

OneFileCMS

Text Editor:

OneFileCMS


Contents:


Demo


Features


Installation

1) Download the current version.

2) Upload to anywhere on your site.

3) Log in !

The default login info is "username" and "password". Of course, you'll want to change those...

As with any CMS, you may also have to modify the file permissions of your site's folders to allow OneFileCMS to modify and create files. Check with your host if you're not sure, and be aware of any inherent security concerns.

You can also change the file name from "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.)


Requirements


FAQ

Multi-Language Support?

Yes! While English (EN) is the default, the following laguages are also available:

If you speak another language and would like to contribute, translations 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.

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.

Can I have more than one username/password?

Yes! Well, sort of... indirectly. Upload or create additional copies of OneFileCMS, but give them different file names.(ex: OneFile1.php and OneFile2.php etc...) Then, in each copy, maintain different usernames, passwords, and $session_name config values.

Now, since there is no database or other means of granular control or access logging, multiple usernames provides limited utility. However, having at least one working backup copy of OneFileCMS available is recommended in case the primary copy gets corrupted.

This is basically just a file manager with a text editor- why is it being called a CMS?

Because it is. It may be simple, but it can get the job done. While you wouldn't want to build a new house from the ground up with just a hammer, saw, and tape measure, you can "manage" quite a bit with just those tools.

And, because "OneFileCMS" sounds cool.

Why do I get a "Stop running this script?" alert during login?

OneFile's login functions take condsiderably longer to run on IE, version 8 at least, than on Chrome or Firefox. Just click [ No ] on the alert, and the login should finish after a few more seconds.
(
About 8 seconds -vs- 1/4 second on my test system.)

The delay is the result of the client-side "pre-hash" OneFileCMS performs on your password before submitting the login to OneFileCMS server-side. Not counting the time the alert is waiting for a response, the 8 seconds previously mentioned is from a 2.5gz single-core XP system.

See the global variable "$PRE_ITERATIONS" at the end of System_Setup(). It can be adjusted, but it's best to do so on a local copy in a development setup, then upload the updated copy.

Where's the WYSISWYG?

OneFileCMS can be easily configured to work with TinyMCE or CKEditor (and possibly others), but the editors themselves must be obtained from their respective sites. For basic setup instructions, read the appropriate "init" file from the extras/ directory in the OneFileCMS repo.


Limitations & Considerations


License, Credit, Et Cetera


Needed/potential improvements


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


Change Log

Git Log