Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by ecartz

  1. ecartz

    Q. tep_

    The Exchange Project That was the name before osCommerce in versions 1.0, 2.0, and 2.1. A shop being a place where you can exchange money for goods. I would find Open Source Commerce to be a more useful name without a conflict with a commonly used Microsoft product for managing emails and group interactions. OSCOM stands for Open Source Commerce Online Merchant. CE stands for Community Edition. BS stands for BootStrap. In general, the current CE Phoenix is a successor to the previous BS versions.
  2. ecartz

    Error with manufacturers.php

    This isn't something a host can help you do. It's a coding thing. You'd hire a developer to troubleshoot. If you want to continue to try yourself: $manufacturers = $cache->get_cache('manufacturers', 'ARRAY'); $total_rows = count($manufacturers); if ($total_rows < 1) { Consider commenting out these lines and the closing } and see if it works. Or change them to $manufacturers = $cache->get_cache('manufacturers', 'ARRAY'); $total_rows = count($manufacturers); if (is_array($manufacturers) && $total_rows < 1) { You could also add var_dump($manufacturers); and see what it says. That would go before the if and after the closing } for the if. The basic problem though is that that version is so old that there is no supported PHP for it any more. The simplest solution would be to turn off the box. It doesn't work this way, so not a big deal to turn it off.
  3. It's hidden in the language file: https://github.com/gburton/CE-Phoenix/blob/master/includes/languages/english/modules/content/product_info/cm_pi_price.php Note that that seems likely to change, as overridable templates require HTML to be in the templates rather than the language files. But it is currently in the language file.
  4. ecartz

    Bootstrap Version?

    Phoenix (the Community Edition on the Downloads page) uses Bootstrap.
  5. ecartz

    E-commerce for taylormade furniture

    There's a Phoenix compatible App: https://apps.oscommerce.com/VJEMI&amp;wholesale-sppc-lite-phoenix&amp;v=cephoenix10 This would require custom development. There's a commercial inquiries forum here where you can ask for bids. There were a couple assembly modules attempted but I don't know that any were really mature. And I don't believe that they have been updated for Phoenix. So this would also likely require custom development. Phoenix has both of these.
  6. There is a commercial inquiries forum for posting for developer help.
  7. .htaccess maybe? That seems like a DirectoryIndex, which also could be set directly in httpd.conf or similar. If all else fails, discuss with your host. Note that if you write out /index.php at the end, it goes to the right place. Which is exactly the DirectoryIndex behavior. https://httpd.apache.org/docs/2.4/mod/mod_dir.html You probably want DirectoryIndex index.php
  8. I looked into this more. The problem it creates is that it adds a dependency on the mbstring extension which is not always installed. There also might be encoding problems if the default encoding is different from the encoding of the string. Perhaps if ( (defined('MODULE_HEADER_TAGS_PRODUCT_META_KEYWORDS_STATUS')) && (MODULE_HEADER_TAGS_PRODUCT_META_KEYWORDS_STATUS != 'Meta') ) { $where_str .= "pd.products_seo_keywords LIKE '%" . tep_db_input($keyword) . "%' OR "; } $where_str .= "pd.products_name LIKE '%" . tep_db_input($keyword) . "%' OR p.products_model LIKE '%" . tep_db_input($keyword) . "%' OR m.manufacturers_name LIKE '%" . tep_db_input($keyword) . "%'"; if (isset($_GET['search_in_description']) && ($_GET['search_in_description'] == '1')) $where_str .= " OR pd.products_description LIKE '%" . tep_db_input($keyword) . "%'"; to if ( (defined('MODULE_HEADER_TAGS_PRODUCT_META_KEYWORDS_STATUS')) && (MODULE_HEADER_TAGS_PRODUCT_META_KEYWORDS_STATUS != 'Meta') ) { $where_str .= "pd.products_seo_keywords LIKE LOWER('%" . tep_db_input($keyword) . "%') OR "; } $where_str .= "pd.products_name LIKE LOWER('%" . tep_db_input($keyword) . "%') OR p.products_model LIKE LOWER('%" . tep_db_input($keyword) . "%') OR m.manufacturers_name LIKE LOWER('%" . tep_db_input($keyword) . "%')"; if (isset($_GET['search_in_description']) && ($_GET['search_in_description'] == '1')) $where_str .= " OR pd.products_description LIKE LOWER('%" . tep_db_input($keyword) . "%')"; in advanced_search_result.php and remove the strtolower from tep_parse_search_string. $search_str = trim($search_str);
  9. Maybe try changing $search_str = trim(strtolower($search_str)); to $search_str = trim(mb_strtolower($search_str)); If that fixes it, we could consider adding that to core. But I first want to know if it fixes the problem without creating other problems. If it doesn't go to core, an alternative would be to set the locale properly. From https://www.php.net/manual/en/function.strtolower.php
  10. ecartz

    SMTP with authentication on Phoenix

    I'm not sure why you would have needed to modify general.php with that class. Presumably application_top.php was to load the class but Phoenix should do that automatically. <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2020 osCommerce Released under the GNU General Public License email is a class to assist with PHPmailer sendmail, SMTP and gmail compatibility */ require_once DIR_FS_CATALOG . 'includes/apps/PHPMailer/PHPMailerAutoload.php'; class email { private $lf, $mailer; private $debug = 0; private $debug_output = 'error_log'; const LINEFEEDS = ["\r\n", "\n", "\r"]; public function __construct($headers = '') { $this->mailer = new PHPMailer(); $this->mailer->XMailer = 'osCommerce ' . tep_get_version(); $this->mailer->SMTPDebug = $this->debug; $this->mailer->Debugoutput = $this->debug_output; $this->mailer->CharSet = CHARSET; $this->mailer->WordWrap = 998; if (EMAIL_TRANSPORT == 'smtp' || EMAIL_TRANSPORT == 'gmail') { $this->mailer->IsSMTP(); $this->mailer->Port = EMAIL_SMTP_PORT; if (EMAIL_SMTP_SECURE !== 'no') { $this->mailer->SMTPSecure = EMAIL_SMTP_SECURE; } $this->mailer->Host = EMAIL_SMTP_HOSTS; $this->mailer->SMTPAuth = EMAIL_SMTP_AUTHENTICATION; $this->mailer->Username = EMAIL_SMTP_USER; $this->mailer->Password = EMAIL_SMTP_PASSWORD; } else { $this->mailer->isSendmail(); } if (EMAIL_LINEFEED == 'CRLF') { $this->lf = "\r\n"; } else { $this->lf = "\n"; } } public function add_text($text = '') { $this->mailer->IsHTML(false); $this->mailer->Body = str_replace(static::LINEFEEDS, $this->lf, $text); } public function add_html($html, $text = NULL, $images_dir = NULL) { $this->mailer->IsHTML(true); $this->mailer->Body = str_replace(static::LINEFEEDS, '<br />', $html); $this->mailer->AltBody = str_replace(static::LINEFEEDS, $this->lf, $text); if (isset($images_dir)) { $this->mailer->Body = $this->mailer->msgHTML($this->mailer->Body, $images_dir); } } public function add_message($email_text) { // Build the text version $text = strip_tags($email_text); if (EMAIL_USE_HTML == 'true') { $this->add_html($email_text, $text); } else { $this->add_text($text); } } function add_attachment($path, $name = '', $encoding = 'base64', $type = '', $disposition = 'attachment') { $this->mailer->AddAttachment($path, $name, $encoding, $type, $disposition); } public function build_message() { // do nothing; needed for compatibility } public function send($to_name, $to_addr, $from_name, $from_addr, $subject = '') { // No need to check for "\r\n" separately as will match the other two foreach (["\n", "\r"] as $line_ending) { foreach ([$to_name, $to_addr, $subject, $from_name, $from_addr] as $header_value) { if (false !== strstr($header_value, $line_ending)) { return false; } } } $this->mailer->From = $from_addr; $this->mailer->FromName = $from_name; $this->mailer->AddAddress($to_addr, $to_name); if (defined('EMAIL_FROM')) { $this->mailer->From = EMAIL_FROM; $this->mailer->FromName = STORE_NAME; $this->mailer->AddReplyTo($from_addr, $from_name); } else { $this->mailer->From = $from_addr; $this->mailer->FromName = $from_name; } $this->mailer->Subject = $subject; $result = $this->mailer->Send(); $this->mailer->clearAddresses(); $this->mailer->clearAttachments(); return $result; } } Save this email.php file in a directory named includes/system/override (which you will probably have to create) and see if it starts working. Note that you may have to do some configuration somewhere. And of course you need to upload the PHPMailer files. I don't think that ext is the right place. I'd put them in includes/apps/ or similar. If you change that, change the require line. I replaced the EMAIL_SMTP_REPLYTO with the Phoenix equivalent along with other changes.
  11. ecartz

    Buy now button

    It doesn't look like there's a good way to do it short of going to includes/modules/product_listing.php and removing it. if ($has_attributes == 0) $prod_list_contents .= tep_draw_button(IS_PRODUCT_BUTTON_BUY, '', tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . (int)$listing['products_id']), NULL, array('params' => 'data-has-attributes="' . $has_attributes . '" data-in-stock="' . (int)$listing['in_stock'] . '" data-product-id="' . (int)$listing['products_id'] . '"'), 'btn-light btn-product-listing btn-buy') . PHP_EOL; I suppose that you could add product attributes to every product.
  12. ecartz

    [Contribution] Ship In Cart

    It looks like it needs to have the $customer object created. $customer = new customer($customer_id); You may have to find a way to make it work with a fake customer ID when the customer is not logged in. Possibly would require shipto and billto to be stored in the session (as arrays of information).
  13. ecartz

    SMTP with authentication on Phoenix

    You might post what code used to need to be changed. Because I don't think that things have changed that significantly. You may just need to have it rewritten. Or you may need to have someone write an adapter for the previous version of the code. And you might also want to be careful with your terms. Reading your post, it seems that what you actually want is SMTP Authentication but you keep talking about SMTP. That's two different things. As far as I know, SMTP works fine now if you have your server configured for it. It's just that most people don't go through the effort to configure their servers to work with basic SMTP. So you want a workaround that uses another server for the SMTP. But to do that, you need the authentication. What you want is not properly described as SMTP but as authenticated SMTP or remote SMTP. Anyway, my point is that if there are instructions that you don't know how to follow, you could get more help if you posted them. As is, if I wanted to try to help, I'd have to go download the App. And frankly, I'm too lazy to do that.
  14. Or just duplicate the create_account page. The new, not core, file could have completely arbitrary logic.
  15. ecartz

    error 500 Admin HTTP Authentication

    You want the username/password that you set in your host server panel to be the same as the username/password set in the store admin. Because when you authenticate through the host method, it will try to apply the same username/password to the store admin. If they are set the same in both places, it will log you in. If not, you have to log in twice. Once with each credentials. Then you are on the second part of the advice: "contact your host to do it for you" since they won't let you do it yourself.
  16. ecartz

    error 500 Admin HTTP Authentication

    Yes. It's safer for the files not to be writable. But then you have to manually keep them in synch. Try 444.
  17. ecartz

    error 500 Admin HTTP Authentication

    It wants you to make the admin/.htaccess and admin/.htpasswd_oscommerce files writable. If you don't do that, don't click the checkbox.
  18. ecartz

    Customize colors and shipping on the site

    The error is saying that you can't do const FOO = array( ); in older versions of PHP. I strongly recommend against trying to edit Phoenix to work prior to PHP 7. It's not going to be just one or even a hundred problems. It's a constant battle to keep pace. Because we will keep making changes using the new PHP functionality. If PHP 5.5 or older is a real requirement, you're better off with some version of 2.3.4. But really, the better solution is almost certainly just to use PHP 7. Then you can use the code as written.
  19. ecartz

    Customize colors and shipping on the site

    I'm not specifically familiar with that error, but my first guess would be that you are using an older version of PHP. Phoenix is PHP 7+. Note that you seem to be looking at the wrong file. The error is talking about the language file but you are posting code from the code file.
  20. ecartz

    Lost styling in Catalog

    Maybe. But are the directories? Try this link: https://www.folkmusic.net/catalog/ext/bootstrap/css/bootstrap.min.css
  21. ecartz

    Lost styling in Catalog

    Looking in your HTML, one problem is <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> The // should have an https: in front. There's also something wrong with how your Javascript is loading. Did you perhaps delete or otherwise modify permissions of the ext directory? It either needs to be readable or you need to move the Javascript out of it.
  22. The point of the way that the wishlist module does things is that both modules require the same parameters. You just want a different behavior depending on which button is clicked. Add it as a footer script. Either with a separate header tag module or simply by adding the appropriate block directly. An example of adding modal HTML as a footer script directly: https://github.com/gburton/CE-Phoenix/blob/65ba42f1d45be6b2e34b5af549812057dc4bb102/includes/modules/content/product_info/templates/tpl_cm_pi_gallery.php#L80
  23. ecartz

    Remove Contact Us

    That was specifically for Phoenix ( but any version). In older versions, it might appear somewhere else. You might be better off posting a new thread along with the version of osCommerce that you have.
  24. It looks like an App, so probably never there. There are only five configuration entries in the current base version, and that looks familiar to me. I.e. I think it has been that way for a while. Eight years seems quite possible.
  25. A previously working email system that stops working is usually the result of a change at the hosting level. I.e. ask your host what changed since (last time you received an email). One common problem is using a sending email address with a different domain than your store. Many hosts restrict that. Before doing that, you may want to find out if it is sending emails to customers or through Contact Us. And you might try Harald's test script: