Xpan CMS v2.0 ============= Requirements ------------ - admin level access to manage logins - user level access to manage content - activate ip lock ability - password retreival - generate main level navigation - page titles - meta information - banners (if applicable) - order number - lock pages (Xpan super user) - active/deactive - specify navigation location (main, footer) - generate hierarchy of sub pages - page titles - meta information - banners (if applicable) - option to choose same as main level for title, meta, and banners - order number - active/deactive - banner management - check banners before removing for linked records - allow for flash banners - news - will require a static news.html/news.php page (locked) - allow news to be a pdf or content - active/deactive - callouts - not sure how this is going to work yet :) - should NOT allow HTML modifications, just plain text - contact page - will require a static contactus.html/contactus.php page (locked) - allow form customization - allow admin to manage email addresses for the form - form should be able to accept attachments - allow for image verification on form - allow different levels of page modifications, basic WYSIWYG, advanced WYSIWYG, advanced source code modifications - page managment section should reflect site layout for easy navigation, this will require reverse integration from design (?) - allow for backups Locked Pages ------------ (these pages can not be deleted, only modified) - index.html - news.html - contactus.html - privacy.html - terms.html Technology ---------- - use php for scripting - use mysql for database - use Fckeditor for WYSIWYG editor (http://www.fckeditor.net/) - use Javascript where applicable - htaccess modifications to parse HTML as PHP - lock/encrypt PHP files to protect technology (not 100% full proof unfortunatly, but will keep most of the would-be-developers out of our code) - require a license key which will be bound to the domain, this will prevent taking the code and putting it on another website Install Notes ------------- - use php functions to call items, pass in paramaters like style, orientation, size, etc - integration should be done by installing the prepackaged file, setting up the database, and a few modifications for complete customization (include step-by-step notes) - integration with design should be completed with in a couple of hours, depending on the amount of customization required - have different pre-packaged modules for the developer to choose from, like navigation type (standard, flyout, etc). This would be something we could continue to add and build to our cms. Tables ------ config -- ip_lock license full_lock (for pages that use images for navigation, md5(full) or md5(partial)) img_verification (contact page) flood (contact page) - in seconds, zero for no flood protection user -- pkuser first_name last_name email password (md5) date_added active login -- pklogin fkuser timestamp IP modified -- pkmodified fkuser table field timestamp old_value comments page -- pkpage fkpage fkbanner type (0 main, 1 subpage) filename (if main) page_title meta_keywords meta_description content date_added order active callout -- pkcallout date_added heading callout order active callout_link -- pkcallout_link fkcallout fkpage callout_img -- pkcallout_img fkcallout image properties (maybe split up?) news -- pknews date_added headline news order (0 order by date) active news_link -- pknews_link fknews fkpage contact -- pkcontact field_name type (text, textarea, dropdown) additional (dropdown values - comma seperated) order contact_flood -- pkcontact_flood timestamp ip contact_email -- pkcontact_email email type (to, cc, bcc) file_category -- pkfile_category category file -- pkfile fkfile_category type (jpg, gif, pdf, doc, etc) date_added file_link -- pkfile_link fkfile fkpage