Rearranging Sideboxes on Certain Pages
Hi guys, I was hoping someone might be able to help me out with the following. I'm looking for a way to rearrange the sideboxes on certain pages. For example, at the moment the Information sidebox is located 'below the fold' on the Contact Us page, but I would like to move this to the top of the sidebar so that it will be the first thing a visitor sees when he goes to the Contact Us page. Unfortunately I don't really know what the best method would be to address this. :frusty:
Re: Rearranging Sideboxes on Certain Pages
You want all the same sideboxes to appear on all pages, but that one box to appear in a different place on that one page?
Re: Rearranging Sideboxes on Certain Pages
I don't have the fine details to the solution, but the template file that displays/organizes the left sidebox can be modified with if statements to change the position value based on the value of $current_page.
Re: Rearranging Sideboxes on Certain Pages
You could also fiddle with the CSS for that page to place that box with absolute positioning.
Re: Rearranging Sideboxes on Certain Pages
Quote:
Originally Posted by
stevesh
You could also fiddle with the CSS for that page to place that box with absolute positioning.
See: http://www.zen-cart.com/wiki/index.p...Per-Page-Rules
for one way to apply the CSS rules to just the desired page(s).
Re: Rearranging Sideboxes on Certain Pages
Thanks for the tips guys! I'll give it a go and keep you posted.
Re: Rearranging Sideboxes on Certain Pages
As an alternative, you could also create a template-customized version of /includes/modules/column_left.php (i.e. copy the core file to /includes/modules/YOUR_TEMPLATE/column_left.php and make your edits there). Here's what I came up with for your specified case (information sidebox first on contact_us page):
Code:
<?php
/**
* column_left module
*
* @package templateStructure
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: column_left.php 4274 2006-08-26 03:16:53Z drbyte $
*/
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
$column_box_default='tpl_box_default_left.php';
// Check if there are boxes for the column
$column_left_display= $db->Execute("select layout_box_name from " . TABLE_LAYOUT_BOXES . " where layout_box_location = 0 and layout_box_status= '1' and layout_template ='" . $template_dir . "'" . ' order by layout_box_sort_order');
// safety row stop
$box_cnt=0;
$information_sidebox_shown = false;
if ($current_page_base == FILENAME_CONTACT_US) {
if ( file_exists(DIR_WS_MODULES . 'sideboxes/information.php') or file_exists(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/information.php') ) {
$column_width = BOX_WIDTH_LEFT;
$box_cnt++;
$information_sidebox_shown = true;
if ( file_exists(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/information.php') ) {
$box_id = zen_get_box_id('information.php');
require(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/information.php');
} else {
$box_id = zen_get_box_id ('information.php');
require(DIR_WS_MODULES . 'sideboxes/information.php');
}
}
}
while (!$column_left_display->EOF and $box_cnt < 100) {
$box_cnt++;
if ( !($information_sidebox_shown && $column_left_display->fields['layout_box_name'] == 'information.php') && (file_exists(DIR_WS_MODULES . 'sideboxes/' . $column_left_display->fields['layout_box_name']) or file_exists(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/' . $column_left_display->fields['layout_box_name']) ) ) {
?>
<?php
//$column_box_spacer = 'column_box_spacer_left';
$column_width = BOX_WIDTH_LEFT;
if ( file_exists(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/' . $column_left_display->fields['layout_box_name']) ) {
$box_id = zen_get_box_id($column_left_display->fields['layout_box_name']);
require(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/' . $column_left_display->fields['layout_box_name']);
} else {
$box_id = zen_get_box_id($column_left_display->fields['layout_box_name']);
require(DIR_WS_MODULES . 'sideboxes/' . $column_left_display->fields['layout_box_name']);
}
} // file_exists
$column_left_display->MoveNext();
} // while column_left
$box_id = '';
?>