Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 05/23/2020 in all areas

  1. 3 points
    https://apps.oscommerce.com/xvqqc&easy-admin-group-osc-2-3-xx. but I have made a new one that only has one file modificatiiion. just to add a hook I am testing it an will upload it in a couple of days
  2. 2 points
    Last call for the remaining 67 Forum Members who have requested access to the Phoenix Club, but have no posts and a throwaway email address... are you real people ? I'll be nuking the list in a day or two... Note that this applies only to those waiting to get into the Club. If you are in the Club already, all is well...
  3. 2 points
    I uploaded the new version in its own add-on since it would be easer to find. I will add a link later
  4. 2 points
    Uploaded PWA 4.2.0 Purchase without account 4.2.0 Thanks a lot to Matt @ecartz for help and guiding with the update to new core features and functionality Thanks a lot to Ralph @rupruprup for beta testing Changes versus 4.2.0. beta 4: - simplified/optimized delete guest query in admin/customers.php - moved Delete Guest Accounts button in admin/customers.php into to the right side table - count only number of guest accounts which will be deleted (older than 2 days) - show Delete Guest Accounts button only if there are gust accounts which can be deleted. - removed unnecessary guest flag in address_book table Changes Version. 4.2.0 - updated for Phoenix 1.0.6.0 - renamed account_pwa.php to create_account_pwa.php - updated create_account.pwa.php to use customer data modules - flexible optional use of customer data modules in create_account.pwa.php - added delete guest accounts button and guest count in admin/customers.php - removed unnecessary guest flag in address_book table - all changes are hooked now, zero core modifications - fixed some minor errors from previous versions
  5. 1 point
    v1.0.7.0 is tagged https://www.oscommerce.com/Us&News=162
  6. 1 point
    Nothing to do with this App (PWA), but this suggests that the class name and file of manualCart do not match or are not in includes/classes or includes/modules. I would expect a class name of ManualCart and a file name of manual_cart.php -- it's possible that just changing those to match expectations would work. You might want to post in that App's support thread for more help.
  7. 1 point
    Also, this usually means that there is an error. This error might be logged somewhere. And knowing what the error was would be helpful. You'd have to put the files in navbar not navbar_modules.
  8. 1 point
    ecartz

    Free Shipping Per Product for v2.3

    Create a checkout_shipping, injectRedirects hook. public function listen_injectRedirects() { $GLOBALS['products_ship_free'] = false; if (!GLOBALS['free_shipping']) { define('TEXT_CHOOSE_SHIPPING_METHOD', TEXT_CHOOSE_SHIPPING_METHOD_NO_PFS); define('TEXT_ENTER_SHIPPING_INFORMATION', TEXT_ENTER_SHIPPING_INFORMATION_NO_PFS); return; } foreach ($_SESSION['cart']->get_products() as $product) { if (1 == $product['ship_free']) { $ship_free_count += $product['quantity']; } } if (($GLOBALS['total_weight'] == 0) && ($GLOBALS['total_count'] == 0)) { $products_ship_free = true; $GLOBALS['free_shipping'] = true; if (!defined('FREE_SHIPPING_TITLE')) { include 'includes/languages/' . $_SESSION['language'] . '/modules/order_total/ot_shipping.php'; } } define('TEXT_CHOOSE_SHIPPING_METHOD', ($products_ship_free ? sprintf(PRODUCTS_SHIP_FREE_COUNT, $ship_free_count); : TEXT_CHOOSE_SHIPPING_METHOD_NO_PFS)); define('TEXT_ENTER_SHIPPING_INFORMATION', ((!$products_ship_free && ($ship_free_count > 0)) ? sprintf(PRODUCTS_SHIP_FREE_COUNT_ONLY, $ship_free_count) : TEXT_ENTER_SHIPPING_INFORMATION_NO_PFS)); } or similar. In the language files for that page, for each language, change TEXT_CHOOSE_SHIPPING_METHOD to TEXT_CHOOSE_SHIPPING_METHOD_NO_PFS and TEXT_ENTER_SHIPPING_INFORMATION to TEXT_ENTER_SHIPPING_INFORMATION_NO_PFS. In your overridden shopping_cart class, also change function count_contents() { $total_items = 0; if (is_array($this->contents)) { foreach (array_keys($this->contents) as $products_id) { $total_items += $this->get_quantity($products_id); } } return $total_items; } to function count_contents() { $total_items = 0; if (is_array($this->contents)) { foreach ($this->contents as $products_id => $product) { if (1 != $product['ship_free']) { $total_items += $this->get_quantity($products_id); } } } return $total_items; } and change in the calculate function $this->weight += ($qty * $products_weight); to if (1 != $this->contents[$products_id]['ship_free']) { $this->weight += ($qty * $products_weight); } That should cover the checkout_shipping instructions Lambros posted. There may be other changes necessary to other files that are not included here. For example, there are other changes to the shopping_cart class posted in the instructions. And the catalog/shopping_cart.php change would now be made in includes/modules/content/shopping_cart/templates/tpl_cm_sc_product_listing.php Replace echo '<th><a href="' . tep_href_link('product_info.php', 'products_id=' . $product['id']) . '">' . $product['name'] . '</a>'; foreach (($product['attributes'] ?? []) as $option => $value) { with echo '<th><a href="' . tep_href_link('product_info.php', 'products_id=' . $product['id']) . '">' . $product['name'] . '</a>'; if (1 == $product['ship_free']) { echo '<br /><span class="smallText">(' . TEXT_PRODUCT_SHIPS_FREE . ')</span>'; } foreach (($product['attributes'] ?? []) as $option => $value) { That's three lines added between two existing lines. Hopefully that will be enough to get you going. @Omar_one
  9. 1 point
    Jack_mcs

    Bandwidth Limit Exceeded

    Yes. It is a very common problem. And once they find your site, they won't go away and it usually gets worse. Bandwidth is used by any connection to the hosting account. That includes search engines, of which there are quite a few that don't help most sites. I suggest you install View Counter. It gives you a much better idea of what is going on with your sites traffic, compared to Who's Online. It allows you to block the offending IP's and block countries, to name a few things it does.
  10. 1 point
    Fiber

    Dutch translation osC Phoenix 1.0.6.2

    https://apps.oscommerce.com/NShzV&vertaling-nederlands&c=languages
  11. 1 point
    burt

    Bandwidth Limit Exceeded

    Use whois to determine where the IP is coming from - if that place is not important, just ban the whole IP range using htaccess.
  12. 1 point
    Uploaded Versión 1.0.6.2. for OSCOM CE Phoenix 1.0.6.2. Español para OsC CE
  13. 1 point
    Français : Le Pack complet pour la langue français pour CE PHOENIX 1.0.6.0 est maintenant disponible à https://apps.oscommerce.com/oqfJg&ce-phoenix-1-0-5-0-french-language-pack Vous avez les fichiers langue dans le catalogue et admin aussi bien que le répertoire "install", sql et exemples de produits traduits. Il suffit de télécharger CE PHOENIX 1.0.6.0 à https://www.oscommerce.com/Products dans "Community Edition" et remplacer les fichiers de langue "English" par les fichiers français y compris le répertoire "install" pour une base de données entièrement en français. English: The complete French language pack for CE PHOENIX 1.0.6.0 is now available at https://apps.oscommerce.com/oqfJg&ce-phoenix-1-0-5-0-french-language-pack You have all the language files in admin and the catalog as well as the install directory, sql and product examples translated. Just download CE PHOENIX 1.0.6.0 from https://www.oscommerce.com/Products under "Community Edition" and replace the English language files with the french including the install directory for a database all in french.
  14. 1 point
    Fredi

    Easy Admin Group - Login Issues

    If you need help with testing, I will do it.
  15. 1 point
    Uploaded Versión 1.0.6.1. for OSCOM CE Phoenix 1.0.6.1. Español para OsC CE
  16. 1 point
    thank you @raiwa I installed it and it works as it should .... the table layout is also fixed, perhaps it had to do with the not correct working delete button ?
  17. 1 point
    Peper

    Subcategories not showing

    Fixed So after a while knowing my admin is showing no products in that category i went to check the database itself in phpmyadmin. Check first the main category number in admin that is causing the problem, mine was 209 example Check phpmyadmin table products_to_categories and sort categories_id Check then if there is a product_id assigned to category_id 209 My case there was 1 product with id 2192 - maybe corrupted sometime or so, 2192 product_id was also not found in table products - so safe to delete Deleted that row, checked front end and bam - working correctly Would be absolutely nice to have a check system build into osc for products/categories for possible issues Hope this helps someone
  18. 1 point
    raiwa

    AJAX Attribute Manager support

    When I'll have a look to update it. It's on the list.
  19. 1 point
    hungryfrank

    Easy Admin Group - Login Issues

    uploaded for 1.0.6.0
  20. 1 point
    Como siempre muy clara la explicación. Hoy le pregunte a 3 personas si sabían que significaba albarán y nadie sabia (yo tampoco), por eso fue mi sugerencia. En mi país le llaman "Remito". Tenes razón lo mejor que cada usuario lo adapte a sus necesidades. Saludos cordiales Valui
  21. 1 point
    For Phoenix user, the following change is needed to prevent a warning. In includes/classes/seo.class.php, replace this code (at line 786) if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) { with this if ( (defined('SEARCH_ENGINE_FRIENDLY_URLS') && SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
  22. 1 point
    Had a look at that and the USA store and very impressive. Both preform much better than I expected with a full load of add-on's and high products count. Will be intresting to see how your CE version turns out. Will be good to have another option on the forum. Looking fowared to trying it out.
  23. 1 point
    thank you both. I got the hook working. now if I can just remove the model from breadcrumb without just commenting it out 😂😂 class hook_shop_siteWide_breadcrumb { function listen_injectAppTop() { global $oscTemplate, $breadcrumb,$languages_id; $crumb_query = tep_db_query("select products_name from " . 'products_description' . " where products_id = '" . (int)$_GET['products_id'] . "' and language_id = '" . $languages_id . "'"); if (tep_db_num_rows($crumb_query)) { $crumb = tep_db_fetch_array($crumb_query); } $breadcrumb->add($crumb ['products_name'], tep_href_link('product_info.php', 'products_id=' . (int)$_GET['products_id'])); } }
  24. 1 point
    ecartz

    Products Image Verify

    Try replacing every instance of $HTTP_GET_VARS with $_GET I.e. <?php require 'includes/application_top.php'; if (!function_exists('file_put_contents')) { function file_put_contents($filename, $data, $file_append = false) { $fp = fopen($filename, ($file_append ? 'a+' : 'w+')); if (!$fp) { trigger_error('file_put_contents cannot write in file.', E_USER_ERROR); return; } fputs($fp, $data); fclose($fp); } } require 'includes/template_top.php'; ?> <!-- body_text //--> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> </tr> </table></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr class="dataTableHeadingRow"> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS; ?></td> <td class="dataTableHeadingContent" align="left"><?php echo TABLE_HEADING_IMAGE_SIZE; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td> </tr> <?php if ($sID !="" && file_exists(DIR_FS_CACHE . 'image_verify.cache')) { $fd = fopen (DIR_FS_CACHE . 'image_verify.cache', "r"); $iv_cache_contents = fread ($fd,filesize (DIR_FS_CACHE . 'image_verify.cache')); fclose ($fd); $verify_query_raw = "select p.products_id, p.products_image, pd.products_name from products p, products_description pd where p.products_id = pd.products_id and (" . $iv_cache_contents .") order by pd.products_name"; } else { if (file_exists(DIR_FS_CACHE . 'image_verify.cache')) { unlink(DIR_FS_CACHE . 'image_verify.cache'); } $verify_query_raw = "select p.products_id, p.products_image, pd.products_name from products p, products_description pd where p.products_id = pd.products_id order by pd.products_name"; } $verify_query = tep_db_query($verify_query_raw); while ($verify = tep_db_fetch_array($verify_query)) { if ( !isset($sInfo) && (!isset($_GET['sID']) || ($_GET['sID'] == $verify['products_id'])) ) { $sInfo = new objectInfo($verify); } //Checks Status of all 3 image sizes to make sure it is not blank, null or if file exists so we only print out products with missing images only. $image_status = 0; if ($verify['products_image'] != "" && $verify['products_image'] != "NULL") { if (file_exists(DIR_FS_CATALOG . 'images/' . $verify['products_image'])) { $image_status = 1; } else { $image_status = 0; } } else { $image_status = 2; } if ($image_status != 1) { if (file_exists(DIR_FS_CACHE . 'image_verify.cache')) { file_put_contents(DIR_FS_CACHE . 'image_verify.cache', " or pd.products_id = " . $verify['products_id'], 'append.php'); } else { file_put_contents(DIR_FS_CACHE . 'image_verify.cache', "pd.products_id = " . $verify['products_id']); } } if ( (is_object($sInfo ?? null)) && ($verify['products_id'] == $sInfo->products_id) && ($image_status != 1)) { echo ' <tr class="dataTableRowSelected" onmouseover="this.style.cursor=\'hand\'" onclick="document.location.href=\'' . tep_href_link('image_verify.php', '&sID=' . $sInfo->products_id) . '\'">' . "\n"; } else { echo ' <tr class="dataTableRow" onmouseover="this.className=\'dataTableRowOver\';this.style.cursor=\'hand\'" onmouseout="this.className=\'dataTableRow\'" onclick="document.location.href=\'' . tep_href_link('image_verify.php', '&sID=' . $verify['products_id']) . '\'">' . "\n"; } if ($image_status != 1) { ?> <td class="dataTableContent"><?php echo $verify['products_name']; ?></td> <td class="dataTableContent" align="left"><?php } switch ($image_status) { case 0: echo tep_image('images/icons/ms_error.png', KEY_OK, 20, 20); break; case 2: echo tep_image('images/icons/ms_warning.png', KEY_ERROR, 20, 20); break; } if ($image_status != 1) { ?></td> <td class="dataTableContent" align="right"> <?php if ( (is_object($sInfo)) && ($verify['products_id'] == $sInfo->products_id) ) { echo tep_image('images/icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link('image_verify.php', 'page=' . $_GET['page'] . '&sID=' . $verify['products_id']) . '">' . tep_image('images/icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td> </tr> <?php } } ?> </table></td> <?php $heading = []; $contents = []; if ($sID =="") { $heading[] = ['text' => '<b><center>PLEASE CLICK ON PRODUCT ROW<BR>FOR MORE OPTIONS</center></b>']; } else { $heading[] = ['text' => '<b><center>' . $sInfo->products_name. '</center></b>']; } $contents[] = ['text' => '' . tep_image('images/pixel_black.gif', '', '100%', 3)]; $contents[] = [ 'align' => 'center', 'text' => '<a href="' . tep_href_link('categories.php', '&pID=' . $sInfo->products_id . '&action=new_product') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link('categories.php', '&pID=' . $sInfo->products_id . '&action=delete_product') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a>', ]; $contents[] = ['text' => '' . tep_image('images/pixel_black.gif', '', '100%', 3)]; $contents[] = ['text' => '' . tep_image('images/icons/ms_error.png', '', 20, 20) . KEY_ERROR]; $contents[] = ['text' => '' . tep_image('images/icons/ms_warning.png', '', 20, 20) . KEY_NOT_USED]; $contents[] = ['text' => '' . tep_image('images/pixel_black.gif', '', '100%', 3)]; $contents[] = ['text' => DELETE_WARNING]; $contents[] = ['text' => '' . tep_image('images/pixel_black.gif', '', '100%', 3)]; $contents[] = ['text' => EDIT_WARNING]; $contents[] = ['text' => '' . tep_image('images/pixel_black.gif', '', '100%', 3)]; if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) { echo ' <td width="25%" valign="top">' . "\n"; $box = new box(); echo $box->infoBox($heading, $contents); echo ' </td>' . "\n"; } ?> </tr> </table></td> </tr> </table></td> <!-- body_text_eof //--> </tr> </table> <!-- body_eof //--> </body> </html> <?php require 'includes/template_bottom.php'; ?> <?php require 'includes/application_bottom.php'; ?> Also changed the location of the cache file. The previous version required the admin directory to be writable, which should not be necessary.
  25. 1 point
    ArtcoInc

    Phoenix NavBar CSS

    @Heatherbell Very nice and useful! 👍 It should be pointed out that, while the current school of thought is to avoid 'core file' changes, both Language and Template files are NOT considered 'core files', and as such, we can modify these all we want. M
×