I am working on OpenCart 1.5.6.4. I want to add dynamic CSS class in content box. I want the following options for the content box layout:
With the following code each case except the main content + right panel is working:
<?php if ($column_left && $column_right) { ?>
<?php $class = 'col-sm-6'; ?>
<?php } elseif ($column_left || $column_right) { ?>
<?php $class = 'col-sm-9'; ?>
<?php } else { ?>
<?php $class = 'col-sm-12'; ?>
<?php } ?>
<div id="content" class="<?php echo $class; ?>">.....</div>
I get this results:
What is wrong here with the last option? How can I fix it?
Would appreciate the help.
Your code looks completely fine and should be working. The reason it seems it is not is because most probably you have some data in the $column_left
even if it should be empty (thus considered as false
).
The best bet is to either check the $column_left
variable when there should be only main content + right column displayed (print_r($column_left)
) or check the left column's template immediately (catalog/view/theme/<YOUR_THEME>/template/common/column_left.tpl
).
Normally the code in column_left.tpl
should be
<?php if ($modules) { ?>
<div class="column_left">
<?php /* ... */ ?>
</div>
<?php } ?>
It is possible that You have something like this instead:
<div class="column_left">
<?php if ($modules) { ?>
<?php /* ... */ ?>
<?php } ?>
</div>
therefore there is empty <div>
and your code correctly uses col-sm-6
for main content.
After fixing the column_left.tpl
you should have col-sm-9
for main content + col-sm-3
for right column if there is no left column data.