Extensions and Widgets Creation: Difference between revisions

From osCommerce Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:
# <h3>Templates must be placed in folder 'views'.</h3>
# <h3>Templates must be placed in folder 'views'.</h3>


<h4>//additional
<h4>//additional</h4>


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


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


example:
<h4>example:


return [
return [
Line 27: Line 27:
        ];
        ];


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


2. to show additional settings for widget use method showSettings
2. to show additional settings for widget use method showSettings

Revision as of 12:37, 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();

    }