Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Header Tags SEO


Jack_mcs

Recommended Posts

That didn't work. I actually had to delete the entries in the headertags table.

Will that cause any ill effects?

The only thing it does is clear the entries. If you just use fill tags to fill them, then they can be easily estroed. But if you'v spent hours customizing them, it will cause you a lot of work. But if you are going to do that, the recommended way is to

replace the includes/header_tags.php file.

run headertags_seo_uninstall.php

run headertags_seo_install.php

go to Page Control so the pages are re-added to the list

I searched the database, concentrating on the products and products_description tables.

The only source I could find for the duplicate entries is that I have the same title for products in different categories.

Example:

Category = 3oz. Spray Paint | Product = Aluma Yellow Pearl

Category = 1/2oz. Paint Bottles | Product = Aluma Yellow Pearl

 

Is that a real problem that should be corrected?

Such as changing it to:

Category = 3oz. Spray Paint | Product = 3oz. Aluma Yellow Pearl

Category = 1/2oz. Paint Bottles | Product = 1/2oz. Aluma Yellow Pearl

If the titles and meta tags are the same, it means, usually, that the page heading is the same and if that is the case, there is a good chance of the pages being duplicates, which is not good. So you want to make sure they are not. The titles can be the same as long as the page content isn't.

Sorry I had to bother you again about this Jack. :(

No problem. :)

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

:blush: i took a look at the trouble shooting file for admin and everything seems to be ok... so i took your file and replaced it with my own file and the problem got even worse..

 

(i have other contribs like QTPRO and this: http://addons.oscommerce.com/info/5136 do you think thats may be the problem?)

 

i took a look at the source and it looks like this.. is that any help..? (i even run the test but theres no errors)

 

			
<!-- end whatsnewbox //-->
</td>
  </tr>
  <tr>
	<td>
<!-- start extra_info_pagesbox //-->

<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
<td height="14" class="infoBoxHeading"><img src="images/infobox/corner_right_left.gif" border="0" alt="" width="11" height="14"></td>
<td width="100%" height="14" class="infoBoxHeading">Övrigt</td>
<td height="14" class="infoBoxHeading" nowrap><img src="images/pixel_trans.gif" border="0" alt="" width="11" height="14"></td>
 </tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="1" class="infoBox">
 <tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="3" class="infoBoxContents">
 <tr>
<td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="1"></td>
 </tr>
 <tr>
<td class="boxText"><table border="0" width="100%" cellspacing="0" cellpadding="1"><tr><td class="infoBoxContents"><a target="" href="http://www.skotornet.se/extra_info_pages.php?pages_id=4&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Om våra storlekar</a></td></tr><tr><td class="infoBoxContents"><a target="" href="http://www.skotornet.se/extra_info_pages.php?pages_id=2&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Vårda dina skor</a></td></tr><tr><td class="infoBoxContents"><a target="" href="contact_us.php">Kontakta oss</a></td></tr><tr><td class="infoBoxContents"><a target="" href="privacy.php">Köp- och leveransvillkor</a></td></tr><tr><td class="infoBoxContents"><a target="" href="shipping.php">Frakt och Returer</a></td></tr><tr><td class="infoBoxContents"><a target="" href="http://www.skotornet.se/extra_info_pages.php?pages_id=6&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Om Företaget</a></td></tr><tr><td class="infoBoxContents"><a target="" href="http://www.skotornet.se/extra_info_pages.php?pages_id=5&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Hitta till oss</a></td></tr></table></td>
 </tr>
 <tr>
<td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="1"></td>
 </tr>
</table>
</td>
 </tr>
</table>

<!-- end extra_info_pagesbox //-->
</td>
  </tr>
</table></td>
<td valign="top" bgcolor="#FFFFFF">
  <p>
<!-- start Default Content //-->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
				   <td><h1>Damskor</h1></td>
	   <td class="pageHeading" align="right"></td>
	  </tr>
				 <tr>
	   <td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="10"></td>
	  </tr>
	  <tr>
	   <td colspan="2"><h2>????????? ??????????????
???????????????????osCom
merce Online Merchant Cop
yright © 2008 ?osCommerc
e???osCommerce provides 
no warranty and is redis
tributable under the ?GN
U General Public 
License? ??????????Power
ed by ?osCommerce???????
???????65007;?#65007;?#6
07;?#65007;?#65007;?#650
;?#65007;?#65007;?#65007
#65007;?#65007;?#65007;?
5007;?#65007;?
65007;?#65007;?#65007;osCo

merce Online
erchant Cop
yrigh
© 2008 ?#65007;osCommerc
e?#65007;?#65007;?#65
07;osCommerce provides 

o warranty and is red

tributabl
under the ?#65007
GN
U General Pu
ic 
License?#65007; ?#6
07;?#65007;?#65007;?#650
;?#65007;?#65007;?#65007
#65007;?#65007
?#6500
Power
ed by ?#65007;osC
merce?#65007;?#65007;?#65
7;?#65007;?#65007;?#65007;
#65007;
?#65007;?#65007
#65007;?#65007;?#65007;?
5007;?#65007;ᤐ#6416;ݦ#18
;ഈ#33</h2></td>
	  </tr>
			  </table></td>
  </tr>
  <tr>
	<td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="10"></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_36&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910161.JPG" border="0" alt="High Heels" title=" High Heels " width="87" height="100"><br>High Heels</a></td>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_7&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/sandaletter.jpg" border="0" alt="Sandaletter" title=" Sandaletter " width="164" height="100"><br>Sandaletter</a></td>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_31&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/ballerina.jpg" border="0" alt="Ballerina" title=" Ballerina " width="200" height="100"><br>Ballerina</a></td>
		  </tr>
		  <tr>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_5&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/pumps.jpg" border="0" alt="Pumps" title=" Pumps " width="152" height="100"><br>Pumps</a></td>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_6&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/sandal_dam.jpg" border="0" alt="Sandaler" title=" Sandaler " width="133" height="100"><br>Sandaler</a></td>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_8&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/promenaddam.jpg" border="0" alt="Promenadskor" title=" Promenadskor " width="185" height="100"><br>Promenadskor</a></td>
		  </tr>
		  <tr>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_9&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/sport_dam.jpg" border="0" alt="Sportskor" title=" Sportskor " width="133" height="100"><br>Sportskor</a></td>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_22&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/ovriga_modeller.jpg" border="0" alt="Övriga modeller" title=" Övriga modeller " width="142" height="100"><br>Övriga modeller</a></td>
			<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/index.php?cPath=1_50&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/tofflor_dam.jpg" border="0" alt="Tofflor/Inneskor" title=" Tofflor/Inneskor " width="204" height="100"><br>Tofflor/Inneskor</a></td>
		  </tr>
		</table></td>
	  </tr>
	  <tr>
		<td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="10"></td>
	  </tr>
	  <tr>
		<td><!-- new_products //-->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
<td height="14" class="infoBoxHeading"><img src="images/infobox/corner_left.gif" border="0" alt="" width="11" height="14"></td>
<td height="14" class="infoBoxHeading" width="100%">Nya produkter för maj</td>
<td height="14" class="infoBoxHeading"><img src="images/infobox/corner_right_left.gif" border="0" alt="" width="11" height="14"></td>
 </tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="1" class="infoBox">
 <tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="4" class="infoBoxContents">
 <tr>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=260&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910017.JPG" border="0" alt=""Gladiator" sandalett på klack, stentvättad svart" title=" "Gladiator" sandalett på klack, stentvättad svart " width="200" height="159"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=260&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">"Gladiator" sandalett på klack, stentvättad svart</a><br>690:-</td>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=259&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910127.JPG" border="0" alt="Praktisk allroundsko, svart" title=" Praktisk allroundsko, svart " width="200" height="102"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=259&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Praktisk allroundsko, svart</a><br>290:-</td>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=258&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910126.JPG" border="0" alt="Praktisk allroundsko med lufthål, vit" title=" Praktisk allroundsko med lufthål, vit " width="200" height="109"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=258&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Praktisk allroundsko med lufthål, vit</a><br>290:-</td>
 </tr>
 <tr>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=257&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910125.JPG" border="0" alt="Praktisk allroundsko med lufthål, svart" title=" Praktisk allroundsko med lufthål, svart " width="200" height="106"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=257&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Praktisk allroundsko med lufthål, svart</a><br>290:-</td>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=256&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/820201.JPG" border="0" alt="Träsko på rejäl träsula" title=" Träsko på rejäl träsula " width="200" height="118"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=256&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Träsko på rejäl träsula</a><br>300:-</td>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=255&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/820197.JPG" border="0" alt="Träsko på gummisula, vit" title=" Träsko på gummisula, vit " width="200" height="127"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=255&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Träsko på gummisula, vit</a><br>300:-</td>
 </tr>
 <tr>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=254&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910118.JPG" border="0" alt="Ballerina med påsydda skinndetaljer" title=" Ballerina med påsydda skinndetaljer " width="200" height="104"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=254&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Ballerina med påsydda skinndetaljer</a><br>500:-</td>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=253&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910120.JPG" border="0" alt="Ballerina med rem" title=" Ballerina med rem " width="200" height="88"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=253&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Ballerina med rem</a><br>500:-</td>
<td align="center" class="smallText" width="33%" valign="top"><a href="http://www.skotornet.se/product_info.php?products_id=252&osCsid=839d14e1e2cdfc874b13e6e86bb56d84"><img src="images/910119.JPG" border="0" alt="Ballerina med dekorspänne" title=" Ballerina med dekorspänne " width="200" height="95"></a><br><a href="http://www.skotornet.se/product_info.php?products_id=252&osCsid=839d14e1e2cdfc874b13e6e86bb56d84">Ballerina med dekorspänne</a><br>500:-</td>
 </tr>
</table>
</td>
 </tr>
</table>
<!-- new_products_eof //-->

Edited by Solan
Link to comment
Share on other sites

Hi Jack,

 

I've updated from v. 3.1.3 to 3.1.4 and now I've the following error, when I click on a product.

 

Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\includes\functions\header_tags.php on line 67

 

What can it be?

 

Regards,

 

Max

---

Max Terbeck

Link to comment
Share on other sites

Hi Jack,

 

I've updated from v. 3.1.3 to 3.1.4 and now I've the following error, when I click on a product.

 

Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\includes\functions\header_tags.php on line 67

 

What can it be?

 

Regards,

 

Max

It means the title or tags have not been filled in. Be sure to run fill tags.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Hi Jack,

 

I am installing HEader Tag SEO 3.1.4...

 

I have tried "my best" which is not enought I suppose cause :

 

1st: I was a bit confused with where to put this from Install_Catalog.TXT

 

4) In product_info.php 

  FIND (around line 33)

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

  ADD UNDER IT:

<?php /*** Begin Header Tags SEO ***/ ?>
<a name="<?php echo $header_tags_array['title']; ?>"></a>
<?php /*** End Header Tags SEO ***/ ?>

 

I haven't <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> in product_info.php file!

 

Do you have any other place where I can fixe the "ADD UNDER"?

 

2nd: I have a warning in my ADMIN>Header Tag SEO>page control

 

Erreur Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

 

I am testing Header Tag on my localhost server (WAMPSERVER) and I have a PC with windows XP

I have check and there is the good rights for that file (777)

What do I have to do please ?

 

3rd: If I go on the shop all is working fine until I select a product and my right column is gone and left to under the left column!

What can I do to change it please?

 

4th: If I test it from the ADMIN I get the following...

 

