Sub-categories Tutorial

134 posts by 17 authors in: Forums > CMS Builder
Last Post: August 7, 2012   (RSS)

Re: [Jason] Sub-categories Tutorial

By svsanchez - July 26, 2010

Hi Jason, here's the code:

<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php


// load viewer library
$libraryPath = 'cmsAdmin/lib/viewer_functions.php';
$dirsToCheck = array('/home/casahem/public_html/','','../','../../','../../../');
foreach ($dirsToCheck as $dir) { if (@include_once("$dir$libraryPath")) { break; }}
if (!function_exists('getRecords')) { die("Couldn't load viewer library, check filepath in sourcecode."); }

// load records

list($categoryRecords, $selectedCategory) = getCategories(array( 'tableName' => 'categories', 'categoryFormat' => 'twolevel', ));
list($articlesRecords, $articlesMetaData) = getRecords(array(
'tableName' => 'articles',
));

list($articlesRecords, $articlesMetaData) = getRecords(array(
'tableName' => 'articles',
'where' => whereRecordNumberInUrl(1),
'limit' => '1',
));
$articlesRecord = @$articlesRecords[0]; // get first record

// show error message if no matching record is found
if (!$articlesRecord) {
header("HTTP/1.0 404 Not Found");
print "Record not found!";
exit;
}

?>


<html>

<head>
<meta http-equiv="Content-Language" content="es-gt">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>$articlesRecord['title'] - Casa Hermes Guatemala</title>
</head>

<body bgcolor="#333333" topmargin="0" leftmargin="0" link="#F64B00" vlink="#F64B00">

<table border="0" cellpadding="2" cellspacing="0" width="1000" id="table1" bgcolor="#FFFFFF">
<tr>
<td width="173">
<p align="center">
<img border="0" src="../images/index.1.jpg" width="150" height="149"></td>
<td>
<div align="center">
<table border="1" cellpadding="0" cellspacing="0" width="728" id="table5" height="90" bgcolor="#F64B00" bordercolor="#000080">
<tr>
<td>
<p align="center">BANNER 728x90</td>
</tr>
</table>
</div>
<p align="right"><b><font face="Tahoma" size="2" color="#000080">Inicio&nbsp;
|&nbsp; Qui?es Somos&nbsp;&nbsp; |&nbsp;&nbsp; Contacto&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font></b></td>
</tr>
</table>
<table border="0" cellpadding="5" cellspacing="0" width="1000" id="table3" bgcolor="#FFFFFF">
<tr>
<td width="175" valign="top" style="border-right: 1px dotted #808080">
<p>


<font face="Tahoma" size="2">


<?php $selectedCat=""; ?> <?php foreach($categoryRecords as $category):?> <?php if(!$category['_hasParent']):?> <?php if($category['_isSelectedBranch']|| @$_REQUEST['category']==$category['num']){echo "<b>"; $selectedCat=$category['num'];} ?> <a href="articulos.php?category=<?php echo $category['num']?>"><?php echo $category['name']; ?></a> <?php if($category['_isSelectedBranch']|| @$_REQUEST['category']==$category['num']){echo "</b>";} ?> <?php endif ?>
</font> <p> <font face="Tahoma" size="2"> <?php endforeach ?>



</font>



</p>
<p align="center"><b><font face="Tahoma" size="2" color="#666666">
--------------------------</font></b></p>
<form method="POST" action="--WEBBOT-SELF--" onSubmit="">
<!--webbot bot="SaveResults" U-File="../_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" startspan --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--webbot bot="SaveResults" i-checksum="43374" endspan -->
<p><b><font face="Tahoma" size="2" color="#808080">Buscar:</font><font face="Tahoma" size="2" color="#666666"><br>
</font></b><input type="text" name="T1" size="17">
<input type="submit" value="Ok" name="B1" style="font-family: Tahoma; font-size: 10pt; color: #FFFFFF; background-color: #01009E"></p>
</form>
</td>
<td width="175" valign="top">


<font face="Tahoma" size="2">


<?php if($selectedCat): ?> <?php foreach($categoryRecords as $category): ?> <?php if ($selectedCat==$category['parentNum']):?> <!--<?php echo $category['_listItemStart']; ?>--> <a href="articulos.php?category=<?php echo $category['num']?>"> <?php echo $category['name']; ?> </a> <!--<?php echo $category['_listItemEnd']; ?>--> <?php endif ?> <p> <?php endforeach ?> <?php endif ?>


</font>


</td>
<td width="650" valign="top">



<font face="Arial" size="2"><font color="#666666">











</font></font><b>
<font face="Arial" size="4" color="#000080"> <?php echo $articlesRecord['title'] ?></font></b><font face="Arial" size="2" color="#666666"><br/>
<?php echo $articlesRecord['content'] ?><br/>
_link : <a href="../<?php echo $record['_link'] ?>"><?php echo $articlesRecord['_link'] ?></a><br/>



<hr/>
<?php if (!$articlesRecord): ?>
No record found!<br/><br/>
<?php endif ?>
<!-- /STEP2: Display Records -->

