You know, that's actually a fairly good idea as well! You could simply apply advice to the adaptor that added metadata to the XML conditionally.
Doug Hughes, President Alagad Inc. [EMAIL PROTECTED] 888 Alagad4 (x300) Office: 919-550-0755 Fax: 888-248-7836 On Tue, Sep 23, 2008 at 3:52 PM, Gareth Cole <[EMAIL PROTECTED]> wrote: > Thanks for the help folks. I'm going to give this a go later this week. > > > > The ormAdapter is already defined in my MGU coldspring file, so I reckon I > could just create a CFC that sub-classes ReactorAdapter.cfc and over-rides > that method. I feel more comfortable with that than editing the core files. > > Would the AOP side of ColdSpring be a solution here? > > > > -----Original Message----- > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Doug Hughes > *Sent:* 23 September 2008 20:36 > *To:* [email protected] > *Subject:* [Model-Glue] Re: custom scaffolding question > > > > I was thinking about this question. (I'm considering doing the scaffolding > implementation in MG:G so I might as well.) > > I agree with Chris that you could edit the Reactor metadata and that might > work nicely for your project. However, a more generic solution might be to > edit scaffoding system in Model-Glue itself. Note that because the > framework is configured by ColdSpring you can override the core objects by > simply defining your own objects with the same ID in coldspring, extending > the core object and providing your own implementation. > > So, for a more generic system that is trasnfer and reactor agnostic you > might be able to create your own scaffolding adaptor that, behind the scenes > uses the tansfer or reactor adaptor and combines metadata from the ORM with > configuration that you provide. IE: define your own additional metadata in > XML and merge the two documents into one and pass that into the xsl > translation. > > Now, having written that, I haven't actually dug into code to see if that > would even work, but it's an idea! > > Doug Hughes, President > Alagad Inc. > [EMAIL PROTECTED] > 888 Alagad4 (x300) > Office: 919-550-0755 > Fax: 888-248-7836 > > On Tue, Sep 23, 2008 at 3:18 PM, Chris Blackwell <[EMAIL PROTECTED]> > wrote: > > Hi Gareth, > > The Reactor part to this is easy, open up your /model/data/Metadata folder > and add extra metadata to the table column to describe what type of form > field to use. The columns are stored in an array, refer to > reactor/project/your_project/Metadata/yourTableMetaData.cfc for the correct > position (it should be the ordinal position in the table). > > heres an example, i want date columns rendered with a "calendar" field type > > /model/data/Metadata/NewsMetaData.cfc > <cfcomponent hint="I am the database agnostic custom Metadata object for > the News object. I am generated, but not overwritten if I exist. You are > safe to edit me." > extends="reactor.project.mg2test.Metadata.NewsMetadata"> > <!--- Place custom code here, it will not be overwritten ---> > > <!--- fields[4] is the `Date` column ---> > <cfset variables.metadata.fields[4]["fieldtype"] = "Calendar" /> > > </cfcomponent> > > Reactor will now return this extra property whenever metadata for the News > table is required. > > Getting Model-Glue to use this is a little trickier, and requires a little > hacking of the framework files. In ModelGue/unity/orm/ReactorAdapter.cfc > you'll need to pull your new property and insert it into the MG's metadata > format. > > *After this block (about line 117)* > > <!--- Add simple fields ---> > <cfloop from="1" to="#arrayLen(fields)#" index="i"> > <cfset md[fields[i].alias] = duplicate(fields[i]) /> > <cfset md[fields[i].alias].sourceObject = "" /> > <cfset md[fields[i].alias].sourceColumn = "" /> > <cfset md[fields[i].alias].sourceKey = "" /> > <cfset md[fields[i].alias].relationship = false /> > <cfset md[fields[i].alias].linkingRelationship = false /> > <cfset md[fields[i].alias].pluralRelationship = false /> > > *Add* > <cfif not StructKeyExists(md[fields[i].alias], "fieldtype")> > <cfset md[fields[i].alias].fieldtype = "" /> > </cfif> > > Then at line 261, where the properties are looped over, add your new field > to the list > > <cfloop > list="*fieldtype*,nullable,cfdatatype,primarykey,sourcecolumn,pluralrelationship,relationship,sourceobject,name,default,sourcekey,length,alias,label,comment" > index="j"> > > You'll now be able to access the fieldtype property in your xsl files > > <xsl:if test="fieldtype = 'Calendar'"> > <cfcalendar ... /> > </xsl:if> > > I've never used this, but in my brief testing it seems to work fine. I > can't think of a way to do this without altering ReactorAdpater.cfc, if i've > missed something obvious i'm sure others will chime in. > > Cheers, Chris > > 2008/9/23 Gareth Cole <[EMAIL PROTECTED]> > > > > Hi, > > > > I'm not sure if this question is better suited to the reactor mailing list, > but here goes: > > > > I'm using Model glue 2 with reactor and I've been playing about with > customising the scaffolding xsl files. I've found this really powerful, and > a lot easier than I thought. With a few changes to the xsl, I've really > reduced the time I spend customising generated forms. > > > > The xsl generates different types of form input depending on the DB field > type. What I'd like to do, is add an extra setting (probably in the reactor > config or metadata files), so that I can over-write the field type > generated, and introduce my own custom inputs. > > > > As an example, if database column 'comments' is a long text field, then by > default the xsl renders this as a <textarea>. If I want this to be a wysiwyg > editor, I need to edit it manually in the form. Ideally, I would like to > specify that the 'comments' column should render as a wysiwyg in a config > file somewhere, and then change the xsl to render it as a wysiwyg > automatically. > > > > Does anyone know if this is possible, and how I would go about it? > > > > Thanks, > > > > Gareth > > > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "model-glue" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/model-glue?hl=en For more about Model-Glue, check http://www.model-glue.com . -~----------~----~----~----~------~----~------~--~---
