Content Management - nucauldron/Northeastern-Cauldron-Yearbook GitHub Wiki

The first page that needs development would be one with standard content pulled from the database. Below are some aspects of these pages that we need to incorporate:

  • Header/Footer
  • Navigation
  • Standard text content
  • Right Column Modules
  • Top Module (Homepage only as of now)

How to accomplish

The header and footer will be simple enough. Depending on the content in the footer, we may not even have to work with the database for any of this content. We may want to pull the Editor's bio, but that may be it.

The navigation bar will be populated based on a numerical order associated with each page record in the database. Pages may also be children of other pages, and we will need to populate these as dropdown items.

The main text of each basic page can easily be pulled from a single column of the page's database entry. This can be strait text.

The right column modules will be separate database entries entirely. How we will structure these is up for debate. it would be nice to allow staff to create new modules from the administration console with a simple title and html content, but there may be times when we want something more intricate and would need to make a new class for it. I would like this to be a "plugin" system, but we would need to develop a means of plugin development to add this.

The top module as of now will only ever be the image slider seen on the homepage, but this may change. Would should include a column in the page content table for references to top modules separate from right column modules.

Special Cases

Some seemingly basic pages would be much more effective with alternative means of rendering. The FAQ page for example would be much easier to manage if each question/answer pair was simply entered and managed from the administration console much like the pages are. Populating the entries in this way would also allow us to add additional features to the page like the ability currently existing that scrolls the user to the answer they desire.

Another special case is for form management like on the contact page. Handling form submissions is not a simple task, and we would likely need to handle it from a backend script.

Both of these cases would be nicely rendered on specified pages with "hooks" such as {{faq}} or {{form="contact"}}. We should develop a standard for this before continuing.