Got the switch working...of sorts.
Put this into init_sessions.php
//set $_SESSION['catflag'] if not previously set
if (!isset($_SESSION['catflag'])) {
$_SESSION['catflag'] = 0;
}
//end
Used this for header_php.php
<?php
/**
* index header_php.php
*
* @package page
* @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: header_php.php 4371 2006-09-03 19:36:11Z ajeh $
*/
// This should be first line of the script:
$zco_notifier->notify('NOTIFY_HEADER_START_INDEX');
$catflag = $_SESSION[catflag];
echo ' catflag when index_header_php loads is '. $catflag;//check catflag status when page loads ***REMOVE THIS LINE LATER***
// the following cPath references come from application_top/initSystem
$category_depth = 'top';
if (isset($cPath) && zen_not_null($cPath)) {
$categories_products_query = "SELECT count(*) AS total
FROM " . TABLE_PRODUCTS_TO_CATEGORIES . "
WHERE categories_id = :categoriesID";
$categories_products_query = $db->bindVars($categories_products_query, ':categoriesID', $current_category_id, 'integer');
$categories_products = $db->Execute($categories_products_query);
if ($categories_products->fields['total'] > 0) {
$category_depth = 'products';$catflag=0;
} else {
$category_parent_query = "SELECT count(*) AS total
FROM " . TABLE_CATEGORIES . "
WHERE parent_id = :categoriesID";
$category_parent_query = $db->bindVars($category_parent_query, ':categoriesID', $current_category_id, 'integer');
$category_parent = $db->Execute($category_parent_query);
if (($category_parent->fields['total'] > 0) && ($catflag == 1)) {
echo 'this is now nestedproducts level';//check the new level is being set when displaying sub sub categories ***REMOVE THIS LINE LATER***
$catflag=0;
$category_depth = 'nestedproducts'; // create new nestedproducts query in main_template_vars.php to show all products if this statement is true
}elseif ($category_parent->fields['total'] > 0) {
echo ' catflag before nested is '. $catflag; //check catflag status before category depth is set to nested ***REMOVE THIS LINE LATER***
$category_depth = 'nested'; $catflag=1; echo ' catflag after nested is '. $catflag;// navigate through the categories
} else {
echo 'catflag is'. $catflag;//check catflag status after category depth is set to nested ***REMOVE THIS LINE LATER***
$category_depth = 'products'; // category has no products, but display the 'no products' message
}
}
}
// include template specific file name defines
$define_page = zen_get_file_directory(DIR_WS_LANGUAGES . $_SESSION['language'] . '/html_includes/', FILENAME_DEFINE_MAIN_PAGE, 'false');
require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));
// set the product filters according to selected product type
$typefilter = 'default';
if (isset($_GET['typefilter'])) $typefilter = $_GET['typefilter'];
require(DIR_WS_INCLUDES . zen_get_index_filters_directory($typefilter . '_filter.php'));
// query the database based on the selected filters
$listing = $db->Execute($listing_sql);
// if only one product in this category, go directly to the product page, instead of displaying a link to just one item:
// if filter_id exists the 1 product redirect is ignored
if (SKIP_SINGLE_PRODUCT_CATEGORIES=='True' and (!isset($_GET['filter_id']) and !isset($_GET['alpha_filter']))) {
if ($listing->RecordCount() == 1) {
zen_redirect(zen_href_link(zen_get_info_page($listing->fields['products_id']), ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing->fields['products_id']));
}
}
$_SESSION[catflag]=$catflag;
echo 'this is now the end of header_php and catflag is ' . $catflag;//check the catflag level when header_php script ends ***REMOVE THIS LINE LATER***
// This should be last line of the script:
$zco_notifier->notify('NOTIFY_HEADER_END_INDEX');
?>
the flag is set when it should be and will enable a new script to be run for displaying sub sub category images....
except one issue:
If you navigate back to the home page, or directly to another category then catflag is still set at 1.
Any way of resetting the flag when index or a new category is loaded?
When i get this working i'll post it for others as it should prove useful.
Thanks for any help.
Zen Cart developer since 2009 — Zen Cart Solutions
Ecommerce development, integrations & automation — Junction Solutions