{"id":1710,"date":"2021-08-07T01:25:57","date_gmt":"2021-08-06T22:25:57","guid":{"rendered":"https:\/\/www.pexlechris.dev\/library-viewer\/?page_id=1710"},"modified":"2026-06-10T12:54:46","modified_gmt":"2026-06-10T09:54:46","slug":"changelog","status":"publish","type":"page","link":"https:\/\/www.pexlechris.dev\/library-viewer\/file-manager\/changelog\/","title":{"rendered":"Changelog"},"content":{"rendered":"\n\n\n\n<h2 class=\"wp-block-heading\">= 1.4.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[New]: <strong>Introduced automatic WP Media Library attachment creation for uploaded files<\/strong>, toggleable via <code>lvfm_create_attachment_for_uploaded_file<\/code> filter (default behavior is false). Additionally, added synchronization between the physical file and its Media Library attachment: if the file is deleted, the corresponding attachment is also removed, and if the file is renamed, the associated Media Library entry is updated accordingly.<\/li>\n\n\n\n<li>[New]: Filter <code>lvfm_folder_tags_delimiter<\/code> introduced. Use it to customize the delimiter used when displaying folder tags.<\/li>\n\n\n\n<li>[New]: Filter<code>lvfm_file_tags_delimiter<\/code> introduced. Use it to customize the delimiter used when displaying file tags.<\/li>\n\n\n\n<li>[Enhancement]: Consolidated all plugin styles into a single stylesheet and enqueue them via the <code>wp_enqueue_scripts<\/code> hook.<\/li>\n\n\n\n<li>[Enhancement]: Code refactor of class <code>Library_Viewer_File_Manager_Init<\/code>.<\/li>\n\n\n\n<li>[Enhancement]: File &amp; Folder tags now support <code>data-tag-name<\/code> html attribute<\/li>\n\n\n\n<li>[Enhancement]: <code>load_plugin_textdomain<\/code> is now hooked to <code>init<\/code> with priority 1 instead of 10.<\/li>\n\n\n\n<li>[Bug Fix]: Prevent mobile browsers from appending .html extension by adding fallback Content-Type header for downloads.<\/li>\n\n\n\n<li>[Enhancement]: File\/folder Tags: <strong>The default delimiter has been changed<\/strong> from a comma (<code>,<\/code>) to a pipe (<code>|<\/code>). Use the <code>lvfm_folder_tags_delimiter<\/code> and <code>lvfm_file_tags_delimiter<\/code> filters to customize the delimiter.<\/li>\n\n\n\n<li>[Bug Fix]: File\/folder Tags: Fixed an issue where double quotes (<code>\"<\/code>) and single quotes (<code>'<\/code>) were being saved with unwanted backslashes (<code>\\<\/code>).<\/li>\n<\/ul>\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">= 1.3.1 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[Bug Fix]: File tags were not synced when a file was renamed. This issue has now been resolved.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.3.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[New]: Ability to add folder tags. Enable this feature using parameter <code>add_folder_tags<\/code><\/li>\n\n\n\n<li>[New]: Ability to add file tags. Enable this feature using parameter <code>add_file_tags<\/code><\/li>\n\n\n\n<li>[New]: <code>lvfm_folder_tags<\/code> and <code>lvfm_file_tags<\/code> hooks introduced, allowing developers to filter the tags of folders &amp; files. More details in the <a href=\"https:\/\/www.pexlechris.dev\/library-viewer\/docs\/hooks\/?library-viewer-file-manager=yes\">Docs<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.2.2 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A relevant message added when a user clicks to upload a file without selecting a file<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.2.1 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to PHP: 8.2<\/li>\n\n\n\n<li>Fix Notice &#8220;Function _load_textdomain_just_in_time was called incorrectly&#8221;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.2.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Required PHP version: 7.0<\/li>\n\n\n\n<li>Tested up to WordPress core version 6.4.5<\/li>\n\n\n\n<li>[New]: <code>lvfm_create_actions<\/code> and <code>lvfm_create_action_{$create_action}<\/code> hooks introduced, allowing developers to register custom create actions (e.g. upload_homework similar to upload_file). More details in the <a href=\"https:\/\/www.pexlechris.dev\/library-viewer\/docs\/hooks\/?library-viewer-file-manager=yes\">Docs<\/a>.<\/li>\n\n\n\n<li>[New]: <code>lvfm_folder_actions<\/code> and <code>lvfm_folder_action_{$folder_action}<\/code> hooks introduced, allowing developers to register custom folder actions (e.g. download_specific_part_of_folder similar to download_folder). More details in the <a href=\"https:\/\/www.pexlechris.dev\/library-viewer\/docs\/hooks\/?library-viewer-file-manager=yes\">Docs<\/a>.<\/li>\n\n\n\n<li>[New]: <code>lvfm_file_actions<\/code> and <code>lvfm_file_action_{$file_action}<\/code> hooks introduced, allowing developers to register custom file actions (e.g. download_as_csv similar to download_file). More details in the <a href=\"https:\/\/www.pexlechris.dev\/library-viewer\/docs\/hooks\/?library-viewer-file-manager=yes\">Docs<\/a>.<\/li>\n\n\n\n<li>[New]: <code>lvfm_action_{$action}<\/code> filter has been introduced. This hook allows developers to override the default Library Viewer File Manager actions (e.g. <code>create_folder<\/code>) or to define actions that should be executed when a new button\/action is registered.<\/li>\n\n\n\n<li>[Enhancement]: The upload form now automatically opens, when a file is dragged over the upload button.<\/li>\n\n\n\n<li>[Enhancement]: Inputs of folder\/file names are full height now (100%)<\/li>\n\n\n\n<li>[Enhancement]: New help methods in class Library_Viewer_Shortcode<\/li>\n\n\n\n<li>[Bug Fix]: Fix warning in PHP 8.0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.1.1 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[New]: lvfm_after_{$action} filter has been introduced.<\/li>\n\n\n\n<li>[New]: Now, also the current\/viewing folder can be downloaded.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.1.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to 5.9.1<\/li>\n\n\n\n<li>[Fix]: Now when downloading a folder as zip, the zip contains the folder, not the contents of the folder as it happens anywhere in the web!<\/li>\n\n\n\n<li>[Fix]: For security reasons, html, htm, shtml files are no longer allowed, in order to prevent uploading files with JS code.<\/li>\n\n\n\n<li>[Fix]: For security reasons, SVG are not allowed to contain javascript, all js inline scripts inside to it are striped upon upload.<\/li>\n\n\n\n<li>[Fix]: From now and then, whitespace at the end and the beginning of names will be trimmed. <\/li>\n\n\n\n<li>[Fix]: Fix php warning when deleting an empty folder.<\/li>\n\n\n\n<li>[Enhancement]: Background aliceblue now applied with only CSS without JS using before pseudo-elements.<\/li>\n\n\n\n<li>[Enhancement]: Typo fixed in ZipArchive_not_installed error message<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.0.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Initial Release<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>= 1.4.0 = = 1.3.1 = = 1.3.0 = = 1.2.2 = = 1.2.1 = = 1.2.0 = = 1.1.1 = = 1.1.0 = = 1.0.0 =<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1670,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"zakra_page_container_layout":"customizer","zakra_page_sidebar_layout":"customizer","zakra_remove_content_margin":false,"zakra_sidebar":"customizer","zakra_transparent_header":"customizer","zakra_logo":0,"zakra_main_header_style":"default","zakra_menu_item_color":"","zakra_menu_item_hover_color":"","zakra_menu_item_active_color":"","zakra_menu_active_style":"","zakra_page_header":true,"footnotes":""},"class_list":["post-1710","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/comments?post=1710"}],"version-history":[{"count":55,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1710\/revisions"}],"predecessor-version":[{"id":2971,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1710\/revisions\/2971"}],"up":[{"embeddable":true,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1670"}],"wp:attachment":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/media?parent=1710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}