Test Results
Permissions Error:  explain
Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. [color="#FF0000"]NOTE: Disregard if on Windows server.
[/color]
Default Text Present:  explain
The default root text, New Home Page Title, should be removed or changed for index.php with language ID of 4.
The default root text, products new home, should be removed or changed for product_info.php with language ID of 4.

Duplicate title found:  explain
for French
exists more than once.
for English
exists more than once.

Duplicate meta description found:  explain
for French
exists more than once.
for English
exists more than once.

Missing Code in File  explain
The Header Tags head code for the product_reviews.php file cannot be found.
The Header Tags head code for the product_reviews_info.php file cannot be found.
The Header Tags head code for the product_reviews_write.php file cannot be found.
The Header Tags head code for the specials.php file cannot be found.

 

I have tried a few things but it is still the same.

 

What do I have to do/change Jack?

 

Thanks

osCommerce Online Merchant v2.2 RC1 W3C Valid FR avec : colissimo_v1.9 // CGV // GoogleXML_sitemap - Update -> googlexml_sitemap_seo_v_1.5 // Ultimate SEO URLs 2.1d - Update -> v22d_12 // AntiRobotRegistrationValidation-3.1 // TinyMCE WYSIWYG HTML EDITOR // HEader Tag SEO 3.1.4 // PDF Invoice 1.5 // Specials_enhanced_v1_3_1 // quick_stock_update_v3.5_FRENCH // xmembers_v2.2 // contact_us_form_in_db_with_amin_v1.1 // photo_display_1 // previous_next_with_details // infoBox Admin v.2.25 // whosonlineturbov1.1fr // customer_discount_v1.3 // flash_bannersv2 // Horizontal_menu_V3 // Loginbox_Best_1 // CCGV // XSell_v2_7_2 // Printable Catalog XSS Flaw Fixed // all_specials_slideshow // Birthdays_v1.4 // Search_price_range_pulldown_menu_1.1 // contrib-categories // Reviews_in_Product_Display_v2.3 // Easy Graphical Borders // Simple Multiple Images (Unlimited) with Fancy Popups V1.3.5 // Guestbook V3.0 // Blacklist_IP_v.3 // Quicker Product Edit v2.1 // Chronopost_2010 // Easy Center // Size Shop with Layers // Safari-Chrome_fix // Protection to Configuration v1.3a // Page_Cache_v1.6... Thanks to everyone!

Link to comment
Share on other sites

: Invalid arguments passed in C:\wamp\www\includes\functions\header_tags.php on line 67

 

What can it be?

 

Regards,

 

Max

It means the title or tags have not been filled in. Be sure to run fill tags.

 

Jack

 

 

Hi Jack,

 

I'm sorry that I'm such a fozanoon, but I am receiving the same error once I click off the index page (any category links):

 

Plus I receive this error when - Search by Manufacturer:

Warning: implode() [function.implode]: Invalid arguments passed in /home3/handesho/public_html/includes/functions/header_tags.php on line 66

 

I had ran Fill Tags = Fill only empty Tags since I already had tags from my previous 3.1.3 install working.

I also ran Page Control = Add missing pages.

I double checked - Configuration > Header Tags SEO to make sure everything was the same there, it was.

 

The lines (66, 67) in the includes/functions/header_tags.php references logo_text and logo_text_1.

 

I'm totally at a lose as to what to try next...? :blush:

- :: Jim :: -

- My Toolbox ~ Adobe Web Bundle, XAMPP & WinMerge | Install ~ osC v2.3.3.4 -

Link to comment
Share on other sites

You made a mistake in the edots for the admin/categories.php file. Pleae see the troubleshooting instructions in the install file.

 

Jack

 

What is edots? :blush:

Link to comment
Share on other sites

Hi Jack,

 

I am installing HEader Tag SEO 3.1.4...

 

 

Hi Jack,

 

I have done few changes but I have still problems...

 

I am still not sure if I have put <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> at the right place (cause I have still some errors)!? Is it link to my errors?

 

I have still the warning in my ADMIN>Header Tag SEO>page control:

Erreur Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

 

If I go on the shop all is working fine until I select a product. My right column is not there anymore and gone to the left side, under the left column!

With between the columns:

TEXT_VIEWING Améthyste is a great product (left side between the 2 columns)

And on the top of the page:

Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\catalog\includes\functions\header_tags.php on line 67

 

On the test from the ADMIN:

the Test Results

Permissions Error: explain

Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

 

Missing Code in File explain

The Header Tags head code for the product_reviews.php file cannot be found.

The Header Tags head code for the product_reviews_info.php file cannot be found.

The Header Tags head code for the product_reviews_write.php file cannot be found.

The Header Tags head code for the specials.php file cannot be found.

 

Can you give me a hand please?

 

I am testing Header Tag on my localhost server (WAMPSERVER) and I have a PC with windows XP

 

Thanks

Edited by Eric B

osCommerce Online Merchant v2.2 RC1 W3C Valid FR avec : colissimo_v1.9 // CGV // GoogleXML_sitemap - Update -> googlexml_sitemap_seo_v_1.5 // Ultimate SEO URLs 2.1d - Update -> v22d_12 // AntiRobotRegistrationValidation-3.1 // TinyMCE WYSIWYG HTML EDITOR // HEader Tag SEO 3.1.4 // PDF Invoice 1.5 // Specials_enhanced_v1_3_1 // quick_stock_update_v3.5_FRENCH // xmembers_v2.2 // contact_us_form_in_db_with_amin_v1.1 // photo_display_1 // previous_next_with_details // infoBox Admin v.2.25 // whosonlineturbov1.1fr // customer_discount_v1.3 // flash_bannersv2 // Horizontal_menu_V3 // Loginbox_Best_1 // CCGV // XSell_v2_7_2 // Printable Catalog XSS Flaw Fixed // all_specials_slideshow // Birthdays_v1.4 // Search_price_range_pulldown_menu_1.1 // contrib-categories // Reviews_in_Product_Display_v2.3 // Easy Graphical Borders // Simple Multiple Images (Unlimited) with Fancy Popups V1.3.5 // Guestbook V3.0 // Blacklist_IP_v.3 // Quicker Product Edit v2.1 // Chronopost_2010 // Easy Center // Size Shop with Layers // Safari-Chrome_fix // Protection to Configuration v1.3a // Page_Cache_v1.6... Thanks to everyone!

Link to comment
Share on other sites

I'm sorry that I'm such a fozanoon, but I am receiving the same error once I click off the index page (any category links):

 

Plus I receive this error when - Search by Manufacturer:

Warning: implode() [function.implode]: Invalid arguments passed in /home3/handesho/public_html/includes/functions/header_tags.php on line 66

 

I had ran Fill Tags = Fill only empty Tags since I already had tags from my previous 3.1.3 install working.

I also ran Page Control = Add missing pages.

I double checked - Configuration > Header Tags SEO to make sure everything was the same there, it was.

 

The lines (66, 67) in the includes/functions/header_tags.php references logo_text and logo_text_1.

 

I'm totally at a lose as to what to try next...? :blush:

I can't think of anything in this last update that would break it so my guess is that there is some mistake along the way. I've no way to troubleshoot that from here so I suggest you use the steps I mentioned previously for re-installing the database and header_tags file to reset everything.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Hi Jack,

 

I have done few changes but I have still problems...

 

I am still not sure if I have put <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> at the right place (cause I have still some errors)!? Is it link to my errors?

If you don't have a body tag then your file is either corrupted or it isn't from a standard oscommerce shop. In either case, the instructions and test functions probably won't work. You'll need to determine why you don't have a body tag and fix that first but that is not something that this thread would cover.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Plus I receive this error when - Search by Manufacturer:

Warning: implode() [function.implode]: Invalid arguments passed in /home3/handesho/public_html/includes/functions/header_tags.php on line 66

