There are many levels of customization to a ccHost installation with each level requiring more and more technical skill. It is not obvious what kind of customization is possible at each level so here are some hints that might help you to decide what you need to do in order to achieve your goals.
In ccHost 5 there are dozens of customizations that do not require any coding. You can do all these simply by filling out forms:
- Create and manage formatted content pages
- Upload banner images (logos)
- Customize the text (menus, prompts, labels, etc.)
- Create your own submit form types
- Page layouts (e.g. placement of menus, tabs, widgets, etc.)
- Select default font family and size from a list.
- Select color schemes.
- Select and order sidebar extras (aka widgets)
- Select how your forms are laid out from a list of available layouts.
- Save and retrieve multiple versions of skin profiles
- Create 'mini sites' with different look and feel for each one
- Add file types to the system
- Select user content listing types from a list of options
- Configure the query browser
For more options see Basic HOWTOs.
All user content (uploads, topics, reviews, etc.) is display via the Query API. With a little knowledge of URL building you gain control over what uploaded content is displayed in the settings of your choice. For example if you want to show the most popular uploads tagged 'remix' for the last two weeks you specify that using URL syntax in a navigation tab, including the title to display:
tags=remix&sinced=2 weeks ago&sort=rankings&title=Hot Remixes
The query engine also works with topic contents.
The way the system is set up, all of the customizations in the 'Admin' section above are actually fancy ways of manipulating configuration files already in your system, many of which can be superseded by simply making your own version.
Even if you don't exactly know what the configuration syntax is or how it works, you can easily customize your installation with some judicious cut and paste in configuration files that the system will look for in your <local_files> directory. These include:
- How to replace strings in forms, prompts and listings.
- Create your own custom color scheme.
- Create specialized sidebar widgets.
HTML/CSS Markup Customization
If you are comfortable with a little HTML and CSS hacking and you still want more control over your installation then you will find quite a large world open up to you.
If you are generally happy with the overall look and layout of the site but want to change specific screen, you can create customized display layouts and then select them through the admin screens:
- Custom query templates (way more powerful than you might first realize)
- Static HTML (and PHP) pages
- Upload page
- Upload listings
- Query browser listing
- Form layouts
Creating your own skin is how you take ultimate control of the overall look and feel of your installation. Learn how this is done in the Skins section.
There are many customizations that can be done with just a few lines of code. Some of those the more popular ones are:
- Add or remove form fields including the submit forms
- Add data fields per user and per upload.
- Retrieving custom data for listing display in a template
- Saving and retrieving data from the system configuration
- Adding an admin setting to settings menu
- Mapping a URL to your custom code
ccHost triggers events at certain key moments and you can register to be notified at those times. The more popular ones of those are:
- On file uploaded or deleted.
- On display of user profile.
- When the remix sources for an upload has changed
- When a new topic has been added or deleted
- When a session is starting.
- On every page render.
- Several different phases of a form being constructed (this applies to every single form in the system)
There are many other hooks in the system (over 100) many of which still fall in the category of "easy to hook" even if the hook itself may or may not require heavy lifting. These include:
- Adding % macros that expand on file renaming and ID3 tagging
- Adding and verifying new parameters to the query engine
- Replacing the file verifier
- Adding a new search type