41

No one can be told what the Parse Order is, you have to see it for yourself. Jest aside, parse order is a very tricky subject indeed. My PDF and blog article will help somewhat in grasping it, and some might find my Parse Order Pro sides helpful. But those only are pointers to a more general approach to EE's template parsing. The point is, EE's parse ...


15

Fleshing this out further to answer (in part) your question of what is parse order. Essentially, all parse order is - is the 'order' in which ExpressionEngine takes to process (or parse) each aspect from a page being requested to the completion/render of the page to the browser. The following is taken directly from Low's Parse Order: Read URI to determine ...


12

Here's a link to Low's foundational pdf -- it's got some more detail which can be useful, and it will am sure update as knowledge grows or EE is extended. http://loweblog.com/downloads/ee-parse-order.pdf Since he will likely not do it, I'll also give a link where Low discusses parse order in detail, and in relation to his very well regarded Low Variables, ...


8

How about John Wells' Minimee? http://johndwells.github.com/Minimee/ It minifies the rendered HTML (EE 2.4+), and as far as I know, that's what you're looking for? I've only used it for CSS/JS and it works fabulously for that.


7

I'm not sure what type of variable {transcribe:language_abbreviation} is, but I presume it's an early parsed var, which could cause parsing issues. If both the LV and Transcribe var are parsed early, there's no way to control which one is parsed first in the same stage. There are 2 workarounds I can think of, assuming the Transcribe var is parsed early (...


7

not natively but something like http://devot-ee.com/add-ons/hacksaw could easily do what you need. There's also http://devot-ee.com/add-ons/supergeekery-tag-stripper as well as some commercial add-ons that also give this kind of functionality.


6

The variables inside the field need to be prefixed with the Grid variable name, like this: {lv-home-slider:slide} {lv-home-slider:caption}


5

The reason you do not have access to that variable outside the loop is because your stash tags (getters and setters) are not parsed at the same time. EE module tags are parsed recursively from the outwards inwards, peeling them one after another like a oignon. In your code above, your stash set tags are inside an entry loop (level 2), while your get tag is ...


5

To extend Robson's answer, I've just been implementing this myself in the past few hours!: MX Mobile Detect and on Devotee I could simply detect which device it is (e.g. ipad, iPhone, blackberry, etc), but that's too specific for my needs. I just want to detect the different sizes of device so I can drop smaller images... So, in addition to my JS ...


5

I'm not seeing a "{prev}" or "{next}" variable listing in the EE 2.5.3 docs for channel entries (I'm assuming you're doing this on a single-entry template). Have you tried using the {paginate}{/paginate} tag pair? (http://expressionengine.com/user_guide/modules/channel/pagination_page.html) I'm wondering if something like this will work: {exp:channel:...


5

It looks like you moved your templates folder to outside the system folder. Since you already did it, why not move it to above the web root? Just remember to update the related settings. (see "Server path to site’s templates" at the bottom of the page) To keep all system files above the web root is good practice. Alternatively... If for some reason you ...


4

I typically accomplish this based on URL, using segment variables. For instance: <body id="{segment_1}"> You can also use if statements to add classes to your navigation, then target those classes in CSS: <a href="" class='{if segment_1 == "foo"}foo{/if}'> Additionally, if you're using embeds and want to carry info about the template in ...


4

If you want a solution that uses entry linking (rather than pagination as Patrick suggested) then either of these add-ons will allow you to do conditionals based on whether there are next/prev entries or not. Entry Linking Advanced Prev Next Entry


3

The only way of do this is using addons. There's a lot of them on Devotee. This looks a good bet, but I never used any of them. Maybe it's better to use some front-end technique for this.


3

One reason to use late parsing is that early parsing adds slightly more overhead in a lot of cases. The usual thought is that if you don't need things to be parsed early, you should leave them late-parsed for performance. That said, it's a very minor bit of overhead. It is also possible that you have some Low Variables and you want to use one of them as ...


3

The issue is one of parsing order... User Defined global variables are the last thing to be parsed. This PDF outlines ExpressionEngine’s Parse Order. This page in the docs details the Rendering Stages of the EE template engine. The solution is to switch to using a Snippet instead.


2

If you're using Low Variable you can create groups to keep your variable in. These groups parse in the order they are listed. I find it helpful to have two groups, one on top called 'snippets early' and another just underneath called 'snippets later'.


2

A plugin is not really appropriate for this usage since you would need to wrap every root-level template you have with said plugin. Instead, you should write an extension which does the following: Check if the PHP constant REQ == 'PAGE', if not, do nothing Register a shutdown function Turn on output buffering In the shutdown function, capture the buffer ...


2

When you save a variable with a specific scope (in this case, scope="user") you should use the same scope when you get it. However, if you're showing the errors within the same page request there's no need to actually save the variable at all. It's possible in this case that the tag pairs {global_errors} and {field_errors} are removed from the template by ...


2

After the parsing of the related entry, if there's no related entry, your conditional will became this: {if:elseif == 48} As you can see, this doesn't make any sense. So, add quotation marks: {if:elseif "{related_entries id='privacy'}{entry_id}{/related_entries}" == 48} After the parsing of the related entry, if there's no related entry, your conditional ...


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

I would suggest you just to use pages module for Products channel and enter the random string into Page URI of Pages. But it wouldn't be good approach to generate and enter a URI (like /products/xA39sZ7s) containing random string into Page URI each time while editing or publishing an entry. To overcome it, just develop a small extension which will do update ...


2

You’re missing the “/” in “{/near_hotels}”.


2

Try this instead: {if logged_in} <br /><a href="{path='store/my_orders'}">My Orders</a> {/if} {if logged_out} <br /><a href="{path='account/login'}">Login</a> {/if} Not sure if it's an EE version thing, but {if:else} never used to work for me on older EE versions, but does with the latest. Either that or it'...


2

You're running into a parse order issue here. The conditionals are parsed before the global variables, and therefore your comparison is taking place with the actual value you have within the conditional instead of the parsed value. There are a couple things you can do. 1) Use a snippet instead of a global variable, as these parse much earlier 2) Use an ...


2

Since you're evaluating a string, the arguments should be enclosed in quotes ("). {if "{month}" == "{segment_4}"}class="current"{/if} You may need to add a OR operator for a second condition to check. Update Just realized I misunderstood your question. I found this Multi Language Module that allows you to define phrases ...


2

So it looks like the issue was with the flexslider zip. I looked at the demo included in the zip and it has the same issue. I resolved the problem by grabbing the js file from the live demo page.


2

you issue is that all your records have class="active". It is happens because count is going from exp:channel:entries and for all playa records is the same - 1. You have already var_prefix parametr for playa:children, so you just need to add it into condition. <ul class="pill tabs-content contained"> {exp:playa:children field="...


2

If you want your variables to be in the subscriptions:sub4 format, you should try this: foreach ($subscriptions as $key => $value) { $data['subscriptions:'.$key] = $value; } return $this->EE->TMPL->parse_variables_row($this->EE->TMPL->tagdata, $data);


2

With Stash: {exp:stash:set name="categories" parse_tags="yes"}{exp:gwcode_categories channel="products" depth="1" style="linear" backspace="1"}{cat_name}|{/exp:gwcode_categories}{/exp:stash:set} {exp:stash:parse} {exp:switchee variable="{segment_2}" parse="inward"} {case value="#^P(/d+)$#|category|''"} {switchee variable="{segment_3}"} ...


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