Giter Club home page Giter Club logo

greengluoncms's Introduction

GreenGluonCMS :

PHP/MySQL Content Management System.

Technology Used :

  • PHP
  • MySQL
  • Google Oauth API
  • Google Custom Search Engine (CSE) API
  • FPDF

Big Sample Sites Using This Code :

  • EarthFluent.com: Teaching Languages to the World

    Provides language lessons and quizzing for English speakers wishing to learn one of 12 available languages. This uses Chrome-only's voiceSynthesizer to accurately reproduce accent and pronunciation, whether you are studying French or Korean. Also, Gooogle CSE (Custom Search Engine) is used here, using the image search to generate the images used to identify words in the lessons and quizzes.

  • WordWeight.com: Weighing Your Words

    This site is handling 100,000 different URL queries (i.e., site.com/word/), which then serves up results from a dictionary that was parsed into a MySQL DB.

  • CopyLeftLicense.com: Every Open Source License

    This site provides a basic way to upload and sort content that may then be liked, commented on, tagged, reposted on 40 different social media networks, downloaded in 18 different formats, listened to using a built-in audio player, and properly crawled by websites using the specifications for sitemap xml files and robots txt files.

Small Sample Sites Using This Code :

Note: All of the big and small sample sites are running on the exact same codebase.

Technology Implemented :

  • All Formats Available : Mobile, PDF, Printer-Friendly, Text, RTF, EPub, DAISY, SGML, JSON, XML, CSV, Latex, OPDS, RDF, and others. User merely needs to change their given URL's file-extension to get the alternate version.
  • Audioplayer for text using Google Chrome's Voice Synthesizer.
  • User tagging, liking, commenting system, where users may authenticate through the site's own login.php, or through their gmail account.
  • Document Generation Caching with Auto-Invalidation as soon as the content changes.
  • MySQL FullText indexing and searching.
  • SiteMap XML Spec and SiteMap-to-Crawler Curl-Pinging for 500 Search Engines.
  • Native, Light-Weight Stats-Tracker.
  • Lexical Parsers Capable of Generating Keywords, Definitions, or Facts from Text.
  • Autogenerated Share Links for 40 Different Social Media Sites.
  • All Base Conversions and Customizable Base Alphabets (Hex, Base64, etc.).
  • Internal Server Error Logging and Handling System.
  • Number Theory, RSA decrypter/encrypter, and Associated, Cryptology Functions (these functions are not used in security of the code, they are for cryptological research purposes)
  • Robots.Txt Autogeneration in TXT, XML, and HTML formats.

How Does it Work? :

  • The .htaccess file in each domain redirects every URL to site.com/index.php.
  • index.php includes standard files and initiates the Handler with HandleRequest()
  • The Handler puts together the basic information, like what filetype is being request, and redirects user as necessary to one of the script/*/ files, inheriting one filetype parent at script/types/*/, probably using several trait/script/*/ files, and ultimately it displays the actual template at tempaltes/site.com/scriptname/scriptaction.php.

Why Should I Use This? :

  • The Handler

Image of Entry Pieces

The handler looks at each of the pieces in the query and selects the Entry records (representing the actual page) and the Assignment record (representing the connections between the various parent and child pages).

Image of Entry Query

This query selects the Entries and the Assignments based on "chinese" (a page about learning chinese), "nouns-animals-part-14" (lesson 14 about animals), and "cat" (a single word which is covered in this lesson).

Image of Entry List

Above is the list of entries and their common connections. Each page is the same exact record types: an Entry to represent the page, and an Assignment to represent its connection to a parent page.

Image of Entry Site

With all of the techno babble covered, what we get above is a magnificient looking site. So what's the advantage of setting up the DB like this?

Image of Entry Site

Because there are no DB changes required for any new types of pages! We have a page about teaching chinese, a subpage that's a lesson, and a subpage that's a word in that lesson. They are all Entry records, so no DB changes are required to make work with the above child-record types.

Image of Entry Site

And no code changes are required either for completely new parent or child types! Every page, whether it is the highest level (website.com) or the lowest level in this demo (website.com/a/b/c/), all of them use the same exact view.php, login.php, browse.php, etc., scripts!

Image of Entry Site

Need to customize the display for specific record types? Easy! The above file is located at: templates/earthfluent/view/display_greatgrandchildof_EarthFluent.php. This is the file that displays for the "third" level children of the main website.com, so it'll show up for every website.com/a/b/c/view.php?action=display page, no matter what a, b, or c are. Notice that functionality here for child records updates dynamically based on whether the given a, b, or c actually uses those child records.

Image to Modify Level-1 of Site

Image to Modify Level-2 of Site

Image to Modify Level-3 of Site

Image to Modify Level-4 of Site

All of the Entry records associated with a URL are the same exact type of record, so they can each be modified or updated using the same exact script. Why would the script need to be different? If each letter in a/b/c/d/view.php is an Entry, why would they need different scripts to modify the data? This simplifies improvements and additions, making it so that a new feature for one type of page can be come a new feature for every type of page.

For all these reasons, virtually an infinite number of sites, with an infinite number of features, can be built, designed, scaled, and improved all within the same software environment. That is the advantage to using this software.

License :

Green Gluon CMS is hereby released under the BSD-3-Clause License.

Software being used under the Green Gluon CMS, such as Google OAuth, Google CSE, FPDF, etc., may have its own terms and services outside of the above-given license. I make no claims on the terms-of-use of source code files appearing here that I did not write.

greengluoncms's People

Contributors

holdoffhunger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.