diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d4080fc..09710781 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,33 +4,36 @@ - [README](https://github.com/flatpressblog/flatpress/blob/master/README.md): added "help and support" section ## Plugins -- Gallery captions plugin added (see [#108](https://github.com/flatpressblog/flatpress/issues/108)) -- PhotoSwipe plugin added (see [#109](https://github.com/flatpressblog/flatpress/issues/109)) +- Gallery captions plugin added ([#108](https://github.com/flatpressblog/flatpress/issues/108)) +- PhotoSwipe plugin added ([#109](https://github.com/flatpressblog/flatpress/issues/109)) - jQuery plugin: Updated jQuery (3.5.1 => 3.6) and jQueryUI (1.12.1 => 1.13.1) - Media Manager plugin shows 50 items per page, not 10 +- LastComments plugin will not even attempt to delete or rebuild LastComments caches if LastComments plugin is not available ([#43](https://github.com/flatpressblog/flatpress/issues/43)) ## Themes - Leggero - - Fixed searchbox glitch in FlatMaas revisited style (see [#97](https://github.com/flatpressblog/flatpress/issues/97)) - - Fixed missing bullets in preview (see [#98](https://github.com/flatpressblog/flatpress/issues/98)) + - Fixed searchbox glitch in FlatMaas revisited style ([#97](https://github.com/flatpressblog/flatpress/issues/97)) + - Fixed missing bullets in preview ([#98](https://github.com/flatpressblog/flatpress/issues/98)) - CSS of the Leggero style had some glitches on mobile devices - - Invalid HTML output fixed (see [#106](https://github.com/flatpressblog/flatpress/issues/106)) - - Removed unneccessary external font resource (see [#112](https://github.com/flatpressblog/flatpress/issues/112)) - - "Add comment" link has its own line (see [#135](https://github.com/flatpressblog/flatpress/issues/135)) - - Removed legacy/invalid CSS (see [#133](https://github.com/flatpressblog/flatpress/issues/133), [#134](https://github.com/flatpressblog/flatpress/issues/134)) - - Fixed description of Leggero and Leggero v2 styles (see [#137](https://github.com/flatpressblog/flatpress/issues/137)) - - Obsolete bullet points removed (see [#136](https://github.com/flatpressblog/flatpress/issues/136)) - - Updated preview image (see [#139](https://github.com/flatpressblog/flatpress/issues/139)) - -## Bugfixes -- Comment Center config page threw errors (see [#90](https://github.com/flatpressblog/flatpress/issues/90)) + - Invalid HTML output fixed ([#106](https://github.com/flatpressblog/flatpress/issues/106)) + - Removed unneccessary external font resource ([#112](https://github.com/flatpressblog/flatpress/issues/112)) + - "Add comment" link has its own line ([#135](https://github.com/flatpressblog/flatpress/issues/135)) + - Removed legacy/invalid CSS ([#133](https://github.com/flatpressblog/flatpress/issues/133), [#134](https://github.com/flatpressblog/flatpress/issues/134)) + - Fixed description of Leggero and Leggero v2 styles ([#137](https://github.com/flatpressblog/flatpress/issues/137)) + - Obsolete bullet points removed ([#136](https://github.com/flatpressblog/flatpress/issues/136)) + - Updated preview image ([#139](https://github.com/flatpressblog/flatpress/issues/139)) + +## Internationalization - Fixed glitches in Spanish an Portuguese language files +- Fixed wrong pt-br country code ([#100](https://github.com/flatpressblog/flatpress/issues/100)) +- Search page: Month names displayed in configured frontend language ([#132](https://github.com/flatpressblog/flatpress/issues/132)) + +## Other bugfixes +- Comment Center config page threw errors ([#90](https://github.com/flatpressblog/flatpress/issues/90)) - Plugin management page: Removed empty warning messages box -- Fixed wrong pt-br country code (see [#100](https://github.com/flatpressblog/flatpress/issues/100)) -- Fixed error at prev link on first / next link on last entry (see [#95](https://github.com/flatpressblog/flatpress/issues/95)) -- LastComments plugin will not even attempt to delete or rebuild LastComments caches if LastComments plugin is not available (see [#43](https://github.com/flatpressblog/flatpress/issues/43)) -- Logout redirects to home page again (see [#119](https://github.com/flatpressblog/flatpress/issues/119)) -- Fixed disappearing non-Latin characters in page title (see [#49](https://github.com/flatpressblog/flatpress/issues/49) and [#91](https://github.com/flatpressblog/flatpress/issues/91)) +- Fixed error at prev link on first / next link on last entry ([#95](https://github.com/flatpressblog/flatpress/issues/95)) +- Logout redirects to home page again ([#119](https://github.com/flatpressblog/flatpress/issues/119)) +- Fixed disappearing non-Latin characters in page title ([#49](https://github.com/flatpressblog/flatpress/issues/49) and [#91](https://github.com/flatpressblog/flatpress/issues/91)) ## Security - Fixed security issue reported by huntr.dev: Session cookie missed the "secure" flag diff --git a/fp-includes/smarty/plugins/function.html_select_date.php b/fp-includes/smarty/plugins/function.html_select_date.php index e5eb1830..eb4de0fd 100644 --- a/fp-includes/smarty/plugins/function.html_select_date.php +++ b/fp-includes/smarty/plugins/function.html_select_date.php @@ -1,6 +1,8 @@ - * Name: html_select_date
- * Purpose: Prints the dropdowns for date selection. + * Type: function
+ * Name: html_select_date
+ * Purpose: Prints the dropdowns for date selection. * * ChangeLog:
- * - 1.0 initial release - * - 1.1 added support for +/- N syntax for begin - * and end year values. (Monte) - * - 1.2 added support for yyyy-mm-dd syntax for - * time value. (Jan Rosier) - * - 1.3 added support for choosing format for - * month values (Gary Loescher) - * - 1.3.1 added support for choosing format for - * day values (Marcus Bointon) - * - 1.3.2 support negative timestamps, force year - * dropdown to include given date unless explicitly set (Monte) - * - 1.3.4 fix behaviour of 0000-00-00 00:00:00 dates to match that - * of 0000-00-00 dates (cybot, boots) + * - 1.0 initial release + * - 1.1 added support for +/- N syntax for begin + * and end year values. (Monte) + * - 1.2 added support for yyyy-mm-dd syntax for + * time value. (Jan Rosier) + * - 1.3 added support for choosing format for + * month values (Gary Loescher) + * - 1.3.1 added support for choosing format for + * day values (Marcus Bointon) + * - 1.3.2 support negative timestamps, force year + * dropdown to include given date unless explicitly set (Monte) + * - 1.3.4 fix behaviour of 0000-00-00 00:00:00 dates to match that + * of 0000-00-00 dates (cybot, boots) + * * @link http://smarty.php.net/manual/en/language.function.html.select.date.php {html_select_date} - * (Smarty online manual) + * (Smarty online manual) * @version 1.3.4 * @author Andrei Zmievski * @author Monte Ohrt - * @param array - * @param Smarty + * @param + * array + * @param + * Smarty * @return string */ -function smarty_function_html_select_date($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); - require_once $smarty->_get_plugin_filepath('shared','make_timestamp'); - require_once $smarty->_get_plugin_filepath('function','html_options'); - /* Default values. */ - $prefix = "Date_"; - $start_year = strftime("%Y"); - $end_year = $start_year; - $display_days = true; - $display_months = true; - $display_years = true; - $month_format = "%B"; - /* Write months as numbers by default GL */ - $month_value_format = "%m"; - $day_format = "%02d"; - /* Write day values using this format MB */ - $day_value_format = "%d"; - $year_as_text = false; - /* Display years in reverse order? Ie. 2000,1999,.... */ - $reverse_years = false; - /* Should the select boxes be part of an array when returned from PHP? - e.g. setting it to "birthday", would create "birthday[Day]", - "birthday[Month]" & "birthday[Year]". Can be combined with prefix */ - $field_array = null; - /* tags. - If not set, uses default dropdown. */ - $day_size = null; - $month_size = null; - $year_size = null; - /* Unparsed attributes common to *ALL* the tags. - An example might be in the template: all_extra ='class ="foo"'. */ - $all_extra = null; - /* Separate attributes for the tags. */ - $day_extra = null; - $month_extra = null; - $year_extra = null; - /* Order in which to display the fields. - "D" -> day, "M" -> month, "Y" -> year. */ - $field_order = 'MDY'; - /* String printed between the different fields. */ - $field_separator = "\n"; - $time = time(); - $all_empty = null; - $day_empty = null; - $month_empty = null; - $year_empty = null; - $extra_attrs = ''; +function smarty_function_html_select_date($params, &$smarty) { + require_once $smarty->_get_plugin_filepath('shared', 'escape_special_chars'); + require_once $smarty->_get_plugin_filepath('shared', 'make_timestamp'); + require_once $smarty->_get_plugin_filepath('function', 'html_options'); + /* Default values. */ + $prefix = "Date_"; + $start_year = strftime("%Y"); + $end_year = $start_year; + $display_days = true; + $display_months = true; + $display_years = true; + $month_format = "%B"; + /* Write months as numbers by default GL */ + $month_value_format = "%m"; + $day_format = "%02d"; + /* Write day values using this format MB */ + $day_value_format = "%d"; + $year_as_text = false; + /* Display years in reverse order? Ie. 2000,1999,.... */ + $reverse_years = false; + /* + * Should the select boxes be part of an array when returned from PHP? + * e.g. setting it to "birthday", would create "birthday[Day]", + * "birthday[Month]" & "birthday[Year]". Can be combined with prefix + */ + $field_array = null; + /* + * tags. + * If not set, uses default dropdown. + */ + $day_size = null; + $month_size = null; + $year_size = null; + /* + * Unparsed attributes common to *ALL* the tags. + * An example might be in the template: all_extra ='class ="foo"'. + */ + $all_extra = null; + /* Separate attributes for the tags. */ + $day_extra = null; + $month_extra = null; + $year_extra = null; + /* + * Order in which to display the fields. + * "D" -> day, "M" -> month, "Y" -> year. + */ + $field_order = 'MDY'; + /* String printed between the different fields. */ + $field_separator = "\n"; + $time = time(); + $all_empty = null; + $day_empty = null; + $month_empty = null; + $year_empty = null; + $extra_attrs = ''; - foreach ($params as $_key=>$_value) { - switch ($_key) { - case 'prefix': - case 'time': - case 'start_year': - case 'end_year': - case 'month_format': - case 'day_format': - case 'day_value_format': - case 'field_array': - case 'day_size': - case 'month_size': - case 'year_size': - case 'all_extra': - case 'day_extra': - case 'month_extra': - case 'year_extra': - case 'field_order': - case 'field_separator': - case 'month_value_format': - case 'month_empty': - case 'day_empty': - case 'year_empty': - $$_key = (string)$_value; - break; + foreach ($params as $_key => $_value) { + switch ($_key) { + case 'prefix': + case 'time': + case 'start_year': + case 'end_year': + case 'month_format': + case 'day_format': + case 'day_value_format': + case 'field_array': + case 'day_size': + case 'month_size': + case 'year_size': + case 'all_extra': + case 'day_extra': + case 'month_extra': + case 'year_extra': + case 'field_order': + case 'field_separator': + case 'month_value_format': + case 'month_empty': + case 'day_empty': + case 'year_empty': + $$_key = (string) $_value; + break; - case 'all_empty': - $$_key = (string)$_value; - $day_empty = $month_empty = $year_empty = $all_empty; - break; + case 'all_empty': + $$_key = (string) $_value; + $day_empty = $month_empty = $year_empty = $all_empty; + break; - case 'display_days': - case 'display_months': - case 'display_years': - case 'year_as_text': - case 'reverse_years': - $$_key = (bool)$_value; - break; + case 'display_days': + case 'display_months': + case 'display_years': + case 'year_as_text': + case 'reverse_years': + $$_key = (bool) $_value; + break; - default: - if(!is_array($_value)) { - $extra_attrs .= ' '.$_key.'="'.smarty_function_escape_special_chars($_value).'"'; - } else { - $smarty->trigger_error("html_select_date: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - } - } + default: + if (!is_array($_value)) { + $extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"'; + } else { + $smarty->trigger_error("html_select_date: extra attribute '$_key' cannot be an array", E_USER_NOTICE); + } + break; + } + } - if (preg_match('!^-\d+$!', $time)) { - // negative timestamp, use date() - $time = date('Y-m-d', $time); - } - // If $time is not in format yyyy-mm-dd - if (preg_match('/^(\d{0,4}-\d{0,2}-\d{0,2})/', $time, $found)) { - $time = $found[1]; - } else { - // use smarty_make_timestamp to get an unix timestamp and - // strftime to make yyyy-mm-dd - $time = strftime('%Y-%m-%d', smarty_make_timestamp($time)); - } - // Now split this in pieces, which later can be used to set the select - $time = explode("-", $time); + if (preg_match('!^-\d+$!', $time)) { + // negative timestamp, use date() + $time = date('Y-m-d', $time); + } + // If $time is not in format yyyy-mm-dd + if (preg_match('/^(\d{0,4}-\d{0,2}-\d{0,2})/', $time, $found)) { + $time = $found [1]; + } else { + // use smarty_make_timestamp to get an unix timestamp and + // strftime to make yyyy-mm-dd + $time = strftime('%Y-%m-%d', smarty_make_timestamp($time)); + } + // Now split this in pieces, which later can be used to set the select + $time = explode("-", $time); - // make syntax "+N" or "-N" work with start_year and end_year - if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) { - if ($match[1] == '+') { - $end_year = strftime('%Y') + $match[2]; - } else { - $end_year = strftime('%Y') - $match[2]; - } - } - if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) { - if ($match[1] == '+') { - $start_year = strftime('%Y') + $match[2]; - } else { - $start_year = strftime('%Y') - $match[2]; - } - } - if (strlen($time[0]) > 0) { - if ($start_year > $time[0] && !isset($params['start_year'])) { - // force start year to include given date if not explicitly set - $start_year = $time[0]; - } - if($end_year < $time[0] && !isset($params['end_year'])) { - // force end year to include given date if not explicitly set - $end_year = $time[0]; - } - } + // make syntax "+N" or "-N" work with start_year and end_year + if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) { + if ($match [1] == '+') { + $end_year = strftime('%Y') + $match [2]; + } else { + $end_year = strftime('%Y') - $match [2]; + } + } + if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) { + if ($match [1] == '+') { + $start_year = strftime('%Y') + $match [2]; + } else { + $start_year = strftime('%Y') - $match [2]; + } + } + if (strlen($time [0]) > 0) { + if ($start_year > $time [0] && !isset($params ['start_year'])) { + // force start year to include given date if not explicitly set + $start_year = $time [0]; + } + if ($end_year < $time [0] && !isset($params ['end_year'])) { + // force end year to include given date if not explicitly set + $end_year = $time [0]; + } + } - $field_order = strtoupper($field_order); + $field_order = strtoupper($field_order); - $html_result = $month_result = $day_result = $year_result = ""; + $html_result = $month_result = $day_result = $year_result = ""; - $field_separator_count = -1; - if ($display_months) { - $field_separator_count++; - $month_names = array(); - $month_values = array(); - if(isset($month_empty)) { - $month_names[''] = $month_empty; - $month_values[''] = ''; - } - for ($i = 1; $i <= 12; $i++) { - $month_names[$i] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000)); - $month_values[$i] = strftime($month_value_format, mktime(0, 0, 0, $i, 1, 2000)); - } + $field_separator_count = -1; + if ($display_months) { + $field_separator_count++; + $month_names = array(); + $month_values = array(); + if (isset($month_empty)) { + $month_names [''] = $month_empty; + $month_values [''] = ''; + } + // Using the month_names from the FlatPress language files + global $lang; + $replace_month_names = array(); + $replace_month_names [0] = '-'; + $replace_month_value_format = array( + "00", + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12" + ); + $fp_lang_months = array(); + $fp_lang_months = $lang ['date'] ['month']; + $fplm = 0; + for($lm = 1; $lm <= 12; $lm++) { + $replace_month_names [$lm] = $fp_lang_months [$fplm]; + $fplm++; + } + for($i = 1; $i <= 12; $i++) { + $month_names [$i] = $replace_month_names [$i]; + $month_values [$i] = $replace_month_value_format [$i]; + } + // /FlatPress change - $month_result .= '' . "\n"; - $month_result .= smarty_function_html_options(array('output' => $month_names, - 'values' => $month_values, - 'selected' => (int)$time[1] ? strftime($month_value_format, mktime(0, 0, 0, (int)$time[1], 1, 2000)) : '', - 'print_result' => false), - $smarty); - $month_result .= ''; - } + $month_result .= smarty_function_html_options(array( + 'output' => $month_names, + 'values' => $month_values, + 'selected' => (int) $time [1] ? strftime($month_value_format, mktime(0, 0, 0, (int) $time [1], 1, 2000)) : '', + 'print_result' => false + ), $smarty); + $month_result .= ''; + } - if ($display_days) { - $field_separator_count++; - $days = array(); - if (isset($day_empty)) { - $days[''] = $day_empty; - $day_values[''] = ''; - } - for ($i = 1; $i <= 31; $i++) { - $days[] = sprintf($day_format, $i); - $day_values[] = sprintf($day_value_format, $i); - } + if ($display_days) { + $field_separator_count++; + $days = array(); + if (isset($day_empty)) { + $days [''] = $day_empty; + $day_values [''] = ''; + } + for($i = 1; $i <= 31; $i++) { + $days [] = sprintf($day_format, $i); + $day_values [] = sprintf($day_value_format, $i); + } - $day_result .= ''; - } + $day_result .= ''; + } - if ($display_years) { - $field_separator_count++; - if (null !== $field_array){ - $year_name = $field_array . '[' . $prefix . 'Year]'; - } else { - $year_name = $prefix . 'Year'; - } - if ($year_as_text) { - $year_result .= ''."\n"; - $year_result .= smarty_function_html_options(array('output' => $years, - 'values' => $yearvals, - 'selected' => $time[0], - 'print_result' => false), - $smarty); - $year_result .= ''; - } - } + if ($display_years) { + $field_separator_count++; + if (null !== $field_array) { + $year_name = $field_array . '[' . $prefix . 'Year]'; + } else { + $year_name = $prefix . 'Year'; + } + if ($year_as_text) { + $year_result .= '' . "\n"; + $year_result .= smarty_function_html_options(array( + 'output' => $years, + 'values' => $yearvals, + 'selected' => $time [0], + 'print_result' => false + ), $smarty); + $year_result .= ''; + } + } - // Loop thru the field_order field - for ($i = 0; $i <= 2; $i++){ - $c = substr($field_order, $i, 1); - switch ($c){ - case 'D': - $html_result .= $day_result; - break; + // Loop thru the field_order field + for($i = 0; $i <= 2; $i++) { + $c = substr($field_order, $i, 1); + switch ($c) { + case 'D': + $html_result .= $day_result; + break; - case 'M': - $html_result .= $month_result; - break; + case 'M': + $html_result .= $month_result; + break; - case 'Y': - $html_result .= $year_result; - break; - } - // Add the field seperator - if($i < $field_separator_count) { - $html_result .= $field_separator; - } - } + case 'Y': + $html_result .= $year_result; + break; + } + // Add the field seperator + if ($i < $field_separator_count) { + $html_result .= $field_separator; + } + } - return $html_result; + return $html_result; } /* vim: set expandtab: */