{if false}
hi
{else if false}
bye
{/if}
results in “bye”. Do you want to know why? Because Smarty only supports “elseif”, not “else if”. It treats that as an “else”. No warning, no error. Just “else”. Thanks, Smarty.