En bossant sur les widgets ces jours-ci je me suis dit qu’on répétait tout de même pas mal de code, et ça a le don de m’agacer ; du coup je suis en train de revoir ça et pour l’instant, au lieu de ceci, pour initialiser un widget du type moteur de recherche :
$__widgets->create('search', __('Search engine'), ['defaultWidgets', 'search'], null, 'Search engine form');
$__widgets->search->setting('title', __('Title (optional)') . ' :', __('Search'));
$__widgets->search->setting('placeholder', __('Placeholder (HTML5 only, optional):'), '');
$__widgets->search->setting('homeonly', __('Display on:'), 0, 'combo',
[__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2]);
$__widgets->search->setting('content_only', __('Content only'), 0, 'check');
$__widgets->search->setting('class', __('CSS class:'), '');
$__widgets->search->setting('offline', __('Offline'), 0, 'check');
On fait ça :
$__widgets
->create('search', __('Search engine'), ['defaultWidgets', 'search'], null, 'Search engine form')
->addTitle(__('Search'))
->setting('placeholder', __('Placeholder (HTML5 only, optional):'), '')
->addHomeOnly()
->addContentOnly()
->addClass()
->addOffline();
C’est tout de même plus lisible, non ? Et puis ça milite pour une harmonisation des options, partout où elles sont utilisées, y compris par les plugins tiers qui se serviraient des nouvelles fonctions d’ajout d’options « standards » (titre, …) pour leurs widgets.
1 De Sylvain -
Ah oui c’est plus lisible en effet !