This page is part of the Aggregated Layout Management Convergence 2.x effort that will be added to 3.x.
When users log-in their personal layout fragment or PLF is first loaded. The PLF contains both visual layout elements that they own and non-visual, "ghost" nodes used to record previous changes made to fragments. Then the [RDBMDistributedLayoutStore|Sungard SCT's RDBMDistributedLayoutStore
] passes through all configured fragments asking each if they are applicable to this user as determined by their configured audiences. If DLM debugging is turned on these evaulations can be seen from entries made in the log files as shown below. The mboyd user is a faculty member. The dlm.xml that resulted in the fragments and evaluators that generated these debugging entries can be see in the Simple dlm.xml file page. Note that the leading timestamp, class, lines, etc., have been removed for brevity. Also note the logging of user preference attributes including those from preference values set by fragment owners.
>>>> calling All Users.isApplicable( mboyd ) ---- All Users.isApplicable( mboyd )=true >>>> calling Students.isApplicable( mboyd ) >>>> calling paren[campuspipeline.uportal.dlm.provider.Paren@4e4a8a, op=OR].isApplicable() >>>> calling paren[campuspipeline.uportal.dlm.provider.Paren@7fc8b2, op=AND].isApplicable() >>>> calling Evaluator[role','1','student'].isApplicable() ----- comparing value 'student' to role 'admin' ----- comparing value 'student' to role 'faculty' Evaluating person roles to: false ---- Evaluator[role','1','student'].isApplicable()=false ---- paren[campuspipeline.uportal.dlm.provider.Paren@7fc8b2, op=AND].isApplicable()=false ---- paren[campuspipeline.uportal.dlm.provider.Paren@4e4a8a, op=OR].isApplicable()=false ---- Students.isApplicable( mboyd )=false >>>> calling Faculty.isApplicable( mboyd ) >>>> calling paren[campuspipeline.uportal.dlm.provider.Paren@487093, op=OR].isApplicable() >>>> calling Evaluator['role','1','faculty'].isApplicable() ----- comparing value 'faculty' to role 'admin' ----- comparing value 'faculty' to role 'faculty' Evaluating person roles to: true ---- Evaluator[role','1','faculty'].isApplicable()=true ---- paren[campuspipeline.uportal.dlm.provider.Paren@487093, op=OR].isApplicable()=true ---- Faculty.isApplicable( mboyd )=true >>>> calling Employee.isApplicable( mboyd ) >>>> calling paren[campuspipeline.uportal.dlm.provider.Paren@56c3cf, op=OR].isApplicable() >>>> calling Evaluator[role','1','employee'].isApplicable() ----- comparing value 'employee' to role 'admin' ----- comparing value 'employee' to role 'faculty' Evaluating person roles to: false ---- Evaluator[role','1','employee'].isApplicable()=false ---- paren[campuspipeline.uportal.dlm.provider.Paren@56c3cf, op=OR].isApplicable()=false ---- Employee.isApplicable( mboyd )=false ***** mboyd's StructureStylesheetUserPrefereneces *** Folder Attributes > n13.width = (33%) 33% > s12.width = (33%) 33% > u13l1s11.width = (null) 50% > u11l1s12.width = (null) 50% > u11l1s16.width = (null) 20% > u11l1s9.width = (null) 30% > u13l1s9.width = (null) 50% *** Channel Attributes