php - Add dynamic class in content box in OpenCart
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:
- left panel + main content + right panel
- only left panel + main content
- only main content + right panel
- only main content (without left & right panels)
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.
Answer
Solution:
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 asfalse
).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 beIt is possible that You have something like this instead:
therefore there is empty
<div>
and your code correctly usescol-sm-6
for main content.After fixing the
column_left.tpl
you should havecol-sm-9
for main content +col-sm-3
for right column if there is no left column data.