CIFullCalendar v3 Documentation


3.5.5.0


Introduction

CIFullCalendar is a server-side dynamic web application that is responsive to any layout of a viewing screen. The “Super Saiyan Fusion” power of CIFullCalendar allows users to organize, plan and share events to everyone. Simply, install it to your server and become a member then use the wonderful features by easily manipulating your events by dragging, dropping, resizing, clicking, touching, categorizing, grouping, filtering, linking and importing/exporting.

How can I use this script on my site? If you already or considering having a site or a web app built on CodeIgniter framework, styled by bootstrap or other responsive theme and storing the data on MySQL, Sqlsrv, Oracle database etc. supported by CI this calendar script can be very useful. For example, if you like to create a event site, booking site, appointment site, personal scheduling site, or any other site using CI framework the script can be easily plug-in into it. The idea is to display shared events on a calendar on your frontend (visitors page) of your site and control it at the backend (admin page) similarily like any other cms site that can easily edit contents and have it displayed to the public. Otherwise, if time allows, I am available to give support.

Before Installation

Requirements

Minimum Requirements
  • PHP Scripting v5.5.x
  • Apache webserver
  • MySQL 5.1 with MyISAM tables or any with CodeIgniter supported databases.
  • phpMyAdmin access to setup the initial database
  • A Domain and a Server with FTP support
  • An FTP tool to upload the files
  • Microsoft IE or Edge
Recommended Requirements
  • PHP Scripting v5.6.x
  • Apache webserver
  • MySQL 5.6+ with preferably with InnoDB tables or any with CodeIgniter supported databases.
  • phpMyAdmin access to setup the initial database
  • A Domain and a Server with FTP support
  • An FTP tool to upload the files
  • Best experience Chrome, Opera or Firefox
All CIFullCalendar components supports popular modern browsers.

Installation

Step 1: Unzip/Export all files

Unzip all files within the “upload_source” zip to your local machine first.

Step 2: Configuration

Go to Application/config/config.php:
  • Edit your uri protocol. This item determines which server global should be used to retrieve the URI string. The default setting of 'REQUEST_URI' works for most servers. If your links do not seem to work, try one of these QUERY_STRING or PATH_INFO
    uri_protocol
  • Edit your encryption key. This data is recommended because it controls the cryptographic process and permits a plain-text string to be encrypted, and afterwards - decrypted.. Try: Encryption key Generator.
    encryption_key
  • Edit your session name. This is important when you want to run more then one instance of the application on the same (sub)domain because one instance could collide with another instance (overwrite cookies). In fact, sessions from other applications could also interfere, so do this for sure!
    config_session
  • Enabling Cross Site Request Forgery protection. This is strongly recommended when accepting user data.
    csrf
For more information: https://codeigniter.com/user_guide/general/security.html
Go to Application/config/ion_auth.php:
  • Edit IonAuth Settings. Modify the authentication system configurations.
    ionauth
For more information: http://benedmunds.com/ion_auth/
Go to Application/config/database.php:
  • Create a database on your hosting platform and fill out the information in this file on LINE 67 to 73. The other LINES are Optional.
    LINE 71 If you want to use mysqli or mysql. Keep in mind, mysql is being depreciated and may not work for newer mySQL releases. Also, sqlsrv db is supported however, porting it from mySQL to msSQL is required.
    LINE 72 requires you to add a desire prefix of your db tables. Renaming the prefix "here" must match the prefix within the database tables.
    database
For more information: https://codeigniter.com/user_guide/database/configuration.html
Go to Application/config/email.php:
  • Most web host provides outbound smtp hosting. This settings is required for email notifications with HTML templating.

    Requires example:
    $config['smtp_host'] = 'smtp.[NAME_OF_DOMAIN].com'; // outbound smtp host
    $config['smtp_user'] = '[NAME_OF_EMAIL_ADDRESS]'; // outbound smtp user email
    $config['smtp_pass'] = '[EMAIL_PASSWORD]'; // outbound smtp user password


For more information: http://codeigniter.com/user_guide/libraries/email.html

Step 3: Import the SQL file to your database

Browse the db folder and select the mysql_database.sql SQL file and import using your Database Tool.

Step 4: Upload all files

Upload all files except db folder to your desired web folder (or root) on your domain server.

