X-Cart: shopping cart software

X-Cart forums (https://forum.x-cart.com/index.php)
-   Dev Questions (X-Cart 5) (https://forum.x-cart.com/forumdisplay.php?f=56)
-   -   Move caterogy description under products (https://forum.x-cart.com/showthread.php?t=72091)

seyfin 11-23-2015 03:14 AM

Re: Move caterogy description under products
 
Actually, the changes should not be implemented to the core X-Cart files like the Main.php file. The code should be implemented within a custom module's Main.php file.

seyfin 11-23-2015 03:57 AM

Re: Move caterogy description under products
 
For example, you can use "Custom Skin" module to implement the necessary code changes related to widgets. For example, in our case, the PHP code suggested by Ant, should be implemented in classes/XLite/Module/XC/CustomSkin/Main.php file.

ant99 11-23-2015 08:28 AM

Re: Move caterogy description under products
 
That's correct. I stated "the Main.php file of your module". Sorry I was not specific enough, but thanks for clarifying seyfin.

ant99 11-23-2015 01:44 PM

Re: Move caterogy description under products
 
It turns out there was a bug that I didn't catch in that first implementation. It will break static pages that do not have a category description, because it tries to call "getDescription()" from the list "center.bottom".

Here is the correct implementation.

First you need to create "Category.php" in your custom module directory (i.e. - XLite/Module/XC/CustomSkin/View/Category.php) and define the ListChild to insert the widget in center.bottom. Notice the weight of 800. This is so that the description appears at the very bottom of the category pages (beneath featured products if there are any).
PHP Code:

<?php
namespace XLite\Module\XC\CustomSkin\View

/**
 * Category widget
 *
 * @ListChild (list="center.bottom", zone="customer", weight="800")
 */
abstract class Category extends \XLite\View\Category implements \XLite\Base\IDecorator
{

}


Then we have a problem that the category description is still appearing at the top in addition to appearing at the bottom. We need to remove the class from the "center" list. In your custom module's Main.php file (i.e. - XLite/Module/XC/CustomSkin/Main.php) add the following code.
PHP Code:

public static function runBuildCacheHandler(){

        
parent::runBuildCacheHandler();

    
// remove category description from the top of each category
    
\XLite\Core\Layout::getInstance()->removeClassFromList(
        
'XLite\View\Category''center', \XLite\Model\ViewList::INTERFACE_CUSTOMER
    
);

    } 



All times are GMT -8. The time now is 09:07 PM.

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.