Extensions and Widgets Creation: Difference between revisions

From osCommerce Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:


<h2>'''Basic Provisions:'''</h2>
<h2>'''Basic Provisions:'''</h2>
<h4># All extensions must be placed in separate folder.</h4>
<h4># All extensions must be placed in separate folder.
# The class file name must be the same as the folder name.
# The class file name must be the same as the folder name.
# Templates must be placed in folder 'views'.</h4>
# Templates must be placed in folder 'views'.</h4>

Revision as of 12:32, 21 February 2023

Note: This manual is for osCommerce v4.

Basic Provisions:

# All extensions must be placed in separate folder.
  1. The class file name must be the same as the folder name.
  2. 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();     }