Step 5: Operating CIFullCalendar

After completing the installation instructions, you're now ready to operate CIFullCalendar for the first time. Navigate your browser to the following details to login:

Log in with the default "admin" and start editing your site settings:
  • Visit the URL [YOUR DOMAIN NAME]/index.php/admin/login
    • username: admin
    • password: password1
Log in with the default "user" and start editing your calendar:
  • Visit the URL [DOMAIN NAME]/index.php/profile/login
    • username: user
    • password: password
Register a new user/member and start editing your calendar:
  • Visit the URL [DOMAIN NAME]/index.php/register

A successful sign-in will direct you to your calendar for editing and view other fun features.

Features

Currently, CIFullCalendar has evolved to become a modern, secure and efficient tool. Plus more:

  • DB Driver – Supports MySQL or any CodeIgniter supported databases.
  • Sitemaps – Search Engine Optimization purposes (yoursite.com/sitemap.xml)
  • JSON – Share all of your public events by url. (yoursite.com/home/json).
  • RSS Feeds – Share your public events by rss feeds (yoursite.com/feeds).
  • ICAL – Members are able to export a single event to their Google, Yahoo and live calendars or to a ICAL Format (ics/ical).
  • Supports FullCalendar Scheduler - Purchase FullCalendar Scheduler add-on license that displays events well and assign them easily to various categories. More details here
  • Event Filtering – Easily filter/view your shared events on your calendar
  • Group Sharing – Easily share events among members in various groups
  • Overlap – Deny or Allow events to overlap other events.
  • Draggable Events - Allows members to easily drag and drop events by category on the calendar.
  • Calendar settings - Allows administrator and members to adjust the FullCalendar settings easily.
  • Attachments – Add/Update/Delete events with an attachment (txt,docx,zip...).
  • Recurring Events – Add/Update/Delete events multiple times weekly, monthly etc. by clicking, touching, resizing and dragging.
  • Background Events – Add events that appear as background highlights.
  • Touch Support – Update or create events by touching or dragging events. Supported by many touch devices.
  • Import/Export – Allowing members to Import and Export events in bulk using ical format (ics/ical).
  • Google Maps – Members are able to use the google maps to view all their events location instantly.
  • Search – Allowing visitors or members to search for public or their own private events.
  • Event Category – Members are able to filter events by categories.
  • Event Sources – Members are able to view calendar feeds from other urls on their own calendar.
  • Notifications – Email notifications about public events and others.
  • IonAuth - A simple and lightweight authentication library for the CodeIgniter framework. (Currently using IonAuth v2.6.0).
  • Administration – Administrators of the site are able to moderate the site and other activities.
  • Member Profile – Members of the site are able to manipulate their events and other activities.
  • Group – Easily become or not a member of a particular group.
  • Member's unique url – Share your own public events by URL (yoursite.com/yourusername)
  • CMS – Easily create/update/delete pages and page contents.
  • Print friendly - Use your browser to print your calendar events in its current view.
  • Template – Easily customize your own themes. (Currently using bootstrap v3.3.6).
  • Icons – Easily add icons within your own themes. (Currently using font-awesome v4.6.3).
  • Language – Easily select your desire language. (en default language code). Language Request

Notes

Overview

A successful installation requires a properly configure Apache server.
Please do checks within your php.ini because properly adding a desire date.timezone for example is a requirement.

Google Maps requires API Key. reference here

FullCalendar Scheduler installation requires API Key. reference here.

Developers Guide

Application Assets

The assets folder contains all css, js, images and other plug-ins neccessary for CIFullCalendar unique functionality.
-> Within the assets/[NAME_OF_THE_THEME]/* folder, the files there determines the UI of the frontend/backend of the CIFullCalendar.
-> Within the assets/plugins/fullcalendar-2.* folder, the files there determines the UI and functionality of the frontend/backend Fullcalendar.


  • assets/plugins/fullcalendar-2.* folder:

    The gcal.js requires a API key: reference here

Application Components

The diagram below show CIFullCalendar MVC Design Method.


  • Application/controller folder:

    The files within the Controller folder are depended on the libraries and models files for displaying the calendars events.
    -> The admin folder is the backend of the successful sigin by a administrator and there they moderate events.
    -> The profile folder is the dashboard of the successful sigin by a member and there they can create and update events.
    -> The home.php is responsible for frontend display of the public calendar events.

    Including others controllers for CIFullCalendar unique functionality...

  • Application/core folder:

    The *_Loader.php is an extension of CI Loader. It is used to load all elements.

  • Application/language folder:

    All languages are loaded within a sub-folders eg. "english". Within each folder, the language definitions are set and the file is name appropriately with the lang code eg. en_lang file is the default language used. The default language is set within site administration.

    Including others languages for CIFullCalendar unique functionality...

    Add your language with the appropriate words go to: https://github.com/CIFullCalendar/cifullcalendar/tree/master/application/language

  • Application/libraries folder:

    The Auth library now Ion_Auth are used for authenticating users and determine the authority level of each user.
    The Icalendar library is used for importing and exporting of ics/ical files
    The Template library is for better organizing of all view files for building new custom themes.

    Including others libraries for CIFullCalendar unique functionality...

  • Application/models folder:

    The Models files has all the CodeIgniter supported dbdrivers queries and the classes/functions needed by controller files

    The fullcalendar_model model has all queries functions needed for the calendar purposes.
    The member_model model has all queries functions needed for users.
    The gmaps_model model has all queries functions needed for google maps.
    The eventsources_model model has all queries functions needed for all event sources.
    The category_model model has all queries functions needed for all categories.
    The setting_model model has all queries functions needed for site control.

    Including others models for CIFullCalendar unique functionality...

  • Application/view folder:

    All the CIFullCalendar HTML, JQuery, CSS and others elements and or PHP variables are parse to view files.

    The view folder has all files necessary for template purposes.
    -> The frontend (views/[NAME_OF_THE_THEME]/frontend)
    All sub-folders are for each front-pages controller files and are loaded with masterpage
    -> The backend (views/[NAME_OF_THE_THEME]/backend )
    All sub-folders are for each admin/users controller files and are loaded with masterpage

CIFullCalendar - Terms and conditions

1. Preamble

This Agreement governs the relationship between you, either an individual or a Legal Entity ("Licensee"), and Andre Gardiner, a private person ("Licensor"). This Agreement sets the terms, rights, restrictions and obligations on using CIFullCalendar ("The Application") created and owned by Licensor, as detailed herein.

2. Definitions

"The Application", "Software", "Script", "Item" or "CIFullCalendar" the owned material by Licensor, subject to the terms of the standard License. The Application is publicly, uniquely, and in its entirety recognizable by the "CIFullCalendar" name ("Application Name").

"The Application Release" or "Release" shall mean a set of files distributed by Licensor, or anyone authorized to distribute it, that represents the Software. A Release is uniquely identified by the Software Name and codes describe in clause 14 described at CodeCanyon. Such code is generally referenced as the Software version or revision number, or a combination.

"Release Date" shall mean the day that Licensor started distributing a Release.

"Product" shall mean a single computer program or one or more websites ("Program") (i) owned by Licensee, or (ii) to which the owner grants Licensee the permission to act in behalf of the owner for the purposes of this Agreement. See Standard License at CodeCanyon. (http://codecanyon.net/licenses/standard)

3. License Grant

Licensor hereby grants Licensee, in accordance with one of the Standard Licenses described at CodeCanyon, Regular License and Extended License, all with accordance with the terms set forth and other legal restrictions set forth in 3rd party software used while running Software.

4. Agreement Acceptance

This Agreement is automatically accepted by parties involved as long as Licensee is in possession of legal evidence ("Legal Evidence") that the acceptance has taken place. The Legal Evidence can be represented by (i) a copy of this Agreement signed by Licensee and Licensor or (ii) a valid Certificate of License Ownership, provided by Licensor and addressed to Licensee. The Legal Evidence must precisely indicate this Agreement, the Software Name, and the Standard Licenses that Licensee has chosen.

Legal Evidences for different combinations of Standard License, Sites, and Products will not restrict each other and will not interfere in the rights granted to Licensee by each of them.

Legal Evidences are not transferable to different Sites and Products.

5. Limitation on Releases

This agreement is valid for all Releases of the Software with Release Dates within or before the 365 days that follow the Effective Date ("Upgrade Period"). Licensor has no obligation to provide you any Release that is not released for general distribution to other CIFullCalendar licensees. Nothing in this Agreement shall be construed to obligate Licensor to provide additional Releases to Licensee under any circumstances.

6. Liability

To the extent permitted under Law, The Software is provided under an AS-IS basis. Licensor shall never, and without any limit, be liable for any damage, cost, expense or any other payment incurred by Licensee as a result of Software's actions, failure, bugs and/or any other interaction between The Software and Licensee's end-equipment, computers, other software or any 3rd party, end-equipment, computer or services. Moreover, Licensor shall never be liable for any defect in source code written by Licensee when relying on The Software or using The Software's source code.

7. Warranty
  • 7.1. Prior Inspection: Licensee hereby states that he inspected The Application thoroughly and found it satisfactory and adequate to his needs, that it does not interfere with his regular operation and that it does meet the standards and scope of his computer systems and architecture. Licensee found that The Application interacts with his development, website and server environment and that it does not infringe any of End User License Agreement of any software Licensee may use in performing his services. Licensee hereby waives any claims regarding The Application's incompatibility, performance, results and features, and warrants that he inspected the The Application.

  • 7.2. Intellectual Property: Licensor hereby warrants that The Software does not violate or infringe any 3rd party claims in regards to intellectual property, patents and/or trademarks and that to the best of its knowledge no legal action has been taken against it for any infringement or violation of any 3rd party intellectual property rights.

  • 7.3. No-Warranty: The Software is provided without any warranty; Licensor hereby disclaims any warranty that The Software shall be error free, without defects or code which may cause damage to Licensee's computers or to Licensee, and that Software shall be functional. Licensee shall be solely liable to any damage, defect or loss incurred as a result of operating software and undertake the risks contained in running The Software on License's Server[s] and Website[s].

8. No Refunds

Licensee warrants that he inspected The Software according to clause 7.1 and that it is adequate to his needs. Accordingly, as The Software is intangible goods, Licensee shall not be, ever, entitled to any refund, rebate, compensation or restitution for any reason whatsoever, even if The Software contains material flaws.

9. Indemnification

Licensee hereby warrants to hold Licensor harmless and indemnify Licensor for any lawsuit brought against it in regards to Licensee's use of The Software in means that violate, breach or otherwise circumvent this license, Licensor's intellectual property rights or Licensor's title in The Software. Licensor shall promptly notify Licensee in case of such legal action and request Licensee's consent prior to any settlement in relation to such lawsuit or claim.

10. Jurisdiction

Licensee hereby agrees not to initiate class-action lawsuits against Licensor in relation to this license and to compensate Licensor for any legal fees, cost or attorney fees should any claim brought by Licensee against Licensor be denied, in part or in full.


Sources and Credits

I've used the following images, icons, js or other files as listed.

  • Codeigniter v3.1.4 by EllisLab, Inc., British Columbia Institute of Technology and contributors
  • FullCalendar v3.4.0* by Adam Shaw and contributors
  • JQuery v3.1.0 with JQuery UI by jQuery Foundation and other contributors Licensed MIT
  • Moment.js v2.18.1 & moment-timezone.js v0.5.12 Tim Wood, Iskren Chernev, and contributors
  • IonAuth v2.6.0* by Ben Edmunds and contributors
  • Bootstrap v3.3.6 by Twitter, Inc. and contributors
  • Bootstrap-datetimepicker v4.17.42 by Eonasdan and contributors
  • Bootstrap-select v1.11.0 by Silvio Moreto and contributors
  • Bootstrap-table v1.11.1 by Zhixin Wen and contributors
  • Font Awesome v4.7.0 by @davegandy and contributors
  • Google Maps API v3 by Google
  • Summernote by v0.8.3 Alan Hong and other contributors
  • MarkerClusterer v1.0.1 by Luke Mahe and contributors

Thank you for your support and purchase of “CIFullcalendar v3”. If you have any questions that are beyond the scope of this help file, please feel free to email. Thanks so much! No guarantees, but I'll do my best to assist. If you have a more general question relating to the web application on CodeCanyon, you might consider visiting the forums and asking your question in the "Item Discussion" section.

Andre Gardiner
Document review 5/8/2017

Go To CIFullCalendar v3