<a href="<?php echo $articlesMetaData['_listPage']; ?>">&lt;&lt; Back to list page</a>
-
<a href="mailto:?subject=<?php echo thisPageUrl() ?>">Email this Page</a>






<font face="Arial" size="2">


</td>
</tr>
</table>
<table border="0" cellpadding="5" cellspacing="0" width="1000" id="table4">
<tr>
<td bgcolor="#666666">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">&nbsp;</td>
</tr>
</table>

</body>

</html>
Sven Sanchez

www.deguate.com

By Jason - July 27, 2010

Hi,

You need to change your code that outputs your sub categories like this (I've highlighted the changes in red):

<?php if($selectedCat): ?>
<?php foreach($categoryRecords as $category): ?>
<?php if ($selectedCat==$category['parentNum']):?>
<!--<?php echo $category['_listItemStart']; ?>-->
<?php if($category['num']==@$_REQUEST['category']){echo "<b>";} ?>
<a href="articulos.php?category=<?php echo $category['num']?>"> <?php echo $category['name']; ?> </a>
<?php if($category['num']==@$_REQUEST['category']){echo "</b>";} ?>
<!--<?php echo $category['_listItemEnd']; ?>-->
<?php endif ?> <p>
<?php endforeach ?>
<?php endif ?>


Hope this helps.
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [Jason] Sub-categories Tutorial

By svsanchez - July 27, 2010

Hello, I did the change but it didn't work, I still have the subcategories in the details page shown in normal text instead of Bold: in the following link the subcategory "Fibrocemento" should appear in Bold but it's not!

http://www.casahermes.com/articulos-details.php?Ej-techos-fibrocemento-1
Sven Sanchez

www.deguate.com

By Jason - July 28, 2010

Hi,

Could you please attach the latest version of the file you're working with.

Also, what is the category number of the record that is being displayed?

Thanks.
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [Jason] Sub-categories Tutorial

By svsanchez - July 28, 2010

Hello Jason, the category in this example was #4. Here's the code:

<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php


// load viewer library
$libraryPath = 'cmsAdmin/lib/viewer_functions.php';
$dirsToCheck = array('/home/casahem/public_html/','','../','../../','../../../');
foreach ($dirsToCheck as $dir) { if (@include_once("$dir$libraryPath")) { break; }}
if (!function_exists('getRecords')) { die("Couldn't load viewer library, check filepath in sourcecode."); }

// load records

list($categoryRecords, $selectedCategory) = getCategories(array( 'tableName' => 'categories', 'categoryFormat' => 'twolevel', ));
list($articlesRecords, $articlesMetaData) = getRecords(array(
'tableName' => 'articles',
));

list($articlesRecords, $articlesMetaData) = getRecords(array(
'tableName' => 'articles',
'where' => whereRecordNumberInUrl(1),
'limit' => '1',
));
$articlesRecord = @$articlesRecords[0]; // get first record

// show error message if no matching record is found
if (!$articlesRecord) {
header("HTTP/1.0 404 Not Found");
print "Record not found!";
exit;
}

?>


<html>

<head>
<meta http-equiv="Content-Language" content="es-gt">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>$articlesRecord['title'] - Casa Hermes Guatemala</title>
</head>

<body bgcolor="#333333" topmargin="0" leftmargin="0" link="#F64B00" vlink="#F64B00">

<table border="0" cellpadding="2" cellspacing="0" width="1000" id="table1" bgcolor="#FFFFFF">
<tr>
<td width="173">
<p align="center">
<img border="0" src="../images/index.1.jpg" width="150" height="149"></td>
<td>
<div align="center">
<table border="1" cellpadding="0" cellspacing="0" width="728" id="table5" height="90" bgcolor="#F64B00" bordercolor="#000080">
<tr>
<td>
<p align="center">BANNER 728x90</td>
</tr>
</table>
</div>
<p align="right"><b><font face="Tahoma" size="2" color="#000080">Inicio&nbsp;
|&nbsp; Qui?es Somos&nbsp;&nbsp; |&nbsp;&nbsp; Contacto&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font></b></td>
</tr>
</table>
<table border="0" cellpadding="5" cellspacing="0" width="1000" id="table3" bgcolor="#FFFFFF">
<tr>
<td width="175" valign="top" style="border-right: 1px dotted #808080">
<p>


<font face="Tahoma" size="2">


<?php $selectedCat=""; ?> <?php foreach($categoryRecords as $category):?> <?php if(!$category['_hasParent']):?> <?php if($category['_isSelectedBranch']|| @$_REQUEST['category']==$category['num']){echo "<b>"; $selectedCat=$category['num'];} ?> <a href="articulos.php?category=<?php echo $category['num']?>"><?php echo $category['name']; ?></a> <?php if($category['_isSelectedBranch']|| @$_REQUEST['category']==$category['num']){echo "</b>";} ?> <?php endif ?>
</font> <p> <font face="Tahoma" size="2"> <?php endforeach ?>



</font>



</p>
<p align="center"><b><font face="Tahoma" size="2" color="#666666">
--------------------------</font></b></p>
<form method="POST" action="--WEBBOT-SELF--" onSubmit="">
<!--webbot bot="SaveResults" U-File="../_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" startspan --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--webbot bot="SaveResults" i-checksum="43374" endspan -->
<p><b><font face="Tahoma" size="2" color="#808080">Buscar:</font><font face="Tahoma" size="2" color="#666666"><br>
</font></b><input type="text" name="T1" size="17">
<input type="submit" value="Ok" name="B1" style="font-family: Tahoma; font-size: 10pt; color: #FFFFFF; background-color: #01009E"></p>
</form>
</td>
<td width="175" valign="top">


<font face="Tahoma" size="2">


<?php if($selectedCat): ?> <?php foreach($categoryRecords as $category): ?> <?php if ($selectedCat==$category['parentNum']):?> <!--<?php echo $category['_listItemStart']; ?>--> <?php if($category['num']==@$_REQUEST['category']){echo "<b>";} ?> <a href="articulos.php?category=<?php echo $category['num']?>"> <?php echo $category['name']; ?> </a> <?php if($category['num']==@$_REQUEST['category']){echo "</b>";} ?> <!--<?php echo $category['_listItemEnd']; ?>--> <?php endif ?> <p> <?php endforeach ?> <?php endif ?>



</font>


</td>
<td width="650" valign="top">



<font face="Arial" size="2"><font color="#666666">











</font></font><b>
<font face="Arial" size="4" color="#000080"> <?php echo $articlesRecord['title'] ?></font></b><font face="Arial" size="2" color="#666666"><br/>
<?php echo $articlesRecord['content'] ?><br/>
_link : <a href="../<?php echo $record['_link'] ?>"><?php echo $articlesRecord['_link'] ?></a><br/>



<hr/>
<?php if (!$articlesRecord): ?>
No record found!<br/><br/>
<?php endif ?>
<!-- /STEP2: Display Records -->

<a href="<?php echo $articlesMetaData['_listPage']; ?>">&lt;&lt; Back to list page</a>
-
<a href="mailto:?subject=<?php echo thisPageUrl() ?>">Email this Page</a>






<font face="Arial" size="2">


</td>
</tr>
</table>
<table border="0" cellpadding="5" cellspacing="0" width="1000" id="table4">
<tr>
<td bgcolor="#666666">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">&nbsp;</td>
</tr>
</table>

</body>

</html>
Sven Sanchez

www.deguate.com

By Jason - July 28, 2010

Hi,

Try changing the code that outputs your sub categories to this:


<?php if($selectedCat): ?>
<?php foreach($categoryRecords as $category): ?>
<?php if ($selectedCat==$category['parentNum']):?> <!--<?php echo $category['_listItemStart']; ?>-->
<?php if($category['num']==$aboutRecord['category']){echo "<b>";} ?> <a href="articulos.php?category=<?php echo $category['num']?>">
<?php echo $category['name']; ?> </a> <?php if($category['num']==$aboutRecord['category']){echo "</b>";} ?>
<!--<?php echo $category['_listItemEnd']; ?>-->
<?php endif ?> <p>
<?php endforeach ?>
<?php endif ?>


Give that a try.
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [Jason] Sub-categories Tutorial

By svsanchez - July 28, 2010

Hello Jason, I used the code you just sent me but this now I am getting the following error:

Notice: Undefined variable: aboutRecord in /home/casahem/public_html/articulos-details.php on line 99 [url "http://www.casahermes.com/articulos.php?category=4"]Fibrocemento [/#800080][/url]Notice: Undefined variable: aboutRecord in /home/casahem/public_html/articulos-details.php on line 99

Notice: Undefined variable: aboutRecord in /home/casahem/public_html/articulos-details.php on line 99 [url "http://www.casahermes.com/articulos.php?category=5"]Metálicos [/#800080][/url]Notice: Undefined variable: aboutRecord in /home/casahem/public_html/articulos-details.php on line 99

Notice: Undefined variable: aboutRecord in /home/casahem/public_html/articulos-details.php on line 99 [url "http://www.casahermes.com/articulos.php?category=6"]Plásticos [/#800080][/url]Notice: Undefined variable: aboutRecord in /home/casahem/public_html/articulos-details.php on line 99
Sven Sanchez

www.deguate.com

By Jason - July 29, 2010

Hi,

Ooops, typo. replace $aboutRecord with $articlesRecord. That should take care of the problem.

Thanks.
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [Jason] Sub-categories Tutorial

By svsanchez - July 29, 2010

Yes! That did it! But now we have a new and strange problem!

Example:

Go to http://www.casahermes.com/articulos.php?category=6 and you will see 2 different products on that page, with the Main section and subsection both in bold, which is exactly as we need it. Now if you click on any of those 2 products, you will get the information on that product, but:

a) If you select the first product (Plastitechos) the main section menu now shows the "Impermeabilizantes" option in Bold (instead of "Techos") and no sub-section menu.

b) If you select the second product (Ej techos plásticos 2) the main section menu now shows the "Tabicaciones y muros secos" option in Bold (instead of "Techos") and no sub-section menu.

What could be wrong?
Sven Sanchez

www.deguate.com