There's an error in the code that is probably causing this. Go to includes/functions/header_tags.php and find this line

  $header_tags_array['logo_text_1'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['logo_1'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION);

and replace it with this one

  if (isset($sortOrder['logo_1'])) $header_tags_array['logo_text_1'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['logo_1'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION);

I did that for the other lines but missed that one for some reason. Please give it a try and see if it makes a difference.

 

Jack

Edited by Jack_mcs

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

There's an error in the code that is probably causing this. Go to includes/functions/header_tags.php and find this line
  $header_tags_array['logo_text_1'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['logo_1'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION);

and replace it with this one

  if (isset($sortOrder['logo_1'])) $header_tags_array['logo_text_1'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['logo_1'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION);

I did that for the other lines but missed that one for some reason. Please give it a try and see if it makes a difference.

 

Jack

 

AWESOME :lol: Thanks a million Jack. That cleared up the error message. ;)

 

Just wondering now...

That code was found on line 67 and fixed clicking on links in the categories, but I still received the error for searching by manufacturer. So I tried this -

 

Found this on line 66:

$header_tags_array['logo_text'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['logo'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION);

 

Replaced it with this:

if (isset($sortOrder['logo_text'])) $header_tags_array['logo_text'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['logo_text'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION);

 

The error message is now gone. Did I do alright or did I mess something up by changing that line of code?

 

Thanks again for all your help!

- :: Jim :: -

- My Toolbox ~ Adobe Web Bundle, XAMPP & WinMerge | Install ~ osC v2.3.3.4 -

Link to comment
Share on other sites

If you don't have a body tag then your file is either corrupted or it isn't from a standard oscommerce shop. In either case, the instructions and test functions probably won't work. You'll need to determine why you don't have a body tag and fix that first but that is not something that this thread would cover.

 

Jack

 

Thanks Jack

 

I have just check on my original version and I haven't it too. I have the French official version from the French official osCommerce website (oscommerce-2.2rc1-FR-w3c-3): http://www.oscommerce-fr.info/portail/inde...ctcat&cat=5

 

I am right now checking if the problem happened before!

 

By the way it seems that it is working fine, beside of the rest of the errors (last post)!

 

Will let you know

 

Thanks anyway

Edited by Eric B

osCommerce Online Merchant v2.2 RC1 W3C Valid FR avec : colissimo_v1.9 // CGV // GoogleXML_sitemap - Update -> googlexml_sitemap_seo_v_1.5 // Ultimate SEO URLs 2.1d - Update -> v22d_12 // AntiRobotRegistrationValidation-3.1 // TinyMCE WYSIWYG HTML EDITOR // HEader Tag SEO 3.1.4 // PDF Invoice 1.5 // Specials_enhanced_v1_3_1 // quick_stock_update_v3.5_FRENCH // xmembers_v2.2 // contact_us_form_in_db_with_amin_v1.1 // photo_display_1 // previous_next_with_details // infoBox Admin v.2.25 // whosonlineturbov1.1fr // customer_discount_v1.3 // flash_bannersv2 // Horizontal_menu_V3 // Loginbox_Best_1 // CCGV // XSell_v2_7_2 // Printable Catalog XSS Flaw Fixed // all_specials_slideshow // Birthdays_v1.4 // Search_price_range_pulldown_menu_1.1 // contrib-categories // Reviews_in_Product_Display_v2.3 // Easy Graphical Borders // Simple Multiple Images (Unlimited) with Fancy Popups V1.3.5 // Guestbook V3.0 // Blacklist_IP_v.3 // Quicker Product Edit v2.1 // Chronopost_2010 // Easy Center // Size Shop with Layers // Safari-Chrome_fix // Protection to Configuration v1.3a // Page_Cache_v1.6... Thanks to everyone!

Link to comment
Share on other sites

If you don't have a body tag then your file is either corrupted or it isn't from a standard oscommerce shop. In either case, the instructions and test functions probably won't work. You'll need to determine why you don't have a body tag and fix that first but that is not something that this thread would cover.

 

Jack

 

Sorry Jack but I think I explain myself in a wrong way!

 

I have a BODY TAG but I haven't: <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

 

And you are asking to put a code just after it, means I am not sure where to put it in the BODY TAG.

 

ANYWAY, it sounds - from the osCommerce French support - that it depends on the version of osCommerce, it means it could be:

 

<body>

 

OR

 

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

 

I just have to put your code just after <body>!

 

Anyway, now that we have solved this issue..., can you give me a hand with the rest, please?

 

I have still the warning in my ADMIN>Header Tag SEO>page control:

Erreur Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

 

If I go on the shop all is working fine until I select a product. My right column is not there anymore and gone to the left side, under the left column!

With between the columns:

TEXT_VIEWING Améthyste is a great product (left side between the 2 columns)

And on the top of the page:

Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\catalog\includes\functions\header_tags.php on line 67

 

On the test from the ADMIN:

the Test Results

Permissions Error: explain

Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

 

Missing Code in File explain

The Header Tags head code for the product_reviews.php file cannot be found.

The Header Tags head code for the product_reviews_info.php file cannot be found.

The Header Tags head code for the product_reviews_write.php file cannot be found.

The Header Tags head code for the specials.php file cannot be found.

 

Can you give me a hand please?

 

 

Thanks

Edited by Eric B

osCommerce Online Merchant v2.2 RC1 W3C Valid FR avec : colissimo_v1.9 // CGV // GoogleXML_sitemap - Update -> googlexml_sitemap_seo_v_1.5 // Ultimate SEO URLs 2.1d - Update -> v22d_12 // AntiRobotRegistrationValidation-3.1 // TinyMCE WYSIWYG HTML EDITOR // HEader Tag SEO 3.1.4 // PDF Invoice 1.5 // Specials_enhanced_v1_3_1 // quick_stock_update_v3.5_FRENCH // xmembers_v2.2 // contact_us_form_in_db_with_amin_v1.1 // photo_display_1 // previous_next_with_details // infoBox Admin v.2.25 // whosonlineturbov1.1fr // customer_discount_v1.3 // flash_bannersv2 // Horizontal_menu_V3 // Loginbox_Best_1 // CCGV // XSell_v2_7_2 // Printable Catalog XSS Flaw Fixed // all_specials_slideshow // Birthdays_v1.4 // Search_price_range_pulldown_menu_1.1 // contrib-categories // Reviews_in_Product_Display_v2.3 // Easy Graphical Borders // Simple Multiple Images (Unlimited) with Fancy Popups V1.3.5 // Guestbook V3.0 // Blacklist_IP_v.3 // Quicker Product Edit v2.1 // Chronopost_2010 // Easy Center // Size Shop with Layers // Safari-Chrome_fix // Protection to Configuration v1.3a // Page_Cache_v1.6... Thanks to everyone!

Link to comment
Share on other sites

top of the code:

 

<?php
/*
 $Id: categories.php 1755 2007-12-21 14:02:36Z hpdl $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2007 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');
//++++ QT Pro: Begin Added code
//Create the product investigation for this product that are used in this page.
$product_investigation = qtpro_doctor_investigate_product($HTTP_GET_VARS['pID']);
//++++ QT Pro: End Added code

 require(DIR_WS_CLASSES . 'currencies.php');
 $currencies = new currencies();

 $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

 if (tep_not_null($action)) {
switch ($action) {
  case 'setflag':
	if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
	  if (isset($HTTP_GET_VARS['pID'])) {
		tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);
	  }

	  if (USE_CACHE == 'true') {
		tep_reset_cache_block('categories');
		tep_reset_cache_block('also_purchased');
	  }
	}

	tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $HTTP_GET_VARS['cPath'] . '&pID=' . $HTTP_GET_VARS['pID']));
	break;
  case 'insert_category':
  case 'update_category':
	if (isset($HTTP_POST_VARS['categories_id'])) $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
	$sort_order = tep_db_prepare_input($HTTP_POST_VARS['sort_order']);

	$sql_data_array = array('sort_order' => (int)$sort_order);

	if ($action == 'insert_category') {
	  $insert_sql_data = array('parent_id' => $current_category_id,
							   'date_added' => 'now()');

	  $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

	  tep_db_perform(TABLE_CATEGORIES, $sql_data_array);

	  $categories_id = tep_db_insert_id();
	} elseif ($action == 'update_category') {
	  $update_sql_data = array('last_modified' => 'now()');

	  $sql_data_array = array_merge($sql_data_array, $update_sql_data);

	  tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "'");
	}

	$languages = tep_get_languages();
	for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	  $categories_name_array = $HTTP_POST_VARS['categories_name'];
	  /*** Begin Header Tags SEO ***/
	  $categories_htc_title_array = $HTTP_POST_VARS['categories_htc_title_tag'];
	  $categories_htc_desc_array = $HTTP_POST_VARS['categories_htc_desc_tag'];
	  $categories_htc_keywords_array = $HTTP_POST_VARS['categories_htc_keywords_tag'];
	  $categories_htc_description_array = $HTTP_POST_VARS['categories_htc_description'];
	  /*** End Header Tags SEO ***/		

	  $language_id = $languages[$i]['id'];

  /*** Begin Header Tags SEO ***/
  $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]),
	   'categories_htc_title_tag' => (tep_not_null($categories_htc_title_array[$language_id]) ? tep_db_prepare_input(strip_tags($categories_htc_title_array[$language_id])) :  tep_db_prepare_input(strip_tags($categories_name_array[$language_id]))),
	   'categories_htc_desc_tag' => (tep_not_null($categories_htc_desc_array[$language_id]) ? tep_db_prepare_input($categories_htc_desc_array[$language_id]) :  tep_db_prepare_input($categories_name_array[$language_id])),
	   'categories_htc_keywords_tag' => (tep_not_null($categories_htc_keywords_array[$language_id]) ? tep_db_prepare_input(strip_tags($categories_htc_keywords_array[$language_id])) :  tep_db_prepare_input(strip_tags($categories_name_array[$language_id]))),
	   'categories_htc_description' => tep_db_prepare_input($categories_htc_description_array[$language_id]));
  /*** End Header Tags SEO ***/
	  if ($action == 'insert_category') {
		$insert_sql_data = array('categories_id' => $categories_id,
								 'language_id' => $languages[$i]['id']);

		$sql_data_array = array_merge($sql_data_array, $insert_sql_data);

		tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array);
	  } elseif ($action == 'update_category') {
		tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'");
	  }
	}

	$categories_image = new upload('categories_image');
	$categories_image->set_destination(DIR_FS_CATALOG_IMAGES);

	if ($categories_image->parse() && $categories_image->save()) {
	  tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id . "'");
	}

	if (USE_CACHE == 'true') {
	  tep_reset_cache_block('categories');
	  tep_reset_cache_block('also_purchased');
	}

	tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id));
	break;
  case 'delete_category_confirm':
	if (isset($HTTP_POST_VARS['categories_id'])) {
	  $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

	  $categories = tep_get_category_tree($categories_id, '', '0', '', true);
	  $products = array();
	  $products_delete = array();

	  for ($i=0, $n=sizeof($categories); $i<$n; $i++) {
		$product_ids_query = tep_db_query("select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$categories[$i]['id'] . "'");

		while ($product_ids = tep_db_fetch_array($product_ids_query)) {
		  $products[$product_ids['products_id']]['categories'][] = $categories[$i]['id'];
		}
	  }

	  reset($products);
	  while (list($key, $value) = each($products)) {
		$category_ids = '';

		for ($i=0, $n=sizeof($value['categories']); $i<$n; $i++) {
		  $category_ids .= "'" . (int)$value['categories'][$i] . "', ";
		}
		$category_ids = substr($category_ids, 0, -2);

		$check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$key . "' and categories_id not in (" . $category_ids . ")");
		$check = tep_db_fetch_array($check_query);
		if ($check['total'] < '1') {
		  $products_delete[$key] = $key;
		}
	  }

// removing categories can be a lengthy process
	  tep_set_time_limit(0);
	  for ($i=0, $n=sizeof($categories); $i<$n; $i++) {
		tep_remove_category($categories[$i]['id']);
	  }

	  reset($products_delete);
	  while (list($key) = each($products_delete)) {
		tep_remove_product($key);
	  }
	}

	if (USE_CACHE == 'true') {
	  tep_reset_cache_block('categories');
	  tep_reset_cache_block('also_purchased');
	}

	tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));
	break;
  case 'delete_product_confirm':
	if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['product_categories']) && is_array($HTTP_POST_VARS['product_categories'])) {
	  $product_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
	  $product_categories = $HTTP_POST_VARS['product_categories'];

	  for ($i=0, $n=sizeof($product_categories); $i<$n; $i++) {
		tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "' and categories_id = '" . (int)$product_categories[$i] . "'");
	  }

	  $product_categories_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "'");
	  $product_categories = tep_db_fetch_array($product_categories_query);

	  if ($product_categories['total'] == '0') {
		tep_remove_product($product_id);
	  }
	}

	if (USE_CACHE == 'true') {
	  tep_reset_cache_block('categories');
	  tep_reset_cache_block('also_purchased');
	}

	tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));
	break;
  case 'move_category_confirm':
	if (isset($HTTP_POST_VARS['categories_id']) && ($HTTP_POST_VARS['categories_id'] != $HTTP_POST_VARS['move_to_category_id'])) {
	  $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
	  $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);

	  $path = explode('_', tep_get_generated_category_path_ids($new_parent_id));

	  if (in_array($categories_id, $path)) {
		$messageStack->add_session(ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT, 'error');

		tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id));
	  } else {
		tep_db_query("update " . TABLE_CATEGORIES . " set parent_id = '" . (int)$new_parent_id . "', last_modified = now() where categories_id = '" . (int)$categories_id . "'");

		if (USE_CACHE == 'true') {
		  tep_reset_cache_block('categories');
		  tep_reset_cache_block('also_purchased');
		}

		tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&cID=' . $categories_id));
	  }
	}

	break;
  case 'move_product_confirm':
	$products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
	$new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);

	$duplicate_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$new_parent_id . "'");
	$duplicate_check = tep_db_fetch_array($duplicate_check_query);
	if ($duplicate_check['total'] < 1) tep_db_query("update " . TABLE_PRODUCTS_TO_CATEGORIES . " set categories_id = '" . (int)$new_parent_id . "' where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$current_category_id . "'");

	if (USE_CACHE == 'true') {
	  tep_reset_cache_block('categories');
	  tep_reset_cache_block('also_purchased');
	}

	tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&pID=' . $products_id));
	break;
  case 'insert_product':
  case 'update_product':
	if (isset($HTTP_POST_VARS['edit_x']) || isset($HTTP_POST_VARS['edit_y'])) {
	  $action = 'new_product';
	} else {
	  if (isset($HTTP_GET_VARS['pID'])) $products_id = tep_db_prepare_input($HTTP_GET_VARS['pID']);
	  $products_date_available = tep_db_prepare_input($HTTP_POST_VARS['products_date_available']);

	  $products_date_available = (date('Y-m-d') < $products_date_available) ? $products_date_available : 'null';

	  $sql_data_array = array('products_quantity' => (int)tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),
							  'products_model' => tep_db_prepare_input($HTTP_POST_VARS['products_model']),
							  'products_price' => tep_db_prepare_input($HTTP_POST_VARS['products_price']),
							  'products_date_available' => $products_date_available,
							  'products_weight' => (float)tep_db_prepare_input($HTTP_POST_VARS['products_weight']),
							  'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']),
							  'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']),
							  'manufacturers_id' => (int)tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));
	//++++ QT Pro: Begin Added code
		if($product_investigation['has_tracked_options'] or $product_investigation['stock_entries_count'] > 0){
			//Do not modify the stock from this page if the product has database entries or has tracked options
			unset($sql_data_array['products_quantity']);
		}
	//++++ QT Pro: End Added code

	  if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
		$sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']);
	  }

	  if ($action == 'insert_product') {
		$insert_sql_data = array('products_date_added' => 'now()');

		$sql_data_array = array_merge($sql_data_array, $insert_sql_data);

		tep_db_perform(TABLE_PRODUCTS, $sql_data_array);
		$products_id = tep_db_insert_id();

		tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$current_category_id . "')");
		// bcdev contrib - Add Attributes to categories.php
		if (isset($HTTP_POST_VARS['option'])) {
			$products_options = $HTTP_POST_VARS['option'];
			if (isset($HTTP_POST_VARS['value_price'])) $products_options_price = $HTTP_POST_VARS['value_price'];
			if (isset($HTTP_POST_VARS['value_price_ttc'])) $products_options_price_ttc = $HTTP_POST_VARS['value_price_ttc'];
			if (isset($HTTP_POST_VARS['price_prefix'])) $products_options_price_prefix = $HTTP_POST_VARS['price_prefix'];
			if (DOWNLOAD_ENABLED == 'true') {
				if (isset($HTTP_POST_VARS['products_attributes_filename'])) $products_attributes_filename = $HTTP_POST_VARS['products_attributes_filename'];
				if (isset($HTTP_POST_VARS['products_attributes_maxdays'])) $products_attributes_maxdays = $HTTP_POST_VARS['products_attributes_maxdays'];
				if (isset($HTTP_POST_VARS['products_attributes_maxcount'])) $products_attributes_maxcount = $HTTP_POST_VARS['products_attributes_maxcount'];
			}
			for ($i=0;$i<sizeof($products_options);$i++) {
				$temp_rs = tep_db_fetch_array(tep_db_query("select products_options_id from ".TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS." where products_options_values_id = '".$products_options[$i]."'"));
				$pop = (empty($products_options_price[$i])) ? '0' : floatval($products_options_price[$i]);
				$popp = (empty($products_options_price_prefix[$i])) ? '+' : substr($products_options_price_prefix[$i],0,1);
				tep_db_query("insert into ".TABLE_PRODUCTS_ATTRIBUTES." (products_id, options_id, options_values_id, options_values_price, price_prefix) values ('" .(int)$products_id."','".(int)$temp_rs['products_options_id']."','".$products_options[$i]."'," . $pop . ",'" . $popp . "')");
				if (DOWNLOAD_ENABLED == 'true') {
				  if (tep_not_null($products_attributes_filename[$i])) {
					 $products_attributes_id = tep_db_insert_id();
					tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " values (" . (int)$products_attributes_id . ", '" . tep_db_input($products_attributes_filename[$i]) . "', '" . tep_db_input($products_attributes_maxdays[$i]) . "', '" . tep_db_input($products_attributes_maxcount[$i]) . "')");
				  }
				}
			}
		 }
		 // end bcdev contrib

	  } elseif ($action == 'update_product') {
		$update_sql_data = array('products_last_modified' => 'now()');

		$sql_data_array = array_merge($sql_data_array, $update_sql_data);

		tep_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "'");
		// bcdev contrib - Add Attributes to categories.php
		tep_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . (int)$products_id . "'");
		if (isset($HTTP_POST_VARS['option'])) {
			$products_attributes_id_query = tep_db_query("select products_attributes_id from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id ='" . (int)$products_id . "'");
			while ($products_attributes_id_list = tep_db_fetch_array($products_attributes_id_query)) tep_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " where products_attributes_id ='" .  $products_attributes_id_list['products_attributes_id'] . "'");
			$products_options = $HTTP_POST_VARS['option'];
			if (isset($HTTP_POST_VARS['value_price'])) $products_options_price = $HTTP_POST_VARS['value_price'];
			if (isset($HTTP_POST_VARS['value_price_ttc'])) $products_options_price_ttc = $HTTP_POST_VARS['value_price_ttc'];
			if (isset($HTTP_POST_VARS['price_prefix'])) $products_options_price_prefix = $HTTP_POST_VARS['price_prefix'];
			if (DOWNLOAD_ENABLED == 'true') {
				if (isset($HTTP_POST_VARS['products_attributes_filename'])) $products_attributes_filename = $HTTP_POST_VARS['products_attributes_filename'];
				if (isset($HTTP_POST_VARS['products_attributes_maxdays'])) $products_attributes_maxdays = $HTTP_POST_VARS['products_attributes_maxdays'];
				if (isset($HTTP_POST_VARS['products_attributes_maxcount'])) $products_attributes_maxcount = $HTTP_POST_VARS['products_attributes_maxcount'];
			}
			for ($i=0;$i<sizeof($products_options);$i++) {
				$temp_rs = tep_db_fetch_array(tep_db_query("select products_options_id from ".TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS." where products_options_values_id = '".$products_options[$i]."'"));
				$pop = (empty($products_options_price[$i])) ? '0' : floatval($products_options_price[$i]);
				$popp = (empty($products_options_price_prefix[$i])) ? '+' : substr($products_options_price_prefix[$i],0,1);
				tep_db_query("insert into ".TABLE_PRODUCTS_ATTRIBUTES." (products_id, options_id, options_values_id, options_values_price, price_prefix) values ('" .(int)$products_id."','".(int)$temp_rs['products_options_id']."','".$products_options[$i]."'," . $pop . ",'" . $popp . "')");
				if (DOWNLOAD_ENABLED == 'true') {
				  $products_attributes_id = tep_db_insert_id();
				  if (tep_not_null($products_attributes_filename[$i])) {
					tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " values (" . $products_attributes_id . ", '" . tep_db_input($products_attributes_filename[$i]) . "', '" . tep_db_input($products_attributes_maxdays[$i]) . "', '" . tep_db_input($products_attributes_maxcount[$i]) . "')");
				  }
				}
			}
		}
		// end bcdev contrib
	  }

	  $languages = tep_get_languages();
	  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
		$language_id = $languages[$i]['id'];

	   /*** Begin Header Tags SEO ***/
		$sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),
								'products_description' => tep_db_prepare_input($HTTP_POST_VARS['products_description'][$language_id]),
								'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]),
								'products_head_title_tag' => ((tep_not_null($HTTP_POST_VARS['products_head_title_tag'][$language_id])) ? tep_db_prepare_input(strip_tags($HTTP_POST_VARS['products_head_title_tag'][$language_id])) : tep_db_prepare_input(strip_tags($HTTP_POST_VARS['products_name'][$language_id]))),
								'products_head_desc_tag' => ((tep_not_null($HTTP_POST_VARS['products_head_desc_tag'][$language_id])) ? tep_db_prepare_input($HTTP_POST_VARS['products_head_desc_tag'][$language_id]) : tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id])),
								'products_head_keywords_tag' => ((tep_not_null($HTTP_POST_VARS['products_head_keywords_tag'][$language_id])) ? tep_db_prepare_input(strip_tags($HTTP_POST_VARS['products_head_keywords_tag'][$language_id])) : tep_db_prepare_input(strip_tags($HTTP_POST_VARS['products_name'][$language_id]))));									 
	   /*** End Header Tags SEO ***/

		if ($action == 'insert_product') {
		  $insert_sql_data = array('products_id' => $products_id,
								   'language_id' => $language_id);

		  $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

		  tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);
		} elseif ($action == 'update_product') {
		  tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "'");
		}
	  }

	  if (USE_CACHE == 'true') {
		tep_reset_cache_block('categories');
		tep_reset_cache_block('also_purchased');
	  }

	  tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id));
	}
	break;
  case 'copy_to_confirm':
	if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['categories_id'])) {
	  $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
	  $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

	  if ($HTTP_POST_VARS['copy_as'] == 'link') {
		if ($categories_id != $current_category_id) {
		  $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$categories_id . "'");
		  $check = tep_db_fetch_array($check_query);
		  if ($check['total'] < '1') {
			tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$categories_id . "')");
		  }
		} else {
		  $messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY, 'error');
		}
	  } elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {
		$product_query = tep_db_query("select products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
		$product = tep_db_fetch_array($product_query);

		tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "',  now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ", '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");
		$dup_products_id = tep_db_insert_id();

	   /*** Begin Header Tags SEO ***/
		$description_query = tep_db_query("select language_id, products_name, products_description, products_head_title_tag, products_head_desc_tag, products_head_keywords_tag, products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$products_id . "'");
		while ($description = tep_db_fetch_array($description_query)) {
		  tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_head_title_tag, products_head_desc_tag, products_head_keywords_tag, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_head_title_tag']) . "', '" . tep_db_input($description['products_head_desc_tag']) . "', '" . tep_db_input($description['products_head_keywords_tag']) . "', '" . tep_db_input($description['products_url']) . "', '0')");
		}
	   /*** End Header Tags SEO ***/

		tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$dup_products_id . "', '" . (int)$categories_id . "')");
		$products_id = $dup_products_id;
	  }

	  if (USE_CACHE == 'true') {
		tep_reset_cache_block('categories');
		tep_reset_cache_block('also_purchased');
	  }
	}

	tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $categories_id . '&pID=' . $products_id));
	break;
  case 'new_product_preview':
