Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by bsmither

  1. Could you give us a specific example of what changes need to be made to get what you need? CubeCart uses a 'hooks' system, and adding tabs to displays of data is easily accomplished. For example, look at the images for: https://www.cubecart.com/extensions/plugins/product-addons-easily-purchase-related-products-kit-builder The admin screen image shows a new tab.
  2. It should, however it hasen't been updated since 2017. Which only means that, since it is encoded with ionCube, the encoded files must have been built with a matching version of the encoder for the version of PHP it is running under. Even though the current encoded files are built for "PHP 5.6 and above", this does not mean they will work on any version of PHP7 - which your hosting provider has likely configured your hosted account to use. The publisher, @Noodleman, will need to build encoded files for PHP 7.
  3. This is a summary of a support request posted in the GitHub. Q. Is there a way I can make the content editor ONLY offer source editing? At present it drives me loopy. I really don't want single quotes to be converted to #&39; every time! A. You can indeed. https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-startupMode To do this, edit the file /includes/ckeditor/ckeditor.js Add: config.startupMode = 'source'; Switching to WYSIWYG (non-Source) mode will allow CKEditor to replace certain characters with their entities - if within a "text node" - as that is 'best practice'. That is, quotes to delineate attribute values in tags are not disturbed. But, if you really want to have real single quotes in text left undisturbed when viewing in non-Source mode, add this to config.js: config.entities_additional = ''; // defaults to '#39' Note: Additionally, CKEditor creates for itself an iframe, to display its editing window, and loads additional javascript files, including config.js, while in that iframe. I have had enormous difficulty forcing Firefox to reload page resources, instead of using its cache, that were called from within that iframe. I hope you have better luck. Q. As long as you never click the button to open the non-source editor, it seems to be OK The #39 is simply wrong. " or &lsqou; or &ldqou; etc are correct. #39 is not. You may as well use '. It's not just that: it also messes with other parts of the html. I'd much prefer to just have a simple text editor A. The #39 numerical code style is the necessary syntax for CKEditor's config.js file. The name of the entity (apos) is also acceptable. See: https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-entities_additional
  4. If there is an email address for @Noodleman, a note saying you are interested, and include the server environment running CubeCart, so that they can build the correct version for you.
  5. Please view the details of this extension: https://www.cubecart.com/extensions/plugins/discount-price-tiers-plugin Because it was last updated in 2017, the publisher will need to update it to accommodate CC644 and PHP 7.2+.
  6. From what I see in the Basix template content.checkout.php: There is this: <h2 class="content-title">{$LANG.checkout.your_basket} <a href="{$STORE_URL}/index.php?_a=basket&empty-basket=true" class="pull-right"><i class="fas fa-trash"></i> <span class="hidden-xs">{$LANG.basket.basket_empty}</span></a></h2> {foreach from=$ITEMS key=hash item=item} Change to: <h2 class="content-title">{$LANG.checkout.your_basket} <a href="{$STORE_URL}/index.php?_a=basket&empty-basket=true" class="pull-right"><i class="fas fa-trash"></i> <span class="hidden-xs">{$LANG.basket.basket_empty}</span></a></h2> <h3>If you ordered a downloadable product, the link to it will be emailed to you within a few minutes. Check your INBOX and also SPAM/JUNK folder.</h3> {foreach from=$ITEMS key=hash item=item} The two {include file} statements are not part of the original Basix template code.
  7. We assume you have edited the correct phrase in admin, Languages (if that's what you want to do). Or, maybe you are customizing the template?
  8. Ok, so the above is an example, but it's not the actual project that needs a solution. So, from the example, it seems you need to populate a template with custom HTML and possibly process any POSTed data returned. CubeCart has a "hooks" system, which is useful to do these kinds of things. Unfortunately, one needs to understand where the hooks are individually placed in the core code, so that these kinds of customizations can be implemented. If you wish to discuss specifics in private, send me a PM.
  9. Welcome adCCart22! Glad to see you made it to the forums. There are two things to get straight in what you are asking about: 1. Are you wanting the PHP script do the form's POSTed responses? 2. Are you hoping for the PHP script to populate the form exactly during the time the template rendering engine (Smarty) is compiling the template, under the control of Smarty?
  10. You can FTP a number of images to the /images/source/ folder (with sub-folders. Then, in admin, Images (FileManager), click the Update File List tab.
  11. Welcome jeffg23! Glad to see you made it to the forums. In admin, (Site) Documents, these are databased in the CubeCart_documents table. If(!) you have some other kind of document (a whole web page) already built (perhaps located elsewhere), you would enter the complete web address in the "URL" text entry field. That web address would be the link's target in the list of Site Documents (Information box) shown on your pages. (For Foundation, that is at the bottom.) An example would be a separately-powered, outside of CubeCart's control, "Contact Us" page. Another example would be a link to a related, alternate site.
  12. We believe the GitHub issues #2756 and #2772 explains this. Whether it has been fixed? Maybe, maybe not. Along with CC642(?) came a feature that tossed up a notice to remind the admin that clearing the cache is necessary. This notice will appear until the admin has logged in (as of the upgrade) three times. This notice gets logged which interferes with certain other database operations. As an experiment, log in to admin, then log out. Do this three more times. Then log in and see how management of the search engine friendly paths for categories behaves.
  13. bsmither


    Most, if not all skins, have the template box.navigation.php. It starts with a test that will display a cached copy of the complete HTML of the menu if CubeCart finds one. Otherwise, CubeCart will build the NAVIGATION_TREE. The template will display this tree, followed by a Gift Card entry (if enabled), followed by Sale Items (if enabled). You would add your own list items here. Then have CubeCart clear its internal cache.
  14. By hovering the mouse cursor over the posted date shown in the comment of the forum, the browser will show the specific web address of that comment -- notably, the comment number. So, are you referring to comment #232217, or comment #232255? I have not looked at CC650Beta closely. It seems to me that the edits should work. On the other hand, I will attach the plugin to an email if you would PM with an email address.
  15. Short answer: no. CubeCart does use a common regex to detect if a web browser is any of the several browsers installed in mobile devices -- but the regex does not discriminate based on version numbers. This function (detecting user-agent strings of browsers built for mobile-type devices) is a carry-over to accommodate non-responsive skins -- generally skins built for CC5 -- so that, if the admin settings permit, will auto-switch to a specified mobile-designed skin. (See the Mobile skin in the Marketplace.) Responsive skins (are supposed to) have an indicator in the config.xml file that they are responsive, and CubeCart will not (if I recall correctly) pursue examining the user-agent string. I have not seen any evidence of the following in existence, but I assume it could be done -- a third-party plugin may want to customize its page structure depending on the specific browser.
  16. There is no special file/folder structure to 'responsive' skins. The skin designer can use whatever file/folder structure is necessary or just because it ends up that way. There are only three provisos (I think): 1. There must be a config.xml in the main folder that conforms to a dictated structure and that has required info, 2. There must be a /templates/ folder having a defined set of templates with specific names, 3. There must be an /images/ folder with at least the 'noimage' image as declared in the <images> node of the config.xml file. For Amazin, the bulk of the CSS rules are in the skin's css/bootstrap/css/bootstrap.min.css file. It will be very difficult to find what you need to change in this file. Amazin also has a set of 'override' files: /css/style.css and cubecart.style##.css. In these files are rules that customize the theme. In style.css, the first rule colors the textual material in the body (when not specified by another rule). It is here that you can try to add to this rule: Find: body{ color:#525252; } Change to: body{ color:#525252; background-color:#cccccc; } You will need to have CubeCart clear its cache, and force your browser to fetch fresh copies of page resources (usually by CTRL-F5).
  17. In the admin source file products.index.inc.php, about 50 lines up from the bottom of the file: Find: $catalogue = Catalogue::getInstance(); $seo = SEO::getInstance(); foreach ($results as $result) { if ($result['use_stock_level'] == 0 || $result['digital'] > 0 || !empty($result['digital_path'])) { $result['stock_level'] = "&infin;"; } Change to: $catalogue = Catalogue::getInstance(); $seo = SEO::getInstance(); foreach ($results as $result) { // if ($result['use_stock_level'] == 0 || $result['digital'] > 0 || !empty($result['digital_path'])) { // $result['stock_level'] = "&infin;"; // } This bypasses the test that if the product is ignoring stock levels, or is a digital product, then show an infinite amount available.
  18. I thought that was already done? Otherwise, how do you get an Out-of-Stock indication? Or are these "tickets" not digital?
  19. We can use a Code Snippet for this. In admin, Manage Hooks, Code Snippets tab, click Add Snippet. At the bottom of the list of existing snippets will be a form: Enabled: checked Unique ID: [email protected]+ Execution Order: 99 Description: Populates a custom template with most recently sold items. Trigger: class.gui.display Version: 1.0 Author: https://forums.cubecart.com/topic/57577-last-items-sold/ PHP Code: <?php function __displayRecentlySoldProducts($count) { if (!$GLOBALS['smarty']->templateExists('templates/box.recent.php')) { return false; } if (($recentProductsSold = $GLOBALS['db']->select('CubeCart_order_inventory', array('DISTINCT'=>'product_id','product_code','name'), array('product_id' => ">0"), array('id' => "DESC"), $count, false, false)) !== false) { $vars = array(); $GLOBALS['language']->addStrings(array('catalogue' => array('title_recent' => "Recently Sold"))); // Need to manually assign the newly modified language array to Smarty's LANG variable $GLOBALS['language']->assignLang(); foreach ($recentProductsSold as $recent) { $recent['url'] = $GLOBALS['seo']->buildURL('prod', $recent['product_id'], '&', false); $vars[] = $recent; } $GLOBALS['smarty']->assign('RECENT', $vars); $content = $GLOBALS['smarty']->fetch('templates/box.popular.php'); $GLOBALS['smarty']->assign('RECENTLY_SOLD_PRODUCTS', $content); } } __displayRecentlySoldProducts(5); // Show 5 recently sold items. Save the snippet. Now, there needs to be a template file to show the products. We will basically copy the Best Sellers (Popular Products) template. In the Foundation skin template directory, create a new file with the name: box.recent.php Have as its contents: {* * CubeCart v6 * ======================================== * CubeCart is a registered trade mark of CubeCart Limited * Copyright CubeCart Limited 2017. All rights reserved. * UK Private Limited Company No. 5323904 * ======================================== * Web: http://www.cubecart.com * Email: [email protected] * License: GPL-3.0 https://www.gnu.org/licenses/quick-guide-gplv3.html *} {if $RECENT} <div class="panel" id="box-recent"> <h3>{$LANG.catalogue.title_recent}</h3> <ol> {foreach from=$RECENT item=product} <li><a href="{$product.url}" title="{$product.name}">{$product.name}</a></li> {/foreach} </ol> </div> {/if} Finally, there needs to be an edit that places this box on the main page. In the existing template: main.php Find: {include file='templates/box.featured.php'} {include file='templates/box.popular.php'} Add after (or before, or in-between) {include file='templates/box.recent.php'}
  20. The key 'helpful' and the phrase "Helpful" was meant as a general example. Add as many key/phrases as you want, replicating the relevant statements, directly in the snippet code (there is no admin panel available to do this): 'flat' "Crushed" 'boom' "Fully Exploded" 'niub' "New in Unopened Box" 'minripd' "Slightly Torn"
  21. In a stock install of CC6, the list of images to play in the slider is part of the HomePage document. In admin, Documents, click the Edit icon of the document shown as having the HomePage button selected. You may have an easier time of it by using the editor's Source mode. The slider is optimized to show 1000x300 pixel images.
  22. I just don't know if should, would, or could.
  23. The code suggests that CubeCart will send an email informing the customer that the order was "cancelled", the databased order summary gets updated to show that the order is now in a "cancelled" state, an entry is logged in the general order history log, and an entry is logged in the general order transaction log. CubeCart will also restore stock levels. This assumes that the payment agency (e.g., PayPal) has the necessary info of where and what to send to the store. I do not know how, if at all possible, if, when cancelling an order in CubeCart's admin, CubeCart uses the PayPal gateway to inform PayPal to initiate a refund. Nor do I know if, when initiating a refund action at the merchant's PayPal account control panel, if PayPal has, or even asks for, the needed info to "call" the store to instruct the store to effect a "PAYMENT.CAPTURE.REFUNDED" action.
  • Create New...