diff --git a/CHANGELOG.md b/CHANGELOG.md index b6e3935..411b294 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ periodical 2021.08.xx * update license * update php code to PSR-2 style and short array + * move settings to blog pref periodical 2013.11.11 * Switch to Dotclear 2.6 diff --git a/_admin.php b/_admin.php index e4e13fa..2b44989 100644 --- a/_admin.php +++ b/_admin.php @@ -15,7 +15,16 @@ if (!defined('DC_CONTEXT_ADMIN')) { return null; } -$core->blog->settings->addNamespace('periodical'); +$core->blog->settings->addNamespace('periodical'); + +$core->addBehavior( + 'adminBlogPreferencesForm', + ['adminPeriodical', 'adminBlogPreferencesForm'] +); +$core->addBehavior( + 'adminBeforeBlogSettingsUpdate', + ['adminPeriodical', 'adminBeforeBlogSettingsUpdate'] +); if ($core->blog->settings->periodical->periodical_active) { @@ -70,6 +79,73 @@ class adminPeriodical { public static $combo_period = null; + /** + * Add settings to blog preference + * + * @param dcCore $core dcCore instance + * @param dcSettings $blog_settings dcSettings instance + */ + public static function adminBlogPreferencesForm(dcCore $core, dcSettings $blog_settings) + { + $sortby_combo = [ + __('Create date') => 'post_creadt', + __('Date') => 'post_dt', + __('Id') => 'post_id' + ]; + $order_combo = [ + __('Descending') => 'desc', + __('Ascending') => 'asc' + ]; + + $s_active = (boolean) $blog_settings->periodical->periodical_active; + $s_upddate = (boolean) $blog_settings->periodical->periodical_upddate; + $s_updurl = (boolean) $blog_settings->periodical->periodical_updurl; + $e_order = (string) $blog_settings->periodical->periodical_pub_order; + $e_order = explode(' ', $e_order); + $s_sortby = in_array($e_order[0], $sortby_combo) ? $e_order[0] : 'post_dt'; + $s_order = isset($e_order[1]) && strtolower($e_order[1]) == 'desc' ? 'desc' : 'asc'; + + echo + '

' . __('Periodical') . '

' . + '
' . + '
' . + '
' . __('Activation') . '
' . + '

' . + '
' . __('Dates of published entries') . '
' . + '

' . + '

' . + '
' . + '
' . + '
' . __('Order of publication of entries') . '
' . + '

' . + form::combo('periodical_sortby', $sortby_combo, $s_sortby) . '

' . + '

' . + form::combo('periodical_order', $order_combo, $s_order) . '

' . + '
' . + '
' . + '
' . + '
'; + } + + /** + * Save blog settings + * + * @param dcSettings $blog_settings dcSettings instance + */ + public static function adminBeforeBlogSettingsUpdate(dcSettings $blog_settings) + { + $blog_settings->periodical->put('periodical_active', !empty($_POST['periodical_active'])); + $blog_settings->periodical->put('periodical_upddate', !empty($_POST['periodical_upddate'])); + $blog_settings->periodical->put('periodical_updurl', !empty($_POST['periodical_updurl'])); + $blog_settings->periodical->put('periodical_pub_order', $_POST['periodical_sortby'] . ' ' . $_POST['periodical_order']); + } + /** * Favorites. * diff --git a/_config.php b/_config.php deleted file mode 100644 index 7c1ab18..0000000 --- a/_config.php +++ /dev/null @@ -1,105 +0,0 @@ -getURL() . '#plugins' : $_REQUEST['redir']; - -# -- Combos -- -$sortby_combo = [ - __('Create date') => 'post_creadt', - __('Date') => 'post_dt', - __('Id') => 'post_id' -]; -$order_combo = [ - __('Descending') => 'desc', - __('Ascending') => 'asc' -]; - -# -- Get settings -- -$core->blog->settings->addNamespace('periodical'); -$s = $core->blog->settings->periodical; - -$s_active = (boolean) $s->periodical_active; -$s_upddate = (boolean) $s->periodical_upddate; -$s_updurl = (boolean) $s->periodical_updurl; -$e_order = (string) $s->periodical_pub_order; -$e_order = explode(' ', $e_order); -$s_sortby = in_array($e_order[0], $sortby_combo) ? $e_order[0] : 'post_dt'; -$s_order = isset($e_order[1]) && strtolower($e_order[1]) == 'desc' ? 'desc' : 'asc'; - -# -- Set settings -- -if (!empty($_POST['save'])) { - try { - $s_active = !empty($_POST['s_active']); - $s_upddate = !empty($_POST['s_upddate']); - $s_updurl = !empty($_POST['s_updurl']); - $s_sortby = $_POST['s_sortby']; - $s_order = $_POST['s_order']; - - $s->put('periodical_active', $s_active); - $s->put('periodical_upddate', $s_upddate); - $s->put('periodical_updurl', $s_updurl); - $s->put('periodical_pub_order', $s_sortby . ' ' . $s_order); - - $core->blog->triggerBlog(); - - dcPage::addSuccessNotice( - __('Configuration has been successfully updated.') - ); - http::redirect($list->getURL( - 'module=periodical&conf=1&redir=' . $list->getRedir() - )); - } catch (Exception $e) { - $core->error->add($e->getMessage()); - } -} - -# -- Display form -- -echo ' - -
-

' . __('Activation') . '

- -

- -
- -
-

' . __('Dates of published entries') . '

- -

- -

- -
- -
-

' . __('Order of publication of entries') . '

- -

' . -form::combo('s_sortby', $sortby_combo, $s_sortby) . '

- -

' . -form::combo('s_order', $order_combo, $s_order) . '

- -
'; \ No newline at end of file diff --git a/index.php b/index.php index 830c448..4706c10 100644 --- a/index.php +++ b/index.php @@ -812,9 +812,6 @@ dcPage::helpBlock('periodical'); # Page footer echo '

-' . __('Configuration') . ' - periodical - '. $core->plugins->moduleInfo('periodical', 'version') . '  ' . __('periodical') . '