// copy image only if modified
	$products_image = new upload('products_image');
	$products_image->set_destination(DIR_FS_CATALOG_IMAGES);
	if ($products_image->parse() && $products_image->save()) {
	  $products_image_name = $products_image->filename;
	} else {
	  $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : '');
	}
	break;
}
 }

// check if the catalog image directory exists
 if (is_dir(DIR_FS_CATALOG_IMAGES)) {
if (!is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error');
 } else {
$messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');
 }

 //++++ QT Pro: Begin Changed code
 if($product_investigation['any_problems']){
  $messageStack->add('<b>Warning: </b>'. qtpro_doctor_formulate_product_investigation($product_investigation, 'short_suggestion') ,'warning');
 }
 //++++ QT Pro: End Changed code

?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>

<?php // START tinyMCE Anywhere
if (HEADER_TAGS_ENABLE_TINYMCE_META_DESC == 'true' || HEADER_TAGS_ENABLE_TINYMCE_CATEGORIES == 'true' || HEADER_TAGS_ENABLE_TINYMCE_PRODUCTS == 'true')
{  
if ($action == 'new_product' || $action == 'new_category' || $action == 'edit_category') { // No need to put JS on all pages.
 $languages = tep_get_languages(); // Get all languages
// Build list of textareas to convert
$str = '';
 for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
  if (HEADER_TAGS_ENABLE_TINYMCE_META_DESC  == 'true') $str .= "products_head_desc_tag[".$languages[$i]['id']."],";
  if (HEADER_TAGS_ENABLE_TINYMCE_CATEGORIES == 'true') $str .= "categories_htc_description[".$languages[$i]['id']."],";
  if (HEADER_TAGS_ENABLE_TINYMCE_PRODUCTS == 'true') $str .= "products_head_description[".$languages[$i]['id']."],";
 }  //end for each language
 $mce_str = rtrim ($str,","); // Removed the last comma from the string.
// You can add more textareas to convert in the $str, be careful that they are all separated by a comma.
 echo '<script language="javascript" type="text/javascript" src="includes/javascript/tiny_mce/tiny_mce.js"></script>';
 include "includes/javascript/tiny_mce/general.php";
 } 
} // END tinyMCE Anywhere 
?>


