Release Notes
Focus: bug fixes, major feature enhancements, and maintenance
This version supports PHP 7.4, 8.0, 8.1, 8.- It’s the first offering PHP 8.1 and 8.2 support. PHP 7.3 support is dropped.
Because the new citation engine uses SQL more efficiently, all bookmarks are deleted at upgrade.
There have been a number of bug fixes, significant maintenance, and security upgrades in this release but the major focus has been feature enhancements. Significant feature enhancements in v6.6.0 include:
- Implementation of a new citation engine to handle citation and bibliography formatting.
- Enhancement of localization options for the citation engine.
- Additional options for citation and bibliography formatting.
- In addition to exporting lists to RTF, export also to HTML.
- The word processor is now part of the core code and no longer a plugin.
Feature enhancements (general)
- Most feature enhancements for this version revolve around implementation of a new citation engine to handle citation and bibliography formatting. Related to this, is an enhancement of localization options for the citation engine. The major changes and improvements for both of these are listed below.
- Auto detection of the domain name when it is set in ‘SERVER_NAME’ header.
- Add links to help during the Install/Upgrade process.
- Improve navigation within lists (e.g., new ‘Return to list’ icon when viewing a single resource from a list).
- Add neutral terms for French and German (du, des, et, und).
- Added a password bypass checkbox to My WIKINDX when editing the user’s details.
- When exporting a list or basket to HTML, the export bibliographic style can now be chosen.
- The max lifetime (in days) of a user session with the ’Remember Me’ option checked is configurable #332.
- When highlighting text (e.g., after a search operation), use syntax. The HTML element uses the existing highlight class in the templates. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark for more details.
- Conform resource languages to locales as described at #300.
- Highlight search results with HTML5 element #484.
- SMTP authentication method can be forced in addition to automatic mode.
- Add more list types for HTMl textareas and the Wordprocessor.
- RTF export has been completely rewritten: the RTF is more accurate and, among other things, nested lists and tables are now possible.
- AVIF image format support #491.
- Ideas can now be stored in a basket that is independent to the resource basket.
- Help messages for configuring uploaded files #279.
- New translation: Danish (with DeepL and Google Translate).
- New translation: Dutch (with DeepL and Google Translate).
- New translation: Greek (with DeepL and Google Translate).
- New translation: Indonesian (with DeepL and Google Translate).
- New translation: Dutch (with DeepL and Google Translate).
- New translation: Japanese (with DeepL and Google Translate).
- New translation: Polish (with DeepL and Google Translate).
- New translation: Portugese (with DeepL and Google Translate).
- New translation: Romanian (with DeepL and Google Translate).
Feature enhancements (specific)
Word Processor
- The word processor has been rewritten and is no longer a plugin but part of the core under the menu ‘Authoring’.
- In addition to RTF export, papers can be exported to HTML.
- RTF export has been improved particularly regarding footnotes and endnotes.
Citation engine
The citation/bibliographic formatting engine and relevant parts of the adminstyle plugin have been completely rewritten and improved in a number of ways including:
- Added special field ‘citePages’ to specific resource types that have page numbering. This is only for incrementing footnotes and incrementing endnotes drawn from cited text where an endnotes/footnotes template is set to ‘citation’.
a) In the case of footnotes, the full footnote template for that resource is used if using ‘citation’, and, in addition to the ‘pages’ field (e.g., article page range in a journal), the ‘citePages’ field can be added to the template. This relates to the specific page(s) cited in the text.
b) In the case of endnotes, the full bibliography template for that resource is used if using ‘citation’, and, in addition to the ‘pages’ field (e.g., article page range in a journal), the ‘citePages’ field can be added to the template. This relates to the specific page(s) cited in the text.
- In all citation templates (in-text and endnote styles), the ‘year’ field can now be replaced with a partial template using ‘year1’ and ‘year2’ fields for specific resource types. ‘year1’ is the original publication year; ‘year2’ is either the reprint year (book-type resources) or the revision year (web_encylopedia-type resources). Thus, an in-text citation can now be, for example,
(Grimshaw-Aagaard 2002-2021)
instead of
(Grimshaw-Aagaard 2021)
and similarly for endnotes.
- Enabled localization for style files. This affects only ordinals for edition numbers, and day of the month, and month names in bibliographic entries.
- Adminstyle plugin: added another option to edition numbers and day of the month: ‘Cardinal + ‘°’).
- Bibliographic style compilers can now add a delimiter to page ranges for citations, footnotes, and bibliographic templates.
- Bibliographic style compilers can now specify normal/superscript/subscript for the ordinal’s extension in edition and day of the month formatting.
- Citations (in-text and endnote styles) can now be automatically repositioned in the sentence such as after the relevant creator name(s), after the relevant quotation, before or after the end of the sentence.
- In-text citations, footnotes/endnotes, and bibliographic entries can now have any subtitle capitalized independently of title capitalization.
- When using a citation style that is either incrementing endnotes or endnotes with the same ID (but NOT ordered by bibliographic ordering), footnotes that are not citations can either be separate footnotes or part of the endnotes. Such footnotes are part of footnotes for incrementing footnotes citation styles and are always footnotes for other styles.
- Added creatorRepeatOverrideFormat field to the Bibliography Creators block in the adminstyle plugin. If using a string to replace names for repeat creators, you can remove formatting in the replaced field.
- Added noMultiplePunctuation field relating to bibliographic/endnotes templates. If template fields are removed because of missing values, punctuation in the fields before and after might lead to unwanted multiple punctuation. In some cases, ensuring the punctuation is conditional on the presence of the missing field or not will solve the problem, or you can trust to WIKINDX to attempt the job by setting this flag.
- Added orderUsePrefix to the Bibliography Order block. When sorting bibliography/endnotes by First Creator, for example, should ‘de Sade’ come before ‘Heidegger’ or after?
- Adminstyle plugin: preview endnote/footnote citations in addition to in-text citations.
- All style files are upgraded when installing the new WIKINDX version.
- Force the plain text paste mode of TinyMCE for specific fields (titles, subtitles…) #428.
- Add field ‘shortTitle’ to footnote/endnote templates.
- Add field ‘creatorSurname’ to footnote/endnote templates. creatorSurname takes precedence over any creator field present.
- Add running time to the audiovisual resource type.
- Running time for audiovisual, film, and broadcast resource types now has seconds and milliseconds fields in addition to hours and minutes.
- Make runningTime format a template rather than a select box—style: files have been updated for this. The WIKINDX style is the only style in the official release that has runningTime in the audiovisual, film, and broadcast bibliography templates.
- Improve formatting of dates (day and month). The bibliographic formatting of dates now uses templates—the style files have been updated.
Localization
Style files now have independent style localization and cite localization settings. The former controls bibliographic output (reference lists) while the latter controls the way text with citations is handled. This means, with cited text such as in resource metadata and especially in the word processor, you can write in, for example, French (e.g., French quotation markers around cited text) and output the reference list in an English style (e.g., English ordinals and dates). The ability to recognize locale-specific quotation markers (along with locale-specific punctuation, abbreviations, number formatting, etc.) is key to the citation engine’s new feature of repositioning citations in the text (see CITATION ENGINE: - above). This requires a) that the [cite] tag is positioned WITHIN the relevant sentence (but, as noted above, the citation engine can reposition the citation at the end) and b) that the [cite] tag relevant to any quoted text is the FIRST [cite] tag appearing AFTER the quotation. The citation engine makes these assumptions because a) it works on a sentence-by-sentence basis and b) it parses the sentences from left to right.
- Added new files for style and cite localizations in core/bibcitation/libs/: STYLELOC.php and CITELOC.php (if you make any enhancements here for your specific locale/language, PLEASE CONTACT THE WIKINDX ADMINS SO THAT WE CAN INTEGRATE YOUR CHANGES INTO THE CORE CODE).
- Improved recognition of author names in the sentence. This is relevant to the use of different templates depending on presence of the name(s) and repositioning the citation after the name(s). The recognition works on all combinations of (first) creators’ firstname(s), initials, prefix(es), and surnames, and includes localized conjunctions, soft punctuation, possessives, and creator abbreviations that are set for the specified locale in CITELOC. For example, for a resource having Mickey Mouse, Donald D. Duck, and de Pluto as first creators, the following are just a few of the combinations that will be recognized assuming the locale in CITELOC is set-up accordingly:
Mouse
Mouse and Duck
Mouse, Duck & Pluto
M. Mouse, D.D. Duck, and de Pluto
Mouse and co-authors
etc.
Bug fix
- When viewing a single resource, ensure all uses of ‘{…}’ to maintain letter case in titles are removed when hovering over ‘View all bibliographic details.’
- Adminstyle plugin: ensure independent fields are a) saved for all resource templates and b) are available, once saved, in the template field of the editor. In this example of part of a resource template,
|%(%|originalPublicationYear%-%|publicationYear|%).%|
the two outer fields (’|%(%|’ and ‘|%).%|’) are independent fields and govern the formatting of the two inner fields taken together.
- Adminstyle plugin: some corrections to style preview relating to revisionYear for web-type sites and articles.
- Bypass the limitations of FILTER_VALIDATE_EMAIL PHP filter which does not accept UTF-8 IDNs (https://bugs.php.net/bug.php?id=69140).
- Restoration of the exception management code of the PHPMailer library: the library does not always honor its “no exceptions” mode.
- Fix warnings for getMusing method of the CMS interface.
- Fix a crash for getParaphrase method of the CMS interface.
- Fix warnings for getQuote method of the CMS interface.
- Fix a wrong data structure for getParaphrase method of the CMS interface.
- Adminstyle plugin: ensure previewCite is working properly.
- Improved citation formatting particularly in-text subsequentCitation checks.
- Add the missing message ‘broadcastYear’ to MESSAGES.
- Fix errors in resource URL edit form.
- Fix a crash during registration confirmation (wrong case of usersListLink field).
- Fix HTTP(S) protocol detection behind a load balancer.
- Fix locale detection for digraphic languages on Windows.
- Work around a MySQL bug. GROUP_CONCAT misbehaves when group_concat_max_len is exactly 1073741824.
- Fix to ordering lists by year.
- Fix a typo in PUBMED import that caused a crash.
- Rationally and clearly deal with session/temp storage data for list operations.
- Fix bundle of attachments in advanced search.
- Fix #434 — the organization functions do not work when viewing a basket.
- Work around a bug on Mac with Zip files (PHP bug #79296).
- Add UTF-8 support to JpGraph error dialog box.
- UTF-8 word wrapping in RtfTexter.
- Warning about non standard CSS zoom property.
- Cleaning disabled user options was broken.
- Store serialized PHP inside BLOB db fields #426.
- Not boolean default value for WIKINDX_LIST_LINK_DEFAULT.
- Allow collection title with an apostrophe #458.
- Fix HTML entities JS decoder (allow selection and copy of values with apostrophe).
- Abbreviate compound name well: Jean-Pierre => J.-P.
- Wrong binary OR operator when the RSS is escaped.
- Wrong self link id in RSS 2.0 format.
- Memory exhaustion on high traffic (missing condition on temp_storage table SELECT query) #486.
- Fix translations on MacOs : replace Gettext internal catalogs by PHP arrays #424 #490.
- Fix bibTeX import using codes such as \textit{…} as per https://sourceforge.net/p/wikindx/discussion/326884/thread/8118eebf6a
- The word processor does not save the change when only the title of a new paper was touched.
- Fixed loading translations on Mac by replacing Gettext with Intl #280 #402 #431.
- Force browser download mode for exported papers.
- Download raw papers in HTML.
- Checking pattern of WIKINDX_MEMORY_LIMIT option didn’t catch numbers.
- Fix the default value of WIKINDX_URL_BASE ("" instead of FALSE).
- Enforce type parameters in CONFIG class.
- Crash when following an author link on statistics page.
Maintenance
- Corrections to all styles relating to bug #2 above.
- Suppress auto response messages from Outlook.
- Update TinyMCE v5.10.5.
- Avoid 301 HTTP error when the admin has not set a override.css file.
- Update to PHPMailer 6.7.1 (PHP 8.1 / 8.2 support #411 #493).
- Update to Smarty 4.3.0 (PHP 8.0, 8.1, 8.2 support #339 #411 #493).
- Tidying up of the bibliographic and citation code.
- Update to jpGraph 4.3.5 (bugfix).
- All bibliographic/citation code is WIKINDX specific (i.e., no longer optional to use defunct OSBib). This simplifies the code somewhat.
- Ensure, when upgrading bibliographic style files, that they (and component.json files) are readable/writeable.
- Upgrade MySQL requirements to v5.7.9.
- Added modules/list/ADVSEARCHFORM to separate form creation from search operation. A +3500-line(!) file was split into two (perhaps more work to do here to aid maintenance).
- PHP 8.1 custom support for JpGraph library #415.
- Speedup the loading of TinyMCE custom plugins.
- Store configDeactivateResourceTypes, configNoSort, configSearchFilter unserialized.
- Use only the user session to generate CMS tags.
- PHP 8.1 support: Return Type Compatibility with Internal Classes #411.
- Softens error messages in case of absence of reference messages.
- Drop PHP 7.3 support.
- Remove legacy code using COM objects on Windows (not working without php_com_dotnet.dll lib).
- Add a fallback challenge if GD library fails.
- Relax errors with trigger_error() when the process can eventually run without crashing #436.
- PHP 8.2 support: Replace utf8_encode and utf8_decode #437.
- Rename usersCookie field to usersAuthRememberMe.
- Merge pdftotext library with core.
- Merge PHPMailer library with core.
- Merge RtfTools library with core.
- Merge Smarty library with core.
- Merge jQuery library with core.
- Merge jsonjs library with core.
- Merge progressbarjs library with core.
- Merge TinyMCE library with core.
- Remove vendor components type (merged with core).
- Rename folders containing translations catalogs (languages => translations).
- Bump component compatibility version of all components (plugins:16): new translation system.
- Removed support for Internet Explorer (EOL since July 2022).
- Update jQuery from v3.6.0 to v3.6.2.
- Remove \UTF8\mb_chr() polyfill.
- Remove \UTF8\code2utf8() polyfill.
- Update JpGraph from v4.3.5 to v4.4.1 (official PHP 8 support).
- Rely only on Intl library (ICU) for i18n (ignore the system locale) #280 #402 #431.
- Store translation catalogs with a custom PHP derivated format instead of gettext #490.
- Allow office.php only in Trunk version mode.
- The WIKINDX_MAX_WRITECHUNK option is no longer useful and has been removed #494.
- The user config was not reloaded immediately after a successful logon #498.
- Help users with messages when config.php is misconfigured.
- Unify methods of logout #285.
- Support the binary and octal format for WIKINDX_MEMORY_LIMIT option #493.
- Simplified PHPMailer update.
Security
- Remove the parseSql() function of the CMS print API.
- Update to Smarty 4.0.3 (CVE-2021-21408).
- Prevent the execution of CLI script via the web server.
- Prevent folder listing with index.php files.
- Add .htaccess rules disallowing access to main and dbschema folders #197.
- Extend the captcha challenge.
- Use a SameSite=Strict cookie policy #320.