I needed to create a website where I could update multiple pages worth of content remotely. It’s a travel blog. I could use WordPress to do this out of the gate, but I wanted to get away from the whole commoditized theme look and feel. Something where I have more control without customizing a lot.
So I created a site structure with multiple pages (one per travel day – ahead of time). Each of those PHP pages has a PHP include for the guts of the content for that day. For example
<?php include ('day_includes/day_12.php'); ?>
Easy peasy. That PHP file contains HTML of the contents. So for each day there is a file to include. Each one could contain a lot of information, so I didn’t want to do run down the dynamic population route too far.
So that part is easy. What about editing/adding content to the PHP files remotely? Enter an admin page.
The admin page has a drop-down menu of all the PHP include files. The first one it automatically loaded into a textarea control. You can select different pages and load them into the textarea with some JavaScript.
function loadDay()
{
var e = document.getElementById("days");
var selectedDay = e.options[e.selectedIndex].value;
var c = document.getElementById("content");
c.innerHTML = "";
setTimeout(function() {
var timestamp = +new Date;
var file = "day_includes/" + selectedDay + "?time=" + timestamp;
$( "#content" ).load( file );
}, 500);
}
Easy too. However JavaScript can’t write back to the files, so we POST the text to a PHP script page and that writes to the file (filename and contents are posted).
function saveDay()
{
var e = document.getElementById("days");
var selectedDay = e.options[e.selectedIndex].value;
var fileNameToSaveAs = "day_includes/" + selectedDay;
var enteredText = $('#content').val();
$.ajax({
url:'post_data.php',
type: 'POST',
data: {'data':enteredText, 'fileName':fileNameToSaveAs },
success: function(data) {
alert(data);
},
error: function(data) {
alert("There may an error on uploading. Try again later");
},
});
}
Easy again. The PHP script takes the variables and uses them to save the data. So with a little PHP and a little JavaScript, we have a CMS system. It’s not robust but rather lightweight. And I have full control over all aspects of how things look, feel, and operate.
Something to consider to avoid the continued WordPress onslaught.