6

So yeah. Parse order. I take it you've seen this pdf. If not, take a look, study it well. What you need is for the opening tag to be in order before you hit stage 5: the parsing of module/plugin tags. In order to do that, you can only use simple conditionals in combination with early parsed global variables and preload replace variables. Native early parsed ...


5

It turns out that the answer was to add a "random" paramater to the plugin tag, in combination with parse="inward". From EllisLab: "The random is sort of a hidden trick that is handy in very specific circumstances. Without it, duplicate plugins get replaced by some placeholder text so that the plugin is only run once- and then the content flips into where ...


4

This is a parse order issue - your Channel Entries tag is being parsed before your custom plugin tag, so you're actually passing misc{exp:cookie:retrieve name="exp_lang"} as the channel parameter. What you need to do is turn your plugin into a tag pair, so it works like this: {exp:cookie:retrieve name="exp_lang" parse="inward"} {exp:channel:entries ...


4

I think UltraBob is right in that if you need a global variable available inside the module you need parse them inside the add-on. parse_globals() looks to be the way to do so (thanks to this answer on Stack Overflow). The following will show that the parsed global is available in the module: $parameter = $this->EE->TMPL->fetch_param('...


4

You can wrap your code in [code]{ee_tag_here}[/code] and that should output <code>{ee_tag_here}</code> into your template.


4

To be on the safe side, I'd check for numerical values only, like 201308. Something like this: {if {event_dates:start_date format="%Y%m"} == {event_dates:end_date format="%Y%m"}} same month {if:else} not same month {/if} When debugging the advanced conditionals, try to remove them and add them one at a time to see which actual one is causing the ...


3

The first thing I would ask is do you really need a fieldgroup for each product channel? Multiple channels can share the same fieldgroup and you can use publish layouts to hide the fields that are not relevant to a particular product. Using the same fieldgroup will also force you to generalise the fields you use which can be a good thing for rationalising ...


3

Welp, after even more testing an hair pulling I sorted it out. I forgot to set parse_tags="yes" on the exp:stash:set... d'oh! Model {!-- SINGLE VARIBLES --} {exp:stash:set parse_tags="yes" trim="yes" } {stash:share_image_url} {exp:ce_img:pair src="{cf_featured_image:url}" width="800" height="450" crop="yes" ...


3

If your url contains the proper category you can use Low's seg2cat plugin to grab the id category="{segment_xx_category_id}" http://gotolow.com/addons/low-seg2cat I'm afk from pc, you may have to tweak parse order but I've used this plugin to great affect many times for this purpose.


3

You didn't say which version of EECMS you're using. Some versions have parsing issues on conditionals with single quotation marks. Or, maybe, your version of Matrix have one of this issues. So, first of all, try to replace them. {if "{placement}" == "sidebar"} {exp:mx_jumper:put name="standard_image_width"}226{/exp:mx_jumper:put} {exp:mx_jumper:put ...


3

Turns out the problem wasn't a parse issue after all. Playa disables categories by default so by placing a blank disable="" parameter on the {cf_feed_videos} tag it overrides this and re-enables categories for the related entries.


3

Stash 2.4.3 corrected a long-standing inconsistency with embeds set to process at the start of template parsing. At the other stages of parsing (inline and end) embeds are parsed by default - that is to say, parse="yes" is the default parameter value if not specified, and 2.4.3 added this as the default for start too. To make your embed behave as it did ...


3

Good news, it should be a quick fix. All you need is to prefix your Playa variables with var_prefix parameter to differentiate the namespace from the Channel Entry variables, although you might have to use the full module tag: {exp:playa:children field="item_colors" var_prefix="pl"} "{pl:title}": "{title}", {/exp:playa:children}


3

put exp:channel:entries inside embeded template {embed="site/channel" my_plugin_ids="{exp:plugin entry_id="{segment_3}"} site/channel {exp:channel:entries channel='{embed:my_plugin_ids}' … -or- put exp:channel:entries inside your plugin tag's {exp:plugin entry_id="{segment_3}" parse="inward"} {exp:channel:entries channel='{my_plugin_ids}' … {/...


3

The quotes around {fn_zone} mean it's an advanced conditional which may be the problem. Can you do: {if fn_zone == ""} ... {/if} Or you may have to use the if:else plugin: {exp:ifelse parse="inward"} {if "{fn_zone}"!=""} {redirect="/store"} {if:else} {exp:stash:destroy name="delivery_day"} {/if} {/exp:ifelse}


3

The :set tags are not wrong, per se, as you are using the shorthand syntax. However, due to parse order, your 'get' tags are parsing before your 'set' tags since the sets are within the channel entries module tag. Stephen's answer does fix things, because it moves the channel loop within the set module tags. (However, that is not always convenient.) You ...


3

Do this right way - do not follow the dark side. Put all your php code into plugin. Your code is not good even from optimization way - not good solution to loop the channel entry. Just make function which will return list of $item['some_key']|$item['some_key']|$item['some_key']|$item['some_key'] In this case you will do only one request of channel:entry. ...


2

The default parse_depth is 1. In this case you need to parse two layers deep (because you have two nested tag pairs), so set parse_depth="2".


2

Embed templates don't parse in the way you're expecting them to. And PHP will be irrelevant here to. What's happening is EE parses the parent template first - completely, so in your example it will parse the exp:channel:entries tag, then the exp:shine_pdf tag. These will be complete and fully parsed. Finished. Then EE will parse the embedded templates in ...


2

Two things: you're quoting your embed variables in your conditionals, which actually makes them advanced conditionals. So first, instead of this: {if "{embed:type}" == "list"} Try this: {if embed:type == "list"} But second, and more importantly - just use Switchee. It is great at avoiding these parse order/performance issues. {exp:switchee variable="{...


2

This Stack Overflow post has an answer from Low that should work for you. Here's how: make sure early parsing is enabled for that variable, and then use the variable syntax instead of the tag syntax: {exp:channel:entries channel="groups" entry_id="{lv-home-groups}"} code here {/exp:channel:entries}


2

Depth isn't an issue with embeds and neither is URLs, so if the embed works from template A, it will work from Template B. So it isn't any parameter issue (unless you use embed variables in the parameters - see 2 below). Three factors that are most likely: The embed in Template B is within a conditional which is not being met. You're passing embed ...


2

You problem is you're trying to do a complex conditional within the tag parameters, that's not possible. Here's a good article regarding parsing conditionals within tags: http://johndwells.com/blog/expressionengine-parse-order-advanced-conditionals-as-tag-parameters As you state, the problem is simple conditionals versus complex conditionals. The problem ...


2

Try {exp:low_variables:parse var="lv_sidebar_featured_members"} instead of {lv_sidebar_featured_members}


2

Is {lv_sidebar_featured_members} set to 'early parsed'? If it is, the problem could be that it contains a channel entries tag and you are nesting it inside another channel entries tag.


2

I saw you already find a solution, but I think you should know the reason your code wasn't working. Your conditional will never work... Ooops! Please, forgive me. Your conditional will always work because "product1" != "product2". This code will always evaluate: {if segment_3!="product1" OR segment_3!="product2"} <img src="/images/styles/madeinusa....


2

Using embeds to ensure they are parsed after advanced conditional eventually worked for me.


2

I'm not sure why you're using an embed for this, you're not passing anything to it so I'd use a snippet for sure. Also may as well use set_list, open the tags above the exp:channel call {exp:stash:set_list name="resources" parse_tags="yes"} {exp:channel:entries channel="white_paper|c_study|video|webinar|data_sheet" limit="8"} {snippet:get_data} {/...


2

OK, So I had to wrap the entire call in a {exp:stash:parse process='end'} tag and then call the values with just {stash:market_ids}. Now seems to be working.


2

Have you tried adding parse_conditionals="yes" to the set parameters? Alternatively, reversing the wrapping to put the conditional on the outside of the set tags?


Only top voted, non community-wiki answers of a minimum length are eligible