FIX: make artisan install-module really work with submodules

This commit is contained in:
Michal Kváček
2016-08-15 21:39:18 +02:00
parent bd06797c24
commit aa462c2454
2 changed files with 33 additions and 13 deletions
+10 -1
View File
@@ -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
]);