use anonymous function

master
Jean-Christian Paul Denis 2022-11-30 23:58:37 +01:00
parent fe7cf97bc5
commit 796119e0d2
Signed by: JcDenis
GPG Key ID: 1B5B8C5B90B6C951
1 changed files with 68 additions and 93 deletions

View File

@ -16,111 +16,86 @@ if (!defined('DC_CONTEXT_ADMIN')) {
require __DIR__ . '/_widgets.php'; require __DIR__ . '/_widgets.php';
# Dashboard item and user preference dcCore::app()->addBehavior('adminDashboardItemsV2', function($__dashboard_items) {
dcCore::app()->addBehavior( if (!dcCore::app()->auth->user_prefs->dashboard->get('dcLatestVersionsItems')) {
'adminDashboardItemsV2', return null;
['dcLatestVersionsAdmin', 'adminDashboardItems'] }
);
dcCore::app()->addBehavior(
'adminDashboardOptionsFormV2',
['dcLatestVersionsAdmin', 'adminDashboardOptionsForm']
);
dcCore::app()->addBehavior(
'adminAfterDashboardOptionsUpdate',
['dcLatestVersionsAdmin', 'adminAfterDashboardOptionsUpdate']
);
/** $builds = explode(',', (string) dcCore::app()->blog->settings->dcLatestVersions->builds);
* @ingroup DC_PLUGIN_DCLATESTVERSIONS if (empty($builds)) {
* @brief Display latest versions of Dotclear - admin methods. return null;
* @since 2.6 }
*/
class dcLatestVersionsAdmin $text = __('<li><a href="%u" title="Download Dotclear %v">%r</a> : %v</li>');
{ $li = [];
public static function adminDashboardItems($__dashboard_items)
{ foreach ($builds as $build) {
if (!dcCore::app()->auth->user_prefs->dashboard->get('dcLatestVersionsItems')) { $build = strtolower(trim($build));
return null; if (empty($build)) {
continue;
} }
$builds = explode(',', (string) dcCore::app()->blog->settings->dcLatestVersions->builds); $updater = new dcUpdate(
if (empty($builds)) { DC_UPDATE_URL,
return null; 'dotclear',
$build,
DC_TPL_CACHE . '/versions'
);
if (false === $updater->check('0')) {
continue;
} }
$text = __('<li><a href="%u" title="Download Dotclear %v">%r</a> : %v</li>'); $li[] = str_replace(
$li = []; [
'%r',
foreach ($builds as $build) { '%v',
$build = strtolower(trim($build)); '%u',
if (empty($build)) { ],
continue; [
}
$updater = new dcUpdate(
DC_UPDATE_URL,
'dotclear',
$build, $build,
DC_TPL_CACHE . '/versions' $updater->getVersion(),
); $updater->getFileURL(),
],
if (false === $updater->check('0')) { $text
continue; );
}
$li[] = str_replace(
[
'%r',
'%v',
'%u',
],
[
$build,
$updater->getVersion(),
$updater->getFileURL(),
],
$text
);
}
if (empty($li)) {
return null;
}
# Display
$__dashboard_items[0][] = '<div class="box small" id="udclatestversionsitems">' .
'<h3>' . html::escapeHTML(__("Dotclear's latest versions")) . '</h3>' .
'<ul>' . implode('', $li) . '</ul>' .
'</div>';
} }
public static function adminDashboardOptionsForm() if (empty($li)) {
{ return null;
if (!dcCore::app()->auth->user_prefs->dashboard->prefExists('dcLatestVersionsItems')) {
dcCore::app()->auth->user_prefs->dashboard->put(
'dcLatestVersionsItems',
false,
'boolean'
);
}
$pref = dcCore::app()->auth->user_prefs->dashboard->get('dcLatestVersionsItems');
echo
'<div class="fieldset">' .
'<h4>' . __("Dotclear's latest versions") . '</h4>' .
'<p><label class="classic" for="dcLatestVersionsItems">' .
form::checkbox('dcLatestVersionsItems', 1, $pref) . ' ' .
__("Show Dotclear's latest versions on dashboards.") .
'</label></p>' .
'</div>';
} }
public static function adminAfterDashboardOptionsUpdate($user_id) # Display
{ $__dashboard_items[0][] = '<div class="box small" id="udclatestversionsitems">' .
'<h3>' . html::escapeHTML(__("Dotclear's latest versions")) . '</h3>' .
'<ul>' . implode('', $li) . '</ul>' .
'</div>';
});
dcCore::app()->addBehavior('adminDashboardOptionsFormV2', function() {
if (!dcCore::app()->auth->user_prefs->dashboard->prefExists('dcLatestVersionsItems')) {
dcCore::app()->auth->user_prefs->dashboard->put( dcCore::app()->auth->user_prefs->dashboard->put(
'dcLatestVersionsItems', 'dcLatestVersionsItems',
!empty($_POST['dcLatestVersionsItems']), false,
'boolean' 'boolean'
); );
} }
} $pref = dcCore::app()->auth->user_prefs->dashboard->get('dcLatestVersionsItems');
echo
'<div class="fieldset">' .
'<h4>' . __("Dotclear's latest versions") . '</h4>' .
'<p><label class="classic" for="dcLatestVersionsItems">' .
form::checkbox('dcLatestVersionsItems', 1, $pref) . ' ' .
__("Show Dotclear's latest versions on dashboards.") .
'</label></p>' .
'</div>';
});
dcCore::app()->addBehavior('adminAfterDashboardOptionsUpdate', function($user_id) {
dcCore::app()->auth->user_prefs->dashboard->put(
'dcLatestVersionsItems',
!empty($_POST['dcLatestVersionsItems']),
'boolean'
);
});