A number of popular open source projects has been released in recent years. Content Management Systems can offer a lot more than other open source solutions. These projects give average webmasters the ability to install and launch their own website with very little technical programming knowledge.
In this post, I want to take you through Fork CMS. This is still a newcomer in PHP/MySQL CMS applications. But I would argue that Fork picks up much slack that WordPress has left behind. Of course, WordPress has also been through a series of major updates and follows a huge company of web developers. But if you’re looking for an alternate open-source PHP solution, then Fork is worth some attention.
Introduction to Fork
Before we get to install anything, I want to share a couple of differences between the current version of Fork CMS and WordPress. The most immediate difference is that Fork cannot be installed within a subdirectory on your website. You’ll need to install on a root domain or some type of subdomain for testing (eg. forkcms.hongkiat.com). This may be updated in future releases but at the time of this article, subdomains are off-limits.
Another important idea to consider is that Fork CMS does not follow in the footsteps of WordPress. WP was originally created as a blogging system that gained support as a mainstream CMS. But Fork was primarily launched as a CMS which includes extra modules like blogs, pages and users.
The experience is totally different and admittedly the system has not been through as much rigorous testing as WordPress. Early adopters may catch a few bugs, not that I’ve run into any so far. Just keep in mind that although you can use Fork solely for an online weblog, it is built around a core of modules that behaves more like a true CMS.
The First Installation
Now, hop into the script and install a copy. You can visit the download page and the .zip file should start automatically. The contents extract to about 10MB which is not much larger than the WordPress core files.
One refreshing piece of this installation process is that we don’t need to rename or edit any files before uploading them to the server. The Fork CMS installation process happens all at the backend. The only thing you will need to do is setup a MySQL database attached with a root user. Then FTP all the core files to your server and visit the URL to start the installation process.
If you don’t have any server for testing, 000Webhost offers free subdomains and PHP/MySQL hosting, although it’s generally not the greatest quality for server resources – so it’s best if you can test on your own private web hosting account, or locally on your computer.
Once all the files are uploaded, navigate to your domain and you’ll be redirected to the installation page. At first the script will check your server settings to determine which features may be unavailable. This will basically check file permissions and the settings within your php.ini file.
Even if there are a few minor errors click the “Install anyway” button to move onto the first stage. Fork is notorious for their multi-language support with a wide variety of translation options. If you plan on running the website with only one language pack then you can leave all these options as they are.
Hit next and you’ll have the option of installing various modules which are paired to Fork’s core. At the very least I always install the Blog and Analytics modules. But even if you don’t install any extras at this point you can always install them later from the admin panel. Also on this page you can choose to install sample data for initial testing of Fork CMS.
Database Connections & Final Touches
After you’ve gone through all the basic installation options you’ll be asked to enter the database information. This is where your backend information gets stored for page content, blog posts, usernames, etc. The hostname and port number are fine for 99% of server setups. The only reason to change these values would be if you specifically know if your MySQL server uses a different domain or IP address.
The other options simply require a database name, along with a root user and the password to that account. This user should have full privileges to create and edit tables inside your database. After entering all these details hit Next for the final piece of installation.
Now you just need to create an email and password combination for the root administrator on your website. The e-mail doesn’t actually need to be real, although it’s the default address where you receive contact messages and updates from the website.
Hit Finish installation and we are totally done! This final overview page will give you the option of heading to the homepage or logging into the backend. To explore further let’s hop into the administration panel to see what Fork can really offer.
Welcome to the Backend
Click the login button and you’ll be redirected to the unique admin URL. There is no way to access this link from the homepage, which is common on many WordPress themes. You could always edit the template to add a link somewhere on the site. But it’s honestly easy enough to remember the link as
/private/ subdirectory doesn’t physically exist on the server. So the request is actually handled by .htaccess redirects and PHP URL routing. This makes the process a bit more secure (yet still confusing when you are first getting started).
From the private login page enter the details you just setup and you’ll gain access to the Fork admin dashboard. The best way to get familiar with a new system is by going through and spending time in different areas in the system. But I’ll give a general overview of some important topics.
Managing Website Content
Possibly the most important reason to use a CMS instead of plain HTML is for managing your content. The ability to create and edit pages without the need for any code is beneficial to a wide audience. In this regard the Fork system offers a whole new world compared to WordPress or Joomla!/Drupal.
Click the ‘Pages’ tab at the top of the screen and you’ll be given a tree view of all your content. These are pages listed in the root of your website, along with sub-page menus which are initially hidden. To edit any page click once to select and a new window will appear.
This contains a template overview of the page and which module or widget are currently being displayed. You can change templates for any page to match specific layouts you need such as two-column, three-column, or maybe one center column. There are lots of custom page templates (different from full themes) you can setup which offer extensible solutions for any layout.
I’m going to click the 404 page and edit the default HTML content. Scroll down until you see the ‘Main’ block and inside you’ll find a block labeled ‘Editor’. This contains straight HTML which is output directly onto the page. If you hover, a series of buttons will appear on the side. Clicking the first pencil icon will open the editor window where you can add and replace content.
Unfortunately there is no easy way to access a full page editor inside the edit page screen. This is not similar to WordPress which gives you an entire dedicated setup for adding the page title and editing content. There are only two ways I have found to edit pages in fullscreen on Fork.
The first is by clicking the small black arrows icon (Maximize) within the textbox editor. This will maximize your window to fit the full screen view, then you can click again to save the changes once you’re done. The second method is to create unique content blocks and then add these into your pages as widgets.
This seems like an awkward workaround but it’s actually a lot easier for managing webpage content. To create a new content block, click on the ‘Modules’ tab then select ‘Content’ blocks. There should be none added into your website right after installation. But it’s super easy to create a new one since they only require a title and the content itself.
Take note that your content block titles will never be seen on the frontend of your website. These are only used to distinguish content when you’re adding a new widget into your page. Honestly the title is important just so that you can tell each content block apart from the others. But if you have a lot of content, this data management method will make your life a lot easier.
Publishing Blog Posts
If you installed the Blog module then you also have the ability to publish articles on your website. These are similar to content pages except you don’t have as much control over the template, nor the ability to add widgets or other custom modules.
To write a new post, click on the top ‘Modules’ tab and find Blog in the sidebar links. You’ll be shown a table of your current posts, the publication date, author, and number of comments. Another button in the corner labeled “Add article” will open a new page for editing.
From here you can select a blog category and add some tags to your new post. There is also a field to upload a featured image you want to display at the start of your article. The other interesting area is within the ‘SEO’ tab found at the top of the page. There are so many custom settings for editing the permalink, post title, meta keywords, and a lot of other cool stuff.
Analytics and Email Marketing
This is one section of Fork that really stands out among all the rest. You can actually connect your Google Analytics account into the dashboard of your admin area. Then whenever you log into the website you’ll get a nice display of recent visitors and overall traffic numbers.
There are definitely some WordPress plugins that can emulate this functionality. But offering analytics data to users right out of the box is impressive. What more can be done with marketing? Well there is an interesting module named “Mailmotor” which ties directly into your email marketing campaigns.
You can link to any Campaign Monitor account and have direct access to your statistics. You can send out campaigns and edit newsletters all from your Fork administrator panel. But even if you don’t have a Campaign Monitor account it’s still possible to send out emails to your registered users. Fork can make use of the PHP
mail() function and behave as a marketing tool as well as your primary CMS.
Almost every CMS offers solutions for developers to create their own extendable applications. Within Fork CMS these are called modules and may be embedded onto any template or page in your website.
During the installation process, you were given some options to install new modules which are included with Fork by default. However there is also a small gallery of growing modules which you can download and install to your website. You can access these modules by clicking the ‘Settings’ tab and then clicking ‘Modules’ in the sidebar.
There are additional details included for any module, along with managing install/uninstall for different features. If you download any of the .zip files from the modules gallery you can upload these directly from your admin panel. Some other popular choices for modules include the Photogallery, Newsletter, Polls, and even Twitter for displaying recent tweets on your website.
Working with Custom Themes
The Fork CMS theme system is also quite different compared to WordPress. All theme resources are coded using .tpl files instead of .php. This may be easy to pickup for some users who are familiar with templates. But even the core files are split up matching the format of the templating system.
For web developers who want to dive right into the code check out this KB support article which goes into greater detail. Themes may be comprised of as many different template files as you’d like. The basic display always uses core template files, but these will be overwritten by any matching files in your template folder.
What I love about Fork’s theming system is the ease of use for non-technical developers. The extensions page has a collection of additional themes you can download and install for testing. When you’re logged into the admin panel click the “Settings” tab and then select themes. You’ll notice a button in the top right corner labeled Upload theme.
It’s actually recommended that you upload themes still in the original .zip file. Fork can decompress zip archives and copy over the theme contents all on the backend. Plus installing a new theme is as easy as clicking to select a new one and then saving changes. If you want to get more information on a particular theme click the ‘Details’ link underneath each preview thumbnail.
Personally I have always enjoyed testing new software and open source projects. Early adopters are the trendsetters who weed through the garbage and pick up on the gems from beneath the rubble. And I do have a lot of good feelings after toying with Fork CMS. It’s my hope you will feel the same way.
This article should be enough to get you going with your own custom Fork CMS website. There are also plenty of helpful support links from the community of developers and webmasters. Plus the project is still in active development, so you should expect to see more exciting modules and themes to be released in the months to follow. If you have any similar ideas or questions about Fork CMS feel free to share them with us in the discussions area below.