Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

pdcelec

Members
  • Content count

    594
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by pdcelec


  1. XHTL Strict tips

     

    These 4 will cure the bulk of all errors

     

    1. In whats_new.php and specials.php (and any other file with a strikethrough) replace the <s> and </s> with <span class="strikethrough"></span> and add a class .strikethrough to the text.css

    .strikethrough{

    text-decoration: strike-through;

    }

     

    2. Replace all <br> with <br /> (I opened all files and did a "search and replace" using notepad++)

     

    3. A very tedious one. XHTML does not accept capital letters so all form functions need changing

    onSubmit to onsubmit, (onclick, onfocus and others the same)

     

    4.here is part of my html_output file (this cures about 50 to 60% on its own)

    // BEGIN: CSS Buttons Everywhere

     

    function tep_image_submit($image, $value = '-AltValue-', $parameters = '') {

     

    global $language;

     

    $css_submit = '<fieldset><input type="submit" class="cssButton-submit" value="' . tep_output_string($value) . '" /></fieldset>';

     

    return $css_submit;

     

     

    }

     

     

    // END: CSS Buttons Everywhere

     

     

     

     

     

     

     

     

    ////

    // Output a function button in the selected language

    /* function tep_image_button($image, $alt = '', $parameters = '') {

    global $language;

     

    return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters);

     

     

    } */

     

    // BEGIN: CSS Buttons Everywhere

     

    function tep_image_button($image, $value = '-AltValue-', $parameters = '') {

     

    global $language;

     

    $width = round((strlen($value) * 5.8),0) + 38;

     

    $image = '<div class="cssButton" style="width: '.$width.'px;"> ' . tep_output_string($value) . ' </div>';

     

    return $image;

     

    }

     

    // END: CSS Buttons Everywhere

     

     

     

     

    ////

    // Output a separator either through whitespace, or with an image

    function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {

    return tep_image(DIR_WS_IMAGES . $image, '', $width, $height);

    }

     

    ////

    // Output a form

    function tep_draw_form($name, $action, $method = 'post', $parameters = '') {

    // $form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '" id="' . tep_output_string($name)'"';

    $form = '<fieldset><form class="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"';

    if (tep_not_null($parameters)) $form .= ' ' . $parameters;

     

    $form .= '></form></fieldset>';

     

    return $form;

    }

     

    ////

    // Output a form input field

    function tep_draw_input_field($name, $value = '', $parameters = 'class="input-style"', $type = 'text', $reinsert_value = true) {

    global $_GET, $_POST;

     

    $field = '<fieldset><input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

     

    if ( ($reinsert_value == true) && ( (isset($_GET[$name]) && is_string($_GET[$name])) || (isset($_POST[$name]) && is_string($_POST[$name])) ) ) {

    if (isset($_GET[$name]) && is_string($_GET[$name])) {

    $value = stripslashes($_GET[$name]);

    } elseif (isset($_POST[$name]) && is_string($_POST[$name])) {

    $value = stripslashes($_POST[$name]);

    }

    }

     

    if (tep_not_null($value)) {

    $field .= ' value="' . tep_output_string($value) . '"';

    }

     

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

     

    $field .= ' /></fieldset>';

    // $field .= 'class="input-style">';

     

     

    return $field;

    }

     

    ////

    // Output a form password field

    function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40" class="input-style"') {

    return tep_draw_input_field($name, $value, $parameters, 'password', false);

    }

     

     

    ////

    // Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()

    function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {

    global $_GET, $_POST;

     

    $selection = '<fieldset><input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

     

    if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';

     

    if ( ($checked == true) || (isset($_GET[$name]) && is_string($_GET[$name]) && (($_GET[$name] == 'on') || (stripslashes($_GET[$name]) == $value))) || (isset($_POST[$name]) && is_string($_POST[$name]) && (($_POST[$name] == 'on') || (stripslashes($_POST[$name]) == $value))) ) {

    $selection .= 'checked="checked"';

    }

     

    if (tep_not_null($parameters)) $selection .= ' ' . $parameters;

     

    $selection .= '></fieldset>';

     

    return $selection;

    }

     

    ////

    // Output a form checkbox field

    function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {

    return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);

    }

     

    ////

    // Output a form radio field

    function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') {

    return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters);

    }

     

    ////

    // Output a form textarea field

    function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {

    global $_GET, $_POST;

     

    $field = '<textarea name="' . tep_output_string($name) . '" wrap="' . tep_output_string($wrap) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

     

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

     

    $field .= '>';

     

    if ( ($reinsert_value == true) && ( (isset($_GET[$name]) && is_string($_GET[$name])) || (isset($_POST[$name]) && is_string($_POST[$name])) ) ) {

    if (isset($_GET[$name]) && is_string($_GET[$name])) {

    $field .= tep_output_string_protected(stripslashes($_GET[$name]));

    } elseif (isset($_POST[$name]) && is_string($_POST[$name])) {

    $field .= tep_output_string_protected(stripslashes($_POST[$name]));

    }

    } elseif (tep_not_null($text)) {

    $field .= tep_output_string_protected($text);

    }

     

    $field .= '</textarea>';

     

    return $field;

    }

     

    ////

    // Output a form hidden field

    function tep_draw_hidden_field($name, $value = '', $parameters = '') {

    global $_GET, $_POST;

     

    $field = '<fieldset><input type="hidden" name="' . tep_output_string($name) . '"';

     

    if (tep_not_null($value)) {

    $field .= ' value="' . tep_output_string($value) . '"';

    } elseif ( (isset($_GET[$name]) && is_string($_GET[$name])) || (isset($_POST[$name]) && is_string($_POST[$name])) ) {

    if ( (isset($_GET[$name]) && is_string($_GET[$name])) ) {

    $field .= ' value="' . tep_output_string(stripslashes($_GET[$name])) . '"';

    } elseif ( (isset($_POST[$name]) && is_string($_POST[$name])) ) {

    $field .= ' value="' . tep_output_string(stripslashes($_POST[$name])) . '"';

    }

    }

     

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

     

    $field .= '></fieldset>';

     

    return $field;

    }

     

    ////

    // Hide form elements

    function tep_hide_session_id() {

    global $session_started, $SID;

     

    if (($session_started == true) && tep_not_null($SID)) {

    return tep_draw_hidden_field(tep_session_name(), tep_session_id());

    }

    }

     

    ////

    // Output a form pull down menu

    function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {

    global $_GET, $_POST;

     

    $field = '<fieldset><select name="' . tep_output_string($name) . '"';

     

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

     

    $field .= '>';

     

    if (empty($default) && ( (isset($_GET[$name]) && is_string($_GET[$name])) || (isset($_POST[$name]) && is_string($_POST[$name])) ) ) {

    if (isset($_GET[$name]) && is_string($_GET[$name])) {

    $default = stripslashes($_GET[$name]);

    } elseif (isset($_POST[$name]) && is_string($_POST[$name])) {

    $default = stripslashes($_POST[$name]);

    }

    }

     

    for ($i=0, $n=sizeof($values); $i<$n; $i++) {

    $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';

    if ($default == $values[$i]['id']) {

     

    $field .= 'selected="selected"';

     

    }

     

    $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';

    }

    $field .= '</select></fieldset>';

     

    if ($required == true) $field .= TEXT_FIELD_REQUIRED;

     

    return $field;

    }


  2. thanks for that. I had got an image in the body for across the top of the screen. I added another div below it, followed your instruction and now have one top and bottom. I have found another site wide XHTML tip. Wrap the form elements in a fieldset in HTML_OUTPUT. I have now got index.php to validate as XHTML Strict. I have just installed the one page checkout 6646, and in the process of converting it to css.Now I have got my head around these grids, it makes it much easier to move sections around to customize the pages.


  3. I have a daft question.

     

    How do I get a background image at the bottom of the site 100% width. I have an image but it is currently filling the footer. I have tried various methods but it always ends up at the top.

     

    Sorry for asking a basic question


  4. I've been looking at Sams Anti Hacker mod too and have most of it complete but create_account is proving difficult. have you been able to convert this page?

    Yes, here it is. Please note that I have altered the input boxes to align with the name but that can easily be altered. Also note that I use KISS meta tags, so that line will need to be altered to whatever header tags contrib you have

    <?php

    /*

    $Id: create_account.php 1739 2007-12-20 00:52:16Z hpdl $

    osCommerce, Open Source E-Commerce Solutions

    http://www.oscommerce.com

    Copyright © 2003 osCommerce

    Released under the GNU General Public License

    OSC to CSS v2.0 http://www.niora.com/css-oscommerce.php

    */

    // anti-hacker account

    $no_pword = true; // set to true to disable password requirement & enable 'remember me' check box.

    $login_box = true; // set to true to show login box above create account box

    $top_phone = false; // set to true to show phone fields with personal details

    $no_fax = false; // set to true to disable fax fields

    require('includes/functions/account_secure.php');

    $password = tep_to_hex($_POST['password']);

    $pw_size = strlen($_POST['password']);

    $pw_match = ($_POST['confirmation'] == $_POST['password']);

    $strong_pw = tep_strong_password($_POST["password"]);

    unset($_POST['password']);unset($_POST['confirmation']);

    $email_address = '';

    clean_post ();

    // EOF anti-hacker account

    require('includes/application_top.php');

    // ajax

    require(DIR_WS_FUNCTIONS . 'ajax.php');

    if (isset($_POST['action']) && $_POST['action'] == 'getStates' && isset($_POST['country'])) {

    ajax_get_zones_html(tep_db_prepare_input($_POST['country']));

    } else {

    $nocart = ($cart->count_contents() < 1);

    if ($nocart) $no_pword = false;

    if ($no_pword) $pw_match = true;

    $country = STORE_COUNTRY;

    // EOF ajax

    // needs to be included earlier to set the success message in the messageStack

    require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CREATE_ACCOUNT);

    $process = false;

    if (isset($_POST['action']) && ($_POST['action'] == 'process')) {

    $process = true;

    // anti-hacker account

    $_POST['dob'] = $_POST['dob_ind'].'/'.$_POST['dob_inm'].'/'.$_POST['dob_in'];

    // EOF anti-hacker account

    if (ACCOUNT_GENDER == 'true') {

    if (isset($_POST['gender'])) {

    $gender = tep_db_prepare_input($_POST['gender']);

    } else {

    $gender = false;

    }

    }

    $firstname = tep_db_prepare_input($_POST['firstname']);

    $lastname = tep_db_prepare_input($_POST['lastname']);

    if (ACCOUNT_DOB == 'true') $dob = tep_db_prepare_input($_POST['dob']);

    $email_address = tep_db_prepare_input($_POST['email_address']);

    if (ACCOUNT_COMPANY == 'true') $company = tep_db_prepare_input($_POST['company']);

    $street_address = tep_db_prepare_input($_POST['street_address']);

    if (ACCOUNT_SUBURB == 'true') $suburb = tep_db_prepare_input($_POST['suburb']);

    $postcode = tep_db_prepare_input($_POST['postcode']);

    $city = tep_db_prepare_input($_POST['city']);

    if (ACCOUNT_STATE == 'true') {

    $state = isset($_POST['state']) ? tep_db_prepare_input($_POST['state']) : '';

    if (isset($_POST['zone_id'])) {

    $zone_id = tep_db_prepare_input($_POST['zone_id']);

    } else {

    $zone_id = false;

    }

    }

    $country = tep_db_prepare_input($_POST['country']);

    $telephone = tep_db_prepare_input($_POST['telephone']);

    $fax = tep_db_prepare_input($_POST['fax']);

    if (isset($_POST['newsletter'])) {

    $newsletter = tep_db_prepare_input($_POST['newsletter']);

    } else {

    $newsletter = false;

    }

    // $password = tep_db_prepare_input($_POST['password']);

    // $confirmation = tep_db_prepare_input($_POST['confirmation']);

    // anti-hacker account start

    $details = isset($_POST['details']) ? $_POST['details'] : false;

    if ($no_pword) {

    $password = '';

    while (!tep_strong_password($password) || !tep_not_null($password)) $password = tep_create_random_value(ENTRY_PASSWORD_MIN_LENGTH);

    $crypted_password = tep_to_hex($password);

    $pw_size = ENTRY_PASSWORD_MIN_LENGTH;

    }

    // anti-hacker account end

    $messagePage = 'create_account';

    $error = false;

    // anti-hacker account start

    $short_check = false;

    include(DIR_WS_MODULES . 'validate_name_fields.php');

    include(DIR_WS_MODULES . 'validate_address_fields.php');

    // if ($pw_size < ENTRY_PASSWORD_MIN_LENGTH) {

    // anti-hacker account end

    /*

    if (ACCOUNT_GENDER == 'true') {

    if ( ($gender != 'm') && ($gender != 'f') ) {

    $error = true;

    $messageStack->add('create_account', ENTRY_GENDER_ERROR);

    }

    }

    if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR);

    }

    if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR);

    }

    if (ACCOUNT_DOB == 'true') {

    if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4)) == false) {

    $error = true;

    $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR);

    }

    }

    if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR);

    } elseif (tep_validate_email($email_address) == false) {

    $error = true;

    $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);

    } else {

    $check_email_query = tep_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");

    $check_email = tep_db_fetch_array($check_email_query);

    if ($check_email['total'] > 0) {

    $error = true;

    $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);

    }

    }

    if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR);

    }

    if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_POST_CODE_ERROR);

    }

    if (strlen($city) < ENTRY_CITY_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_CITY_ERROR);

    }

    if (is_numeric($country) == false) {

    $error = true;

    $messageStack->add('create_account', ENTRY_COUNTRY_ERROR);

    }

    if (ACCOUNT_STATE == 'true') {

    $zone_id = 0;

    $check_query = tep_db_query("select count(*) as total from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "'");

    $check = tep_db_fetch_array($check_query);

    $entry_state_has_zones = ($check['total'] > 0);

    if ($entry_state_has_zones == true) {

    $zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name = '" . tep_db_input($state) . "' or zone_code = '" . tep_db_input($state) . "')");

    if (tep_db_num_rows($zone_query) == 1) {

    $zone = tep_db_fetch_array($zone_query);

    $zone_id = $zone['zone_id'];

    } else {

    $error = true;

    $messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);

    }

    } else {

    if (strlen($state) < ENTRY_STATE_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_STATE_ERROR);

    }

    }

    }

    if (strlen($telephone) < ENTRY_TELEPHONE_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_TELEPHONE_NUMBER_ERROR);

    }

    if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) {

    */

    if ($pw_size < ENTRY_PASSWORD_MIN_LENGTH) {

    $error = true;

    $messageStack->add('create_account', ENTRY_PASSWORD_ERROR);

    // } elseif ($password != $confirmation) {

    } elseif (!$pw_match) {

    $error = true;

    $messageStack->add('create_account', ENTRY_PASSWORD_ERROR_NOT_MATCHING);

    }

    if (!$strong_pw) {

    $messageStack->add('create_account', ENTRY_PASSWORD_STRONG_ERROR);

    $error = true;

    }

    // EOF anti-hacker account

    if ($error == false) {

    $sql_data_array = array('customers_firstname' => $firstname,

    'customers_lastname' => $lastname,

    'customers_email_address' => $email_address,

    'customers_telephone' => $telephone,

    'customers_fax' => $fax,

    'customers_newsletter' => $newsletter,

    // 'customers_password' => tep_encrypt_password($password));

    // anti-hacker account

    'customers_password' => tep_encrypt_password($no_pword ? $crypted_password : $password));

    // EOF anti-hacker account

    if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender;

    if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($dob);

    tep_db_perform(TABLE_CUSTOMERS, $sql_data_array);

    $customer_id = tep_db_insert_id();

    $sql_data_array = array('customers_id' => $customer_id,

    'entry_firstname' => $firstname,

    'entry_lastname' => $lastname,

    'entry_street_address' => $street_address,

    'entry_postcode' => $postcode,

    'entry_city' => $city,

    'entry_country_id' => $country);

    if (ACCOUNT_GENDER == 'true') $sql_data_array['entry_gender'] = $gender;

    if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_company'] = $company;

    if (ACCOUNT_SUBURB == 'true') $sql_data_array['entry_suburb'] = $suburb;

    if (ACCOUNT_STATE == 'true') {

    if ($zone_id > 0) {

    $sql_data_array['entry_zone_id'] = $zone_id;

    $sql_data_array['entry_state'] = '';

    } else {

    $sql_data_array['entry_zone_id'] = '0';

    $sql_data_array['entry_state'] = $state;

    }

    }

    tep_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array);

    $address_id = tep_db_insert_id();

    tep_db_query("update " . TABLE_CUSTOMERS . " set customers_default_address_id = '" . (int)$address_id . "' where customers_id = '" . (int)$customer_id . "'");

    tep_db_query("insert into " . TABLE_CUSTOMERS_INFO . " (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('" . (int)$customer_id . "', '0', now())");

    if (SESSION_RECREATE == 'true') {

    tep_session_recreate();

    }

    $customer_first_name = $firstname;

    $customer_default_address_id = $address_id;

    $customer_country_id = $country;

    $customer_zone_id = $zone_id;

    tep_session_register('customer_id');

    tep_session_register('customer_first_name');

    tep_session_register('customer_default_address_id');

    tep_session_register('customer_country_id');

    tep_session_register('customer_zone_id');

    // restore cart contents

    $cart->restore_contents();

    // build the message content

    $name = $firstname . ' ' . $lastname;

    if (ACCOUNT_GENDER == 'true') {

    if ($gender == 'm') {

    $email_text = sprintf(EMAIL_GREET_MR, $lastname);

    } else {

    $email_text = sprintf(EMAIL_GREET_MS, $lastname);

    }

    } else {

    $email_text = sprintf(EMAIL_GREET_NONE, $firstname);

    }

    // anti-hacker account

    if (!$no_pword) $email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;

    else $email_text .= EMAIL_WELCOME . EMAIL_CONTACT . EMAIL_WARNING;

    if ($no_pword && $details) { $email_text .= EMAIL_PASSWORD . $password; }

    tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

    if (!$no_pword || $nocart) { tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT_SUCCESS, '', 'SSL'));

    } else {

    tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, 'info_message=' . TEXT_ACCOUNT_CREATED, 'SSL'));

    }

    // EOF anti-hacker account

    // $email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;

    // tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

    // tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT_SUCCESS, '', 'SSL'));

    }

    }

    $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));

    echo $doctype;

    ?><html <?php echo HTML_PARAMS; ?>>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>" />

    <?php include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php'; ?>

    <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>" />

    <?php echo $stylesheet; ?>

    <?php require('includes/form_check.js.php'); ?>

    <?php require(DIR_WS_INCLUDES . 'template-top.php'); ?>

    <?php// echo tep_draw_form('create_account', tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onSubmit="return check_form(create_account);"') . tep_draw_hidden_field('action', 'process'); ?>

    <!-- anti-hacker account -->

    <h1><?php echo HEADING_TITLE; ?></h1>

    <?php echo tep_image(DIR_WS_IMAGES . 'table_background_account.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT,'','stock-image'); ?>

    <div class="clear"></div>

    <p class="smallText"><?php echo sprintf(TEXT_ORIGIN_LOGIN, tep_href_link(FILENAME_LOGIN, tep_get_all_get_params(), 'SSL')); ?></p>

    <!-- anti-hacker account -->

    <?php if (!$login_box) { ?>

    <br /><?php echo sprintf(TEXT_ORIGIN_LOGIN, tep_href_link(FILENAME_LOGIN, tep_get_all_get_params(), 'SSL')); ?>

    <?php } elseif (!$process) { ?>

    <div class="grid_4 alpha">

    <div class="account-heading">

    <?php echo HEADING_RETURNING_CUSTOMER; ?>

    </div>

    <?php echo tep_draw_form('login', tep_href_link(FILENAME_LOGIN, 'action=process', 'SSL')); ?>

    <p class="spacer-forms"><?php echo ENTRY_EMAIL_ADDRESS; ?>

    <?php echo tep_draw_input_field('email_address', '', 'size="28"'); ?></p>

    <p class="spacer-forms"><?php echo ENTRY_PASSWORD; ?>

    <?php echo tep_draw_password_field('password', '', 'size="16" maxlength="22"'); ?></p>

    <p class="smallText"><?php echo 'Forgotten Your Password? ' . '<a href="' . tep_href_link(FILENAME_PASSWORD_FORGOTTEN, 'email_address=' . $email_address, 'SSL') . '">' . TEXT_PASSWORD_FORGOTTEN . '</a>'; ?></p>

    <?php echo tep_image_submit('button_login.gif', IMAGE_BUTTON_LOGIN); ?>

    <?php// echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?>

    <?php } ?>

    </div>

    <!-- EOF anti-hacker account -->

    <?php

    if ($messageStack->size('create_account') > 0) {

    echo $messageStack->output('create_account');

    }

    ?>

    <!-- anti-hacker account -->

    <?php echo tep_draw_form('create_account', tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onsubmit="return check_form(create_account);"') . tep_draw_hidden_field('action', 'process'); ?><!-- ajax --><div class="indicator"></div><!-- eof ajax -->

    <!-- EOF anti-hacker account -->

    <!--<div class="right-align inputrequirement"><?php// echo FORM_REQUIRED_INFORMATION; ?></div>-->

    <div class="grid_4 alpha">

    <div class="account-heading">

    <?php echo CATEGORY_PERSONAL; ?>

    </div>

    <div class="clear"></div>

    <?php// echo $colpos; ?>

    <?php

    if (ACCOUNT_GENDER == 'true') {

    ?>

    <p class="spacer-forms">

    <?php echo ENTRY_GENDER; ?>

    <?php echo tep_draw_radio_field('gender', 'm') . '  ' . MALE . '  ' . tep_draw_radio_field('gender', 'f') . '  ' . FEMALE . ' ' . (tep_not_null(ENTRY_GENDER_TEXT) ? '<span class="inputRequirement">' . ENTRY_GENDER_TEXT . '</span>': ''); ?>

    </p>

    <?php

    }

    ?>

    <p class="spacer-forms"><?php echo ENTRY_FIRST_NAME; ?>

    <?php echo tep_draw_input_field('firstname') . ' ' . (tep_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">' . ENTRY_FIRST_NAME_TEXT . '</span>': ''); ?>

    </p>

    <p class="spacer-forms"><?php echo ENTRY_LAST_NAME; ?>

    <?php echo tep_draw_input_field('lastname') . ' ' . (tep_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">' . ENTRY_LAST_NAME_TEXT . '</span>': ''); ?>

    </p>

    <?php

    if (ACCOUNT_DOB == 'true') {

    // anti-hacker account

    $def_year = isset($_POST['dob_in']) ? $_POST['dob_in'] : 1980;

    $day = isset($_POST['dob_ind']) ? $_POST['dob_ind'] : '00';

    $month = isset($_POST['dob_inm']) ? $_POST['dob_inm'] : '00';

    ?>

    <p class="spacer-forms"><?php echo ENTRY_DATE_OF_BIRTH; ?>

    <?php echo tep_pull_down_date('dob_in', $day, $month, $def_year, true, 1900) . ' ' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?>

    </p>

    <?php

    }

    ?>

    <p class="spacer-forms"><?php echo ENTRY_EMAIL_ADDRESS; ?>

    <?php echo tep_draw_input_field('email_address') . ' ' . (tep_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">' . ENTRY_EMAIL_ADDRESS_TEXT . '</span>': ''); ?>

    </p>

    <?php if ($top_phone) { ?>

    <p class="spacer-forms"><?php echo ENTRY_TELEPHONE_NUMBER; ?>

    <?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?>

    </p>

    <?php if (!$no_fax) { ?>

    <p class="spacer-forms"><?php echo ENTRY_FAX_NUMBER; ?>

    <?php echo tep_draw_input_field('fax') . ' ' . (tep_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_FAX_NUMBER_TEXT . '</span>': ''); ?>

    </p>

    <?php

    } }

    ?>

    </div>

    <!-- EOF anti-hacker account -->

    <?php

    if (ACCOUNT_COMPANY == 'true') {

    ?>

    <div class="grid_4 alpha">

    <div class="account-heading">

    <?php echo CATEGORY_COMPANY; ?>

    </div>

    <p class="spacer-forms"><?php echo ENTRY_COMPANY; ?>

    <?php echo tep_draw_input_field('company') . ' ' . (tep_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COMPANY_TEXT . '</span>': ''); ?>

    </p>

    </div>

    <?php

    }

    ?>

    <div class="grid_4 alpha">

    <div class="account-heading">

    <?php echo CATEGORY_ADDRESS; ?>

    </div>

    <!-- anti-hacker account -->

    <?php

    include(DIR_WS_MODULES . 'address_fields.php');

    ?>

    </div>

    <?php if (!$top_phone) { ?>

    <div class="grid_4 alpha">

    <div class="account-heading">

    <?php echo CATEGORY_CONTACT; ?>

    </div>

    <p class="spacer-forms"><?php echo ENTRY_TELEPHONE_NUMBER; ?>

    <?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?>

    </p>

    <?php if (!$no_fax) { ?>

    <p class="spacer-forms"><?php echo ENTRY_FAX_NUMBER; ?>

    <?php echo tep_draw_input_field('fax') . ' ' . (tep_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_FAX_NUMBER_TEXT . '</span>': ''); ?>

    </p>

    <?php } ?>

    </div>

    <?php

    }

    ?>

    <!-- EOF anti-hacker account -->

    <div class="grid_4 alpha">

    <div class="account-heading">

    <?php echo CATEGORY_OPTIONS; ?>

    </div>

    <p class="spacer-forms"><?php echo ENTRY_NEWSLETTER; ?>

    <?php echo tep_draw_checkbox_field('newsletter', '1') . ' ' . (tep_not_null(ENTRY_NEWSLETTER_TEXT) ? '<span class="inputRequirement">' . ENTRY_NEWSLETTER_TEXT . '</span>': ''); ?>

    </p>

    </div>

    <div class="grid_4 alpha">

    <div class="account-heading">

    <b><?php echo $no_pword ? CATEGORY_DETAILS : CATEGORY_PASSWORD; ?></b>

    </div>

    <?php if (!$no_pword) {

    // echo $colpos; ?>

    <p class="spacer-forms"><?php echo ENTRY_PASSWORD; ?>

    <?php echo tep_draw_password_field('password') . ' ' . (tep_not_null(ENTRY_PASSWORD_TEXT) ? '<span class="inputRequirement">' . ENTRY_PASSWORD_TEXT . '</span>': ''); ?>

    </p>

    <p class="spacer-forms"><?php echo ENTRY_PASSWORD_CONFIRMATION; ?>

    <?php echo tep_draw_password_field('confirmation') . ' ' . (tep_not_null(ENTRY_PASSWORD_CONFIRMATION_TEXT) ? '<span class="inputRequirement">' . ENTRY_PASSWORD_CONFIRMATION_TEXT . '</span>': ''); ?>

    </p>

    <?php } else { ?>

    <?php

    /* if ($process == true) {

    if ($entry_state_has_zones == true) {

    $zones_array = array();

    $zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' order by zone_name");

    while ($zones_values = tep_db_fetch_array($zones_query)) {

    $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);

    }

    echo tep_draw_pull_down_menu('state', $zones_array);

    } else {

    echo tep_draw_input_field('state');

    }

    } else {

    echo tep_draw_input_field('state');

    }

    if (tep_not_null(ENTRY_STATE_TEXT)) echo ' <span class="inputRequirement">' . ENTRY_STATE_TEXT;

    }*/

    ?>

    <div class="spacer-tall"></div>

    <p class="spacer-forms"><?php echo ENTRY_SAVE_DETAIL ; ?>

    <?php echo tep_draw_checkbox_field('details', '1'); ?>

    </p>

    </div>

    </div>

    <?php } ?>

    <!--<div class="spacer-tall"></div>

    <div class="spacer-tall"></div> -->

    <div class="clear spacer-tall"></div>

    <div class="grid_8 right-align"></div>

    <?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?>

    <?php echo FORM_REQUIRED_INFORMATION; ?>

    </form>

    </div>

    <div class="clear spacer-tall"></div>

    <?php

    require(DIR_WS_INCLUDES . 'template-bottom.php');

    require(DIR_WS_INCLUDES . 'application_bottom.php');

    // ajax

    }

    // EOF ajax

    ?>

    <?php

    ?>


  5. I'm looking to convert my existing site with this conversion but have so many mods installed it's a daunting task. It's mention in the install instructions that the conversion has been tested with a number of mods, cheeky I know, but do you have any instructions covering the conversion of these mods to fit with this?

     

    Also, I've been trying to convert SEO Sitemap to fit with this without much success. Anyone else tried this one yet?

     

    I have just installed Sams anti-hacker to this (it wasnt easy but I learnt alot). I have installed the FWR sitemap without too much problem. I will have a go at installing the one you mentioned. If I get good results, I will post them. I have also found that the Tell a Friend box has the text from the search box. Not a difficult fix but just thought that I would mention it


  6. I have had a look at the tutorial and will get that done next (and I assume you mean <br /> for xhtml).

     

    I am getting a couple of errors reported by FWR error reporting

     

    1.) Error: Undefined property: cssinfoBoxHeading::$table_data_parameters

    File: includes/classes/boxes.php

    Line: 33

     

    2.)

    Error: Undefined index: text

    File: includes/classes/boxes.php

    Line: 44

     

    3.)

    Error: Undefined variable: output

    File: includes/boxes/ul_categories.php

    Line: 117

     

     

    4.)

    Error: Undefined variable: output

    File: includes/modules/cat_navbar.php

    Line: 107

     

    Also line 19 in reset.css says

    background: transparent; (a missing #)( and for xhtml #fcfef5)

    and a few "transparent" in styles.css(fcfef5)


  7. I am struggling with order history. If I setup an ordered list, the number is always 1. If I change it around, the box goes completely wild. I am thinking that the line "order by products name" is the culprit but not experienced enough to say for sure

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => BOX_HEADING_CUSTOMER_ORDERS);

     

    new cssinfoBoxHeading($info_box_contents, false, false);

     

    $product_ids = '';

    while ($orders = tep_db_fetch_array($orders_query)) {

    $product_ids .= (int)$orders['products_id'] . ',';

    }

    $product_ids = substr($product_ids, 0, -1);

     

    // $customer_orders_string = '<table class="infobox">';

    // $products_query = tep_db_query("select products_id, products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id in (" . $product_ids . ") and language_id = '" . (int)$languages_id . "' order by products_name");

    $products_query = tep_db_query("select products_id, products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id in (" . $product_ids . ") and language_id = '" . (int)$languages_id . "' order by products_name");

    while ($products = tep_db_fetch_array($products_query)) {

    $customer_orders_string .= '<div class="clear"></div><ol>' .

    ' <li><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">' . $products['products_name'] . '</a>' .

    ' <a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=cust_order&pid=' . $products['products_id']) . '">' . tep_image(DIR_WS_ICONS . 'cart.gif','infobox cart','','',ICON_CART,'infobox-cart') . '</a></li></ol>' .

    ' ';

    }

    // $customer_orders_string .= '</table>';

    $customer_orders_string .= '';

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => $customer_orders_string);

     

    new cssinfoBox($info_box_contents);


  8. Thanks. Adding the pl solved the problem for the also purchased and I learned something else. Here is an attempt at the manufacturers_info.php. I think what I have is version 1 with version 2 dropped on top, so if this is not in V2, it has been left over from V1

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => BOX_HEADING_MANUFACTURER_INFO);

     

    new cssinfoBoxHeading($info_box_contents, false, false);

     

     

    $manufacturer_info_string = '';

    if (tep_not_null($manufacturer['manufacturers_image'])) $manufacturer_info_string .= '<class="pl-image">' . tep_image(DIR_WS_IMAGES . $manufacturer['manufacturers_image'], $manufacturer['manufacturers_name']) . '';

    if (tep_not_null($manufacturer['manufacturers_url'])) $manufacturer_info_string .= '<ol><li><a href="' . tep_href_link(FILENAME_REDIRECT, 'action=manufacturer&manufacturers_id=' . $manufacturer['manufacturers_id']) . '" target="_blank">' . sprintf(BOX_MANUFACTURER_INFO_HOMEPAGE, $manufacturer['manufacturers_name']) . '</a></li>';

    $manufacturer_info_string .= '<li><a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $manufacturer['manufacturers_id']) . '">' . BOX_MANUFACTURER_INFO_OTHER_PRODUCTS . '</a></li></ol>' .

    '';

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => $manufacturer_info_string);

     

    new cssinfoBox($info_box_contents);

    ?>


  9. I had overwritten it with the original from the contrib but I have just changed it divs and it appears ok. I dont know what I have done different but it is now ok. I do have a problem with the also purchased products on product info though. They are all on the left. Having just looked, the module is calling for the old css styles from v1

     

    $info_box_contents = array();

    if ($notification_exists == true) {

    $info_box_contents[] = array('text' => '<div class="clear"></div><ol><li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify_remove', $request_type) . '">' . tep_image(DIR_WS_IMAGES . 'box_products_notifications_remove.gif', IMAGE_BUTTON_REMOVE_NOTIFICATIONS) . '</a><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify_remove', $request_type) . '">' . sprintf(BOX_NOTIFICATIONS_NOTIFY_REMOVE, tep_get_products_name($HTTP_GET_VARS['products_id'])) .'</a></li></ol>');

    } else {

    $info_box_contents[] = array('text' => '<div class="clear"></div><ol><li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify', $request_type) . '">' . tep_image(DIR_WS_IMAGES . 'box_products_notifications.gif', IMAGE_BUTTON_NOTIFICATIONS) . '</a><p><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify', $request_type) . '">' . sprintf(BOX_NOTIFICATIONS_NOTIFY, tep_get_products_name($HTTP_GET_VARS['products_id'])) .'</a></p></li></ol>');

    }


  10. I am having a problem with the product_info page. The footer has gone over to the left bottom. All other pages seem ok. I have checked it with other pages and cannot see any difference in the layout. Any idea what I should be looking for?

    I have tracked it down to the product notifications box......


  11. I am having a problem with the product_info page. The footer has gone over to the left bottom. All other pages seem ok. I have checked it with other pages and cannot see any difference in the layout. Any idea what I should be looking for?


  12. I cannot seem to fathom out order history but this is what I have got so far. Those new css styles make a good difference. This has been my first attempt at styling and it has been a good learning curve

     

    <?php

    /*

    $Id: order_history.php 1739 2007-12-20 00:52:16Z hpdl $

    osCommerce, Open Source E-Commerce Solutions

    http://www.oscommerce.com

    Copyright © 2003 osCommerce

    Released under the GNU General Public License

    */

    if (tep_session_is_registered('customer_id')) {

    // retreive the last x products purchased

    $orders_query = tep_db_query("select distinct op.products_id from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_PRODUCTS . " p where o.customers_id = '" . (int)$customer_id . "' and o.orders_id = op.orders_id and op.products_id = p.products_id and p.products_status = '1' group by products_id order by o.date_purchased desc limit " . MAX_DISPLAY_PRODUCTS_IN_ORDER_HISTORY_BOX);

    if (tep_db_num_rows($orders_query)) {

    ?>

    <!--start customer_orders -->

     

    <?php

    $info_box_contents = array();

    $info_box_contents[] = array('text' => BOX_HEADING_CUSTOMER_ORDERS);

    new cssinfoBoxHeading($info_box_contents, false, false);

    $product_ids = '';

    while ($orders = tep_db_fetch_array($orders_query)) {

    $product_ids .= (int)$orders['products_id'] . ',';

    }

    $product_ids = substr($product_ids, 0, -1);

    // $customer_orders_string = '<table class="infobox">';

    $products_query = tep_db_query("select products_id, products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id in (" . $product_ids . ") and language_id = '" . (int)$languages_id . "' order by products_name");

    while ($products = tep_db_fetch_array($products_query)) {

    $customer_orders_string .= ' ' .

    ' <div class="infobox"><div class="clear"></div><ol><li><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">' . $products['products_name'] . '</a></ol>' .

    ' <div class="infobox-image"><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=cust_order&pid=' . $products['products_id']) . '">' . tep_image(DIR_WS_ICONS . 'cart.gif','infobox cart','','',ICON_CART,'infobox-cart') . '</a></div>' .

    ' ';

    }

    // $customer_orders_string .= '</table>';

    $customer_orders_string .= '</div>';

    $info_box_contents = array();

    $info_box_contents[] = array('text' => $customer_orders_string);

    new cssinfoBox($info_box_contents);

    }

    }

    ?>


  13. here is the matching product_notifications

     

    <!--start notifications infobox-->

     

    <?php

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => BOX_HEADING_NOTIFICATIONS);

     

    new cssinfoBoxHeading($info_box_contents, false, false, tep_href_link(FILENAME_ACCOUNT_NOTIFICATIONS, '', 'SSL'));

     

    if (tep_session_is_registered('customer_id')) {

    $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$_GET['products_id'] . "' and customers_id = '" . (int)$customer_id . "'");

    $check = tep_db_fetch_array($check_query);

     

    $notification_exists = (($check['count'] > 0) ? true : false);

    } else {

     

    $notification_exists = false;

    }

     

    $info_box_contents = array();

    if ($notification_exists == true) {

    $info_box_contents[] = array('text' => '<div class="clear"></div><ol><li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify_remove', $request_type) . '">' . tep_image(DIR_WS_IMAGES . 'box_products_notifications_remove.gif', IMAGE_BUTTON_REMOVE_NOTIFICATIONS) . '</a></div><div class="infobox"><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify_remove', $request_type) . '">' . sprintf(BOX_NOTIFICATIONS_NOTIFY_REMOVE, tep_get_products_name($_GET['products_id'])) .'</a></li></ol></div>');

     

    } else {

    $info_box_contents[] = array('text' => '<div class="clear"></div><ol><li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify', $request_type) . '">' . tep_image(DIR_WS_IMAGES . 'box_products_notifications.gif', IMAGE_BUTTON_NOTIFICATIONS) . '</a><p><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=notify', $request_type) . '">' . sprintf(BOX_NOTIFICATIONS_NOTIFY, tep_get_products_name($_GET['products_id'])) .'</a></p></li></ol></div>');

    }

     

    new cssinfoBox($info_box_contents);

     

    }

    ?>


  14. Here is the matching whats new box

     

    <!--start whats_new -->

    <?php

    $random_product['products_name'] = tep_get_products_name($random_product['products_id']);

    $random_product['specials_new_products_price'] = tep_get_products_special_price($random_product['products_id']);

    $info_box_contents = array();

    $info_box_contents[] = array('text' => BOX_HEADING_WHATS_NEW);

    new cssinfoBoxHeading($info_box_contents, false, false, tep_href_link(FILENAME_PRODUCTS_NEW));

    if (tep_not_null($random_product['specials_new_products_price'])) {

    $whats_new_price = '<s>' . $currencies->display_price($random_product['products_price'], tep_get_tax_rate($random_product['products_tax_class_id'])) . '</s><br />';

    $whats_new_price .= '<span class="productSpecialPrice">' . $currencies->display_price($random_product['specials_new_products_price'], tep_get_tax_rate($random_product['products_tax_class_id'])) . '</span>';

    } else {

    $whats_new_price = $currencies->display_price($random_product['products_price'], tep_get_tax_rate($random_product['products_tax_class_id']));

    }

    $info_box_contents = array();

    $info_box_contents[] = array('text' => '<div class="infobox-image"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $random_product['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $random_product['products_image'], $random_product['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></div>

    <div class="infobox"><div class="clear"></div><ol><li><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $random_product['products_id']) . '">' . $random_product['products_name'] . '</a><br />' . $whats_new_price.'</li></ol></div>');

    new cssinfoBox($info_box_contents);

    }

    ?>


  15. Here is the matching information box

     

    <!--start information -->

    <?php

    $info_box_contents = array();

    $info_box_contents[] = array('text' => BOX_HEADING_INFORMATION);

     

    new cssinfoBoxHeading($info_box_contents, false, false);

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => '<div class="infobox"><div class="clear"></div><ol><li><a href="' . tep_href_link(FILENAME_SHIPPING) . '">' . BOX_INFORMATION_SHIPPING . '</a></li>' .

    '<li><a href="' . tep_href_link(FILENAME_PRIVACY) . '">' . BOX_INFORMATION_PRIVACY . '</a></li>' .

    '<li><a href="' . tep_href_link(FILENAME_CONDITIONS) . '">' . BOX_INFORMATION_CONDITIONS . '</a></li>' .

    '<li><a href="' . tep_href_link('faqs.php') . '">' . 'Faqs' . '</a></li>' .

    '<li><a href="' . tep_href_link(FILENAME_CONTACT_US) . '">' . BOX_INFORMATION_CONTACT . '</a></li></ol></div>');

     

    new cssinfoBox($info_box_contents);

    ?>


  16. Here is glaring one that we both missed!!!

     

    Change

     

    <link rel="stylesheet" href="css/reset.css" />

    <link rel="stylesheet" href="css/960.css" />

    <link rel="stylesheet" href="css/text.css" />

    <link rel="stylesheet" href="css/styles.css" />

    <link rel="stylesheet" href="css/css-buttons.css" />

    <link rel="stylesheet" href="css/superfish.css" />

    <link rel="stylesheet" href="css/json-addtocart-themes.css" />

    <link rel="stylesheet" href="css/ui-tabs.css" />

    <link rel="stylesheet" href="css/prettyPhoto.css" type="text/css" media="screen" />

     

    To

     

    <link rel="stylesheet" href="css/reset.css" type="text/css" />

    <link rel="stylesheet" href="css/960.css" type="text/css" />

    <link rel="stylesheet" href="css/text.css" type="text/css" />

    <link rel="stylesheet" href="css/styles.css" type="text/css" />

    <link rel="stylesheet" href="css/css-buttons.css" type="text/css" />

    <link rel="stylesheet" href="css/superfish.css" type="text/css" />

    <link rel="stylesheet" href="css/json-addtocart-themes.css" type="text/css" />

    <link rel="stylesheet" href="css/ui-tabs.css" type="text/css" />

    <link rel="stylesheet" href="css/prettyPhoto.css" type="text/css" media="screen" />


  17. This should fix the validation of includes/modules/cat-navbar.php and also includes/boxes/ul_categories.php. (cat-navbar.php is the horizontal version of ul_categories so the fix is the same in both files.

     

    in either file:

     

    change:

    // Close off nested lists
       for ($nest = 0; $nest <= $GLOBALS['this_level']; $nest++) {
          $output .= '</ul>';		
    	}
    

     

    to this:

    // Close off nested lists
       for ($nest = 1; $nest <= $GLOBALS['this_level']; $nest++) {
          //closing tags for entire list
           $output .= '</ul></li></ul>';		
    	}
    

     

     

    Spot on, cat navbar now validates!!!. Just got 4 errors to go for XHTML transitional and 11 for strict. Tomorrow,I will start working on the other boxes


  18. Here is the output from cat navbar from W3C Validator

    It is saying that there should be a </li> on line 89 to close of <li> on line 82

     

     

    66.<div class="cat_navbar">

    67.<div class="cat_navbar_bg"><ul class="sf-menu"><li class="current_0"><a href="xxxxxxxxx/hardware-c-1.html" class="current">Hardware (6)</a>

    68.<ul><li class="current_1"><a href="xxxxxxxxx/hardware-cdrom-drives-c-1_17.html">CDROM Drives</a></li>

    69.<li class="current_1"><a href="xxxxxxxxx/hardware-graphics-cards-c-1_4.html">Graphics Cards (2)</a></li>

    70.<li class="current_1"><a href="xxxxxxxxx/hardware-keyboards-c-1_8.html">Keyboards (1)</a></li>

    71.<li class="current_1"><a href="xxxxxxxxx/hardware-memory-c-1_16.html">Memory</a></li>

    72.<li class="current_1"><a href="xxxxxxxxx/hardware-mice-c-1_9.html">Mice (2)</a></li>

    73.<li class="current_1"><a href="xxxxxxxxx/hardware-monitors-c-1_6.html">Monitors</a></li>

    74.<li class="current_1"><a href="xxxxxxxxx/hardware-printers-c-1_5.html">Printers (1)</a></li>

    75.<li class="current_1"><a href="xxxxxxxxx/hardware-speakers-c-1_7.html">Speakers</a></li>

    76.</ul></li>

    77.<li class="current_0"><a href="xxxxxxxxx/software-c-2.html" class="current">Software (4)</a>

    78.<ul><li class="current_1"><a href="xxxxxxxxx/software-action-c-2_19.html">Action (1)</a></li>

    79.<li class="current_1"><a href="xxxxxxxxx/software-simulation-c-2_18.html">Simulation (1)</a></li>

    80.<li class="current_1"><a href="xxxxxxxxx/software-strategy-c-2_20.html">Strategy (2)</a></li>

    81.</ul></li>

    82.<li class="current_0"><a href="xxxxxxxxx/dvd-movies-c-3.html" class="current">DVD Movies (17)</a>

    83.<ul><li class="current_1"><a href="xxxxxxxxx/dvd-movies-action-c-3_10.html">Action (9)</a></li>

    84.<li class="current_1"><a href="xxxxxxxxx/dvd-movies-cartoons-c-3_13.html">Cartoons (1)</a></li>

    85.<li class="current_1"><a href="xxxxxxxxx/dvd-movies-comedy-c-3_12.html">Comedy (2)</a></li>

    86.<li class="current_1"><a href="xxxxxxxxx/dvd-movies-drama-c-3_15.html">Drama (3)</a></li>

    87.<li class="current_1"><a href="xxxxxxxxx/dvd-movies-science-fiction-c-3_11.html">Science Fiction (1)</a></li>

    88.<li class="current_1"><a href="xxxxxxxxx/dvd-movies-thriller-c-3_14.html">Thriller (1)</a></li>

    89.</ul></ul></div>

    90.</div>


  19. I have converted the best sellers box to a div with an ordered list

     

    $bestsellers_list = '<div class="infobox"><div class="clear"></div><ol>';

    while ($best_sellers = tep_db_fetch_array($best_sellers_query)) {

    $rows++;

     

    $bestsellers_list .= '<li><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '">' . $best_sellers['products_name'] . '</a></li>';

     

    }

    $bestsellers_list .= '</ol></div>';

     

    $info_box_contents = array();

    $info_box_contents[] = array('text' => $bestsellers_list);


  20. I have found a couple of problems with cat-navbar.

     

    1.) There is a missing end </li> but I am struggling to rectify it.

     

    2.) There is a call to an undefined function tep_make_catsf_ulbranch on line 109, but looking at it the function is defined below it. Should the order be changed around?


  21. I have got it down to 11 errors for XHTML Strict.

     

    Some easy changes

     

    1.)Replace all occurrences of <br> and <br/> with <br />

     

    2.)In all catalog files add the space and slash i.e.

    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> BECOMES

    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>" />

    and

    <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> BECOMES

    <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>" />

     

    In catalog/includes/functions/html_output.php find

    function tep_image and replace

    $image .= '>'; with

    $image .= ' />';

    AND

    $image = '<img src="' . tep_output_string($src) . '" class="'. tep_output_string($class) .'" border="0" alt="' . tep_output_string($alt) . '"';

    REPLACE with

    $image = '<img src="' . tep_output_string($src) . '" class="border_0" alt="' . tep_output_string($alt) . '"';

    and add

    .border_0{

    border:0;

    }

    to the stylesheet

     

    In catalog/includes/functions/html_output.php find

    function tep_draw_input_field and replace

    $field .= '>'; with

    $field .= ' />';

     

    In catalog/includes/functions/html_output.php find

    function tep_draw_pull_down_menu and replace

    $field .= 'selected'; with

    $field .= 'selected="selected"';

     

    Replace all occurences of the button functions in whichever files they appear with no capital letters i.e. onSubmit is one of them

     

    I will post more as I find them


  22. Yes valid css 2.1!!!

     

    Next mission is to validate it as XHTML 1.0 STRICT and maybe even XHTML1.1

     

    I have found another problem whilst doing this,

     

    The currencies are not changing.

     

    More detective work required. I am learning alot doing this

     

    Just found the manufacturers_info.php has tables in it. Sorry


  23. Whew! Thanks for working on this and spotting the issue. I'll get this fix posted on the contribution.

     

     

    I will be using this a basis for my site so it is the least I can do. I have successfully installed the following with no isuuse

     

    Categories enable/disable 1.6

    KISS MT

    KISS ER

    PHP5.3 compatibility (replacing HTTP_GET_VARS and HTTP_POST_VARS with _GET and _POST) and replaced all the ereg functions

     

    Currently adding Sams anti hacker ( this ones a bit more challenging to integrate but I will get there)

     

    Thanks for a great contrib

×