1. Hi there,

    I've been playing around with the sample addon 'BasicUnitFrames' from chapter 27. What I'm attempting to do is to get it to sort the frames by group, but so far without success. I've tried adding the 'groupBy' attribute to the Attributes section as follows:

    <Attribute name="groupBy" type="string", value="GROUP" />

    I've also experimented with various settings for the groupingOrder and groupFilter attributes but none seem to affect the frame order.

    I'm not sure what I'm doing wrong or if what I'm trying to achieve is more complex than I expect but any advice would be most appreciated.

    Thanks.

    Hi there,

    I've been playing around with the sample addon 'BasicUnitFrames' from chapter 27. What I'm attempting to do is to get it to sort the frames by group, but so far without success. I've tried adding the 'groupBy' attribute to the Attributes section as follows:

    <Attribute name="groupBy" type="string", value="GROUP" />

    I've also experimented with various settings for the groupingOrder and groupFilter attributes but none seem to affect the frame order.

    I'm not sure what I'm doing wrong or if what I'm trying to achieve is more complex than I expect but any advice would be most appreciated.

    Thanks.

    At the bottom of page 381 there is a note that states the following:

    When specifying a groupBy attribute, you must also supply a groupingOrder or the template will error because groupingOrder doesn't have any default values

    To be more specific you would need to add the following

    <Attribute name="groupBy" type="string" value="GROUP" />

    <Attribute name="groupingOrder" type="string" value="8,7,6,5,4,3,2,1" />

    Keep in mind in what you posted that the XML isn't well formed since there is a comma after string (I assume this is a typo).  Let me know if this doesn't make sense.  Also, remember that grouping is different from sorting.  Grouping is the first layer, allowing you to (for example) group players together by class, role or group.  Then you can sort by either name or raid index. Sorting by raid index without grouping whatsoever will put the list in group order (the same order as the raid window, actually).  Sorting by name with group, will however put all of the groups together sorted by name.  That would look like this:

    <Attribute name="groupBy" type="string" value="GROUP" />

    <Attribute name="groupingOrder" type="string" value="8,7,6,5,4,3,2,1" />

    <Attribute name="sortMethod" type="string" value="NAME" />

    <Attribute name="sortDir" type="string" value="ASC" />

    Let me know if that doesn't make sense.

     

    Thanks for the reply, it makes perfect sense.

    I did indeed include the groupingOrder attribute in the attributes section. I think what confused me was how the frames were being displayed. I was expecting them to be laid out in distinctive columns for each group. For example:

    In a raid of 6 ppl (3 in group1 and 3 in group2) with the following attributes:

    unitsPerColumn set to 5, groupBy set to GROUP and groupingOrder set to "1,2,3,4,5,6,7,8":

    I expected the frames to be laid out in 2 columns as below:

    [ PlayerA (group1) ]   [ PlayerD (group2) ]

    [ PlayerB (group1) ]   [ PlayerE (group2) ]

    [ PlayerC (group1) ]   [ PlayerF (group2) ]

    However it seems the groups are ordered first and then laid down so as to always fill a column before creating the next column as below:

    [ PlayerA (group1) ]   [ PlayerF (group2) ]

    [ PlayerB (group1) ]

    [ PlayerC (group1) ]

    [ PlayerD (group2) ]

    [ PlayerE (group2) ]

     

    I hope that made sense.

    Thanks for your time!

    Thats the nature of the templates.  They don't have any way to separate the different groups you create via groupBy and will always fill the column before moving to the next.  More intelligent displays aren't possible with the templates at the moment.

    Though you could achieve this by creating a seperate set of frames for each group and positioning them individually.

    Though you could achieve this by creating a seperate set of frames for each group and positioning them individually.

    This is correct, that would be the only way to accomplish something like that.