I'm really at a loss here, and this is the one thing that is really holding up my site sadly. Whether or not I use this mod changes how the end user is going to add products to the site, and largely we have most of the other things done. (I need to tweak the template still and test all the mods/features I added in to make sure they aren't all broken).
Since I have other mods that alter the tpl_product_info_display.php file, I can't simply overwrite it with the one from this mod. I tested my tpl_product_info_display.php file before the mod, and everything displays fine. If I attempt to merge the two, this is what I get, which is broken. It always tells me the last line of the file is messed up.
<?php
/**
* Page Template
* Tabbed Products Lite v3.8
* QHome ([email protected])
*
* Loaded automatically by index.php?main_page=product_info.<br />
* Displays details of a typical product
*
* @package templateSystem
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: tpl_product_info_display.php 5369 2006-12-23 10:55:52Z drbyte $
*/
//require(DIR_WS_MODULES . '/debug_blocks/product_info_prices.php');
?>
<!-- bof: Tabbed Product Lite Modifications -->
<?php require(DIR_WS_MODULES . 'tabbed_products_lite.php');?>
<!-- eof: Tabbed Product Lite Modifications -->
<div class="centerColumn" id="productGeneral">
<!--bof Form start-->
<?php echo zen_draw_form('cart_quantity', zen_href_link(zen_get_info_page($_GET['products_id']), zen_get_all_get_params(array('action')) . 'action=add_product'), 'post', 'enctype="multipart/form-data"') . "\n"; ?>
<!--eof Form start-->
<?php if ($messageStack->size('product_info') > 0) echo $messageStack->output('product_info'); ?>
<!--bof Category Icon -->
<?php if ($module_show_categories != 0) {?>
<?php
/**
* display the category icons
*/
require($template->get_template_dir('/tpl_modules_category_icon_display.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_category_icon_display.php'); ?>
<?php } ?>
<!--eof Category Icon -->
<!--bof Prev/Next top position -->
<?php if (PRODUCT_INFO_PREVIOUS_NEXT == 1 or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?>
<?php
/**
* display the product previous/next helper
*/
require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_products_next_previous.php'); ?>
<?php } ?>
<!--eof Prev/Next top position-->
<!-- bof: Tabbed Product Lite Modifications -->
<?php If ($bMainImageOnTabs === false || $chkTabStart === false || $chkTabEnd === false) { ?>
<!-- eof: Tabbed Product Lite Modifications -->
<!--bof Main Product Image -->
<?php
if (zen_not_null($products_image)) {
?>
<?php
/**
* display the main product image
*/
require($template->get_template_dir('/tpl_modules_main_product_image.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_main_product_image.php'); ?>
<?php
}
?>
<!--eof Main Product Image-->
<!--bof Product Name-->
<h1 id="productName" class="productGeneral"><?php echo $products_name; ?></h1>
<!--eof Product Name-->
<!--bof Product Price block -->
<h2 id="productPrices" class="productGeneral">
<?php
// base price
if ($show_onetime_charges_description == 'true') {
$one_time = '<span >' . TEXT_ONETIME_CHARGE_SYMBOL . TEXT_ONETIME_CHARGE_DESCRIPTION . '</span><br />';
} else {
$one_time = '';
}
echo $one_time . ((zen_has_product_attributes_values((int)$_GET['products_id']) and $flag_show_product_info_starting_at == 1) ? TEXT_BASE_PRICE : '') . zen_get_products_display_price((int)$_GET['products_id']);
?></h2>
<!--eof Product Price block -->
<!--bof free ship icon -->
<?php if(zen_get_product_is_always_free_shipping($products_id_current) && $flag_show_product_info_free_shipping) { ?>
<div id="freeShippingIcon"><?php echo TEXT_PRODUCT_FREE_SHIPPING_ICON; ?></div>
<?php } ?>
<!--eof free ship icon -->
<!-- bof: Tabbed Product Lite Modifications -->
<?php
} //end of the show_main_image_on_tabs if statement
if ($products_description != '') {
if ($chkTabStart === false || $chkTabEnd === false) { // BEGIN custom tab exist check
?>
<!--bof Product description -->
<div id="productDescription" class="productGeneral biggerText"><?php echo stripslashes($products_description); ?></div>
<!--eof Product description -->
<?php
If ($bAddToCart || $bMediaCollection || $bAdditionalImages || $bCustomersAlsoPurchased || $bCrossSell_Tab || $bReviews_Tab) {
require($template->get_template_dir('/tpl_tabbed_products_lite.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_tabbed_products_lite.php');
}
} else {
require($template->get_template_dir('/tpl_tabbed_products_lite.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_tabbed_products_lite.php');
}
}
?>
<!-- eof: Tabbed Product Lite Modifications -->
<br class="clearBoth" />
<?php
$value = "ot_better_together.php";
include(zen_get_file_directory(DIR_WS_LANGUAGES . $_SESSION['language'] .
'/modules/order_total/', $value, 'false'));
include(DIR_WS_MODULES . "order_total/" . $value);
$discount = new ot_better_together();
echo '<div class="content" id="discountPolicy">';
$resp = $discount->get_discount_info($_GET['products_id'], $current_category_id);
for ($i=0, $n=count($resp); $i<$n; $i++) {
echo $resp[$i] . "<br />";
}
echo '</div>';
// Now the reverse info (new in 1.3)
echo '<div class="content" id="discountPolicyReverse">';
$resp = $discount->get_reverse_discount_info($_GET['products_id'], $current_category_id);
for ($i=0, $n=count($resp); $i<$n; $i++) {
echo $resp[$i] . "<br />";
}
echo '<br /></div>';
echo '<br class="clearBoth" />';
?>
<!-- bof: Tabbed Product Lite Modifications -->
<?php if (!$bAddToCart && !$bsubtab_AddToCart) { // If not a tab, display as normal ?>
<!-- eof: Tabbed Product Lite Modifications -->
<!--bof Add to Cart Box -->
<?php
if (CUSTOMERS_APPROVAL == 3 and TEXT_LOGIN_FOR_PRICE_BUTTON_REPLACE_SHOWROOM == '') {
// do nothing
} else {
?>
<?php
$display_qty = (($flag_show_product_info_in_cart_qty == 1 and $_SESSION['cart']->in_cart($_GET['products_id'])) ? '<p>' . PRODUCTS_ORDER_QTY_TEXT_IN_CART . $_SESSION['cart']->get_quantity($_GET['products_id']) . '</p>' : '');
if ($products_qty_box_status == 0 or $products_quantity_order_max== 1) {
// hide the quantity box and default to 1
$the_button = '<input type="hidden" name="cart_quantity" value="1" />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
} else {
// show the quantity box
$the_button = PRODUCTS_ORDER_QTY_TEXT . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($_GET['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_get_products_quantity_min_units_display((int)$_GET['products_id']) . '<br />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
}
$display_button = zen_get_buy_now_button($_GET['products_id'], $the_button);
?>
<?php if ($display_qty != '' or $display_button != '') { ?>
<div id="cartAdd">
<?php
echo $display_qty;
echo $display_button;
?>
</div>
<?php } // display qty and button ?>
<?php } // CUSTOMERS_APPROVAL == 3 ?>
<!--eof Add to Cart Box-->
<!-- bof: Tabbed Product Lite Modifications -->
<?php } ?>
<!-- eof: Tabbed Product Lite Modifications -->
<!--bof Add to Wish List-->
<?php
// (un): start wishlist link
echo '<a href="' . zen_href_link(UN_FILENAME_WISHLIST, zen_get_all_get_params(array('action', 'products_id')) . 'products_id='.(int)$_GET['products_id'].'&action=un_add_wishlist') . '">' . UN_TEXT_ADD_WISHLIST . '</a>';
// (un): end wishlist link
?>
<!--eof Add to Wish List-->
<!-- bof: Tabbed Product Lite Modifications -->
<!--bof Product details list -->
<?php if ( (($flag_show_product_info_model == 1 and $products_model != '') or ($flag_show_product_info_weight == 1 and $products_weight !=0) or ($flag_show_product_info_quantity == 1) or ($flag_show_product_info_manufacturer == 1 and !empty($manufacturers_name))) ) { ?>
<ul id="productDetailsList" class="floatingBox back">
<?php echo (($flag_show_product_info_model == 1 and $products_model !='') ? '<li>' . TEXT_PRODUCT_MODEL . $products_model . '</li>' : '') . "\n"; ?>
<?php echo (($flag_show_product_info_weight == 1 and $products_weight !=0) ? '<li>' . TEXT_PRODUCT_WEIGHT . $products_weight . TEXT_PRODUCT_WEIGHT_UNIT . '</li>' : '') . "\n"; ?>
<?php echo (($flag_show_product_info_quantity == 1) ? '<li>' . $products_quantity . TEXT_PRODUCT_QUANTITY . '</li>' : '') . "\n"; ?>
<?php echo (($flag_show_product_info_manufacturer == 1 and !empty($manufacturers_name)) ? '<li>' . TEXT_PRODUCT_MANUFACTURER . $manufacturers_name . '</li>' : '') . "\n"; ?>
</ul>
<br class="clearBoth" />
<?php
}
?>
<!--eof Product details list -->
<br class="clearBoth" />
<div></div>
<!-- eof: Tabbed Product Lite Modifications -->
<!--bof Attributes Module -->
<?php
if ($pr_attr->fields['total'] > 0) {
?>
<?php
/**
* display the product atributes
*/
require($template->get_template_dir('/tpl_modules_attributes.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_attributes.php'); ?>
<?php
}
?>
<!--eof Attributes Module -->
<br class="clearBoth" />
<!--bof Quantity Discounts table -->
<?php
if ($products_discount_type != 0) { ?>
<?php
/**
* display the products quantity discount
*/
require($template->get_template_dir('/tpl_modules_products_quantity_discounts.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_products_quantity_discounts.php'); ?>
<?php
}
?>
<!--eof Quantity Discounts table -->
<br class="clearBoth" />
<!-- bof: Tabbed Product Lite Modifications -->
<!--bof Additional Product Images -->
<?php if (!$bAdditionalImages && !$bsubtab_AdditionalImages) {
/**
* display the products additional images
*/
require($template->get_template_dir('/tpl_modules_additional_images.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_additional_images.php'); ?>
<!--eof Additional Product Images -->
<!-- eof: Tabbed Product Lite Modifications -->
<!--bof Prev/Next bottom position -->
<?php if (PRODUCT_INFO_PREVIOUS_NEXT == 2 or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?>
<?php
/**
* display the product previous/next helper
*/
require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_products_next_previous.php'); ?>
<?php } ?>
<!--eof Prev/Next bottom position -->
<!-- bof: Tabbed Product Lite Modifications -->
<!--bof Reviews button and count-->
<?php if (!$bReviews_Tab && !$bsubtab_Reviews) {?>
<?php
if ($flag_show_product_info_reviews == 1) {
// if more than 0 reviews, then show reviews button; otherwise, show the "write review" button
if ($reviews->fields['count'] > 0 ) { ?>
<div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' . zen_href_link(FILENAME_PRODUCT_REVIEWS, zen_get_all_get_params()) . '">' . zen_image_button(BUTTON_IMAGE_REVIEWS, BUTTON_REVIEWS_ALT) . '</a>'; ?></div>
<br class="clearBoth" />
<p class="reviewCount"><?php echo ($flag_show_product_info_reviews_count == 1 ? TEXT_CURRENT_REVIEWS . ' ' . $reviews->fields['count'] : ''); ?></p>
<?php } else { ?>
<div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' . zen_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, zen_get_all_get_params(array())) . '">' . zen_image_button(BUTTON_IMAGE_WRITE_REVIEW, BUTTON_WRITE_REVIEW_ALT) . '</a>'; ?></div>
<br class="clearBoth" />
<?php
}
}
?>
<?php } ?>
<!--eof Reviews button and count -->
<!-- eof: Tabbed Product Lite Modifications -->
<br class="clearBoth" />
<!-- bof: Tabbed Product Lite Modifications -->
<!--bof also purchased products module-->
<?php if (!$bCustomersAlsoPurchased && !$bsubtab_CustomersAlsoPurchased) {
require($template->get_template_dir('tpl_modules_also_purchased_products.php', DIR_WS_TEMPLATE, $current_page_base,'templates'). '/' . 'tpl_modules_also_purchased_products.php');?>
}?>
<!--eof also purchased products module-->
<!-- eof: Tabbed Product Lite Modifications -->
<!--bof Product date added/available-->
<?php
if ($products_date_available > date('Y-m-d H:i:s')) {
if ($flag_show_product_info_date_available == 1) {
?>
<p id="productDateAvailable" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_AVAILABLE, zen_date_long($products_date_available)); ?></p>
<?php
}
} else {
if ($flag_show_product_info_date_added == 1) {
?>
<p id="productDateAdded" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_ADDED, zen_date_long($products_date_added)); ?></p>
<?php
} // $flag_show_product_info_date_added
}
?>
<!--eof Product date added/available -->
<!--bof Ask Question button -->
<?php
if ($flag_show_product_info_ask_question == 1) { ?>
<div id="productAskQuestionLink" class="buttonRow forward"><?php echo ($flag_show_product_info_ask_question == 1 ? '<a href="' . zen_href_link(FILENAME_ASK_QUESTION, 'products_id=' . $_GET['products_id']) . '">' . zen_image_button(BUTTON_IMAGE_ASK_QUESTION, BUTTON_ASK_QUESTION_ALT) . '</a>' : ''); ?></div>
<?php
}
?>
<!--eof Ask Question button -->
<!--bof Tell a Friend button -->
<?php
if ($flag_show_product_info_tell_a_friend == 1) { ?>
<div id="productTellFriendLink" class="buttonRow forward"><?php echo ($flag_show_product_info_tell_a_friend == 1 ? '<a href="' . zen_href_link(FILENAME_TELL_A_FRIEND, 'products_id=' . $_GET['products_id']) . '">' . zen_image_button(BUTTON_IMAGE_TELLAFRIEND, BUTTON_TELLAFRIEND_ALT) . '</a>' : ''); ?></div>
<?php
}
?>
<!--eof Tell a Friend button -->
<!-- bof social bookmarking -->
<?php
include($template->get_template_dir('/tpl_social.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_social.php');
?>
<!-- eof social bookmarking -->
<!--bof Product URL -->
<?php
if (zen_not_null($products_url)) {
if ($flag_show_product_info_url == 1) {
?>
<p id="productInfoLink" class="productGeneral centeredContent"><?php echo sprintf(TEXT_MORE_INFORMATION, zen_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($products_url), 'NONSSL', true, false)); ?></p>
<?php
} // $flag_show_product_info_url
}
?>
<!--eof Product URL -->
<!--bof Form close-->
</form>
<!--bof Form close-->
</div>
Can someone please unbork this? I only know enough to get myself into trouble apparently.