Jump to content

Hotclutch

Members
  • Content count

    2,605
  • Joined

  • Last visited

  • Days Won

    32

Reputation Activity

  1. Like
    Hotclutch got a reaction from Smoky Barnable in Uncaught Error: Call to undefined function mysql_connect()   
    You're not going to get support for the version you still have.
     
  2. Like
    Hotclutch reacted to YePix in NEED ADVICE ON MY OS COMMERCE WEBSITE   
    hi, yes @Hotclutch is right.
    I switched to this version too.
    No offense, but it will still be many months before version 4.0 is ready for use.
  3. Like
    Hotclutch reacted to ArtcoInc in How to make new template for oscommerce 2.3.4   
    True, but less chance for error with adding the new file.
    Besides, it is just a suggestion.
  4. Like
    Hotclutch got a reaction from ArtcoInc in Search exploit ?   
    The IPs appear to be bingbot.
  5. Thanks
    Hotclutch reacted to YePix in W3 osCommerce WIP   
    I wrote something useful for users of this version. Saving the emails from the file contact_us.php in the database and the possibility to answer them from the admin area.
    contact_us.php
    find:
    require('includes/application_top.php'); require('includes/languages/' . $language . '/contact_us.php'); add after:
    $account = array();$name = '';$email = '';$phone = ''; if (isset($_SESSION['customer_id'])) { $account_query = tep_db_query("select c.customers_id" . " FROM " . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab " . " WHERE c.customers_id = '" . (int)$customer_id . "'" . " AND ab.address_book_id = c.customers_default_address_id"); $account = tep_db_fetch_array($account_query); $customer_id = $account['customers_id']; } find:
    tep_redirect(tep_href_link('contact_us.php', 'action=success')); add bevore:
    if (!empty($customer_id)){$cus_id = $customer_id;}else{$cus_id = '0';} tep_db_query("insert into contact_us ( customers_id, name, email, enquiry, date) VALUES ( '" . $cus_id . "', '" . tep_db_input($name) . "', '" . $email_address . "', '" . tep_db_input($enquiry) . "', Now())");  
    ********************
    SQL - contact_us
     
    CREATE TABLE `contact_us` ( `email_id` int NOT NULL, `customers_id` text NOT NULL, `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_turkish_ci NOT NULL, `email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_unicode_ci NOT NULL, `enquiry` longtext CHARACTER SET utf8mb3 COLLATE utf8_unicode_ci NOT NULL, `date` datetime DEFAULT NULL, `status` int NOT NULL, `adminenquiry` longtext NOT NULL, `senddate` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; ALTER TABLE `contact_us` ADD PRIMARY KEY (`email_id`); ALTER TABLE `contact_us` MODIFY `email_id` int NOT NULL AUTO_INCREMENT; COMMIT; add to:
    catalog/admin/includes/languages/german.php
    define('BOX_CUSTOMERS_EMAILS_HEADING', 'Kundenanfragen');
    ############################
    catalog/admin/includes/boxes/customers.php
           array(
            'code' => 'customers_email.php',
            'title' => BOX_CUSTOMERS_EMAILS_HEADING,
            'link' => tep_href_link('customers_email.php')
          ),      
    ############################
    New files:
    catalog/admin/includes/languages/german/customers_email.php
    <?php define('CUSTOMERS_EMAIL_HEADING_TITLE', 'Kundenemails'); define('CUSTOMERS_EMAIL_CUSTOMER_NAME', 'Kundenname'); define('CUSTOMERS_EMAIL_CUSTOMER_GUEST', 'Gast'); define('CUSTOMERS_EMAIL_CUSTOMER_MAIL_ID', 'E-Mail ID'); define('CUSTOMERS_EMAIL_CUSTOMER_ID', 'Kundennummer'); define('CUSTOMERS_EMAIL_CUSTOMER_EMAIL', 'E-Mail'); define('CUSTOMERS_EMAIL_CUSTOMER_PHONE', 'Telefonnummer'); define('CUSTOMERS_EMAIL_CUSTOMER_SUBJECT', 'Betreff'); define('CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY', 'Kundenanfrage'); define('CUSTOMERS_EMAIL_CUSTOMER_ADMIN_ENQUIRY', 'Gesendete Antwort'); define('CUSTOMERS_EMAIL_CUSTOMER_DATE', 'Anfragedatum'); define('CUSTOMERS_EMAIL_CUSTOMER_STATUS', 'Status'); define('CUSTOMERS_EMAIL_TEXT_DISPLAY_NUMBER_OF_STOCKLABEL', 'Kunden und Besucheremails'); define('CUSTOMERS_EMAIL_SEND_MAIL', 'Kundenanfrage beantworten'); define('CUSTOMERS_EMAIL_SEND_STATUS_EDIT', 'Antwort umwiderruflich senden'); define('CUSTOMERS_EMAIL_SEND_STATUS_SEND', 'Status aktualisieren'); define('CUSTOMERS_EMAIL_SEND_STATUS_SEND_OK', 'Gesendet an'); define('CUSTOMERS_EMAIL_STATUS_ON', 'Aktiv'); define('CUSTOMERS_EMAIL_STATUS_OFF', 'Gelesen'); define('CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER', 'E-Mail gesendet'); define('CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_OVER', 'E-Mail wurde bereits gesendet'); define('CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_CLOSE', 'Schliessen'); define('CUSTOMERS_EMAIL_STATUS_BUTTON_SHOW_EDIT', 'Details ansehen'); define('CUSTOMERS_EMAIL_STATUS_TEXT_DELETE_INTRO', 'Löschen'); define('CUSTOMERS_EMAIL_STATUS_TEXT_EDIT_INTRO', 'Bearbeiten'); define('CUSTOMERS_EMAIL_BUTTON_RETURN_TO_CUSTOMER', 'Auf E-Mail antworten'); define('CUSTOMERS_EMAIL_BUTTON_INDEX', 'Weiter zu Startseite'); define('CUSTOMERS_EMAIL_SENT_EMAIL_SUBJECT', 'Antwort auf Ihre Anfrage'); define('CUSTOMERS_EMAIL_SENT_EMAIL_TO_CUSTOMER_HEADING', 'Antwort auf Ihre Anfrage mit dem Betreff'); define('CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR', '<span class="small"><br>---------------------------<br></span>'); define('CUSTOMERS_EMAIL_TEXT_EMAIL_SIGNATURE_CR', '<br><span class="small"><a href="'. tep_href_link('../' . 'index.php') . '">' . STORE_NAME . '</a>' . '<br>' . STORE_ADDRESS . '<br>E-Mail: ' . STORE_OWNER_EMAIL_ADDRESS . '<br></span>'); ?> catalog/admin/customers_email.php
    <?php require('includes/application_top.php'); $action = (isset($_GET['action']) ? $_GET['action'] : ''); $status_array = array(array('id'=>'0', 'text'=>CUSTOMERS_EMAIL_STATUS_ON), array('id'=>'1', 'text'=>CUSTOMERS_EMAIL_STATUS_OFF), array('id'=>'2', 'text'=>CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER)); if (tep_not_null($action)) { switch ($action) { case 'insert': case 'save': if (isset($_GET['emID'])) $email_id = tep_db_prepare_input($_GET['emID']); $status = tep_db_prepare_input($_POST['status']); $adminenquiry = tep_db_prepare_input($_POST['adminenquiry']); $sql_data_array = array( 'status' => $status, 'adminenquiry' => $adminenquiry ); if ($action == 'insert') { $sql_data_array = array_merge($sql_data_array); tep_db_perform('contact_us', $sql_data_array); tep_db_query("update contact_us set status = '1' where email_id = '" . (int)$email_id . "'"); $email_id = tep_db_insert_id(); } elseif ($action == 'save') { $sql_data_array = $sql_data_array; tep_db_perform('contact_us', $sql_data_array, 'update', "email_id = '" . (int)$email_id . "'"); tep_db_query("update contact_us set status = '1' where email_id = '" . (int)$email_id . "'"); } if (USE_CACHE == 'true') { tep_reset_cache_block('email_labels'); } tep_redirect(tep_href_link('customers_email.php', (isset($_GET['page']) ? 'page=' . $_GET['page'] . '&' : '') . 'emID=' . $email_id)); break; case 'sendmail': if (isset($_GET['emID'])) $email_id = tep_db_prepare_input($_GET['emID']); tep_db_query("update contact_us set senddate = now() where email_id = '" . (int)$email_id . "'"); tep_db_query("update contact_us set status = '2' where email_id = '" . (int)$email_id . "'"); if (USE_CACHE == 'true') { tep_reset_cache_block('email_labels'); } tep_redirect(tep_href_link('customers_email.php', (isset($_GET['page']) ? 'page=' . $_GET['page'] . '&' : '') . 'emID=' . $email_id)); break; case 'deleteconfirm': $email_id = tep_db_prepare_input($_GET['emID']); tep_db_query("delete from contact_us where email_id = '" . (int)$email_id . "'"); $auto_increment_query = tep_db_query("select email_id from contact_us where email_id"); if (tep_db_num_rows($auto_increment_query) < '1'){ tep_db_query("ALTER TABLE contact_us AUTO_INCREMENT =1"); } if (USE_CACHE == 'true') { tep_reset_cache_block('email_labels'); } tep_redirect(tep_href_link('customers_email.php', 'page=' . $_GET['page'])); break; } } require('includes/template_top.php'); ?> <div class="w3-padding"> <h1 class="pageHeading"><?php echo CUSTOMERS_EMAIL_HEADING_TITLE; ?></h1> <div class="d-flex flex-column flex-sm-row mb-3"> <div class="flex-grow-1"> <table class="w3-table w3-border w3-bordered w3-hoverable"> <thead class="w3-hover-none"> <tr class="w3-theme"> <th scope="col"><?php echo CUSTOMERS_EMAIL_CUSTOMER_NAME; ?></th> <th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_MAIL_ID; ?></th> <th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_ID; ?></th> <th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_EMAIL; ?></th> <th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_DATE; ?></th> <th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_STATUS; ?></th> <th scope="col" class="w3-center"><?php echo ''; ?>&nbsp;</th> </tr> </thead> <tbody> <?php $email_query_raw = "select email_id, customers_id, name, email, phone, subject, enquiry, date, status, adminenquiry, senddate from contact_us order by email_id"; $email_split = new splitPageResults($_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, $email_query_raw, $email_query_numrows); $email_query = tep_db_query($email_query_raw); while ($email = tep_db_fetch_array($email_query)) { $email_id = $email['email_id']; if ($email['customers_id'] > '0'){$cus_id = $email['customers_id'];}else{$cus_id = CUSTOMERS_EMAIL_CUSTOMER_GUEST;} if ((!isset($_GET['emID']) || (isset($_GET['emID']) && ($_GET['emID'] == $email['email_id']))) && !isset($emInfo) && (substr($action, 0, 3) != 'new')) { $emInfo = new objectInfo($email); } if (isset($emInfo) && is_object($emInfo) && ($email['email_id'] == $emInfo->email_id)) { echo ' <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $email['email_id'] . '&action=edit') . '\'">' . "\n"; } else { echo ' <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $email['email_id']) . '\'">' . "\n"; } ?> <td class="dataTableContent">&nbsp;<?php echo $email['name']; ?></td> <td class="dataTableContent w3-center">&nbsp;<?php echo $email['email_id']; ?></td> <td class="dataTableContent w3-center">&nbsp;<?php echo $cus_id; ?></td> <td class="dataTableContent w3-center"><?php echo $email['email']; ?></td> <td class="dataTableContent w3-center">&nbsp;<?php echo tep_date_short($email['date']);?></td> <td class="dataTableContent w3-center"><?php if ($email['status'] == '0'){ echo CUSTOMERS_EMAIL_STATUS_ON;} if ($email['status'] == '1'){ echo CUSTOMERS_EMAIL_STATUS_OFF;} if ($email['status'] == '2'){ echo CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER;}?></td> <td class="dataTableContent w3-right-align"><?php if (isset($emInfo) && is_object($emInfo) && ($email['email_id'] == $emInfo->email_id)) { echo '<span class="fas fa-angle-right" style="font-size:20px;"></span>'; } else { echo '<a href="' . tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id) . '"><span title="' . IMAGE_ICON_INFO . '" class="fas fa-info-circle" style="font-size:20px;"></span></a>'; } ?>&nbsp;</td> </tr> <?php } ?> </tbody> </table> <div class="d-flex flex-column flex-sm-row justify-content-sm-between mb-3"> <div class="w3-small"><?php echo $email_split->display_count($email_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $_GET['page'], CUSTOMERS_EMAIL_TEXT_DISPLAY_NUMBER_OF_STOCKLABEL); ?></div> <div class="w3-small"><?php echo $email_split->display_links($email_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $_GET['page']); ?></div> </div> <div class="d-flex flex-column flex-sm-row justify-content-sm-end mb-3"> </div> </div> <?php $heading = ''; $contents = ''; switch ($action) { case 'edit': $heading = $emInfo->name . '&nbsp;' . $emInfo->email; $contents = tep_draw_form('email_labels', 'customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=save', 'post', 'enctype="multipart/form-data"'); if ($emInfo->status == '2'){ $contents .= '<tr><td><div class="w3-border w3-border-red w3-black w3-padding mb-3">' . CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_OVER . '</div>'; }else{ if ($emInfo->status == '0'){ $contents .= '<tr><td><div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . '<br />' . tep_draw_pull_down_menu('status', $status_array, $emInfo->status, 'class="w3-select w3-border w3-teal"') . '</div>'; }else{ $contents .= '<tr><td><div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . '<br />' . tep_draw_pull_down_menu('status', $status_array, $emInfo->status, 'class="w3-select w3-border w3-red"') . '</div>'; } } $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . CUSTOMERS_EMAIL_CUSTOMER_SUBJECT . ': ' . $emInfo->subject . '<hr class="hr-gr mt-2 mb-2">' . $emInfo->enquiry . '</div></div>'; if ($emInfo->status == '2'){ $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ADMIN_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . $emInfo->adminenquiry . '</div></div>'; }else{ $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_SEND_MAIL . '<br>' . tep_draw_textarea_field('adminenquiry', 'soft', '60', '5', $emInfo->adminenquiry, 'class="w3-input w3-border"') . '</div></div>'; } if ($emInfo->status == '2'){ $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3">' . tep_draw_w3_button(CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_CLOSE, 'fa fa-lock', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id), null, null, 'class="w3-button w3-large w3-block w3-black"') . '</div>'; }else{ if ($emInfo->status == '0'){ $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3 mt-3">' . tep_draw_w3_button(IMAGE_SAVE, 'fa fa-save', null, 'primary', null, 'class="w3-button w3-large w3-block w3-teal"') . '</div>'; }else{ $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3 mt-3">' . tep_draw_w3_button(IMAGE_SAVE, 'fa fa-save', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red"') . '</div>'; } $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3">' . tep_draw_w3_button(IMAGE_CANCEL, 'fa fa-times', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id), null, null, 'class="w3-button w3-large w3-block w3-theme-light"') . '</div>'; } $contents .= '</td></tr>'; $contents .= '</form>'; break; case 'send': $heading = CUSTOMERS_EMAIL_SEND_STATUS_SEND_OK . '&nbsp;' . $emInfo->email; $contents = '<tr><td>' . tep_draw_form('email_labels', 'customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=sendmail', 'post', 'enctype="multipart/form-data"'); $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . CUSTOMERS_EMAIL_CUSTOMER_SUBJECT . ': ' . $emInfo->subject . '<hr class="hr-gr mt-2 mb-2">' . $emInfo->enquiry . '</div></div>'; $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ADMIN_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . $emInfo->adminenquiry . '</div></div>'; if (!empty($emInfo->adminenquiry)){ tep_mail($emInfo->name, $emInfo->email, CUSTOMERS_EMAIL_SENT_EMAIL_SUBJECT, CUSTOMERS_EMAIL_SENT_EMAIL_TO_CUSTOMER_HEADING . ': ' . $emInfo->subject . CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR . $emInfo->adminenquiry . '<br>' . CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR . CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY . ':<br>' . CUSTOMERS_EMAIL_CUSTOMER_SUBJECT . ': ' . $emInfo->subject . '<br>' . $emInfo->enquiry . CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR . CUSTOMERS_EMAIL_TEXT_EMAIL_SIGNATURE_CR, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } $contents .= '<div class="mb-3">' . tep_draw_w3_button(CUSTOMERS_EMAIL_SEND_STATUS_SEND, 'fa fa-sync-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-teal"') . '</div>'; $contents .= '</td></tr>'; $contents .= '</form>'; break; case 'delete': $heading .= CUSTOMERS_EMAIL_CUSTOMER_NAME . '&nbsp;' . $emInfo->name . '&nbsp;' . CUSTOMERS_EMAIL_STATUS_TEXT_DELETE_INTRO; $contents = tep_draw_form('email_labels', 'customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=deleteconfirm'); $contents .= '<tr><td>' . CUSTOMERS_EMAIL_STATUS_TEXT_DELETE_INTRO; $contents .= '<div class="w3-border w3-border-teal w3-pale-green w3-padding-small mb-3"><strong>' . $emInfo->name . '</strong></div>'; $contents .= '<div class="mb-3">' . tep_draw_w3_button(IMAGE_DELETE, 'fa fa-trash-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red"') . '</div>'; $contents .= '<div class="mb-3">' . tep_draw_w3_button(IMAGE_CANCEL, 'fa fa-times', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $_GET['emID']), null, null, 'class="w3-button w3-large w3-block w3-theme-light"') . '</div>'; $contents .= '</td></tr>'; $contents .= '</form>'; break; default: if (isset($emInfo) && is_object($emInfo)) { $heading = $emInfo->name; if ($emInfo->status == '2'){ $contents .= '<tr><td>' . tep_draw_w3_button(CUSTOMERS_EMAIL_STATUS_BUTTON_SHOW_EDIT, 'fa fa-envelope-square', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=edit'), null, null, 'class="w3-button w3-large w3-block w3-black mb-3"'); }else{ $contents .= '<tr><td>' . tep_draw_w3_button(IMAGE_EDIT, 'fa fa-cog', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=edit'), null, null, 'class="w3-button w3-large w3-block w3-teal mb-3"'); } if ((!empty($emInfo->adminenquiry) && ($emInfo->status != '2'))){ $contents .= '<tr><td>' . tep_draw_w3_button(CUSTOMERS_EMAIL_SEND_STATUS_EDIT, 'fab fa-telegram-plane', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=send'), null, null, 'class="w3-button w3-large w3-block w3-black mb-3"'); } $contents .= tep_draw_w3_button(IMAGE_DELETE, 'fa fa-trash-alt', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=delete'), null, null, 'class="w3-button w3-large w3-block w3-red mb-3"'); if ($emInfo->status == '0'){ $statusname = '<div class="w3-leftbar w3-border-top w3-border-green"><div class="w3-padding-small">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . ' ' . CUSTOMERS_EMAIL_STATUS_ON . '</div></div>'; }if ($emInfo->status == '1'){ $statusname = '<div class="w3-leftbar w3-border-top w3-border-red"><div class="w3-padding-small">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . ' ' . CUSTOMERS_EMAIL_STATUS_OFF . '</div></div>'; }if ($emInfo->status == '2'){ $statusname = '<div class="w3-leftbar w3-border-top w3-border-black"><div class="w3-padding-small">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . ' ' . CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER . '</div></div>'; } $contents .= '<div class="clearfix"></div>' . $statusname; $contents .= '</td></tr>'; } break; } if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) { echo '<div class="w3-quarter ms-sm-2">' . "\n" . ' <table class="w3-table w3-border w3-border-black w3-light-gray">' . ' <thead>' . ' <tr class="w3-theme">' . ' <th scope="col">'. $heading . '</th>' . ' </tr>' . ' </thead>' . ' <tbody>' . $contents . '</tbody>' . ' </table>' . '</div>' . "\n"; } ?> </div> </div> <?php require('includes/template_bottom.php'); require('includes/application_bottom.php'); ?> FINISH
     
    I hope it will be useful to you. Sorry is only in german.
  6. Thanks
    Hotclutch got a reaction from ottoosc in oscommerce v4 - demo preview website   
    https://osc4.tllab.co.uk/
  7. Thanks
    Hotclutch got a reaction from ottoosc in oscommerce v4 - demo preview website   
    https://osc4.tllab.co.uk/
  8. Like
    Hotclutch got a reaction from osCommerce-Official in osCommerce v4 Beta 2 - download   
    You can PM oscommerce-official to request for it, or I am sure he will PM you when he sees this post.
  9. Like
    Hotclutch reacted to evalexi in When to expect osCommerce v4 release   
    Your team is in our thoughts and prayers.
  10. Thanks
    Hotclutch reacted to osCommerce-Official in When to expect osCommerce v4 release   
    Dear members of the Forums,
    We would like to assure you that osCommerce v4 WILL be released shortly.
    It was supposed to go live in the middle of March.
    Some 80% of our development team are located in Ukraine. War in Ukraine, started unlawfully by russia on the 24th of February 2022, made us delay our plans. We are looking to go live end of April / early May now, and will keep everyone informed of our progress. 
    osCommerce v4 - proudly made in Ukraine!
    Kind regards,
    the osCommerce team
  11. Thanks
    Hotclutch got a reaction from petsk in DB1064 Error   
    Its V2 and the thread should be moved there.
  12. Thanks
    Hotclutch reacted to patrocine in Banner advertising marketing shop-to-shop   
    The Shop-to-shop banner can be easily adapted to all versions and is a very powerful advertising system that consumes a lot of data transfer.
    I have version 2.3.1 PHP 5.1 I have an old version because I did the program many years ago and I invoice in a physical store with it and I sell online. It has an integrated system that is very easy to use, osc23 is super fast and the current version does not It helps me run my business.
    https://apps.oscommerce.com/Bs315&enterprise-3-0-oscommerce
    Enterprise 3.0 is a very advanced system and very easy to use, I cannot change.
     
  13. Like
    Hotclutch got a reaction from osCommerce-Official in How to configure currencies in V4 osCommerce   
    If you use a currency other than Pound/Dollar/Euro then you will need to go to
    Admin -> Settings -> Localization -> Curruncies.
    This interface is simple and self explanatory. Its also very similar to V2 osCommerce. You should not have a problem adding/deleting currencies here, or setting them as Active and/or as default.
    Next you need to go to
    Admin -> Sales channels
    Click on the channel that you're using / configuring the currencies for. Click Edit.
    Scroll down to Languages & Currencies. Click Change. Make the necessary changes and click Apply.
    Lastly click Save at the bottom of the Sales channel page.
  14. Like
    Hotclutch got a reaction from osCommerce-Official in Installation osCommerce v4 Beta 2 - No Admin Page   
    If you PM me all the details to do an install,  I will take a look from my side.
  15. Thanks
    Hotclutch got a reaction from driven22 in Cookie_usage +disable my page   
    Its normal for bots to be redirected to the cookie_usage.php, because they are not allowed sessions (set in Admin). If you do not want these entries filling up your logs and maybe want to save on your crawl budget then you can block bots from crawling these pages, in robots.txt
    I don't follow what you mean by this. cookie_usage is not really a page that needs to be in the index. If you mean can it be blocked and still appear in the index, then probably yes, if its already there in the index.
  16. Thanks
    Hotclutch reacted to driven22 in Problem with round weight   
    For half a year I was looking for a solution, so let me give the solution after 24 hours of tests..
    Problem was as I had suspected in the interpretation "," and "." shop - db. Despite writing in lanugaes / english @setlocale (LC_TIME .... or LC_ALL did not work. But after typing in aplication_top.php (also in admin):
    setlocale(LC_ALL, "pl_PL");
    setlocale(LC_NUMERIC, 'C');
    Weight works fine in categories, also price, order_total, special (by price and%), export csv displays original values. I have been looking for a solution for over half a year on the forum, trying in the store. There was info everywhere that setlocale only fits in languages. Something was probably blocking setloc but hence the problem (but I can see, not only for me).
    A simple solution, and I spent so much time on it .. ahh
     
     
     
  17. Like
    Hotclutch got a reaction from kep@ in PHP Fatal error: Cannot declare class currencies_mod, because the name is already in use in   
    I am out of ideas then, I am not familiar with this addon / module.
  18. Like
    Hotclutch got a reaction from kep@ in Support thread for JcM Product info date added+Info V1.1 CE   
    That could be due to the fact that you don't have a database.php with a definition for TABLE_PRODUCTS.
  19. Like
    Hotclutch got a reaction from kep@ in Support thread for JcM Product info date added+Info V1.1 CE   
    Assuming the definition is in there, you then to check application_top.php to see if the project is including database.php
    You don't mention what version of osCommerce you're using but at some point the CE removed that from application_top.php
  20. Like
    Hotclutch got a reaction from kep@ in Support thread for JcM Product info date added+Info V1.1 CE   
    All the CEs are labelled like that. You need to check application_top.php, or alternative to that you can edit the code, replace TABLE_PRODUCTS with products. You will have to do the same for the other definitions.
  21. Like
    Hotclutch got a reaction from osCommerce-Official in osCommerce v4 Beta 2   
    You can place it in a folder called shop / anything else, but on the first step where it prompts for a location you should leave it as /
     
  22. Like
    Hotclutch got a reaction from osCommerce-Official in osCommerce v4 Beta 2   
    You can place it in a folder called shop / anything else, but on the first step where it prompts for a location you should leave it as /
     
  23. Like
    Hotclutch got a reaction from osCommerce-Official in Language Definitions   
    Language Definitions are stored in the database and they can be edited from the ACP under Translations.

  24. Thanks
    Hotclutch reacted to osCommerce-Official in Breadcrumbs   
    It is possible to add the Breadcrumb widget to the corresponding pages where you'd like to see them. Please just choose the appropriate block on the page and press "Add Widget" and choose breadcrumb from the list.
  25. Like
    Hotclutch reacted to osCommerce-Official in Multiple Design Templates and built in Designer   
    Ashley,
    Thanks for your feedback! 
    Theme editor allows building new themes / templates using the set of widgets. There are "general" widgets that can be added to any page of the theme, and there are page-specific widgets (like widgets for the product page, shopping cart page, etc). It is indeed possible to build a new theme "from scratch" using the widgets. 
    Alternatively it is possible to copy an existing theme, and edit it to create new one. 
    In either way, it is possible to completely control the look and feel (or the "style") of each widget using the build in style editor or by overwriting the CSS directly. 
    osCommerce will be supplied with more themes than were included in B1 and B2. It will be confirmed for the release (due in approximately 3 weeks). 
×