</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
<div id="spiffycalendar" class="text"></div>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
 <tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top">
<?php
 if ($action == 'new_product') {
$parameters = array('products_name' => '',
				   'products_description' => '',
				   'products_url' => '',
				   'products_id' => '',
				   'products_quantity' => '',
				   'products_model' => '',
				   'products_image' => '',
				   'products_price' => '',
				   'products_weight' => '',
				   'products_date_added' => '',
				   'products_last_modified' => '',
				   'products_date_available' => '',
				   'products_status' => '',
					   'products_tax_class_id' => '',
				   'manufacturers_id' => '');

$pInfo = new objectInfo($parameters);

  if (isset ($HTTP_GET_VARS['pID']) && (!$HTTP_POST_VARS) ) {
  /*** Begin Header Tags SEO ***/
  $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");
  /*** End Header Tags SEO ***/ 
  $product = tep_db_fetch_array($product_query);

  $pInfo->objectInfo($product);
} elseif (tep_not_null($HTTP_POST_VARS)) {
  $pInfo->objectInfo($HTTP_POST_VARS);
  $products_name = $HTTP_POST_VARS['products_name'];
  $products_description = $HTTP_POST_VARS['products_description'];
  $products_url = $HTTP_POST_VARS['products_url'];
}

$manufacturers_array = array(array('id' => '', 'text' => TEXT_NONE));
$manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name");
while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {
  $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'],
								 'text' => $manufacturers['manufacturers_name']);
}

$tax_class_array = array(array('id' => '0', 'text' => TEXT_NONE));
$tax_class_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title");
while ($tax_class = tep_db_fetch_array($tax_class_query)) {
  $tax_class_array[] = array('id' => $tax_class['tax_class_id'],
							 'text' => $tax_class['tax_class_title']);
}

$languages = tep_get_languages();

if (!isset($pInfo->products_status)) $pInfo->products_status = '1';
switch ($pInfo->products_status) {
  case '0': $in_status = false; $out_status = true; break;
  case '1':
  default: $in_status = true; $out_status = false;
}
?>
<link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
<script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
<script language="javascript"><!--
 var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable", "new_product", "products_date_available","btnDate1","<?php echo $pInfo->products_date_available; ?>",scBTNMODE_CUSTOMBLUE);
//--></script>
<!-- tinyMCE -->
<script language="javascript" type="text/javascript" src="includes/javascript/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
 tinyMCE.init({
  mode : "textareas"
 });
</script>
<!-- /tinyMCE -->
<script language="javascript"><!--
var tax_rates = new Array();
<?php
for ($i=0, $n=sizeof($tax_class_array); $i<$n; $i++) {
  if ($tax_class_array[$i]['id'] > 0) {
	echo 'tax_rates["' . $tax_class_array[$i]['id'] . '"] = ' . tep_get_tax_rate_value($tax_class_array[$i]['id']) . ';' . "\n";
  }
}
?>

function doRound(x, places) {
 return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
}

function getTaxRate() {
 var selected_value = document.forms["new_product"].products_tax_class_id.selectedIndex;
 var parameterVal = document.forms["new_product"].products_tax_class_id[selected_value].value;

 if ( (parameterVal > 0) && (tax_rates[parameterVal] > 0) ) {
return tax_rates[parameterVal];
 } else {
return 0;
 }
}

function updateGross() {
 var taxRate = getTaxRate();
 var grossValue = document.forms["new_product"].products_price.value;

 if (taxRate > 0) {
grossValue = grossValue * ((taxRate / 100) + 1);
 }

 document.forms["new_product"].products_price_gross.value = doRound(grossValue, 4);
}

function updateNet() {
 var taxRate = getTaxRate();
 var netValue = document.forms["new_product"].products_price_gross.value;

 if (taxRate > 0) {
netValue = netValue / ((taxRate / 100) + 1);
 }

 document.forms["new_product"].products_price.value = doRound(netValue, 4);
}
//--></script>
<!-- bcdev contrib - Add Attributes to categories.php //-->
<script language="javascript"><!--
function updateGrossOptions(_id) {
 var taxRate = getTaxRate();
 var grossValue = document.getElementById("vp" + _id).value;

 if (taxRate > 0) {
grossValue = grossValue * ((taxRate / 100) + 1);
 }

 document.getElementById("vpt" + _id).value = doRound(grossValue, 4);
}

function updateNetOptions(_id) {
 var taxRate = getTaxRate();
 var netValue = document.getElementById("vpt" + _id).value;

 if (taxRate > 0) {
netValue = netValue / ((taxRate / 100) + 1);
 }

 document.getElementById("vp" + _id).value = doRound(netValue, 4);
}
function activer_input(_id) {
 if (document.getElementById(_id).checked==true) {
document.getElementById("pp" + _id).disabled = false;
document.getElementById("vp" + _id).disabled = false;
document.getElementById("vpt" + _id).disabled = false;
<?php if (DOWNLOAD_ENABLED == 'true') { ?>
document.getElementById("fn" + _id).disabled = false;
document.getElementById("md" + _id).disabled = false;
document.getElementById("mc" + _id).disabled = false;
<?php } ?>
 } else {
document.getElementById("pp" + _id).disabled = true;
document.getElementById("vp" + _id).disabled = true;
document.getElementById("vpt" + _id).disabled = true;
<?php if (DOWNLOAD_ENABLED == 'true') { ?>
document.getElementById("fn" + _id).disabled = true;
document.getElementById("md" + _id).disabled = true;
document.getElementById("mc" + _id).disabled = true;
<?php } ?>
 }
}
//--></script>

Edited by Solan
Link to comment
Share on other sites

The rest of the code.

 

<!-- end bcdev contrib //-->
<?php echo tep_draw_form('new_product', FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=new_product_preview', 'post', 'enctype="multipart/form-data"'); ?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo sprintf(TEXT_NEW_PRODUCT, tep_output_generated_category_path($current_category_id)); ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_STATUS; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_radio_field('products_status', '1', $in_status) . ' ' . TEXT_PRODUCT_AVAILABLE . ' ' . tep_draw_radio_field('products_status', '0', $out_status) . ' ' . TEXT_PRODUCT_NOT_AVAILABLE; ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE; ?><br><small>(YYYY-MM-DD)</small></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' '; ?><script language="javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $pInfo->manufacturers_id); ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_NAME; ?></td>
		<td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('products_name[' . $languages[$i]['id'] . ']', (isset($products_name[$languages[$i]['id']]) ? stripslashes($products_name[$languages[$i]['id']]) : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td>
	  </tr>
<?php
}
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr bgcolor="#ebebff">
		<td class="main"><?php echo TEXT_PRODUCTS_TAX_CLASS; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_pull_down_menu('products_tax_class_id', $tax_class_array, $pInfo->products_tax_class_id, 'onchange="updateGross()"'); ?></td>
	  </tr>
	  <tr bgcolor="#ebebff">
		<td class="main"><?php echo TEXT_PRODUCTS_PRICE_NET; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_price', $pInfo->products_price, 'onKeyUp="updateGross()"'); ?></td>
	  </tr>
	  <tr bgcolor="#ebebff">
		<td class="main"><?php echo TEXT_PRODUCTS_PRICE_GROSS; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_price_gross', $pInfo->products_price, 'OnKeyUp="updateNet()"'); ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
<script language="javascript"><!--
updateGross();
//--></script>
<?php /*** Begin Header Tags SEO ***/ ?>
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? $products_description[$languages[$i]['id']] : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>

		  </tr>
		</table></td>
	  </tr>

<?php
}
?>
	  <tr>
		<td colspan="2" class="main"><hr><?php echo TEXT_PRODUCT_METTA_INFO; ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>		  
<?php		 
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>

	  <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_PAGE_TITLE; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_head_title_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_title_tag[$languages[$i]['id']]) ? stripslashes($products_head_title_tag[$languages[$i]['id']]) : tep_get_products_head_title_tag($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>		  
	   <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_HEADER_DESCRIPTION; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_head_desc_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_desc_tag[$languages[$i]['id']]) ? stripslashes($products_head_desc_tag[$languages[$i]['id']]) : tep_get_products_head_desc_tag($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>		  
	   <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_KEYWORDS; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_head_keywords_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_keywords_tag[$languages[$i]['id']]) ? stripslashes($products_head_keywords_tag[$languages[$i]['id']]) : tep_get_products_head_keywords_tag($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td colspan="2" class="main"><hr></td>
	  </tr>
<?php /*** End Header Tags SEO ***/ ?>
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_QUANTITY; ?></td>
		 <?php //++++ QT Pro: Begin Changed code
		if($product_investigation['has_tracked_options'] or $product_investigation['stock_entries_count'] > 0)
		{
		  ?>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' <a href="' . tep_href_link("stock.php", 'product_id=' . $pInfo->products_id) . ' " target="_blank">' . tep_image_button('button_stock.gif', "Stock") . '</a>'?></td>
		<?php 

		}else{
		?>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_quantity', $pInfo->products_quantity); ?></td>
		<?php 
		}
		//++++ QT Pro: End Changed code
		  ?>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_MODEL; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_model', $pInfo->products_model); ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_URL . '<br><small>' . TEXT_PRODUCTS_URL_WITHOUT_HTTP . '</small>'; ?></td>
		<td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('products_url[' . $languages[$i]['id'] . ']', (isset($products_url[$languages[$i]['id']]) ? stripslashes($products_url[$languages[$i]['id']]) : tep_get_products_url($pInfo->products_id, $languages[$i]['id']))); ?></td>
	  </tr>
<?php
}
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo TEXT_PRODUCTS_WEIGHT; ?></td>
		<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_weight', $pInfo->products_weight); ?></td>
	  </tr>
	  <!-- // bcdev contrib - Add Attributes to categories.php -->
