# if-so/trunk/extensions/extension-base/extension-base.class.php

If-So Dynamic Content – Elementor &amp; All Page Builders Personalization, version trunk. 36 lines.

- Page: https://pluginprobe.com/plugins/if-so/trunk/code/extensions/extension-base/extension-base.class.php
- Raw: https://pluginprobe.com/plugins/if-so/trunk/raw/extensions/extension-base/extension-base.class.php
- Modified: 2024-11-13T21:30:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/if-so/trunk/code/extensions/extension-base/extension-base.class.php#L10-L20`.

```php
<?php
namespace IfSo\Addons\Base;
require_once (__DIR__ . '/extension-initializer-base.class.php');
require_once (__DIR__ . '/extension-main-base.class.php');

class Extension{
    protected static $instance;
    protected $default_initializer;

    public function __construct($plugin_main_class=null,$custom_init=null){
        $this->set_default_initializer();
        if($plugin_main_class!==null && class_exists($plugin_main_class)){
            $main = $plugin_main_class::get_instance();
            $upd_settings = $main->get_update_settings();
            if($custom_init!==null)
                $init = new $custom_init($main,$upd_settings);
            else
                $init = new $this->default_initializer($main,$upd_settings);
        }
    }

    protected function set_default_initializer(){
        $this->default_initializer = ExtensionInitializer::class;
    }
}

class UpdateSettings{
    public $url;
    public $slug;
    public $main_file;
    public function __construct($slug,$url,$main_file){
        $this->url=$url;
        $this->slug=$slug;
        $this->main_file = $main_file;
    }
}
```
