No Longer Maintained
A simple CMS for Landing Pages.
v0.0.6 Be careful! While that is an alpha version.
I wrote this CMS for myself and want to share it for everyone. Landing CMS is a simple tool for management landing pages. It doesn't use any databases. All data stores in a plain text files. You need only web-server with PHP 5.2 or newer (7 and 7.3 supports)!
For using the CMS you should copy all files from this repository to root directory of your site. Now you need config permissions.
For checking configs you can use helper: open https://your_site.com/install.php
You should set 777 permissions for upload and DB directories:
- assets/_cms/uploads/tinymce/source/
- assets/_cms/uploads/tinymce/thumbs/
- cms/_db/
If helper show that all is done you should going to Admin panel: https://your_site.com/cms/
Now you need to create your password.
All is done! You can create your first Field and use it in your code.
In the Admin panel you can create Fields with 7 formats:
- String
- Multiple line text
- WYSIWYG Field
- Checkbox
- Color Picker
- File Uploader
- Group of Fields
When you creating a Field you need to enter an Alias.
Filled Admin panel will look something like this:
Then, when you want to use your Fields in your files you need to connect Controller to your file.
Example:
<?php
// Connecting the public controller
require_once('assets/controller.php');
?>
<html>
...
You can to call your Fields by Alias.
Example:
<html>
<head>
<title><?=$get['title'];?></title>
...
If you want to use checkboxes you need to check the values of equality 'on'.
Example:
<body>
...
<?php if($get['maintenance_mode'] == 'on'): ?>
<h1>Try again later</h1>
<?php else: ?>
<h1>Hello, World!</h1>
<?php endif; ?>
...
</body>
If you created a Group, you can call its specific element.
Example:
<p>
<?=$get['main_group']['item1'];?>
</p>
You can also iterate through each of the Group's elmenets. (Subgroup or Field).
Example:
<?php foreach($get['main_group'] as $name => $item): ?>
<ul>
<li><b><?=$name;?>:</b> <?=$item;?>;</li>
</ul>
<?php endforeach; ?>
If you need use any modules you can creat these in modules
directory. For using your Fields in your modules you should connect DB before connected this modules.
Example:
<?php
// Connecting the public controller
require_once('assets/controller.php');
// Connecting a module
require_once('modules/rand_num.php');
?>
<html>
<head>
...
<b>Random number module:</b> <?=$rand_num;?>
...
That so... In my opinion this functionality enough for all landing pages. If you don't think so you can fork my project or suggest me some features ;)
To speed up work with the CMS, you can use the following hotkeys:
special-key
+s
- save;special-key
+n
- new Field;special-key
+z
- cancel;
You can find out the special keys for your browser here.
You can translate the CMS to any languages. How to do this:
- Go to
cms/_lang
; - Create a directory with language name like
en
; - Into the new directory create the
main.php
file; - Fill the
main.php
file by analogy withcms/_lang/en/main.php
; - Update the
cms/_classes/utils.class.php
file's constantLANGUAGE
with the name of the language directory;
v 0.0.7:
- Fix Color Picker and File Uploader for IE9;
- Add Security Key to Responsive File Manager;
- Add JS-less accessebility for File Uploader;
- Fix Ghost Bug for Color Picker (sometimes just does not work);
- Add supporting RGB/RGBA/HEX to Color Picker;
v 1.0:
- Add Admin icon to frontend;
- Add Plugins support
- Add Drag'n'Drop for Groups and Fields sorting;
v 2.0
- Add Pages;
- TinyMCE for the WYSIWYG editor;
- Responsive File Manager for TinyMCE external filemanager;
- Tovic / color-picker for the Color Picker;
- Forsigner / magic-check for beautiful Checkboxes;
- Bootstrap for Admin panel styles.