<?php
 $products_options = tep_db_query("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$languages_id . "'");
 $id_form_option = 0;
 while ($products_options_rs = tep_db_fetch_array($products_options)) {
?>
	   <tr> 
		  <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> 
		</tr> 
		<tr> 
		  <td class="main"><?php echo $products_options_rs['products_options_name'] . ' :'; ?></td> 
		  <td class="main"><table border="0" cellspacing="5" cellpadding="5"> 
			 <tr><?php 
	  $products_options_values_2po = tep_db_query("select products_options_values_id from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id = '" . $products_options_rs['products_options_id'] . "' order by products_options_values_id");
	  while ($products_options_values_2po_rs = tep_db_fetch_array($products_options_values_2po)) {
		$id_form_option++;
		echo '</tr><tr>';
		  $products_options_values_rs = tep_db_fetch_array(tep_db_query("select * from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . $products_options_values_2po_rs['products_options_values_id'] . "' and language_id = '" . (int)$languages_id . "'"));
		$checked = false;
		if (isset($HTTP_GET_VARS['pID'])) if ($products_options_price=tep_db_fetch_array(tep_db_query("select * from ".TABLE_PRODUCTS_ATTRIBUTES." where products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and options_id = '".$products_options_rs['products_options_id']."' and options_values_id = '".$products_options_values_2po_rs['products_options_values_id']."'")))	$checked = true;
		echo '<td class="main" align="left">' . "\n\t" . '<input type="checkbox" name="option[]" value="' . tep_output_string($products_options_values_rs['products_options_values_id']) . '" onClick="activer_input(' . $id_form_option . ');"';
		echo ($checked) ? ' checked' : '';
		echo ' id="' . $id_form_option . '"> ' . $products_options_values_rs['products_options_values_name'];
		echo '</td>' . "\n\t" . '<td class="main" align="left"> ' . tep_draw_input_field('price_prefix[]', (empty($products_options_price['price_prefix'])) ? '+' : $products_options_price['price_prefix'],($checked) ? 'size="2" id="pp' . $id_form_option . '"' : 'size="2" id="pp' . $id_form_option . '" disabled') . ' ' . tep_draw_input_field('value_price[]', (empty($products_options_price['options_values_price'])) ? 0 : $products_options_price['options_values_price'],($checked) ? 'size="6" id="vp' . $id_form_option . '" onkeyup="updateGrossOptions(' . $id_form_option . ')"' : 'size="6" id="vp' . $id_form_option . '" onkeyup="updateGrossOptions(' . $id_form_option . ')" disabled') . ' HT  ' . tep_draw_input_field('value_price_ttc[]', (empty($products_options_price['options_values_price_ttc'])) ? 0 : $products_options_price['options_values_price_ttc'],($checked) ? 'size="6" id="vpt' . $id_form_option . '" onkeyup="updateNetOptions(' . $id_form_option . ')"' : 'size="6" id="vpt' . $id_form_option . '" onkeyup="updateNetOptions(' . $id_form_option . ')" disabled') . ' TTC </td>' . "\n";
		if (DOWNLOAD_ENABLED == 'true') {
		   $products_attributes_download=tep_db_fetch_array(tep_db_query("select * from ".TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD." where products_attributes_id = '" . (int)$products_options_price['products_attributes_id'] . "'"));
		   echo "\t\t" . '<td> ' . TABLE_TEXT_FILENAME . ' ' .  tep_draw_input_field('products_attributes_filename[]', (empty($products_attributes_download['products_attributes_filename'])) ? '' : $products_attributes_download['products_attributes_filename'],($checked) ? 'size="20" id="fn' . $id_form_option . '"' : 'size="20" id="fn' . $id_form_option . '" disabled') . ' </td>' . "\n";
		   echo "\t\t" . '<td> ' . TABLE_TEXT_MAX_DAYS . ' ' .  tep_draw_input_field('products_attributes_maxdays[]', (empty($products_attributes_download['products_attributes_maxdays'])) ? '' : $products_attributes_download['products_attributes_maxdays'],($checked) ? 'size="20" id="md' . $id_form_option . '"' : 'size="20" id="md' . $id_form_option . '" disabled') . ' </td>' . "\n";
		   echo "\t\t" . '<td> ' . TABLE_TEXT_MAX_COUNT . ' ' .  tep_draw_input_field('products_attributes_maxcount[]', (empty($products_attributes_download['products_attributes_maxcount'])) ? '' : $products_attributes_download['products_attributes_maxcount'],($checked) ? 'size="20" id="mc' . $id_form_option . '"' : 'size="20" id="mc' . $id_form_option . '" disabled') . ' </td>' . "\n";
		}
	 }
			   ?></tr>
		  </table></td> 
		</tr> 
<?php
 }
?>
	<!-- // end bcdev contrib -->
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added : date('Y-m-d'))) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . '  <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
  </tr>
</table></form>
<?php /*** Begin Header Tags SEO ***/ ?> 
<?php
 } elseif ($action == 'new_product_preview') {
if (tep_not_null($HTTP_POST_VARS)) {
  $pInfo = new objectInfo($HTTP_POST_VARS);
  $products_name = $HTTP_POST_VARS['products_name'];
  $products_description = $HTTP_POST_VARS['products_description'];
  $products_head_title_tag = $HTTP_POST_VARS['products_head_title_tag'];
  $products_head_desc_tag = $HTTP_POST_VARS['products_head_desc_tag'];
  $products_head_keywords_tag = $HTTP_POST_VARS['products_head_keywords_tag'];
  $products_url = $HTTP_POST_VARS['products_url'];
  // bcdev contrib - Add Attributes to categories.php
  $products_options = $HTTP_POST_VARS['option'];
  $products_options_price = $HTTP_POST_VARS['value_price'];
  $products_options_price_prefix = $HTTP_POST_VARS['price_prefix'];
  if (DOWNLOAD_ENABLED == 'true') {
	$products_attributes_filename = $HTTP_POST_VARS['products_attributes_filename'];
	$products_attributes_maxdays = $HTTP_POST_VARS['products_attributes_maxdays'];
	$products_attributes_maxcount =  $HTTP_POST_VARS['products_attributes_maxcount'];
  }
  // end bcdev contrib
} else {
  $product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
  $product = tep_db_fetch_array($product_query);
  /*** End Header Tags SEO ***/ 

  $pInfo = new objectInfo($product);
  $products_image_name = $pInfo->products_image;
}

$form_action = (isset($HTTP_GET_VARS['pID'])) ? 'update_product' : 'insert_product';

echo tep_draw_form($form_action, FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=' . $form_action, 'post', 'enctype="multipart/form-data"');

/*** Begin Header Tags SEO ***/	
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
  if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
	$pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
	$pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
	$pInfo->products_head_title_tag = tep_db_prepare_input($products_head_title_tag[$languages[$i]['id']]);
	$pInfo->products_head_desc_tag = tep_db_prepare_input($products_head_desc_tag[$languages[$i]['id']]);
	$pInfo->products_head_keywords_tag = tep_db_prepare_input($products_head_keywords_tag[$languages[$i]['id']]);
	$pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
  } else {
	$pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
	$pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
	$pInfo->products_head_title_tag = tep_db_prepare_input($products_head_title_tag[$languages[$i]['id']]);
	$pInfo->products_head_desc_tag = tep_db_prepare_input($products_head_desc_tag[$languages[$i]['id']]);
	$pInfo->products_head_keywords_tag = tep_db_prepare_input($products_head_keywords_tag[$languages[$i]['id']]);
	$pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
  }
/*** End Header Tags SEO ***/

?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . $pInfo->products_name; ?></td>
		<td class="pageHeading" align="right"><?php echo $currencies->format($pInfo->products_price); ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES . $products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') . $pInfo->products_description; ?></td>
  </tr>
<?php
  if ($pInfo->products_url) {
?>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td class="main"><?php echo sprintf(TEXT_PRODUCT_MORE_INFORMATION, $pInfo->products_url); ?></td>
  </tr>
<?php
  }
?>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
<?php
  if ($pInfo->products_date_available > date('Y-m-d')) {
?>
  <tr>
	<td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_AVAILABLE, tep_date_long($pInfo->products_date_available)); ?></td>
  </tr>
<?php
  } else {
?>
  <tr>
	<td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_ADDED, tep_date_long($pInfo->products_date_added)); ?></td>
  </tr>
<?php
  }
?>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
<?php
}

if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
  if (isset($HTTP_GET_VARS['origin'])) {
	$pos_params = strpos($HTTP_GET_VARS['origin'], '?', 0);
	if ($pos_params != false) {
	  $back_url = substr($HTTP_GET_VARS['origin'], 0, $pos_params);
	  $back_url_params = substr($HTTP_GET_VARS['origin'], $pos_params + 1);
	} else {
	  $back_url = $HTTP_GET_VARS['origin'];
	  $back_url_params = '';
	}
  } else {
	$back_url = FILENAME_CATEGORIES;
	$back_url_params = 'cPath=' . $cPath . '&pID=' . $pInfo->products_id;
  }
?>
  <tr>
	<td align="right"><?php echo '<a href="' . tep_href_link($back_url, $back_url_params, 'NONSSL') . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
  </tr>
<?php
} else {
?>
  <tr>
	<td align="right" class="smallText">
<?php
/* Re-Post all POST'ed variables */
  reset($HTTP_POST_VARS);
  while (list($key, $value) = each($HTTP_POST_VARS)) {
	if (!is_array($HTTP_POST_VARS[$key])) {
	  echo tep_draw_hidden_field($key, htmlspecialchars(stripslashes($value)));
	}
  }
  $languages = tep_get_languages();
  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	echo tep_draw_hidden_field('products_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_name[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_description[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_description[$languages[$i]['id']])));
  /*** Begin Header Tags SEO ***/
	echo tep_draw_hidden_field('products_head_title_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_title_tag[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_head_desc_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_desc_tag[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_head_keywords_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_keywords_tag[$languages[$i]['id']])));
  /*** End Header Tags SEO ***/
	echo tep_draw_hidden_field('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']])));
  }
  echo tep_draw_hidden_field('products_image', stripslashes($products_image_name));
  // bcdev contrib - Add Attributes to categories.php
  for ($i=0;$i<sizeof($products_options);$i++) echo tep_draw_hidden_field('option[]', stripslashes($products_options[$i]));
  for ($i=0;$i<sizeof($products_options_price);$i++) echo tep_draw_hidden_field('value_price[]', stripslashes($products_options_price[$i]));
  for ($i=0;$i<sizeof($products_options_price_prefix);$i++) echo tep_draw_hidden_field('price_prefix[]', stripslashes($products_options_price_prefix[$i]));
  if (DOWNLOAD_ENABLED == 'true') {
for ($i=0;$i<sizeof($products_attributes_filename);$i++) echo tep_draw_hidden_field('products_attributes_filename[]', stripslashes($products_attributes_filename[$i]));
for ($i=0;$i<sizeof($products_attributes_maxdays);$i++) echo tep_draw_hidden_field('products_attributes_maxdays[]', stripslashes($products_attributes_maxdays[$i]));
for ($i=0;$i<sizeof($products_attributes_maxcount);$i++) echo tep_draw_hidden_field('products_attributes_maxcount[]', stripslashes($products_attributes_maxcount[$i]));
  }
  // end bcdev contrib
  echo tep_image_submit('button_back.gif', IMAGE_BACK, 'name="edit"') . '  ';

  if (isset($HTTP_GET_VARS['pID'])) {
	echo tep_image_submit('button_update.gif', IMAGE_UPDATE);
  } else {
	echo tep_image_submit('button_insert.gif', IMAGE_INSERT);
  }
  echo '  <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>';
?></td>
  </tr>
