1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Fixed Period After Style Property Breaks It

Discussion in 'Resolved Bug Reports' started by pegasus, Apr 12, 2013.

  1. pegasus

    pegasus Well-Known Member

    I have a style property that sets the names of CSS images, based on the admin's selection (using templates to create the fields, etc). I have had no problems doing that, getting the values saved, validated, and recalled properly.

    But when I try to use that in a specific CSS configuration, I encounter a problem:
    Code:
    .cssClass {
        background-image: url(@myImageFolder/@myImagePrefix@myImageVariant.png);
    }
    As you can see the image path is constructed using multiple properties.
    As far as I know, there's no way to escape out of a property name. Wrapping it in brackets outputs the brackets around the property value.

    Particularly, properties like the . character. Even though @myImageVariant exists, the parser sees instead a sub-property @myImageVariant.png which doesn't exist. Because of the dynamic nature of these paths and the number of them, it's also not practical to include the .png as part of the property value. I've considered renaming the files, putting a garbage character like _ before the .png, but again, I'm unaware of a way to escape the property name, so we would still have @myImageVariant_.png

    I've tried using {xen:property myImageVariant} directly instead. This causes the template to parse correctly, but if I open the editor again, it's changed back to @myImageVariant, so anyone who edits the template would just get the original problem again.
     
  2. Dan

    Dan Well-Known Member

    try

    Code:
    .cssClass {
    background-image: url({xen:property myImageFolder}/{xen:property myImagePrefix}{xen:property myImageVariant}.png);
    }
     
    CyberAP likes this.
  3. pegasus

    pegasus Well-Known Member

    As I mentioned in my post, this only works the first time and if you remember to manually change it every time after that. When you go back to the editor later, XenForo always changes it back to @syntax.

    EDIT: For now I'm using the following temporary solution. I would prefer some way to do it on one line, or by calling a {xen:helper concat} (which does not exist).

    Code:
    .cssClass {
        <xen:set var="$a">@myImageVariant</xen:set>
        background-image: url(@myImageFolder/@myImagePrefix{$a}.png);
    }
     
  4. Mike

    Mike XenForo Developer Staff Member

    Fixed now. It won't translate the {xen:property} style to @ if the property tag is followed by something that would make the result be ambiguous.
     
    CyberAP likes this.

Share This Page