FIX: make artisan install-module really work with submodules
This commit is contained in:
+10
-1
@@ -13,6 +13,7 @@ class Module extends Model
|
||||
public $timestamps = false;
|
||||
protected $fillable = [
|
||||
'handler',
|
||||
'parent_id',
|
||||
'name',
|
||||
'description',
|
||||
'alias',
|
||||
@@ -30,12 +31,13 @@ class Module extends Model
|
||||
* @param $alias
|
||||
* @param string $description
|
||||
* @param null $handler
|
||||
* @param $parentModuleId
|
||||
* @param array $settings
|
||||
*
|
||||
* @return Module
|
||||
* @throws \ErrorException
|
||||
*/
|
||||
public static function install($name, $alias, $description, $handler, $settings)
|
||||
public static function install($name, $alias, $description, $handler, $parentModuleId, $settings)
|
||||
{
|
||||
// check if user does not want to install module in runtime
|
||||
if (!App::runningInConsole()) {
|
||||
@@ -45,6 +47,12 @@ class Module extends Model
|
||||
$managesContent = $handler ? in_array('App\Handlers\Contracts\AppHandler', class_implements($handler)) : false;
|
||||
$supportCategories = $managesContent ? call_user_func([$handler, 'supportCategories']) : false;
|
||||
|
||||
if ($parentModuleId) {
|
||||
$parentModule = Module::findOrFail($parentModuleId);
|
||||
$parentModule->has_submodules = true;
|
||||
$parentModule->save();
|
||||
}
|
||||
|
||||
// insert module into database
|
||||
$module = Module::create([
|
||||
'name' => $name,
|
||||
@@ -54,6 +62,7 @@ class Module extends Model
|
||||
'support_categories' => $supportCategories,
|
||||
'alias' => $alias,
|
||||
'module_settings' => json_encode($settings),
|
||||
'parent_id' => $parentModuleId,
|
||||
'enabled' => 1
|
||||
]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user