All Projects → gnat → nc-cms

gnat / nc-cms

Licence: other
💡 Embeddable, lightweight, simple PHP CMS. Content Management System.

Programming Languages

PHP
23972 projects - #3 most used programming language
CSS
56736 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to nc-cms

Laracms
LaraCMS 是在学习 laravel ( web 开发实战进阶 + 实战构架 API 服务器) 过程中产生的一个业余作品,试图通过简单的方式,快速构建一套基本的企业站同时保留很灵活的扩展能力和优雅的代码方式,当然这些都得益Laravel的优秀设计。同时LaraCMS 也是一个学习Laravel 不错的参考示例。
Stars: ✭ 588 (+2840%)
Mutual labels:  content-management, content-management-system
laravel-storyblok
Make Laravel and Storyblok work together beautifully.
Stars: ✭ 45 (+125%)
Mutual labels:  content-management, content-management-system
Lokum
Manage a website’s content using Trello
Stars: ✭ 26 (+30%)
Mutual labels:  content-management, content-management-system
boom-core
BoomCMS core code. BoomCMS is a user friendly, WYSIWYG CMS based on Laravel. Open source and released under the MIT license.
Stars: ✭ 13 (-35%)
Mutual labels:  content-management, content-management-system
Quokka
LOOKING FOR NEW MAINTAINER - Quokka is a Content Management System - `docker run --rm -it -p 5000:5000 quokka/quokka`
Stars: ✭ 2,198 (+10890%)
Mutual labels:  content-management, content-management-system
Laravel 8 Simple Cms
Laravel 8 content management system for starters.
Stars: ✭ 444 (+2120%)
Mutual labels:  content-management, content-management-system
vaahcms
VaahCMS is a laravel based open-source web application development platform shipped with a headless content management system (CMS).
Stars: ✭ 56 (+180%)
Mutual labels:  content-management, content-management-system
alfresco-mvc
Glue between SpringMVC @controllers and Alfresco
Stars: ✭ 22 (+10%)
Mutual labels:  content-management, content-management-system
Contentful.swift
A delightful Swift interface to Contentful's content delivery API.
Stars: ✭ 132 (+560%)
Mutual labels:  content-management, content-management-system
Personal Management System
Your web application for managing personal data. <[email protected]>
Stars: ✭ 2,027 (+10035%)
Mutual labels:  content-management, content-management-system
pageflo
A new super flexible open source CMS
Stars: ✭ 34 (+70%)
Mutual labels:  content-management, content-management-system
vscode-front-matter
Front Matter is a CMS running straight in Visual Studio Code. Can be used with static site generators like Hugo, Jekyll, Hexo, NextJs, Gatsby, and many more...
Stars: ✭ 962 (+4710%)
Mutual labels:  content-management, content-management-system
Srcms
SRCMS企业应急响应与缺陷管理系统
Stars: ✭ 282 (+1310%)
Mutual labels:  content-management, content-management-system
Textpattern
A flexible, elegant, fast and easy-to-use content management system written in PHP.
Stars: ✭ 572 (+2760%)
Mutual labels:  content-management, content-management-system
Strapi
🚀 Open source Node.js Headless CMS to easily build customisable APIs
Stars: ✭ 41,786 (+208830%)
Mutual labels:  content-management, content-management-system
Scrivito example app js
Scrivito is a JavaScript-based SaaS Content Management Service, built for digital agencies and medium to large sized businesses. This example app shows Scrivito’s features and is a great basis for your own Scrivito website projects.
Stars: ✭ 67 (+235%)
Mutual labels:  content-management, content-management-system
flute
The Application Framework Built for Powerful, Secure features and add-ons
Stars: ✭ 14 (-30%)
Mutual labels:  content-management, content-management-system
ulboracms
Ulbora CMS is a self-contained CMS (no database needed) written in Golang. It uses a JSON datastore with content saved in both json files and in memory. You can download and upload a single binary backup file containing content, images, and templates as needed. It also has a built-in mail sender.
Stars: ✭ 42 (+110%)
Mutual labels:  content-management, content-management-system
Revolution
MODX Revolution - Content Management Framework
Stars: ✭ 1,218 (+5990%)
Mutual labels:  content-management, content-management-system
Cms
Multilingual PHP CMS built with Laravel and bootstrap
Stars: ✭ 2,342 (+11610%)
Mutual labels:  content-management, content-management-system

Embeddable, lightweight, simple PHP CMS.

Website "add-on" style integration. Retains the most important features of a modern day CMS:

  • User login.
  • File uploads.
  • Edit content and page titles.
  • PHP 7 and up.

No database required. A very fast flat file storage is used by default. A database is optional.

If you prefer to use a database backend, MySQL is available. You can also use anything else supported by PHP PDO.

Language support:

  • English
  • German

Integration Sample.

<?php require('nc-cms/system/start.php'); $cms = new NCCms(); ?> <!-- #1 Include CMS header. -->
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php $cms->Title('home_title'); ?></title> <!-- #2 Allow website title editing. -->
        <link rel="stylesheet" type="text/css" media="screen" href="<?php $cms->CSS(); ?>" /> <!-- #3 Include CSS. -->
    </head>
    <body>
        <?php $cms->ControlPanel(); ?> <!-- #4 Include CMS control panel. -->
        <div class="content">
            <?php $cms->ContentHTML('home_content'); ?> <!-- #5 Add editable content area. -->
        </div>
        <div class="footer">
            <?php $cms->LoginLink(); ?> <!-- #6 Generate login link. -->
        </div>
    </body>
