Extensions and Widgets Creation: Difference between revisions

From osCommerce Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:
<h2>'''Basic Provisions:'''</h2>
<h2>'''Basic Provisions:'''</h2>
# <h3>All extensions must be placed in separate folder.</h3>
# <h3>All extensions must be placed in separate folder.</h3>
# The class file name must be the same as the folder name.
# <h3>The class file name must be the same as the folder name.</h3>
# Templates must be placed in folder 'views'.
# <h3>Templates must be placed in folder 'views'.</h3>


//additional
<h4>//additional


if you want to use widgets in extensions
if you want to use widgets in extensions</h4>


1. Add method getWidgets with $type parameter and describe widgets in array
<h3>1. Add method getWidgets with $type parameter and describe widgets in array</h3>


example:
example:

Revision as of 12:35, 21 February 2023

Note: This manual is for osCommerce v4.

Basic Provisions:

  1. All extensions must be placed in separate folder.

  2. The class file name must be the same as the folder name.

  3. Templates must be placed in folder 'views'.

//additional if you want to use widgets in extensions

1. Add method getWidgets with $type parameter and describe widgets in array

example:

return [

            [

                'name' => 'CustomerLoyalty\ShoppingCart', 'title' => 'Customer Loyalty Info Box', 'description' => '', 'type' => 'cart',

            ],

        ];

in this case ShoppingCart (in subfolder \ShoppingCart) is widget ( ShoppingCart.php) can be used in customizing Themes

2. to show additional settings for widget use method showSettings

example:

    public static function showSettings($settings){

        return self::begin()->render('settings.tpl', ['settings' => $settings]);

    }

extension installer:

1) extends \common\classes\modules\ModuleExtensions

2) install (example)

    public function install($platform_id){

        parent::install($platform_id);// install in liek other modules

        // install extention envirenment

        $migration = new \common\classes\Migration;

        $migration->addTranslation(['admin/main'], [

            //add keys

        ]);

        return;

    }

2) ckeck extension enabled - use \common\helpers\Acl::checkExtensionAllowed($extName, 'allowed')

    public static function allowed() {

        return self::enabled();

    }