Results 1 to 10 of 10
  1. #1
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Code check on a product page?

    Hi,

    I just hacked my product page all up and I'm pretty happy with the results. So I am content and would like to leave it be for now, but I'm worried that I may have made a sloppy mistake!

    Can somebody take a peak at my code?

    Here is a link to the page in action:
    http://justmedicalequipment(DOT)com/...&products_id=1

    And here is the actual code:
    (/includes/templates/MY-TEMPLATE/templates/tpl_product_info_display.php)
    Code:
    <?php
    /**
     * Page Template
     *
     * Loaded automatically by index.php?main_page=product_info.<br />
     * Displays details of a typical product
     *
     * @package templateSystem
     * @copyright Copyright 2003-2011 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 19690 2011-10-04 16:41:45Z drbyte $
     */
    ?>
    
    <?php 
    //BOF :: Tabbed Products Pro ::
    require(DIR_WS_MODULES . 'tabbed_products_pro.php');
    //EOF :: Tabbed Products Pro ::
    ?>
    <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', $request_type), '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 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 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"; ?>
    
    <!--bof Mfg logo image MIKEY-->
    <br />
    <?php
    if ($check_image = zen_get_products_manufacturers_image((int)$_GET['products_id'])) {
    echo zen_image(DIR_WS_IMAGES . $check_image) . "\n" ;
    } else {
    echo ' ';
    }
    
    ?> 
    
    <!--eof Mfg logo image MIKEY-->
    
    </ul>
    
    <br class="clearBoth" />
    <?php
      }
    ?>
    <!--eof Product details list -->
    
    
    <!--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 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">
        
        <!--bof Product Price block -->
    <div id="productPrices" class="productGeneral"><h2>
    <?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 : TEXT_PRODUCT_PRICE_LABEL) . zen_get_products_display_price((int)$_GET['products_id']);
    ?></h2></div>
    <!--eof Product Price block -->
        
        <?php
          echo $display_qty;
          echo $display_button;
                ?>
              </div>
      <?php } // display qty and button ?>
    <?php } // CUSTOMERS_APPROVAL == 3 ?>
    <!--eof Add to Cart Box-->
    
    
    <?php 
    //BOF :: Tabbed Products Pro ::
    echo '<div id="tpptabBlock" style="display:none;">' . $tabData . '</div>';
    //EOF :: Tabbed Products Pro ::
    ?>
    
     <!--bof Product description -->
    <?php if ($products_description != '') { ?>
    <div id="productDescription" class="productGeneral biggerText"><?php echo stripslashes($products_description); ?></div>
    <?php } ?>
    <!--eof Product description -->
    <br class="clearBoth" />
    
    
    
    <!--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 -->
    
    <!--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 -->
    
    <!--bof Additional Product Images -->
    <?php
    /**
     * 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 -->
    
    <!--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 -->
    
    <?php if (TPP_GLOBAL_REVIEWS_ON_TAB != '1') { ?>  
    <!--bof Reviews button and count-->
    <?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
      }
    }
    ?>
    <!--eof Reviews button and count -->
    <?php } ?>
    
    <!--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 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 also purchased products module-->
    <?php 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-->
    
    <!--bof Form close-->
    </form>
    <!--bof Form close-->
    </div>
    <?php 
    //BOF :: Tabbed Products Pro ::
    echo $tabjscript;
    //BOF :: Tabbed Products Pro ::
    ?>
    If I have made any fatal errors, please let me know.

    Thanks!

  2. #2
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Code check on a product page?

    Also, if there is some online tool you use to check code, could you post a link for me?

    I know there are zillions of validators, I just can never figure out which to use and how to interpret. Needs to be a Code Validator for Dummies!

  3. #3
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: Code check on a product page?

    Also, if there is some online tool you use to check code, could you post a link for me?
    Use Firefox + the HTML validator plugin. That checks your code in the browser real-time without you having to have the site live/accessible to use online checkers.
    Then its a case of investigation of the errors from the top down. It IS possible to have a 100% valid page but it requires some nit-picking, many would argue it is time wasted as regards to the page actually displaying properly BUT if you do have a 100% valid page, you will spot any new errors you introduce immediately.
    Your only relevant errors are an unclosed div and missing li tags but go ahead and fix the rest, a good way to learn.
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

  4. #4
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Code check on a product page?

    Thanks, Torvista!

    I'm on a Mac, Firefox is no longer supported. But I keep it specifically for the developer tool kits, which I still use all the time.

    I just ran a few validators. Best I can tell, the code I pasted into the OP is fine, no corrections needed.

    The product page (link in OP) does have a number of errors (17), but none of the were "fatal". As you point out, "many would argue" that pursuit of "a 100% valid page" would be "time wasted". But I'm a perfectionist and sorely tempted, especially since, as you point out, it may be helpful to spot future problems.

    I dunno.

    That's 17 errors buried somewhere in hundreds of php files. I'm not smart enough to find those in a time efficient way!

    Unless you see something GLARING that really needs addressing, I think I will just let them slide for now.

  5. #5
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,474
    Plugin Contributions
    88

    Default Re: Code check on a product page?

    You're missing a closing div in your footer navigation:
    Code:
    <!--bof-navigation display -->
    
    <div id="navSuppWrapper">
    <div id="navSupp">
    <ul>
    <li><a href="http://justmedicalequipment.com/">Home</a></li>
    <li>&nbsp;::&nbsp;
      <a href="http://justmedicalequipment.com/index.php?main_page=page&amp;id=3&amp;zenid=6eccaeecfc7286412ba782dc503f8e9a">Trade-In Program</a>
    &nbsp;::&nbsp;
      <a href="http://justmedicalequipment.com/index.php?main_page=contact_us&amp;zenid=6eccaeecfc7286412ba782dc503f8e9a">Contact Us</a>
    </li>
    </ul>
    </div>
    </div>
    <!--eof-navigation display -->

  6. #6
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Code check on a product page?

    Wow! Yay! Thank you!

    That was easy to find and fix!

  7. #7
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,474
    Plugin Contributions
    88

    Default Re: Code check on a product page?

    You're very welcome!

  8. #8
    Join Date
    Jul 2012
    Posts
    16,732
    Plugin Contributions
    17

    Default Re: Code check on a product page?

    netbeans (though not sure supported on mac) offers a sort of validation as above providing an opportunity to "shrink" sections of code, so as torvista suggested, working top down, can identify that areas of code "encompass" too much and so need to find the "end point" then back search to where that html is initially displayed and where the closer needs to go... A little back and forth, but...
    ZC Installation/Maintenance Support <- Site
    Contribution for contributions welcome...

  9. #9
    Join Date
    Jan 2004
    Posts
    66,373
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: Code check on a product page?

    Quote Originally Posted by Feznizzle View Post
    I'm on a Mac, Firefox is no longer supported.
    Huh? https://www.mozilla.org/firefox/system-requirements/ ... https://www.mozilla.org/firefox/all/
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  10. #10
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Code check on a product page?

    WHAT THE DUECE!!!

    I love Firefox! A while back I stopped being able to update it. I googled and found an article on how Mozilla is no longer supporting osX. I just found the article again. I'm an idiot. They are no longer supporting osX.... version 10.5, duh!!!

    Just dl'ed the latest, off to install.

    Thanks, DrB!

 

 

Similar Threads

  1. Check Code
    By marcopolo in forum General Questions
    Replies: 3
    Last Post: 19 Jan 2016, 10:40 PM
  2. Replies: 2
    Last Post: 21 Oct 2012, 09:56 PM
  3. Replies: 3
    Last Post: 10 Jul 2009, 04:22 AM
  4. product page as homepage / check out button
    By InterSign in forum Setting Up Categories, Products, Attributes
    Replies: 8
    Last Post: 20 May 2008, 05:11 AM
  5. Replies: 1
    Last Post: 6 May 2008, 10:24 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR