FarCry Core Committers Blog
Core Milestone 6.0.2 Released
The complete list of changes for 6.0.2 maintenance release is available here:
http://bugs.farcrycms.org/browse/FC/fixforversion/10340
Download the ZIP for for the 6.0.2 core milestone here:
http://org.farcrycore.s3.amazonaws.com/core/m602.zip Or alternatively you can update from Subversion (SVN) at this address:
http://modius.svn.cvsdude.com/farcry/core/tags/milestone-6-0-2 Bug [FC-2116] - rebuildFU: looks like old FU component still being referenced
[FC-2150] - using richtext fields within a config cause it to fail on save when html characters are hit within the wddx
[FC-2202] - Update formtool image manipulation to match cfimage plugin bugs fixes and updates
[FC-2237] - FarCry is injecting useless junk into my HTML block even when I'm not logged in.
[FC-2245] - Problems in custom tag jsInHead.cfm
[FC-2247] - request approval missing from object overview
[FC-2249] - uniform css conflicts with grid css in IE6
[FC-2254] - dmNavigation breaks if extending versions
[FC-2255] - Should only be able to edit approved objects if user has permission to approve
[FC-2256] - nj:display should not error if the view returns an empty string.
[FC-2267] - create new array item callback fails on subdirectory install
[FC-2271] - Object admin: remove form validation like required fields
[FC-2279] - in form tools object.cfm, if there are fields similar in lHiddenFields, i.g logo and logothumb, it will hide the first on list i.e logo when you want logothumb
Improvement [FC-2251] - library webskins should never cache
[FC-2262] - webtop overview "Request Approval" button not clear
[FC-2275] - Clear permission cache on save
[FC-2277] - wizard.css removes some borders from tinyMCE and plp_wrap_bg.gif is only 1000px high
[FC-2278] - Need to have pagination show total records option
New Feature [FC-2276] - Ability to test tree permissions with different role combinations
Refactoring
[FC-2260] - Remove "right-click" edit function on tree
[FC-2265] - Change labels on join formtool ui
[FC-2266] - Wizards do not need to use refObjects
Enjoy!
Permalink
| Leave a comment »
application.fapi.flushCache can selectively flush caches
There's a relatively new fapi function (since Feb 2010 in FarCry 6) to allow you to flush the objectbroker (which includes all the associated webskin caches). If you don't pass paramaters the function will flush all caches, otherwise you can target specific content types by passing the typenames along as a list. e.g
<!--- clear object broker --->
<cfset application.fapi.flushCache("aocAthlete,aocAthleteEvent,aocAthleteScheduleResult,aocAthleteSport") />
At some stage we will add an interface for flushing caches by type in the admin area of the webtop. Certainly beats restarting the whole app to just clear webskin caches!
Permalink
| Leave a comment »
FarCry Auto-Docs & Dictionaries Updated
We've been hard at work updating the underlying FarCry Core codebase with extractable documentation. Blair's farcrydoc parser and Rob's web site and dictionary extractions have both been significantly improved.
The complete documentation is built nightly for all principle releases and is available as both HTML and IDE dictionaries:
http://docs.farcrycore.org/ The big addition is auto-documentation for the awesome "formtool" engine. The dictionary files (should work in both CFEclipse & CF Builder) offer hinting for CFPROPERTY formtool (ft*) attributes and values. The Textmate bundle offers slightly less functionality but very handy all the same ;)
With a little bit more elbow grease this will become the one stop shop for developers working on FarCry content types.
Permalink
| Leave a comment »
Core Milestone 6.0.1 Released
The complete list of changes for 6.0.1 maintenance release is available here:
http://bugs.farcrycms.org/browse/FC/fixforversion/10331
Download the ZIP for for the 6.0.1 core milestone here:
http://org.farcrycore.s3.amazonaws.com/core/m601.zip Or alternatively you can update from Subversion (SVN) at this address:
http://modius.svn.cvsdude.com/farcry/core/tags/milestone-6-0-1 Bugs [FC-2115] - combine.cfc can not find /webtop/thirdparty/msdropdown/dd.css
[FC-2130] - Railo chokes trying to create stats when installing
[FC-2177] - Page layout dropdown selection is in alphabetical order descending (instead of ascending)
[FC-2178] - z-index of .webskin-tracer needs to be a really high number like 10000
[FC-2179] - Test in buttons don't always line up correctly
[FC-2182] - Filtering link not available to IE6 users when using objectAdmin
[FC-2185] - Buttons with the same value but different text have the same resource bundle key
[FC-2188] - Overview dashboard not operational
[FC-2193] - Library picker fails for sub-directory installations
[FC-2197] - dmNavigation Overview throws error in webtop (with fix)
[FC-2198] - If a containers displayMethod does not exist and error occurs
[FC-2200] - url.restartInstaller no longer restarts installer
[FC-2205] - looking at the type: dmNavigation and couldn't find a displayPageStandard
[FC-2206] - Library picker not refreshing after attaching items in google chrome
[FC-2207] - altexpansion attribute in webtop.xml don't work for other section than site
[FC-2208] - farfu webskins should be excluded from template choices in dminclude
[FC-2210] - content types flagged as bUseInTree that are not in tree cause error on overview
[FC-2211] - File formtool has two (conflicting) attributes for file extensions
[FC-2217] - object admin row numbers reset on pagination
[FC-2218] - objectadmin object counter does not continue incrementing on 2nd and subsequent pages.
[FC-2219] - Packed version of jquery-validate errors in IE6
[FC-2222] - ft:object doesn't add server side errors with the correct uniform markup
[FC-2225] - Scaffolding link/button doesn't respond when clicked
[FC-2228] - Bug in ftWatch related to multiselect lists
[FC-2230] - formtool category: can't remove category selection
[FC-2232] - Apostrophes in content labels breaks FU management screen
[FC-2246] - Custom TinyMCE configs don't work because single and double quotes are escaped into XML format
Improvements [FC-1861] - Change to allow NULLs for datetime properties
[FC-2183] - formtool: category; provide async fetching of data
[FC-2201] - formtool: image; should be able to select the source image as a uuid
[FC-2209] - Content overview and content sub section overview are missing permission check
[FC-2215] - Default ObjectBrokerMaxObjects to default to 1000
[FC-2241] - upgrade jquery-iu to version 1.8
New Features [FC-2199] - new attributes to genericNav
[FC-2224] - FAPI function for retrieving a set of content
Upgrader [FC-2216] - Removing the deploy farFU script
Permalink
| Leave a comment »
Friendly URLS: Microsoft URL Rewrite Module for IIS 7
We've been fielding a few questions concerning the relatively new rewrite engine you can download for IIS7. It purports to be as good as Apache mod_rewrite but unfortunately Microsoft have decided to invent a rewrite rule syntax of their own -- surprising, eh ;)
IIS URL Rewrite 2.0 enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find.
http://www.iis.net/expand/URLRewrite
Turns out the simplest way to get friendly urls to work on IIS7 is to use the built-in "import rule" functionality for existing mod_rewrite rules.
Jason has put together a quick little tutorial with screenshots to help you through:
http://docs.farcrycms.org/display/FCDEV50/Friendly+URLS+IIS7
Enjoy!
Permalink
| Leave a comment »
Working with File Uploads greater than 4Mb on IIS7
We've had some folks report problems uploading larger files through FarCry CMS on IIS7. It appears the default max file size upload allowed for IIS7 is only 4MB, so you need to update the IIS7 config to allow larger uploads.
Found this blog post on configuring web.config:
Request Filtering module is configured to deny a request that
exceeds request content length
http://khairie.net/request-filtering-module-is-configured-to-deny-a-request-t... Hopefully that helps!
PS. There's also a file upload limit setting in ColdFusion Administrator -- the CFIDE default setting is 100Mb but it might be worth a check if you are having difficulty uploading larger files.
Permalink
| Leave a comment »
getNavID() replaces application.navid
application.navid's should never be referenced directly in code anymore. The problem with referencing these application variables directly is if for any reason the alias doesn't exist you will end up with a broken page. Besides it's just plain bad coding practice.
The right way is to use the FarCry API (fapi) function:
ex: application.fapi.getNavID("signupenews","home")
The second parameter is the default fallback node to use in the event the primary is not created. "home" is the safety fallback as it always exists.
Thanks to Jasbar for this insight ;)
PS. NavID's are a great way to nominate an alias for a specific point in the tree (there's also a similar catid concept for categories). You create NavID's by adding an "alias" to the relevant navigation folder content item in the site overview tree. You can then refer to this alias in your code. If the position in the tree changes, just change the alias. Beats hardcoding UUIDs.
Permalink
| Leave a comment »
Form Components
Ever wondered what the components in ./packages/form are all about? Form components unlock the power of formtools just like content types, but are not persisted in the database. Think "forms", think formtools.
Formtools you say? Formtools are one of the things that make working with FarCry awesome.
Let me count the ways:
- the library of standard form inputs
- automatic javascript and server side validation
- handling of fields that need multiple inputs (like dates)
- managed file upload
- library pickers
- image manipulation
- uniform formatting
- ajax functionality
- and much more
The "formtools" engine is all about sophisticated forms that basically build themselves.
But in FarCry 4.x formtools could only be used with content types. A developer was out of luck if they needed a form for data that wasn't destined for the database. Which was a problem when it came to refactoring FarCry's security architecture to support custom user directories and the configuration UI.
Thus "forms" components were born. "Forms" are identical to content types, but all the database persistence functions have been overriden to support in-session storage only. From the point of view of the COAPI framework they can do everything a normal type could do.
This means that a form component can be used in:
- ft:object to output a form
- ft:processformobjects can detect and process form component posts
For completeness an extra function got added to forms, "process", which is also processed on a successful form post. This makes it possible to keep the UI metadata and data processing in the same component.
A side benefit of all this is that forms can have their own webskins. Since 5.0 the login pages have been overridable the same way as any other webskin. This "side benefit" turns out to be one of the most fantastics things about "forms" but hey, that's another post entirely.
There are a couple of gotcha's to watch out for:
- form webskins can't easily be cached because they aren't associated with persistent data
- forms can't have array properties since the array formtool makes use of the database
Enjoy "forms".
Cheers, Blair
Permalink
| Leave a comment »
New FAPI function: getContentObjects()
There are a couple of dopplegangers for this functionality in core, buried in FourQ and the database gateways. Both are awkward, and offer little more than arguments for the where and order by clauses. All are about to be deprecated and replaced with getContentObjects() in FarCry 6.0.1.
application.fapi.getContentObjects() massively improves on older methods by:
- using dynamic arguments for filtering
- handling filters on date columns that can have null values
- automatically filtering results by their status
- using cfqueryparam for all filter values
The arguments are:
- typename (req)
- lProperties (default=objectid)
- status (default=request.mode.
lValidStatus)
- orderBy (default=unordered)
- [property filters]*
Property filters are arguments in the form propertyname_comparison=value. Supported comparisons are:
- eq, neq (equality filters)
- in, notin (list filters)
- like (standard DB like comparison)
- isnull (boolean value to specify whether to return null properties or not)
- gt, gte, lt, lte (standard comparisons, null dates always pass these filters)
Examples:
qLatestNews = application.fapi.getContentObjects(typename="dmNews",lProperties="objectid,title",publishDate_lt=now(),expiryDate_gt=now(),orderBy="publishDate desc")
qLockedHTML = application.fapi.getContentObjects(typename="dmHTML",locked_eq=1)
qNotActiveUsers = application.fapi.getContentObjects(typename="dmUser",userstatus_in="inactive,pending")
This FAPI function is only intended to replace the 90% of queries we use the most in webskins. Other functionality like filters on related tables, grouping, and aggregates will still be handled in custom SQL.
Cheers, Blair
Permalink
| Leave a comment »
Updating FarCry CMS Features FAQ: Help Needed
It's been a while since we last updated the FarCry CMS Features FAQ. Now that FarCry 6.0 is here its time to give it a bit of an overhaul, make sure the content is still valid and add all the new features :)
I've attached the v5.x PDF for folks to review. If you have any thoughts on what we need to add or change, please add a comment below.
Permalink
| Leave a comment »