cleanup 2021
This commit is contained in:
parent
0df4067d6a
commit
5793a5a927
9 changed files with 243 additions and 269 deletions
15
CHANGELOG
15
CHANGELOG
|
@ -1,15 +0,0 @@
|
||||||
2020-09-18 - Pierre Van Glabeke
|
|
||||||
* modif _admin.php (merci à nanart)
|
|
||||||
|
|
||||||
2015-03-11 - Pierre Van Glabeke
|
|
||||||
* ajout mode hors ligne et codage titre widget (widget)
|
|
||||||
* encodage UNIX (LF)
|
|
||||||
* modif url de support
|
|
||||||
* modifs localisation
|
|
||||||
* suppression icône
|
|
||||||
|
|
||||||
2013.11.18 - Jean-Christian Denis
|
|
||||||
* First hg release
|
|
||||||
|
|
||||||
2013.07.22 - Jean-Christian Denis
|
|
||||||
* First release
|
|
20
CHANGELOG.md
Normal file
20
CHANGELOG.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
2021.08.27
|
||||||
|
- cleanup (PSR2,short array, ...)
|
||||||
|
- enhance widget style
|
||||||
|
- update license
|
||||||
|
|
||||||
|
2020.09.18 - Pierre Van Glabeke
|
||||||
|
- modif admin.php (merci à nanart)
|
||||||
|
|
||||||
|
2015.03.11 - Pierre Van Glabeke
|
||||||
|
- ajout mode hors ligne et codage titre widget (widget)
|
||||||
|
- encodage UNIX (LF)
|
||||||
|
- modif url de support
|
||||||
|
- modifs localisation
|
||||||
|
- suppression icône
|
||||||
|
|
||||||
|
2013.11.18 - Jean-Christian Denis
|
||||||
|
- First hg release
|
||||||
|
|
||||||
|
2013.07.22 - Jean-Christian Denis
|
||||||
|
- First release
|
11
README.md
11
README.md
|
@ -21,3 +21,14 @@ Dotaddict repository. (See Dotclear's documentation to know how do this)
|
||||||
|
|
||||||
Add and configure "Dotclear's latest versions" from widgets manager.
|
Add and configure "Dotclear's latest versions" from widgets manager.
|
||||||
You can add a dashboard item by enable it from your dashboard preferences.
|
You can add a dashboard item by enable it from your dashboard preferences.
|
||||||
|
|
||||||
|
## MORE
|
||||||
|
|
||||||
|
* License : GNU GPL v2
|
||||||
|
* Source & contribution : [GitHub Page](https://github.com/JcDenis/dcLatestVersions)
|
||||||
|
* Packages & details: [Dotaddict Page](https://plugins.dotaddict.org/dc2/details/dcLatestVersions)
|
||||||
|
|
||||||
|
## CONTRIBUTORS
|
||||||
|
|
||||||
|
* Jean-Chirstian Denis
|
||||||
|
* Pierre Van Glabeke
|
||||||
|
|
178
_admin.php
178
_admin.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,24 +12,23 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require dirname(__FILE__).'/_widgets.php';
|
require dirname(__FILE__) . '/_widgets.php';
|
||||||
|
|
||||||
# Dashboard item and user preference
|
# Dashboard item and user preference
|
||||||
$core->addBehavior(
|
$core->addBehavior(
|
||||||
'adminDashboardItems',
|
'adminDashboardItems',
|
||||||
array('dcLatestVersionsAdmin', 'adminDashboardItems')
|
['dcLatestVersionsAdmin', 'adminDashboardItems']
|
||||||
);
|
);
|
||||||
$core->addBehavior(
|
$core->addBehavior(
|
||||||
'adminDashboardOptionsForm',
|
'adminDashboardOptionsForm',
|
||||||
array('dcLatestVersionsAdmin', 'adminDashboardOptionsForm')
|
['dcLatestVersionsAdmin', 'adminDashboardOptionsForm']
|
||||||
);
|
);
|
||||||
$core->addBehavior(
|
$core->addBehavior(
|
||||||
'adminAfterDashboardOptionsUpdate',
|
'adminAfterDashboardOptionsUpdate',
|
||||||
array('dcLatestVersionsAdmin', 'adminAfterDashboardOptionsUpdate')
|
['dcLatestVersionsAdmin', 'adminAfterDashboardOptionsUpdate']
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,98 +38,92 @@ $core->addBehavior(
|
||||||
*/
|
*/
|
||||||
class dcLatestVersionsAdmin
|
class dcLatestVersionsAdmin
|
||||||
{
|
{
|
||||||
public static function adminDashboardItems(dcCore $core, $__dashboard_items)
|
public static function adminDashboardItems(dcCore $core, $__dashboard_items)
|
||||||
{
|
{
|
||||||
if (!$core->auth->user_prefs->dashboard->get('dcLatestVersionsItems')) {
|
if (!$core->auth->user_prefs->dashboard->get('dcLatestVersionsItems')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
$builds = explode(',', (string) $core->blog->settings->dcLatestVersions->builds);
|
||||||
}
|
if (empty($builds)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
$builds = (string) $core->blog->settings->dcLatestVersions->builds;
|
$text = __('<li><a href="%u" title="Download Dotclear %v">%r</a> : %v</li>');
|
||||||
$builds = explode(',', $builds);
|
$li = [];
|
||||||
if (empty($builds)) {
|
|
||||||
|
|
||||||
return null;
|
foreach($builds as $build) {
|
||||||
}
|
|
||||||
|
|
||||||
$text = __('<li><a href="%u" title="Download Dotclear %v">%r</a> : %v</li>');
|
$build = strtolower(trim($build));
|
||||||
$li = array();
|
if (empty($build)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
foreach($builds as $build) {
|
$updater = new dcUpdate(
|
||||||
|
DC_UPDATE_URL,
|
||||||
|
'dotclear',
|
||||||
|
$build,
|
||||||
|
DC_TPL_CACHE . '/versions'
|
||||||
|
);
|
||||||
|
|
||||||
$build = strtolower(trim($build));
|
if (false === $updater->check('0')) {
|
||||||
if (empty($build)) {
|
continue;
|
||||||
continue;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$updater = new dcUpdate(
|
$li[] = str_replace(
|
||||||
DC_UPDATE_URL,
|
[
|
||||||
'dotclear',
|
'%r',
|
||||||
$build,
|
'%v',
|
||||||
DC_TPL_CACHE.'/versions'
|
'%u'
|
||||||
);
|
],
|
||||||
|
[
|
||||||
|
$build,
|
||||||
|
$updater->getVersion(),
|
||||||
|
$updater->getFileURL()
|
||||||
|
],
|
||||||
|
$text
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (false === $updater->check('0')) {
|
if (empty($li)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
//return false;
|
# Display
|
||||||
continue;
|
$__dashboard_items[0][] =
|
||||||
}
|
'<div class="box small" id="udclatestversionsitems">' .
|
||||||
|
'<h3>' . html::escapeHTML(__("Dotclear's latest versions")) . '</h3>' .
|
||||||
|
'<ul>' . implode('', $li) . '</ul>' .
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
$li[] = str_replace(
|
public static function adminDashboardOptionsForm(dcCore $core)
|
||||||
array(
|
{
|
||||||
'%r',
|
if (!$core->auth->user_prefs->dashboard->prefExists('dcLatestVersionsItems')) {
|
||||||
'%v',
|
$core->auth->user_prefs->dashboard->put(
|
||||||
'%u'
|
'dcLatestVersionsItems',
|
||||||
),
|
false,
|
||||||
array(
|
'boolean'
|
||||||
$build,
|
);
|
||||||
$updater->getVersion(),
|
}
|
||||||
$updater->getFileURL()
|
$pref = $core->auth->user_prefs->dashboard->get('dcLatestVersionsItems');
|
||||||
),
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($li)) {
|
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>';
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
public static function adminAfterDashboardOptionsUpdate($user_id)
|
||||||
}
|
{
|
||||||
|
$GLOBALS['core']->auth->user_prefs->dashboard->put(
|
||||||
# Display
|
'dcLatestVersionsItems',
|
||||||
$__dashboard_items[0][] =
|
!empty($_POST['dcLatestVersionsItems']),
|
||||||
'<div class="box small" id="udclatestversionsitems">'.
|
'boolean'
|
||||||
'<h3>'.html::escapeHTML(__("Dotclear's latest versions")).'</h3>'.
|
);
|
||||||
'<ul>'.implode('', $li).'</ul>'.
|
}
|
||||||
'</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function adminDashboardOptionsForm(dcCore $core)
|
|
||||||
{
|
|
||||||
if (!$core->auth->user_prefs->dashboard->prefExists('dcLatestVersionsItems')) {
|
|
||||||
$core->auth->user_prefs->dashboard->put(
|
|
||||||
'dcLatestVersionsItems',
|
|
||||||
false,
|
|
||||||
'boolean'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$pref = $core->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)
|
|
||||||
{
|
|
||||||
$GLOBALS['core']->auth->user_prefs->dashboard->put(
|
|
||||||
'dcLatestVersionsItems',
|
|
||||||
!empty($_POST['dcLatestVersionsItems']),
|
|
||||||
'boolean'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
34
_define.php
34
_define.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,25 +12,20 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) {
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->registerModule(
|
$this->registerModule(
|
||||||
/* Name */
|
'dcLatestVersions',
|
||||||
"dcLatestVersions",
|
'Show the latest available versions of Dotclear',
|
||||||
/* Description*/
|
'Jean-Christian Denis, Pierre Van Glabeke',
|
||||||
"Show the latest available versions of Dotclear",
|
'2021.08.27',
|
||||||
/* Author */
|
[
|
||||||
"Jean-Christian Denis, Pierre Van Glabeke",
|
'permissions' => 'usage,contentadmin',
|
||||||
/* Version */
|
'type' => 'plugin',
|
||||||
'2020-09-18',
|
'dc_min' => '2.19',
|
||||||
/* Properies */
|
'support' => 'http://forum.dotclear.org/viewforum.php?id=16',
|
||||||
array(
|
'details' => 'http://plugins.dotaddict.org/dc2/details/dcLatestVersions',
|
||||||
'permissions' => 'usage,contentadmin',
|
'repository' => 'https://raw.githubusercontent.com/JcDenis/dcLatestVersions/master/dcstore.xml'
|
||||||
'type' => 'plugin',
|
]
|
||||||
'dc_min' => '2.6',
|
|
||||||
'support' => 'http://forum.dotclear.org/viewforum.php?id=16',
|
|
||||||
'details' => 'http://plugins.dotaddict.org/dc2/details/dcLatestVersions'
|
|
||||||
)
|
|
||||||
);
|
);
|
32
_install.php
32
_install.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,37 +12,28 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Module specs --
|
# -- Module specs --
|
||||||
|
$dc_min = '2.19';
|
||||||
$dc_min = '2.6';
|
|
||||||
$mod_id = 'dcLatestVersions';
|
$mod_id = 'dcLatestVersions';
|
||||||
$mod_conf = array(
|
$mod_conf = [[
|
||||||
array(
|
'builds',
|
||||||
'builds',
|
"List of Dotclear's builds",
|
||||||
"List of Dotclear's builds",
|
'stable,unstable,testing,sexy',
|
||||||
'stable,unstable,testing,sexy',
|
'string'
|
||||||
'string'
|
]];
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
# -- Nothing to change below --
|
# -- Nothing to change below --
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
# Check module version
|
# Check module version
|
||||||
if (version_compare(
|
if (version_compare(
|
||||||
$core->getVersion($mod_id),
|
$core->getVersion($mod_id),
|
||||||
$core->plugins->moduleInfo($mod_id, 'version'),
|
$core->plugins->moduleInfo($mod_id, 'version'),
|
||||||
'>='
|
'>=')) {
|
||||||
)) {
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check Dotclear version
|
# Check Dotclear version
|
||||||
if (!method_exists('dcUtils', 'versionsCompare')
|
if (!method_exists('dcUtils', 'versionsCompare')
|
||||||
|| dcUtils::versionsCompare(DC_VERSION, $dc_min, '<', false)) {
|
|| dcUtils::versionsCompare(DC_VERSION, $dc_min, '<', false)) {
|
||||||
|
@ -51,7 +41,6 @@ try {
|
||||||
'%s requires Dotclear %s', $mod_id, $dc_min
|
'%s requires Dotclear %s', $mod_id, $dc_min
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set module settings
|
# Set module settings
|
||||||
$core->blog->settings->addNamespace($mod_id);
|
$core->blog->settings->addNamespace($mod_id);
|
||||||
foreach($mod_conf as $v) {
|
foreach($mod_conf as $v) {
|
||||||
|
@ -59,17 +48,14 @@ try {
|
||||||
$v[0], $v[2], $v[3], $v[1], false, true
|
$v[0], $v[2], $v[3], $v[1], false, true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set module version
|
# Set module version
|
||||||
$core->setVersion(
|
$core->setVersion(
|
||||||
$mod_id,
|
$mod_id,
|
||||||
$core->plugins->moduleInfo($mod_id, 'version')
|
$core->plugins->moduleInfo($mod_id, 'version')
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception $e) {
|
catch (Exception $e) {
|
||||||
$core->error->add($e->getMessage());
|
$core->error->add($e->getMessage());
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,8 +12,7 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) {
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require dirname(__FILE__).'/_widgets.php';
|
require dirname(__FILE__) . '/_widgets.php';
|
197
_widgets.php
197
_widgets.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
# This file is part of dcLatestVersions, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,15 +12,14 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) {
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$core->blog->settings->addNamespace('dcLatestVersions');
|
$core->blog->settings->addNamespace('dcLatestVersions');
|
||||||
|
|
||||||
$core->addBehavior(
|
$core->addBehavior(
|
||||||
'initWidgets',
|
'initWidgets',
|
||||||
array('dcLatestVersionsWidget', 'adminWidget')
|
['dcLatestVersionsWidget', 'adminWidget']
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,121 +29,98 @@ $core->addBehavior(
|
||||||
*/
|
*/
|
||||||
class dcLatestVersionsWidget
|
class dcLatestVersionsWidget
|
||||||
{
|
{
|
||||||
public static function adminWidget($w)
|
public static function adminWidget($w)
|
||||||
{
|
{
|
||||||
$w->create(
|
$w
|
||||||
'dclatestversionswidget',
|
->create(
|
||||||
__("Dotclear's latest versions"),
|
'dclatestversionswidget',
|
||||||
array('dcLatestVersionsWidget','publicWidget'),
|
__("Dotclear's latest versions"),
|
||||||
null,
|
['dcLatestVersionsWidget','publicWidget'],
|
||||||
__("Show the latest available versions of Dotclear")
|
null,
|
||||||
);
|
__("Show the latest available versions of Dotclear")
|
||||||
$w->dclatestversionswidget->setting(
|
)
|
||||||
'title',
|
->addTitle(
|
||||||
__('Title:'),
|
__("Dotclear's latest versions")
|
||||||
__("Dotclear's latest versions"),
|
)
|
||||||
'text'
|
->setting(
|
||||||
);
|
'text',
|
||||||
$w->dclatestversionswidget->setting(
|
__('Text (%r = release, %v = version, %u = url):'),
|
||||||
'text',
|
__('<strong>%r: </strong> <a href="%u" title="Download Dotclear %v">%v</a>'),
|
||||||
__('Text (%r = release, %v = version, %u = url):'),
|
'text'
|
||||||
__('<strong>%r: </strong> <a href="%u" title="Download Dotclear %v">%v</a>'),
|
)
|
||||||
'text'
|
->addHomeOnly()
|
||||||
);
|
->addContentOnly()
|
||||||
$w->dclatestversionswidget->setting(
|
->addClass()
|
||||||
'homeonly',
|
->addOffline();
|
||||||
__('Display on:'),
|
}
|
||||||
0,
|
|
||||||
'combo',
|
|
||||||
array(
|
|
||||||
__('All pages') => 0,
|
|
||||||
__('Home page only') => 1,
|
|
||||||
__('Except on home page') => 2
|
|
||||||
)
|
|
||||||
);
|
|
||||||
$w->dclatestversionswidget->setting(
|
|
||||||
'content_only',
|
|
||||||
__('Content only'),
|
|
||||||
0,
|
|
||||||
'check'
|
|
||||||
);
|
|
||||||
$w->dclatestversionswidget->setting(
|
|
||||||
'class',
|
|
||||||
__('CSS class:'),
|
|
||||||
''
|
|
||||||
);
|
|
||||||
$w->dclatestversionswidget->setting('offline',__('Offline'),0,'check');
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function publicWidget($w)
|
public static function publicWidget($w)
|
||||||
{
|
{
|
||||||
global $core;
|
global $core;
|
||||||
|
|
||||||
$core->blog->settings->addNamespace('dcLatestVersions');
|
$core->blog->settings->addNamespace('dcLatestVersions');
|
||||||
|
|
||||||
if ($w->offline)
|
if ($w->offline) {
|
||||||
return;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
# Nothing to display
|
if (($w->homeonly == 1 && !$core->url->isHome($core->url->type))
|
||||||
if ($w->homeonly == 1 && $core->url->type != 'default'
|
|| ($w->homeonly == 2 && $core->url->isHome($core->url->type))
|
||||||
|| $w->homeonly == 2 && $core->url->type == 'default'
|
|| $w->text == '') {
|
||||||
|| $w->text == ''
|
return null;
|
||||||
) {
|
}
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Builds to check
|
# Builds to check
|
||||||
$builds = (string) $core->blog->settings->dcLatestVersions->builds;
|
$builds = (string) $core->blog->settings->dcLatestVersions->builds;
|
||||||
$builds = explode(',', $builds);
|
$builds = explode(',', $builds);
|
||||||
if (empty($builds)) {
|
if (empty($builds)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
$li = [];
|
||||||
}
|
foreach($builds as $build) {
|
||||||
|
|
||||||
$li = array();
|
$build = strtolower(trim($build));
|
||||||
foreach($builds as $build) {
|
if (empty($build)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$build = strtolower(trim($build));
|
$updater = new dcUpdate(
|
||||||
if (empty($build)) {
|
DC_UPDATE_URL,
|
||||||
continue;
|
'dotclear',
|
||||||
}
|
$build,
|
||||||
|
DC_TPL_CACHE . '/versions'
|
||||||
|
);
|
||||||
|
|
||||||
$updater = new dcUpdate(
|
if (false === $updater->check('0')) {
|
||||||
DC_UPDATE_URL,
|
continue;
|
||||||
'dotclear',
|
}
|
||||||
$build,
|
|
||||||
DC_TPL_CACHE.'/versions'
|
|
||||||
);
|
|
||||||
|
|
||||||
if (false === $updater->check('0')) {
|
$li[] = sprintf('<li>%s</li>', str_replace(
|
||||||
continue;
|
[
|
||||||
}
|
'%r',
|
||||||
|
'%v',
|
||||||
|
'%u'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
$build,
|
||||||
|
$updater->getVersion(),
|
||||||
|
$updater->getFileURL()
|
||||||
|
],
|
||||||
|
$w->text
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
$li[] = '<li>'.str_replace(
|
if (empty($li)) {
|
||||||
array(
|
return null;
|
||||||
'%r',
|
}
|
||||||
'%v',
|
|
||||||
'%u'
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
$build,
|
|
||||||
$updater->getVersion(),
|
|
||||||
$updater->getFileURL()
|
|
||||||
),
|
|
||||||
$w->text
|
|
||||||
).'</li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($li)) {
|
# Display
|
||||||
|
return $w->renderDiv(
|
||||||
return null;
|
$w->content_only,
|
||||||
}
|
'dclatestversionswidget '. $w->class,
|
||||||
|
'',
|
||||||
# Display
|
($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '') . sprintf('<ul>%s</ul>', implode('',$li))
|
||||||
$res =
|
);
|
||||||
($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
|
}
|
||||||
'<ul>'.implode('',$li).'</ul>';
|
|
||||||
|
|
||||||
return $w->renderDiv($w->content_only,'dclatestversionswidget '.$w->class,'',$res);
|
|
||||||
}
|
|
||||||
}
|
}
|
13
dcstore.xml
Normal file
13
dcstore.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<modules xmlns:da="http://dotaddict.org/da/">
|
||||||
|
<module id="dcLatestVersions">
|
||||||
|
<name>dcLatestVersions</name>
|
||||||
|
<version>2021.08.27</version>
|
||||||
|
<author>Jean-Christian Denis, Pierre Van Glabeke</author>
|
||||||
|
<desc>Show the latest available versions of Dotclear</desc>
|
||||||
|
<file>https://github.com/JcDenis/dcLatestVersions/releases/download/v2021.08.27/plugin-dcLatestVersions.zip</file>
|
||||||
|
<da:dcmin>2.19</da:dcmin>
|
||||||
|
<da:details>http://plugins.dotaddict.org/dc2/details/dcLatestVersions</da:details>
|
||||||
|
<da:section></da:section>
|
||||||
|
<da:support>http://forum.dotclear.org/viewforum.php?id=16</da:support>
|
||||||
|
</module>
|
||||||
|
</modules>
|
Loading…
Reference in a new issue