21

Unfortunately the {exp:channel:entries} tag is fairly heavy (even if it is useful!). If you look at the code, the main function is over 1,000 lines and there are several additional functions which are called. To get a view of what is happening to the database, enable the Output Profiler. I assume that you know where it is, but for the sake of others this ...


15

Check if that channel is assigned a status group from CP -> Admin -> Channel Administration -> Channels -> Edit Group Assignments. Here make sure that you have selected a status "Status Groups".


11

You can include the author's name and a link using the author and author_id variables. For example: {exp:channel:entries channel="blog"} <h2>{title}</h2> {body} <p>Posted by <a href="/blog/author/{author_id}">{author}</a></p> {/exp:channel:entries} Then, at its most basic, create a template to display posts ...


10

If you're getting these kind of issues for a single channel:entries loop with no other "heavy" tags nested inside, and caching of any kind really isn't an option for you, then my first question would be, what are you doing in that template? If you're doing nothing funky (no embeds, complex relationships etc) then I'd start further down the stack, but without ...


9

I think this should work: In this example I use three custom fields: article_image, image_description and class. {if article_image != ""} <img src="{article_image}" alt="{image_description}" title="{image_description}" class="{class}" /> {/if} You can also use the shorthand version of the above code like so "{if custom_field}content here{/if}". ...


9

No limit is not possible, but you can simply set limit to some ultra-high value, e.g. limit="999999"


9

You can use MX Title Control or Title Master to do this. Title Master specifically lists the scenario you describe as an example: If you have a channel with people in it, it is annoying to have to enter a Title when it is the same information you will enter for the First and Last Name fields. Here is a quick example of templates you could use. ...


9

You can use the search parameter. {exp:channel:entries search:image_custom_field_name="not IS_EMPTY" ...} ... {/exp:channel:entries} This will return entries where the image custom field has been filled in.


9

Personally I'd use SEO Lite - then only this is needed in the header: {exp:seo_lite use_last_segment="y"} And then this in the config file / SEO Lite template: EE2 example (with focuslab llc master config): https://gist.github.com/bjornbjorn/4039233 EE3 example can be found here: http://wedoaddons.com/seo-lite/extra-tags http://devot-ee.com/add-ons/...


9

I was able to accomplish what I was after using the following... {if "{categories}{category_url_title}{/categories}"!=""} CATEGORY EXISTS {if:else} NO CATEGORY EXISTS {/if}


8

There are two add-ons that are very useful for single-entry channels: As Jeremy mentioned, Single Entry (great add-on!) or CP Menu Master -- also a useful add-on (formerly "Hidden Channels"). Either of these will remove the given channel from the Content > Publish menu, making it less likely for the end-user to be confused and publish additional entries in ...


8

This query should work: UPDATE exp_channel_titles t SET t.status = 'pending' WHERE t.status = 'open' AND t.channel_id = 'x' Change 'x' to your channel id.


8

Yes, a quotes channel is a great idea. We have done something similar to that in countless websites. Sometimes this channel is called "testimonials" or "quotes". This also has the advantage that you can have a separate custom field for the quote's author, and display this in a consistent format on your site, without relying on your client to format it ...


8

You can use jQuery with .insertBefore() or .insertAfter() to accomplish this. If you want to insert the image after the first paragraph, use something like: <div class="article"> {article} </div> $('{custom_image_field}').insertAfter('.article p:first-child'); If you want it elsewhere, just adjust your selector (ie: '.article p:first-...


8

This parameter is confusing, and has been the subject of much consternation. As per Travis' comment on the docs page: If an entry is in two categories, cat_id 1 and cat_id 2, and you ask for just entries with category="not 1", the entry will still show up in the output. This is because it is in category 2. This may not be the behavior you expect. Also ...


8

Personally, this is where I'd just open Sequel Pro and run the database queries directly. But if you aren't use to working directly with the database tables or performing SQL queries directly, then ExpressionEngine provides a very simple and easy to use tool. But… PLEASE BACKUP YOUR DATABASE FIRST. EE2 offers under the Tools Menu, the Search and Replace ...


8

Found the fix. https://support.ellislab.com/bugs/detail/20152 Edit system/expressionengine/helpers/segment_helper.php around line 97 to add this conditional above ee()->load->model(‘category_model’); so it looks like: if (empty($category_name)) { return ''; } ee()->load->model('category_model');


8

EE has always maintained a unique entry id, but only unique url titles within a given channel. There is no way that I know of to force unique url titles across all channels. This usually isn't an issue so long as you are specifying channels in your template code. Incidentally this is why EE uses a /category/ segment when using category url titles - that's ...


7

I'm personally using RSS Graffiti on Facebook to parse in my RSS feed and post it as Facebook entries. Has worked brilliantly and was dead simple to set up. -Lisa


7

You already can use tabs in your publish layout: Edit an entry > click "show toolbar" > add/remove tabs in this section: More info in the EE documentation: Publish Page Layouts


7

The first thing you should try is adding some disable parameters: {exp:channel:entries channel="curated_posts" orderby="entry_id" limit="50" dynamic="no" disable="categories|category_fields|member_data|pagination"} Put this in a template on its own and try to measure how long it takes to load. Then check if it is significantly more in your actual template. ...


7

Is it possible to change the limit of a loop, dynamically? Would it require some PHP? You can do it without using PHP. Here are two ways that come to mind, but I'm sure there are others. Method 1: Using a segment variable The following loop for a products listing will set a default limit of 10, but uses segment_2 to set a different limit dynamically. ...


7

$this->EE is referring to the EE singleton object that basically powers everything in EE. You need to reference the global object from memory. $this->EE =& get_instance(); If this doesn't work, then be sure you are executing your code within the EE bootstrap (within a module, plugin, extension, library, or some other approved place).


7

Much simpler than you think! Just add url_title="not '{segment_3}'" to your Channel Entries tag. (Or whichever segment holds your entry's url_title.)


7

If the project has relatively low needs in terms of site-wide data (read, If you don't need custom fields), then I tend to store these in global variables and snippets. When I need to store more advanced content, I personally use low variables. Pretty much a default now on medium or big EE builds. You can then use custom fields like Matrix, Wygwam, playa, ...


7

Low Reorder was created for this exact purpose.


6

If you have an index or listing page, like products, your code maybe like {exp:channel:entries channel="products" limit="10" orderby="date" sort="desc"} <div class="pic-wall"><a href=/product/profile/{url_title}"><img src="/images/product/{product_image_file}" alt="{title}"></a></div> {/exp:channel:entries} then on your ...


6

If when you say "performance" you mean system performance the n it would probably be moot - as no matter what combination of channels and fields you put into EE at the EE database level you are just extending the same tables. In other words one EE channel does not equal one EE/MySQL table. But by performance you could also mean Content Manager ...


6

You can create custom tabs on the publish page and choose which fields they contain. Just click the 'show toolbar' link on the upper right hand side of the publish page and you'll see these controls: Individual fields can be hidden by clicking on the little eye icons. Tabs can be created via the Add Tab link and populated by dragging and dropping field ...


6

How would you want to enforce the limit? You could use a query tag at the top of the Safecracker form: {exp:query sql="Select count(*) 'number_posts' from exp_channel_titles where author_id='{member_id}'"} {if number_posts == 1}{/if} {/exp:query} And within that query, you could do a redirect, display a message, or wrap the whole form in a conditional ...


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