/** * Execute the console command. * * @return void */ public function fire() { $packages = array(); $fieldsets = FieldSetProvider::all(); foreach ($fieldsets as $fieldset) { if (!$fieldset::assets()->isEmpty()) { $packages = $this->addPackageClass(get_class($fieldset), $packages); } $fieldtypes = $fieldset->allFieldTypes(); foreach ($fieldtypes as $fieldtype) { if (!$fieldtype::assets()->isEmpty()) { $packages = $this->addPackageClass($fieldtype, $packages); } } } foreach ($packages as $package) { try { $this->call('asset:publish', array('package' => $package)); } catch (\Exception $e) { // couldn't publish package assets from vendor // but lets try the workbench too try { $this->call('asset:publish', array('--bench' => $package)); $this->comment('Assets published from workbench: ' . $package); } catch (\Exception $e) { $this->error($package . ' - ' . $e->getMessage()); } } } }
/** * Register the service provider. * * @return void */ public function register() { // Register the Basic FieldSet FieldSetProvider::register('Packettide\\Bree\\FieldSets\\BasicFieldSet'); // Register the Advanced FieldSet FieldSetProvider::register('Packettide\\BreeFsAdvanced\\AdvancedFieldSet'); // Attach first party Basic fields FieldSetProvider::attachFields('basic', array('Date' => 'Packettide\\Bree\\FieldTypes\\Date', 'InlineStacked' => 'Packettide\\Bree\\FieldTypes\\Relate', 'Relate' => 'Packettide\\Bree\\FieldTypes\\Relate', 'Text' => 'Packettide\\Bree\\FieldTypes\\Text', 'TextArea' => 'Packettide\\Bree\\FieldTypes\\TextArea', 'Time' => 'Packettide\\Bree\\FieldTypes\\Time', 'None' => 'Packettide\\Bree\\FieldTypes\\None')); // Attach first party Advanced fields FieldSetProvider::attachFields('advanced', array('File' => 'Packettide\\Bree\\FieldTypes\\File', 'Cell' => 'Packettide\\Bree\\FieldTypes\\Cell', 'Cells' => 'Packettide\\Bree\\FieldTypes\\Cell', 'Matrix' => 'Packettide\\Bree\\FieldTypes\\Cell')); $this->app['bree'] = $this->app->share(function ($app) { return new Model(); }); $this->app->booting(function () { $loader = \Illuminate\Foundation\AliasLoader::getInstance(); $loader->alias('Bree', 'Packettide\\Bree\\Model'); }); }
/** * Generate the model Assets * @return Packettide\Bree\Assets\Collection */ public function assets() { if (!$this->assets) { $assets = new Assets\Collection(); foreach ($this->fieldsets as $fieldset) { $fieldset = FieldSetProvider::get($fieldset); $assets->put(get_class($fieldset), $fieldset::assets()); $assets = $assets->merge($fieldset->fieldTypeAssets()); } $this->assets = $assets; } return $this->assets; }
/** * Bootstrap the application events. * * @return void */ public function boot() { $this->package('packettide/bree-wysiwyg'); FieldSetProvider::attachFields('advanced', array('Wysiwyg' => 'Packettide\\BreeWysiwyg\\BreeWysiwygAdvanced')); }