Hot answers tagged

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 ...


33

The best way to do this is to proceed carefully and make backups of your database at each step of the way. I have previously written a blog post on this, but will elaborate further. Step 1: Before running your upgrade change all ngen field types to text, don't worry the data won't be lost. Step 2: Next upgrade ExpressionEngine as per the official docs and ...


20

There is no sitemaps.xml out of the box in EE. You can build it using channel:entries module Example 1 Example 2 or you can use one of next add-ons: NSM Better Meta (~ $40) SEO module Sitemap Module ($49) Google Sitemap Lite (free)


17

That should work fine, but you can also check the REQ constant (docs) which has the following possible values: CP - Control panel requests PAGE - Frontend template requests ACTION - Module actions, e.g. mysite.com/?ACT=123 For example: if (REQ == 'CP') { return FALSE; }


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 ...


15

There isn't a native way to do JSON output in EE for channel data (AFAIK). Have you seen Rob Sanchez's JSON plugin? You just pass params as you would with {exp:channel:entries}. You can specify which fields to output, optionally set it to only output if an xhr is detected, and it will output member data too. You can then wrap the rest of your template in ...


14

I asked this same question for a recent EE upgrade. The answer is on Stack Overflow: https://stackoverflow.com/questions/13041491/expressionengine-1-to-expressionengine-2-upgrade-with-ngen-file-field The EE2 equivalent field is Safecracker File. Worked perfectly for my upgrade.


14

There is a one year old thread on Pixel&Tonic’s support forum. To use Typekit with Wygwam/CKEditor you have to include two scripts in your <head>: <script type="text/javascript" src="//use.typekit.net/XXXXXXXX.js"></script> <script type="text/javascript">try{Typekit.load();}catch(e){}</script> Scott Wise figured out this ...


13

No direct experience doing this, but I'd take this approach initially: Each "tier" is a channel entry. You could include things like price, description, etc. here (perhaps this is also a "products" channel used by CartThrob or Store, used to "sell" the tier). Use an add-on such as Zoo Visitor or Profile:Edit to create members as channel entries, then use a ...


13

Preparse vars are best used for simple bits of data, not large chunks of code. This is because the Preparse vars are passed along to the variable content by means of a parameter, and large amounts of data (with line breaks, etc...) inside a parameter is never a good idea. Looking at your example, there aren't any embed variables being passed through the ...


12

This is not natively supported in ExpressionEngine. The "official" was to do something similar to this would be to simply use additional module tags. Is there a reason you would not want to do that? {exp:mod:method} <h1>{top_level_var}</h1> {exp:mod:var_pair limit="7" number="42"} <p>{var_pair_variable}</p> {/exp:...


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, ...


12

So given the proportion of EE addons that are sold commercially I think this is a relevant question, I also don't think this is a subjective question because the MIT license is actually pretty clear. The relevant section being: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. "...


12

This has always worked for me: {exp:ce_img:single src="{url}" width="200" height="200" crop="yes|center,center" } You can obviously add any additional paramaters (offset, filter, etc), but give this simple example a shot and try adjusting from there.


12

Adding the following script to the control panel allows one to define a custom state for one or more matrix fields. The following script can be modified as needed and then copy and paste into your custom field's "Field Instructions" box beneath your custom user instructions! Many thanks to @MediaGirl for that trick! Ref: How to add a custom JavaScript to ...


12

This answer is partly based on ExpressionEngine Twitter API v1.1 add-ons. It is a "community wiki" answer, so please feel free to edit it with any extra information available (state sources where possible). Already Updated for API v1.1 CE Tweet 1.3+ ($) by Causing Effect EE Twitter 1.0+ (Free) by Click Rain NSM Twitter ($) by Newism / EE Garage Social ...


11

I've played with both, but not used either in production. Here's how I as an end user would sumarise the differences between Freeway and Router: Freeway: Free/Open Source (GPL) (+) You can still access the original URL segments in your template Friendlier/more "EE-like" routing syntax (+) Stores routes in CP rather than a file - this is a biggie for me ...


10

I have recently used EE templates to make JSON output from channels that contain a range of custom fields, including P&T’s Playa, Matrix and Wygwam fieldtypes. Those that are not familiar with JSON might find this useful. While it is a bit fiddly, all that is really required is a resource who is familiar with the JSON syntax/format to help you craft the ...


10

SEO Lite is always helpful. Dynamic but let's you do page level overrides. No site maps though. http://devot-ee.com/add-ons/seolite Also adds a tab to the publish view so it's readily available.


9

Have a look at transcribe. i am currently using it with structure and am pretty satisfied with it. The way you are proposing to do this will probably end up confusing visitors, as they will be seeing 2 languages mixed. With transcribe you will be creating different entries, and content of the site does not have to be equal. Each language will have it's own ...


9

This came up on Stack Overflow recently and prompted a semi-official response: This message will likely be removed in a future release. It's causing too much confusion than help and isn't entirely necessary. Yes it would be helpful for the developer log to let you know which addon is causing the problem, but the logistics of parsing backtraces to find ...


9

You're correct that the native search:field_name param only works on custom fields and not titles, annoyingly, so we do need an addon to do this. Stash is overkill for this use case though and requires a lot of code to get the (fairly simple) job done. I'd use another fine Croxton product instead: the Search Fields Plugin, just wrap it around your {exp:...


8

Possible yes, easily, not overly confusing no, but sitting down with the client and explaining the use for 15 minutes would be really useful. That said you do want to make things as clear as possible for the client and each client have different levels of experience and general nous / common computer sense. We normally make short video tutorials built into ...


8

Do you have the latest version which is 2.6.4, if not upgrade and see if that solves your issue. Are you aware that this plugin is no longer in development and that it is effectively abandonware? For a more robust solution that is actively developed and supported by the developer I would recommend CE Image additionally the documentation is second to none ...


8

You can use Ce_string for this, which is the ultimate swiss army knife. {exp:ce_str:ing htmlspecialchars=":CONST:ENT_QUOTES"}<a href='test'>Test</a>{/exp:ce_str:ing}


8

Row IDs in Matrix are unique for the whole site, like entry IDs. So there only will ever be one row with a row_id of '1' – the first row you ever created. If you’ve deleted that row, then no row exists with the ID '1' anymore. If you just want to grab the first row, use limit="1" instead, which will limit the output to only the first row. If you want to ...


7

Nope - it's still an add-on. You can find it on github.


7

The easiest way to customize the error messages shown would be to set error_handling=”inline” in your checkout template opening tag as mentioned in the docs here. Then you would be able to add {error:field_name} anywhere you would like to show the errors. Alternatively if you want to customize the text that is shown you can do something like: {if error:...


7

If performance is only a problem when the site gets hit by a lot of traffic, you might want to turn on caching for that particular tag (I'm not really a fan of full page caching). That is what it is meant for... {exp:channel:entries cache='yes' refresh='60' ...} Might I ask why you have at all? You shouldn't need it since you are not nesting the same tags.....


7

Stash doesn't parse preload_replace. But they will work if you use process="start" with the stash embed, since that effectively includes the sub template code in the host template prior to preload_replace being parsed by EE. However, be aware that if you need to access stash vars captured in the host template then you need to use process="end" (the default) ...


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