This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.

Mohsin
Mohsin

I am building a real estate plugin. Currently, it has a controller for each type of Lead i.e. house, apartment, villas, etc. All these controllers more or less have the same exact code except their configs and other stuff. So I made a GenericController.php and made all the Controllers inherit that. I added code to it


    public $implement = [
        'Backend.Behaviors.FormController',
        'Backend.Behaviors.ListController'
    ];

    public $formConfig = 'config_form.yaml';
    public $listConfig = 'config_list.yaml’;

as even that is common to both.

For settings the Backend menu correctly I wrote this

        BackendMenu::setContext('Mohsin.Leads', 'leads', $this -> get_class_name(get_class($this)));

   /* Given the namespaced classname, this returns the classname after converting it to lower case */
    public function get_class_name($classname)
    {
        if ($pos = strrpos($classname, '\\')) return strtolower(substr($classname, $pos + 1));
        return $pos;
    }

Now I’m wondering if I can get rid of House.php, Apartment.php, Villa.php and just use an array like $types = [‘House’, ‘Apartment’, ‘Villa’]; and then call some function to register the controller? Is this possible. If so how?

1-1 of 1

You cannot edit posts or make replies: the forum has moved to talk.octobercms.com.