/** * Bootstrap the application services. * * @return void */ public function boot() { form()->macro('categories', function ($name = 'category_id', $selected = null, $options = []) { $html = []; Category::lists()->each(function (Category $category) use(&$html, $selected, $name) { $selected = form()->getValueAttribute($name, $selected); if (is_array($selected)) { $selected = in_array($category->id, $selected) ? 'selected' : null; } else { $selected = (string) $category->id == (string) $selected ? 'selected' : null; } $options = ['value' => $category->id, 'selected' => $selected, 'data-alias' => $category->present()->alias]; $html[] = new HtmlString('<option ' . html()->attributes($options) . '>' . e($category->present()->indentedTitle) . '</option>'); }); $list = implode('', $html); $options = html()->attributes($options + ['name' => $name]); return new HtmlString("<select{$options}>{$list}</select>"); }); form()->macro('imageBrowser', function ($name, $selected = null, $options = []) { return view('system.macro.image-browser', ['name' => $name, 'options' => $options, 'selected' => $selected]); }); }