Is it possible to have a Category Dressing Title be made into a link that can point to and ezpage or contact us page?
For example : define ('CAT_BOX_HEADING_108_130','1|0|||Text Here Would be a Link|1|');
Printable View
Is it possible to have a Category Dressing Title be made into a link that can point to and ezpage or contact us page?
For example : define ('CAT_BOX_HEADING_108_130','1|0|||Text Here Would be a Link|1|');
I suppose I should rephrase this and simply what I am asking. I am using the Collapseable Categories Tree. I would like it so, when the main category is clicked the tree expands which exposes all the sub-categories. I do like having the text link showing. But I don't want the category link to direct to the category page (URL), the page stays the same. Basically for the main categories only, I want to use these links as category tree expanders and not direct to the category page URL itself.
As for the sub-categories they stay the same. I do have arrow images attached that change when the main category URL is clicked. I would like these to still work properly like they are now. In that the sub-category URL's continue to direct to the corresponding sub-category. I have been scanning the docs and some of this forum, but have not found an answer yet.
I was thinking I could just find the URL code for the main categories, and just remove the cpath. Thereby breaking the link. But I am not sure where to find this, and I don't know if this is the best way to go.
Ray: Yes, you can make the "heading" a link. Just put the HTML for it in the define, like this:
define ('CAT_BOX_HEADING_108_130','1|0|||<a href="index.php?main_page=page&id=23">EZ-Page 23 Link</a>|1|');
Be sure you don't use any unescaped single quotes. ( \' not ' )
Sports_guy: Unlinking the top categories in the sidebox will require a test and conditional edit either in categories_dressing_functions.php or tpl_categories.php. It shouldn't be too hard; I'll look into it in the next day or so.
Thank you for looking into this Glen! And after looking though about 40 pages of this post this morning, I would never ask for this category tree to be two way (open and close sub-category tree based upon master-category click and unclick). and I will be happy! As you can see I am using this to just open the master category tree (like a javascript action would do).
Find the section like this in tpl_categories.php and replace it with the following:The two edited sections are between //no top cat link comments.PHP Code:
$cat_name_display = cat_name_display($box_categories_array[$i]['name'], $current_path);
$active_class = ($box_categories_array[$i]['current'])? ($box_categories_array[$i]['has_sub_cat']? 'parent': 'selected'): 'not-selected';
if ($cat_depth == 0) {//no top cat link
$content .= str_repeat(' ',$cat_depth) . ' <li class="cat-' . $new_style . '"><span class="cat-' . $active_class . $cat_name_display[0] . '">';
} else {
$content .= str_repeat(' ',$cat_depth) . ' <li class="cat-' . $new_style . '"><a class="cat-' . $active_class . $cat_name_display[0] . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">';
}//no top cat link
$content .= $cat_name_display[1];
if ($box_categories_array[$i]['has_sub_cat'] and $cat_name_display[0] == '-text') {
$content .= CATEGORIES_SEPARATOR;
}
if (SHOW_COUNTS == 'true' and $cat_name_display[0] == '-text') {
if ((CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) {
$content .= '<span class="catCount">' . CATEGORIES_COUNT_PREFIX . $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX . '</span>';
}
}
if ($cat_depth == 0) {//no top cat link
$content .= '</span>';
} else {
$content .= '</a>';
}//no top cat link
$content .= cat_box_subtext($current_path);
}
}
$content .= cat_ul_manage(0, $prev_path, 0) . '</ul>' . "\n";
Glen, are you sure this code is from tpl_categories.php? The code in my tpl_categories.php is completely different. it even had your name in the header. This is what I have:
I thought perhaps this was merged with my original file (and it was) but my original file also did not have the code you want me to find. Last I looked at template default and that file also did not have this code.Code:<?php
/**
* Side Box Template
*
* @package templateSystem
* @copyright Copyright 2009 Glenn Herbert
* @copyright Portions Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.gnu.org/licenses/ GNU Public License V3.0
* @version $Id: tpl_categories.php 4162 2006-08-17 03:55:02Z ajeh $
* Modified for Categories Dressing v2.7.3 by Glenn Herbert (gjh42) - 20090505
*
* Referenced files:
* includes/functions/extra_functions/categories_dressing_functions.php
* includes/languages/english/extra_definitions/your_template/categories_dressing_defines.php - make user settings here
*/
$content = "";
$prev_cat_depth = -1;//do not alter
$content .= '<div id="' . str_replace('_', '-', $box_id . 'Content') . '" class="sideBoxContent">' . "\n";
for ($i=0;$i<sizeof($box_categories_array);$i++) {
switch(true) {
// to make a specific category stand out define a new class in the stylesheet example: #categories li.cat-holiday a {}
// uncomment the select below and set the cPath=3 to the cPath= your_categories_id
// many variations of this can be done
case ($box_categories_array[$i]['path'] == 'cPath=181'):
$new_style = 'pleasureobjects';
break;
case ($box_categories_array[$i]['path'] == 'cPath=141'):
$new_style = 'hosiery';
break;
case ($box_categories_array[$i]['path'] == 'cPath=193'):
$new_style = 'accessories';
break;
case ($box_categories_array[$i]['path'] == 'cPath=190'):
$new_style = 'clothing';
break;
case ($box_categories_array[$i]['path'] == 'cPath=191'):
$new_style = 'lingerie';
break;
case ($box_categories_array[$i]['path'] == 'cPath=192'):
$new_style = 'swimwear';
break;
case ($box_categories_array[$i]['path'] == 'cPath=71'):
$new_style = 'sale';
break;
case ($box_categories_array[$i]['top'] == 'true'):
$new_style = 'top';
break;
case ($box_categories_array[$i]['has_sub_cat']):
$new_style = 'subs';
break;
default:
$new_style = 'products';
}
$current_path = str_replace("cPath=","",$box_categories_array[$i]['path']);
$skip_cat = 0;
$skip_cat = cat_active_level_manage($current_path);
if ($skip_cat or zen_get_product_types_to_category($box_categories_array[$i]['path']) == 3 or ($box_categories_array[$i]['top'] != 'true' and SHOW_CATEGORIES_SUBCATEGORIES_ALWAYS != 1)) {
// skip if this is for the document box (==3)
} else {
$cat_box_heading = cat_box_heading($current_path);
$cat_ul = cat_ul_manage($current_path, $prev_cat_depth, $cat_box_heading[0]);
$content .= $cat_ul;
$content .= $cat_box_heading[1];
$cat_name_display = cat_name_display($box_categories_array[$i]['name'], $current_path);
$active_class = ($box_categories_array[$i]['current'])? ($box_categories_array[$i]['has_sub_cat']? 'parent': 'selected'): 'not-selected';
$content .= ' <li class="cat-' . $new_style . '"><a class="cat-' . $active_class . $cat_name_display[0] . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">';
$content .= $cat_name_display[1];
if ($box_categories_array[$i]['has_sub_cat'] and $cat_name_display[0] == '-text') {
$content .= CATEGORIES_SEPARATOR;
}
if (SHOW_COUNTS == 'true' and $cat_name_display[0] == '-text') {
if ((CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) {
$content .= '<span class="catCount">' . CATEGORIES_COUNT_PREFIX . $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX . '</span>';
}
}
$content .= '</a>';
$content .= cat_box_subtext($current_path);
}
}
$content .= cat_ul_manage(0, $prev_cat_depth, 0) . '</ul>' . "\n";
if (SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
// display a separator between categories and links
if (SHOW_CATEGORIES_SEPARATOR_LINK == '1') {
$content .= '<hr id="catBoxDivider" />' . "\n";
}
$content .= '<ul class="catLinks">' . "\n";
if (SHOW_CATEGORIES_BOX_SPECIALS == 'true') {
$cat_box_link_head = cat_box_heading('SPECIALS');
$content .= $cat_box_link_head[1];
$show_this = $db->Execute("select s.products_id from " . TABLE_SPECIALS . " s where s.status= 1 limit 1");
if ($show_this->RecordCount() > 0) {
$content .= '<li><a class="category-links" href="' . zen_href_link(FILENAME_SPECIALS) . '">' . CATEGORIES_BOX_HEADING_SPECIALS . '</a>' . '</li>' . "\n";
}
}
if (SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true') {
// display limits
// $display_limit = zen_get_products_new_timelimit();
$display_limit = zen_get_new_date_range();
$show_this = $db->Execute("select p.products_id
from " . TABLE_PRODUCTS . " p
where p.products_status = 1 " . $display_limit . " limit 1");
if ($show_this->RecordCount() > 0) {
$cat_box_link_head = cat_box_heading('NEW');
$content .= $cat_box_link_head[1];
$content .= ' <li><a class="category-links" href="' . zen_href_link(FILENAME_PRODUCTS_NEW) . '">' . CATEGORIES_BOX_HEADING_WHATS_NEW . '</a>' . '</li>' . "\n";
}
}
if (SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true') {
$show_this = $db->Execute("select products_id from " . TABLE_FEATURED . " where status= 1 limit 1");
if ($show_this->RecordCount() > 0) {
$cat_box_link_head = cat_box_heading('FEATURED');
$content .= $cat_box_link_head[1];
$content .= ' <li><a class="category-links" href="' . zen_href_link(FILENAME_FEATURED_PRODUCTS) . '">' . CATEGORIES_BOX_HEADING_FEATURED_PRODUCTS . '</a>' . '</li>' . "\n";
}
}
if (SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
$cat_box_link_head = cat_box_heading('ALL');
$content .= $cat_box_link_head[1];
$content .= ' <li><a class="category-links" href="' . zen_href_link(FILENAME_PRODUCTS_ALL) . '">' . CATEGORIES_BOX_HEADING_PRODUCTS_ALL . '</a>' . '</li>' . "\n";
}
$content .= '</ul>' . "\n";
}
$content .= '</div>';
?>
I found it. I will let you know how it works.
Oops:) I realized a few minutes ago that I had made the edits to my v2.8 development copy instead of the v2.7.3 archive copy I also had open. This is the correct edited code for you:You need to add the $cat_depth setting as well as the alternate outputs.PHP Code:
$skip_cat = 0;
$skip_cat = cat_active_level_manage($current_path);
$cat_depth = substr_count($current_path,'_');//no top cat link
if ($skip_cat or zen_get_product_types_to_category($box_categories_array[$i]['path']) == 3 or ($box_categories_array[$i]['top'] != 'true' and SHOW_CATEGORIES_SUBCATEGORIES_ALWAYS != 1)) {
// skip if this is for the document box (==3)
} else {
$cat_box_heading = cat_box_heading($current_path);
$cat_ul = cat_ul_manage($current_path, $prev_cat_depth, $cat_box_heading[0]);
$content .= $cat_ul;
$content .= $cat_box_heading[1];
$cat_name_display = cat_name_display($box_categories_array[$i]['name'], $current_path);
$active_class = ($box_categories_array[$i]['current'])? ($box_categories_array[$i]['has_sub_cat']? 'parent': 'selected'): 'not-selected';
//$content .= ' <li class="cat-' . $new_style . '"><a class="cat-' . $active_class . $cat_name_display[0] . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">';
if ($cat_depth == 0) {//no top cat link
$content .= str_repeat(' ',$cat_depth) . ' <li class="cat-' . $new_style . '"><span class="cat-' . $active_class . $cat_name_display[0] . '">';
} else {
$content .= str_repeat(' ',$cat_depth) . ' <li class="cat-' . $new_style . '"><a class="cat-' . $active_class . $cat_name_display[0] . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">';
}//no top cat link
$content .= $cat_name_display[1];
if ($box_categories_array[$i]['has_sub_cat'] and $cat_name_display[0] == '-text') {
$content .= CATEGORIES_SEPARATOR;
}
if (SHOW_COUNTS == 'true' and $cat_name_display[0] == '-text') {
if ((CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) {
$content .= '<span class="catCount">' . CATEGORIES_COUNT_PREFIX . $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX . '</span>';
}
}
//$content .= '</a>';
if ($cat_depth == 0) {//no top cat link
$content .= '</span>';
} else {
$content .= '</a>';
}//no top cat link
The end of the coding you have provided confuses me slightly. I know where your coding begins and see where to insert, but I am not sure what line of my coding comes directly after your coding ends. Here is my coding around the area where yours would end:
Which coding of mine, would be the first line (begin) right after your last line of coding provided?Code:$content .= '</a>';
$content .= cat_box_subtext($current_path);
}
}
$content .= cat_ul_manage(0, $prev_cat_depth, 0) . '</ul>' . "\n";
if (SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
// display a separator between categories and links
If all of this stays:
Making this the last line of replaced code:PHP Code:
$content .= cat_box_subtext($current_path);
}
}
$content .= cat_ul_manage(0, $prev_cat_depth, 0) . '</ul>' . "\n";
if (SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
// display a separator between categories and links
The page is showing all main links as bold text only. No subcategories, not styling, and no hidden categories. You can see it live here: http://www.lasilhouettelingerie.com/...ssories-c-193/Code:$content .= '</a>';
I was able to use Beyond Compare to merge changes. All the items in red, are said differences that were merged into my file:
----------------------------------------------------------------------------
$skip_cat = 0;
$skip_cat = cat_active_level_manage($current_path);
$cat_depth = substr_count($current_path,'_');//no top cat link
if ($skip_cat or zen_get_product_types_to_category($box_categories_array[$i]['path']) == 3 or ($box_categories_array[$i]['top'] != 'true' and SHOW_CATEGORIES_SUBCATEGORIES_ALWAYS != 1)) {
// skip if this is for the document box (==3)
} else {
$cat_box_heading = cat_box_heading($current_path);
$cat_ul = cat_ul_manage($current_path, $prev_cat_depth, $cat_box_heading[0]);
$content .= $cat_ul;
$content .= $cat_box_heading[1];
$cat_name_display = cat_name_display($box_categories_array[$i]['name'], $current_path);
$active_class = ($box_categories_array[$i]['current'])? ($box_categories_array[$i]['has_sub_cat']? 'parent': 'selected'): 'not-selected';
//$content .= ' <li class="cat-' . $new_style . '"><a class="cat-' . $active_class . $cat_name_display[0] . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">';
if ($cat_depth == 0) {//no top cat link
$content .= str_repeat(' ',$cat_depth) . ' <li class="cat-' . $new_style . '"><span class="cat-' . $active_class . $cat_name_display[0] . '">';
} else {
$content .= str_repeat(' ',$cat_depth) . ' <li class="cat-' . $new_style . '"><a class="cat-' . $active_class . $cat_name_display[0] . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">';
}//no top cat link
$content .= $cat_name_display[1];
if ($box_categories_array[$i]['has_sub_cat'] and $cat_name_display[0] == '-text') {
$content .= CATEGORIES_SEPARATOR;
}
if (SHOW_COUNTS == 'true' and $cat_name_display[0] == '-text') {
if ((CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) {
$content .= '<span class="catCount">' . CATEGORIES_COUNT_PREFIX . $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX . '</span>';
}
}
//$content .= '</a>';
if ($cat_depth == 0) {//no top cat link
$content .= '</span>';
} else {
$content .= '</a>';
}//no top cat link
}
}
$content .= cat_ul_manage(0, $prev_cat_depth, 0) . '</ul>' . "\n";
if (SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
// display a separator between categories and links
------------------------------------------------------------------
Something seems to be breaking the styling from the page.