</table></form>
<?php
}
 } else {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="smallText" align="right">
<?php
echo tep_draw_form('search', FILENAME_CATEGORIES, '', 'get');
echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('search');
echo tep_hide_session_id() . '</form>';
?>
			</td>
		  </tr>
		  <tr>
			<td class="smallText" align="right">
<?php
echo tep_draw_form('goto', FILENAME_CATEGORIES, '', 'get');
echo HEADING_TITLE_GOTO . ' ' . tep_draw_pull_down_menu('cPath', tep_get_category_tree(), $current_category_id, 'onChange="this.form.submit();"');
echo tep_hide_session_id() . '</form>';
?>
			</td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CATEGORIES_PRODUCTS; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
<?php
$categories_count = 0;
$rows = 0;
if (isset($HTTP_GET_VARS['search'])) {
  $search = tep_db_prepare_input($HTTP_GET_VARS['search']);

/*** Begin Header Tags SEO ***/
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified, cd.categories_htc_title_tag, cd.categories_htc_desc_tag, cd.categories_htc_keywords_tag, cd.categories_htc_description from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and cd.categories_name like '%" . tep_db_input($search) . "%' order by c.sort_order, cd.categories_name");
} else {
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified, cd.categories_htc_title_tag, cd.categories_htc_desc_tag, cd.categories_htc_keywords_tag, cd.categories_htc_description from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by c.sort_order, cd.categories_name");
/*** End Header Tags SEO ***/
}
while ($categories = tep_db_fetch_array($categories_query)) {
  $categories_count++;
  $rows++;

// Get parent_id for subcategories if search
  if (isset($HTTP_GET_VARS['search'])) $cPath= $categories['parent_id'];

  if ((!isset($HTTP_GET_VARS['cID']) && !isset($HTTP_GET_VARS['pID']) || (isset($HTTP_GET_VARS['cID']) && ($HTTP_GET_VARS['cID'] == $categories['categories_id']))) && !isset($cInfo) && (substr($action, 0, 3) != 'new')) {
	$category_childs = array('childs_count' => tep_childs_in_category_count($categories['categories_id']));
	$category_products = array('products_count' => tep_products_in_category_count($categories['categories_id']));

	$cInfo_array = array_merge($categories, $category_childs, $category_products);
	$cInfo = new objectInfo($cInfo_array);
  }

  if (isset($cInfo) && is_object($cInfo) && ($categories['categories_id'] == $cInfo->categories_id) ) {
	echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_CATEGORIES, tep_get_path($categories['categories_id'])) . '\'">' . "\n";
  } else {
	echo '			  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . '\'">' . "\n";
  }
?>
			<td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, tep_get_path($categories['categories_id'])) . '">' . tep_image(DIR_WS_ICONS . 'folder.gif', ICON_FOLDER) . '</a> <b>' . $categories['categories_name'] . '</b>'; ?></td>
			<td class="dataTableContent" align="center"> </td>
			<td class="dataTableContent" align="right"><?php if (isset($cInfo) && is_object($cInfo) && ($categories['categories_id'] == $cInfo->categories_id) ) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
}

$products_count = 0;
if (isset($HTTP_GET_VARS['search'])) {
  $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and pd.products_name like '%" . tep_db_input($search) . "%' order by pd.products_name");
} else {
  $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by pd.products_name");
}
while ($products = tep_db_fetch_array($products_query)) {
  $products_count++;
  $rows++;

// Get categories_id for product if search
  if (isset($HTTP_GET_VARS['search'])) $cPath = $products['categories_id'];

  if ( (!isset($HTTP_GET_VARS['pID']) && !isset($HTTP_GET_VARS['cID']) || (isset($HTTP_GET_VARS['pID']) && ($HTTP_GET_VARS['pID'] == $products['products_id']))) && !isset($pInfo) && !isset($cInfo) && (substr($action, 0, 3) != 'new')) {
// find out the rating average from customer reviews
	$reviews_query = tep_db_query("select (avg(reviews_rating) / 5 * 100) as average_rating from " . TABLE_REVIEWS . " where products_id = '" . (int)$products['products_id'] . "'");
	$reviews = tep_db_fetch_array($reviews_query);
	$pInfo_array = array_merge($products, $reviews);
	$pInfo = new objectInfo($pInfo_array);
  }

  if (isset($pInfo) && is_object($pInfo) && ($products['products_id'] == $pInfo->products_id) ) {
	echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . '\'">' . "\n";
  } else {
	echo '			  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id']) . '\'">' . "\n";
  }
?>
			<td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $products['products_name']; ?></td>
			<td class="dataTableContent" align="center">
<?php
  if ($products['products_status'] == '1') {
	echo tep_image(DIR_WS_IMAGES . 'icon_status_green.gif', IMAGE_ICON_STATUS_GREEN, 10, 10) . '  <a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=0&pID=' . $products['products_id'] . '&cPath=' . $cPath) . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_red_light.gif', IMAGE_ICON_STATUS_RED_LIGHT, 10, 10) . '</a>';
  } else {
	echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=1&pID=' . $products['products_id'] . '&cPath=' . $cPath) . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_green_light.gif', IMAGE_ICON_STATUS_GREEN_LIGHT, 10, 10) . '</a>  ' . tep_image(DIR_WS_IMAGES . 'icon_status_red.gif', IMAGE_ICON_STATUS_RED, 10, 10);
  }
?></td>
			<td class="dataTableContent" align="right"><?php if (isset($pInfo) && is_object($pInfo) && ($products['products_id'] == $pInfo->products_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
}

$cPath_back = '';
if (sizeof($cPath_array) > 0) {
  for ($i=0, $n=sizeof($cPath_array)-1; $i<$n; $i++) {
	if (empty($cPath_back)) {
	  $cPath_back .= $cPath_array[$i];
	} else {
	  $cPath_back .= '_' . $cPath_array[$i];
	}
  }
}

$cPath_back = (tep_not_null($cPath_back)) ? 'cPath=' . $cPath_back . '&' : '';
?>
		  <tr>
			<td colspan="3"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="smallText"><?php echo TEXT_CATEGORIES . ' ' . $categories_count . '<br>' . TEXT_PRODUCTS . ' ' . $products_count; ?></td>
				<td align="right" class="smallText"><?php if (sizeof($cPath_array) > 0) echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, $cPath_back . 'cID=' . $current_category_id) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a> '; if (!isset($HTTP_GET_VARS['search'])) echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_category') . '">' . tep_image_button('button_new_category.gif', IMAGE_NEW_CATEGORY) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_product') . '">' . tep_image_button('button_new_product.gif', IMAGE_NEW_PRODUCT) . '</a>'; ?> </td>
			  </tr>
			</table></td>
		  </tr>
		</table></td>
<?php
$heading = array();
$contents = array();
switch ($action) {
  case 'new_category':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_NEW_CATEGORY . '</b>');

	$contents = array('form' => tep_draw_form('newcategory', FILENAME_CATEGORIES, 'action=insert_category&cPath=' . $cPath, 'post', 'enctype="multipart/form-data"'));
	$contents[] = array('text' => TEXT_NEW_CATEGORY_INTRO);

	$category_inputs_string = '';
	$languages = tep_get_languages();
	for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
	  $category_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']');
	/*** Begin Header Tags SEO ***/
	  $category_htc_title_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_title_tag[' . $languages[$i]['id'] . ']');
	  $category_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_desc_tag[' . $languages[$i]['id'] . ']');
	  $category_htc_keywords_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_keywords_tag[' . $languages[$i]['id'] . ']');
	  $category_htc_description_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_textarea_field('categories_htc_description[' . $languages[$i]['id'] . ']', 'hard', 30, 5, '');
	  /*** End Header Tags SEO ***/
	}

	$contents[] = array('text' => '<br>' . TEXT_CATEGORIES_NAME . $category_inputs_string);
	$contents[] = array('text' => '<br>' . TEXT_CATEGORIES_IMAGE . '<br>' . tep_draw_file_field('categories_image'));
	$contents[] = array('text' => '<br>' . TEXT_SORT_ORDER . '<br>' . tep_draw_input_field('sort_order', '', 'size="2"'));
	/*** Begin Header Tags SEO ***/
	$contents[] = array('text' => '<br>' . 'Header Tags Category Title' . $category_htc_title_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Description' . $category_htc_desc_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Keywords' . $category_htc_keywords_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Categories Description' . $category_htc_description_string);
	/*** End Header Tags SEO ***/
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  case 'edit_category':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_EDIT_CATEGORY . '</b>');

	$contents = array('form' => tep_draw_form('categories', FILENAME_CATEGORIES, 'action=update_category&cPath=' . $cPath, 'post', 'enctype="multipart/form-data"') . tep_draw_hidden_field('categories_id', $cInfo->categories_id));
	$contents[] = array('text' => TEXT_EDIT_INTRO);

	$category_inputs_string = '';
	$languages = tep_get_languages();
	for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
	  $category_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']', tep_get_category_name($cInfo->categories_id, $languages[$i]['id']));
	/*** Begin Header Tags SEO ***/
	  $category_htc_title_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_title_tag[' . $languages[$i]['id'] . ']', tep_get_category_htc_title($cInfo->categories_id, $languages[$i]['id']));
	  $category_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_desc_tag[' . $languages[$i]['id'] . ']', tep_get_category_htc_desc($cInfo->categories_id, $languages[$i]['id']));
	  $category_htc_keywords_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_keywords_tag[' . $languages[$i]['id'] . ']', tep_get_category_htc_keywords($cInfo->categories_id, $languages[$i]['id']));
	  $category_htc_description_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_textarea_field('categories_htc_description[' . $languages[$i]['id'] . ']', 'hard', 30, 5, tep_get_category_htc_description($cInfo->categories_id, $languages[$i]['id']));
	  /*** End Header Tags SEO ***/
	}

	$contents[] = array('text' => '<br>' . TEXT_EDIT_CATEGORIES_NAME . $category_inputs_string);
	$contents[] = array('text' => '<br>' . tep_image(DIR_WS_CATALOG_IMAGES . $cInfo->categories_image, $cInfo->categories_name) . '<br>' . DIR_WS_CATALOG_IMAGES . '<br><b>' . $cInfo->categories_image . '</b>');
	$contents[] = array('text' => '<br>' . TEXT_EDIT_CATEGORIES_IMAGE . '<br>' . tep_draw_file_field('categories_image'));
	$contents[] = array('text' => '<br>' . TEXT_EDIT_SORT_ORDER . '<br>' . tep_draw_input_field('sort_order', $cInfo->sort_order, 'size="2"'));
	 /*** Begin Header Tags SEO ***/
	$contents[] = array('text' => '<br>' . 'Header Tags Category Title' . $category_htc_title_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Description' . $category_htc_desc_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Keywords' . $category_htc_keywords_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Categories Description' . $category_htc_description_string);
	/*** End Header Tags SEO ***/
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  case 'delete_category':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_CATEGORY . '</b>');

	$contents = array('form' => tep_draw_form('categories', FILENAME_CATEGORIES, 'action=delete_category_confirm&cPath=' . $cPath) . tep_draw_hidden_field('categories_id', $cInfo->categories_id));
	$contents[] = array('text' => TEXT_DELETE_CATEGORY_INTRO);
	$contents[] = array('text' => '<br><b>' . $cInfo->categories_name . '</b>');
	if ($cInfo->childs_count > 0) $contents[] = array('text' => '<br>' . sprintf(TEXT_DELETE_WARNING_CHILDS, $cInfo->childs_count));
	if ($cInfo->products_count > 0) $contents[] = array('text' => '<br>' . sprintf(TEXT_DELETE_WARNING_PRODUCTS, $cInfo->products_count));
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  case 'move_category':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_MOVE_CATEGORY . '</b>');

	$contents = array('form' => tep_draw_form('categories', FILENAME_CATEGORIES, 'action=move_category_confirm&cPath=' . $cPath) . tep_draw_hidden_field('categories_id', $cInfo->categories_id));
	$contents[] = array('text' => sprintf(TEXT_MOVE_CATEGORIES_INTRO, $cInfo->categories_name));
	$contents[] = array('text' => '<br>' . sprintf(TEXT_MOVE, $cInfo->categories_name) . '<br>' . tep_draw_pull_down_menu('move_to_category_id', tep_get_category_tree(), $current_category_id));
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_move.gif', IMAGE_MOVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  case 'delete_product':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_PRODUCT . '</b>');

	$contents = array('form' => tep_draw_form('products', FILENAME_CATEGORIES, 'action=delete_product_confirm&cPath=' . $cPath) . tep_draw_hidden_field('products_id', $pInfo->products_id));
	$contents[] = array('text' => TEXT_DELETE_PRODUCT_INTRO);
	$contents[] = array('text' => '<br><b>' . $pInfo->products_name . '</b>');

	$product_categories_string = '';
	$product_categories = tep_generate_category_path($pInfo->products_id, 'product');
	for ($i = 0, $n = sizeof($product_categories); $i < $n; $i++) {
	  $category_path = '';
	  for ($j = 0, $k = sizeof($product_categories[$i]); $j < $k; $j++) {
		$category_path .= $product_categories[$i][$j]['text'] . ' > ';
	  }
	  $category_path = substr($category_path, 0, -16);
	  $product_categories_string .= tep_draw_checkbox_field('product_categories[]', $product_categories[$i][sizeof($product_categories[$i])-1]['id'], true) . ' ' . $category_path . '<br>';
	}
	$product_categories_string = substr($product_categories_string, 0, -4);

	$contents[] = array('text' => '<br>' . $product_categories_string);
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  case 'move_product':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_MOVE_PRODUCT . '</b>');

	$contents = array('form' => tep_draw_form('products', FILENAME_CATEGORIES, 'action=move_product_confirm&cPath=' . $cPath) . tep_draw_hidden_field('products_id', $pInfo->products_id));
	$contents[] = array('text' => sprintf(TEXT_MOVE_PRODUCTS_INTRO, $pInfo->products_name));
	$contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
	$contents[] = array('text' => '<br>' . sprintf(TEXT_MOVE, $pInfo->products_name) . '<br>' . tep_draw_pull_down_menu('move_to_category_id', tep_get_category_tree(), $current_category_id));
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_move.gif', IMAGE_MOVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  case 'copy_to':
	$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_COPY_TO . '</b>');

	$contents = array('form' => tep_draw_form('copy_to', FILENAME_CATEGORIES, 'action=copy_to_confirm&cPath=' . $cPath) . tep_draw_hidden_field('products_id', $pInfo->products_id));
	$contents[] = array('text' => TEXT_INFO_COPY_TO_INTRO);
	$contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
	$contents[] = array('text' => '<br>' . TEXT_CATEGORIES . '<br>' . tep_draw_pull_down_menu('categories_id', tep_get_category_tree(), $current_category_id));
	$contents[] = array('text' => '<br>' . TEXT_HOW_TO_COPY . '<br>' . tep_draw_radio_field('copy_as', 'link', true) . ' ' . TEXT_COPY_AS_LINK . '<br>' . tep_draw_radio_field('copy_as', 'duplicate') . ' ' . TEXT_COPY_AS_DUPLICATE);
	$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_copy.gif', IMAGE_COPY) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
	break;
  default:
	if ($rows > 0) {
	  if (isset($cInfo) && is_object($cInfo)) { // category info box contents
		$category_path_string = '';
		$category_path = tep_generate_category_path($cInfo->categories_id);
		for ($i=(sizeof($category_path[0])-1); $i>0; $i--) {
		  $category_path_string .= $category_path[0][$i]['id'] . '_';
		}
		$category_path_string = substr($category_path_string, 0, -1);

		$heading[] = array('text' => '<b>' . $cInfo->categories_name . '</b>');

		$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $category_path_string . '&cID=' . $cInfo->categories_id . '&action=edit_category') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $category_path_string . '&cID=' . $cInfo->categories_id . '&action=delete_category') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $category_path_string . '&cID=' . $cInfo->categories_id . '&action=move_category') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a>');
		$contents[] = array('text' => '<br>' . TEXT_DATE_ADDED . ' ' . tep_date_short($cInfo->date_added));
		if (tep_not_null($cInfo->last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED . ' ' . tep_date_short($cInfo->last_modified));
		$contents[] = array('text' => '<br>' . tep_info_image($cInfo->categories_image, $cInfo->categories_name, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT) . '<br>' . $cInfo->categories_image);
		$contents[] = array('text' => '<br>' . TEXT_SUBCATEGORIES . ' ' . $cInfo->childs_count . '<br>' . TEXT_PRODUCTS . ' ' . $cInfo->products_count);
	  } elseif (isset($pInfo) && is_object($pInfo)) { // product info box contents
		$heading[] = array('text' => '<b>' . tep_get_products_name($pInfo->products_id, $languages_id) . '</b>');
//++++ QT Pro: Begin Changed code
		$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=new_product') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=delete_product') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=move_product') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=copy_to') . '">' . tep_image_button('button_copy_to.gif', IMAGE_COPY_TO) . '</a> <a href="' . tep_href_link("stock.php", 'product_id=' . $pInfo->products_id) . '">' . tep_image_button('button_stock.gif', "Stock") . '</a>');