</html>

Login Screenshot.

nc-cms Screenshot 2

Editor Screenshot.

nc-cms Screenshot 3

Sample Website Screenshot.

nc-cms Screenshot 1

Some kind words from the community...

"I can't begin to describe to you what a life saver it is not having to rebuild an entire site on a CMS platform."

"Overall, a very quick way to start up a stable, dynamic site with minimal overhead!"

"Thanks for such a killer cms that is so simple.. great concept!"

Installation.

  1. Create an empty directory and switch into it.

  2. Either use git clone https://github.com/gnat/nc-cms.git . or download a zip and extract it inside.

  3. Edit /nc-cms/config.php. Set all of the general settings. If you would like to use nc-cms's database support (optional), set NC_USE_DB to true and configure the database connectivity settings.

  4. Copy your new project to your web server. Upload it where NC_CMS_URL refers to from /nc-cms/config.php. The root of your domain is recommended (http://www.example.com/nc-cms/ or http://localhost/nc-cms).

  5. Optionally, if you're using database support, visit /nc-cms/setup_database_mysql.php from your server in your web browser.

  6. Installation complete!

Integration with an existing website.

Any web page file will work (.php, .html, .htm). If you would like to use it with an .html or .htm file, first convert it to .php by changing the file extension. (Also remember to change your internal links to .php where necessary.)

  1. To activate nc-cms on a page, insert the following code before your opening <html> tag. It is possible that you may need to change this path depending on where you've uploaded nc-cms.

     <?php require('nc-cms/system/start.php'); $cms = new NCCms(); ?>
    
  2. To enable "title editing", insert the following code inside your <title> tag. custom_name can be anything you like. Alphanumeric and underscore characters are supported. We personally recommend a naming convention of page_title (Examples: home_title, about_title).

    TIP: If you'd like another page to use the same title, use the same custom_name.

     <?php $cms->Title('custom_name'); ?>
    
  3. Include the CSS used by nc-cms: insert the following code inside of your <head> tag.

     <link rel="stylesheet" type="text/css" media="screen" href="<?php $cms->CSS(); ?>" />
    
  4. When logged into nc-cms, this will enable the control panel to appear. Insert the following code just after your opening <body> tag.

     <?php $cms->ControlPanel(); ?>
    
  5. The following lines will place editable content areas. These will display any content assigned to the custom_name, and when you are logged in, will enable you to edit them. If the assigned content does not exist, a placeholder will be created automatically. Insert these anywhere in between your <body> tags.

    These editable content areas come in two flavours: HTML and string.

    The HTML content area is the most common. These areas can contain many paragraphs, images, headers, links and more.

    Create an HTML area like this:

     <?php $cms->ContentHTML('custom_name'); ?>
    

    The string content area is used for single lines of text. When used, these are generally placed inline between the header and paragraph tags themselves as per your convenience.

    Create a String area like this:

     <?php $cms->ContentString('custom_name'); ?>
    

    Again, custom_name can be anything you wish. I personally recommend a naming convention of page_content (Example: home_main, home_sidebar, about_contact, all_copyright etc.).

    TIP: If you would like to display the same content across multiple pages, use the same custom_name. This is useful for content such as copyright information.

  6. Login Link (Optional). You may want to place a link on the page for easy access to the nc-cms login page. If this is the case, use the following line of code:

     <?php $cms->LoginLink(); ?>
    

    Or even simpler:

     <a href="https://github.com/nc-cms">Login</a>
    

Managing Content.

  1. Visit the page you would like to edit (you will be re-directed here after login).

  2. If you created a login link, use that now. Otherwise you can get to the login page by visiting the /nc-cms directory directly (Example: http://www.example.com/nc-cms. If the login is a success, you will re-directed to the previous page in editor mode.

  3. You will notice two things after successfully logging in: A new control panel will appear at the top of your page. Depending on how many editable content areas you added during your integration, there will be a number of edit buttons scattered throughout your web page. Use these buttons to edit the section associated with it.

  4. Edit buttons will direct you to a content editor. Make your changes here and click save. If all has been done correctly, you should be redirected to your live page, with your changes applied.

  5. Logout! Logging out is essential for preventing unauthorized changes to your website by anyone using the same computer.

Upgrading.

You may want to upgrade your version of nc-cms down the road.

  1. Back up your settings and content: FTP into your web server. Go to the /nc-cms directory and back up your /nc-cms/config.php file and /nc-cms/content directory.

  2. Delete the /nc-cms directory and replace it with the new version. Download the latest version of nc-cms. Remove the /nc-cms directory that is currently on your web server. Extract and upload the new /nc-cms folder to the former installation location on your web server.

  3. Re-upload your config.php file and /content directory to the new nc-cms installation. Replace as necessary.

  4. Upgrade complete! You can confirm your update by logging into nc-cms. The version number is displayed in the top-left of the menu bar. Remember, you may need to explicitly clear your browser cache after the update in order to see all of the changes.

Credits and License.

Designed and maintained by Nathaniel Sabanski of NConsulting.ca. Licensed under the zlib/libpng license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].