JotCache is advanced solution for page caching in Joomla 1.5 search framework.
JotCache consists from JotCache Plugin and optionally (but strong recommended) from
JotCache Component. JotCache Plugin is extended replacement of standart System-Cache
plugin with following enhancements :
- Fast-changing modules on the web page can be refreshed with actual content
during each user access. You can mark the module positions with fast changeable
content in site template and these position will be refreshed during each
user access to related web page. The rest parts of page will be taken from cached
content as it is usual by standart plugin System - Cache.
- Cached page content can be compressed before saving into the cache. JotCache Plugin has option to compress (gzlib) cached pages before storing to the cache,
therefore the web access to cached content is accelerated. Compressing function
covers static (page) as well as dynamic module content.
- Possibility for site administrator to clear (to make empty) the cache only for selected pages. With accompanied
JotCache Component here it is possible to see the actual cached pages linked
to used component and view. You can delete the selected cached pages (marked
in component list view) leaving the rest of cached pages intact. For easier finding which pages are related to changed content it is possible to mark these pages simply calling them in the frontend with mark option enabled.
- Fast check of cache operation on production site front-end without disturbing
other users. For easy overview of cache mechanism on front-end pages administrator
can mark his/her browser access with specific cookie allowing to display marked page and module
content (in front-end) solely to administrator.
- Because some dynamic components (mostly forms) needs refresh after each change you can select which components and their specific views shall be excluded from page caching. Starting with JotCache ver.1.2 here is also possiblity to exclude from caching selected pages based on URL query parameters.
Module positions excluded
from page caching
In the Joomla 1.5 CMS framework each module is placed to template specific
position (see Administrator > Extensions > Module Manager / column Position. For graphical presentation see Administrator > Extensions > Template Manager,
click on used template name and then click toolbar button Preview).
Module exclusions can be implemented on all Joomla templates which are using standart jdoc:include tags (inclusive Artisteer generated templates). Templates using non-standart template processing (e.g. Warp system of Yootheme) cannot be adapted for JotCache exclusion described further.
In the Joomla template
each module position is tagged with following tag :
<jdoc:include type="modules" name="xxx" ... />
where xxx is position name.
To exclude specific module position from page caching it is necessary
to mark this position in template source (mostly index.php) with special JotCache HTML comment tags
- see example :
<!-- jot user2 s style="xhtml" --><jdoc:include type="modules" name=user2" style="xhtml" /><!-- jot user2 e -->
Text in the marking tags is separated with exactly one (1) space starting with
word jotfollowed by name_of_position
name_of_position - name of position as it is used
in jdoc tag
jot_flag - 's' for start marking, 'e' for end marking
params - any kinds of jdoc parameters separated with
Used jot tags have to close embrace the jdoc tag for proper operation.
Mark in your template only module positions which you like to be steady refreshed.
When page is cached then all JotCache mark tags are stored with cached content. During recall of cached
content the marked positions are replaced with module newest content.
Components excluded from page caching
Starting with JotCache, ver.1.1 we have available powerfull tool for excluding components from caching process. On the toolbar of Cache Management it is located Exclude button which opens Excluding form :
In this form are listed all components installed in Joomla CMS identified by Component Name and internal code (option) which is also one part of page URL.
You can exclude from caching entire component processing with checkbox Excluded on and Views input empty or only specific views of the component with checkbox
Excluded on and Views input contains list of excluded views separated by comma. When you want to remove component from Exclude Component list then simply uncheck appropriate checkbox and press Apply or Save button.
Note : Shown selection for Articles is only for demo purposes. On production site are usually excluded Contacts and Polls.
Starting with JotCache ver.1.2 here is also possibility to remove selected pages based on parameters of URL query string. As it is generally known query parameters pairs (name and value) are located in the part of URL starting with ? character and each pair is separated with & character. For exclusion purposes here is necessary to use parameters pairs of URL query in form before Routing is applied because of internal operation of JotCache plugin. Parameter pairs are simply inserted into given component line in Exclude Views & Query Parameters input box (here taken as example from URL query string 'index.php?page=shop.product_details&flypage=flypage.tpl&product_id=1&category_id=1&option=com_virtuemart&Itemid=56') :
Multiple parameters pairs are separated with ',' character and can be intermixed with component views as described in previous section.
Note : Some Joomla components are using ':' character as separator inside of parameter value. In these cases ':' character is automatically removed from exclusion definition during save process because of command filtering in Joomla (safety measure for JotCache not influencing proper exclusion processing).
When inserting or changing text in Exclude Views & Query Parameters input box (events 'click' and 'onchange') then automatic validation check on above described rules is performed. Only fully validated definitions are possible to save in database.
Fast check of cache operation
Check in front-end
For proper marking of cached content you
need to have installed not only JotCache plugin but also the JotCache component. For page marking to put it in the operation it is necessary :
- in the JotCache plugin parameters to set Mark Caching to Yes :
- and in the JotCache component click on Set Mark button :
With Set Mark button here it is sent marking cookie to your browser and then
you can see marked page title (with three @@@) when page is comming from cache
and steady refreshed module positions are marked with dashed red outline :
Check in backend
The marking can be used also for fast selection of pages which is necessary to remove from the cache. The recommended selection practice is following :
- check if list of active cached pages has any "Yes" in Mark column (use top combobox for selecting)
- reset the marks for given pages with ResetMark button (the button is shown after click on SetMark, when SetMark is on toolbar)
- click on SetMark button to start active marking
- open/reload pages in website frontend which you like to be marked
- Back in Administrator Cache Management click on Refresh button. You shall see in Mark column "Yes" for all in frontend opened/reloaded pages (you can select only marked pages with Select Mark combobox)
Selected files can be deleted as described in the following section.
With JotCache Component you have possibility to look into one-to-one relation
between cached page file (with hashed name e.g. 8d2146c2a4b1b3c9d65bac698c9115a5.php)
and its original resource (component name, view, content id). This one-to-one
relation is stored in database.
Starting with JotCache ver.1.1 here are two important changes to Cache management operation. At first JotCache component is now showing ONLY active cached pages (pages not yet expired). Second change relates to reassigned Refresh button on the toolbar. Refresh button has no more synchronising action between database and cache file system, but it is now assigned to pure refresh of cached pages list (for administrator convenience when he works with opened Cache management page).
With filtering and checking (as described in the section Check in backend) here it is easy to select cached page contents for
delete operation :
Recommended install procedure :
- Install JotCache Plugin from plg_system_jotcache_x.x.x_j15.zip via Administrator
> Extensions > Install/Uninstall / Upload Package File.
- Install JotCache Component from com_jotcache_x.x.x_j15.zip via Administrator
> Extensions > Install/Uninstall / Upload Package File.
- Open Plugin management : Administrator > Extensions > Plugin Manager
/ in Select type put 'system' and disable 'System - Cache' (when enabled)
and open JotCache edit. Set plugin parameters as you like and save it with
- Reset the old cache content with Tools > Clean Cache select all items and press DELETE button.
- When you are using System SEF plugin then JotCache plugin have to follow the System SEF plugin in the Joomla plugin list (adjust order in Extensions > Plugin Manager, the best position for JotCache is the last item in the list)
Recommended uninstall procedure :
- Uninstall JotCache Component (when installed) : Administrator > Extensions
> Install/Uninstall > Components check JotCache and press Uninstall
- Uninstall JotCache Plugin : Administrator > Extensions > Install/Uninstall
> Plugins check JotCache and press Uninstall button.
Now are all parts of JotCache removed from the application and database.
Upgrade from old version
Uninstall the component and the plugin as described above. Then install new
version of JotCache as described in 'Installation'.
Because JotCache Plugin is advanced replacement of System - Cache it is necessary
to disable system cache plugin in Administration > Extensions > Plugin
Open in Plugin Manager JotCache plugin parameters :
and set their values to required operation mode :
- Browser caching (Yes) - Web server is forcing the user browser to local
cache of the sent content
- Cache lifetime - Cached web page remains x minutes
in page cache stored
- Compress cached content (Yes) - In cached content are whitespaces removed
and then the content is compressed (gzlib)
- Mark caching (Yes) - Condition for displaying Set Mark in JotCache component
(for presentation of frontend cache marking and backend check have to be both conditions met
: Plugin Mark caching=Yes and Component Set Mark=On)
After saving JotCache parameters check if the JotCache plugin is enabled and located as last item in system plugins list (if it is not then correct status and items order).
JotCache Component is management layer over the basic JotCache Plugin functions
- Overview of one-to-one relation between cached page file (with hashed name
e.g. 8d2146c2a4b1b3c9d65bac698c9115a5.php) and its original resource (component
name, view, content id). The list is showing ONLY active cached pages (pages not yet expired).
This one-to-one relation is stored in database. When it is necessary to reload the file list on JotCache Management page simply press Refresh button on component's toolbar.
Refresh also takes care for synchronizing page cache in the file system with database content. Because of different Joomla core functions concerning system cache (located in Global settings and Tools – e.g. system page cache is cleared outside JotCache Management (Administrator > Tools > Clean Cache)) here can be that database content is not matching all cache files in server file system.
Similar condition also happens when you start
caching of page content with JotCache and system page cache is not empty.
Pages cached prior JotCache cache operation are not displayed in the JotCache
- Filtering the list of cached pages according component name, component view and page mark
- Deleting selected cached pages with possibility of individual or group (top
check-box in the table header) checking of cached page contents for delete
- Marking cached content for administrator in the frontend with Set Mark
button pressed - see Fast check of cache operation (frontend and backend).
- Selecting components and their specific views which shall be excluded from page caching.
- Content Id reflects Id of specific component e.g. Content or Weblinks....
- Created date presents first date/time of save of cached content via JotCache
(this date/time is not refreshed with each repeating save of the cached page