//++++ QT Pro: End Changed Code
		$contents[] = array('text' => '<br>' . TEXT_DATE_ADDED . ' ' . tep_date_short($pInfo->products_date_added));
		if (tep_not_null($pInfo->products_last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED . ' ' . tep_date_short($pInfo->products_last_modified));
		if (date('Y-m-d') < $pInfo->products_date_available) $contents[] = array('text' => TEXT_DATE_AVAILABLE . ' ' . tep_date_short($pInfo->products_date_available));
		$contents[] = array('text' => '<br>' . tep_info_image($pInfo->products_image, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '<br>' . $pInfo->products_image);
		$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_PRICE_INFO . ' ' . $currencies->format($pInfo->products_price) . '<br>' . TEXT_PRODUCTS_QUANTITY_INFO . ' ' . $pInfo->products_quantity);
		$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_AVERAGE_RATING . ' ' . number_format($pInfo->average_rating, 2) . '%');
	  }
	} else { // create category/product info
	  $heading[] = array('text' => '<b>' . EMPTY_CATEGORY . '</b>');

	  $contents[] = array('text' => TEXT_NO_CHILD_CATEGORIES_OR_PRODUCTS);
	}
	break;
}

if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
  echo '			<td width="25%" valign="top">' . "\n";

  $box = new box;
  echo $box->infoBox($heading, $contents);

  echo '			</td>' . "\n";
}
?>
	  </tr>
	</table></td>
  </tr>
</table>
<?php
 }
?>
</td>
<!-- body_text_eof //-->
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Link to comment
Share on other sites

The error message is now gone. Did I do alright or did I mess something up by changing that line of code?

No, that's fine.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Erreur Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

Thanks

You have to change the permissions settings on the includes/header_tags.php file to the same as that on your images directory, as mentioned in the documentation.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

You have to change the permissions settings on the includes/header_tags.php file to the same as that on your images directory, as mentioned in the documentation.

 

Jack

 

Hi Jack,

 

To allow the admin section to access the includes/header_tags.php file, the

permissions for that file should be set to 755 (777 on some hosts). The best way

to be sure to get the settings correct is to check the settings on the images

directory and set the ones for the Header Tags file to match those. If the

settings on the images directory and the Header Tags file are different, a

warning will appear in admin->Header Tags SEO.

 

I read it but it don't really understand it, I mean the way to do it cause as I told you I am under Windows XP and changing chmods can be done but only on a basic way, not like 777 or 6... (I will be able to change it when it will be on the web with the tool of my provider)

 

Can you explain me an easy way to change it on XP please?

 

By the way, I have done a few things and I have left on my test:

 

Test Results

Permissions Error: explain

Permissions settings for the C:/wamp/www/catalog/includes/header_tags.php file appear to be incorrect. Change to 777. NOTE: Disregard if on Windows server.

 

And I have still...

 

If I go on the shop all is working fine until I select a product. My right column is not there anymore and gone to the left side, under the left column!

With between the columns:

TEXT_VIEWING Améthyste is a great product (left side between the 2 columns)

And on the top of the page:

Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\catalog\includes\functions\header_tags.php on line 67

 

Thanks

Edited by Eric B

osCommerce Online Merchant v2.2 RC1 W3C Valid FR avec : colissimo_v1.9 // CGV // GoogleXML_sitemap - Update -> googlexml_sitemap_seo_v_1.5 // Ultimate SEO URLs 2.1d - Update -> v22d_12 // AntiRobotRegistrationValidation-3.1 // TinyMCE WYSIWYG HTML EDITOR // HEader Tag SEO 3.1.4 // PDF Invoice 1.5 // Specials_enhanced_v1_3_1 // quick_stock_update_v3.5_FRENCH // xmembers_v2.2 // contact_us_form_in_db_with_amin_v1.1 // photo_display_1 // previous_next_with_details // infoBox Admin v.2.25 // whosonlineturbov1.1fr // customer_discount_v1.3 // flash_bannersv2 // Horizontal_menu_V3 // Loginbox_Best_1 // CCGV // XSell_v2_7_2 // Printable Catalog XSS Flaw Fixed // all_specials_slideshow // Birthdays_v1.4 // Search_price_range_pulldown_menu_1.1 // contrib-categories // Reviews_in_Product_Display_v2.3 // Easy Graphical Borders // Simple Multiple Images (Unlimited) with Fancy Popups V1.3.5 // Guestbook V3.0 // Blacklist_IP_v.3 // Quicker Product Edit v2.1 // Chronopost_2010 // Easy Center // Size Shop with Layers // Safari-Chrome_fix // Protection to Configuration v1.3a // Page_Cache_v1.6... Thanks to everyone!

Link to comment
Share on other sites

Arrgh! I fixed one problem and caused another. I thought I had tested that. It is a mistake in that file. To fix it, please change this text
  $htc_sql_array = array(array("INSERT INTO headertags_default VALUES ('Default title', 'Default description', 'Default Keywords', 'Default Logo Text', '0','1','1','1','0','0','1','1','0','0','0','0', '1')"),
					 array("INSERT INTO headertags VALUES ('index.php', 'New Home Page Title', 'new description', 'new keywords1,keywords2', 'new logo text', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_info.php', 'products new home', 'products new description', 'products new keywords1,keywords2', 'products logo text', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_reviews.php', 'Product reviews', 'Product reviews', 'Product reviews', 'Reviews logo text', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_reviews_info.php', 'Product reviews info', 'Product reviews info', 'Product reviews info', 'Reviews logo text', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_reviews_write.php', 'Product reviews write', 'Product reviews write', 'Product reviews write', 'Reviews logo text', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('specials.php', 'specials', 'specials', 'specials', 'Specials logo text', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"));

to this

  $htc_sql_array = array(array("INSERT INTO headertags_default VALUES ('Default title', 'Default description', 'Default Keywords', 'Default Logo Text', '0','1','1','1','0','0','1','1','0','0','0','0', '1')"),
					 array("INSERT INTO headertags VALUES ('index.php', 'New Home Page Title', 'new description', 'new keywords1,keywords2', 'new logo text', '', '', '', '', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_info.php', 'products new home', 'products new description', 'products new keywords1,keywords2', 'products logo text', '', '', '', '', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_reviews.php', 'Product reviews', 'Product reviews', 'Product reviews', 'Reviews logo text', '', '', '', '', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_reviews_info.php', 'Product reviews info', 'Product reviews info', 'Product reviews info', 'Reviews logo text', '', '', '', '', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('product_reviews_write.php', 'Product reviews write', 'Product reviews write', 'Product reviews write', 'Reviews logo text', '', '', '', '', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"),
					 array("INSERT INTO headertags VALUES ('specials.php', 'specials', 'specials', 'specials', 'Specials logo text', '', '', '', '', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '10', '1', '1')"));

 

I'll upload a fixed version after it has been tested to see if there are any other problems.

 

Jack

 

Hi Jack, I have just started to install this contribution and got the same error as mentioned earlier to your reply above. I have changed the code as mentioned here and I now get a different error message when calling it up from my browser. The error message is:

 

1060 - Duplicate column name 'categories_htc_title_tag'

 

ALTER TABLE categories_description ADD categories_htc_title_tag VARCHAR(80) NULL;

 

[TEP STOP]

 

Please advise, thanks

 

Michael

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...