If all this are fields within the same exp:channel:entries
, to use switchee
or IfElse
will make no difference.
Conditionals which uses module data are parsed by the module. There's no reason for use an addon.
Take a look at this answer of Low.
Or start by the slide 66 of his presentation.
The key to use this add-ons is to avoid unnecessary parsing, what, in your case, can be done just by not using native Playa tags.
Try to make them to be parsed after the exp:channel:entries
conditionals.
For example, take note of how much memory and how many queries your templates uses now. Then start to replace the Playa fields that are inside conditionals by module tags.
{if pre_event_banner_extra_info != ''}
<img class="placeholder" src="{pre_event_banner_extra_info}" width="336" height="305" alt="image description" />
{if:else}
{pre_event_video show_future_entries="yes" show_expired="yes" status="open|not blog|homepage feature"}
<a href="http://{video_player_url}?autoplay=1" class="vimeo" rel="gallery" title="{title}"><img class="placeholder" src="{featured_image_sm}" width="336" height="305" alt="image description" /></a>
{/pre_event_video}
{/if}
By:
{exp:switchee variable = "{pre_event_banner_extra_info}" parse="inward"}
{case value=""}
{exp:playa:children entry_id="{emebd:e-entry_id}" field="pre_event_video" show_expired="yes" status="open|not blog|homepage feature"}
<a href="http://{video_player_url}?autoplay=1" class="vimeo" rel="gallery" title="{title}"><img class="placeholder" src="{featured_image_sm}" width="336" height="305" alt="image description" /></a>
{/exp:playa:children}
{/case}
{case default="Yes"}
<img class="placeholder" src="{pre_event_banner_extra_info}" width="336" height="305" alt="image description" />
{/case}
{/exp:switchee}
Check your memory and queries again.
Now, playa is another module and its tags will be discarded before parsing by switchee when not necessary.