=== Library Viewer ===
Contributors: pexlechris
Plugin Name: Library Viewer
Plugin URI: https://www.pexlechris.dev/library-viewer
Author: Pexle Chris
Author URI: https://www.pexlechris.dev
Tags: FTP, file manager, file list, download manager
Version: 3.2.0
Stable tag: 3.2.0
Requires at least: 3.0.0
Tested up to: 6.9
Requires PHP: 7.0
Tested up to PHP: 8.2
License: GPLv2
License URI: http://www.gnu.org/licenses/gpl-2.0.html
A File & Folder Viewer for FTP folders, enabling the display of library contents (folders & files) on the front-end.
== Description ==
Spoiler:
[LIBRARY VIEWER FOR WOOCOMMERCE ADD-ON](https://www.pexlechris.dev/library-viewer/for-woocommerce/) has been released! Check it ;-)
With Library Viewer, you can display the containing files and the containing folders of a "specific folder" of your (FTP) server to your users in the front-end.
The **significant difference** from other similar plugins is that:
1. You can allow users to **view that the files exist**, but **cannot open them if they are not logged in** (or if they are not administrators, or authors etc...).
2. You can allow users to view files in a **custom viewer or redirect them** through a RESTful web service of your choice(examples exists below).
[DEMO](https://www.pexlechris.dev/library-viewer/demo-wp)
For this plugin (the free version), the "specific folder" is the folder
"library" of your httpdocs(yoursite.com/library).
If you want to display other folder (and its files) that isn't contained in yoursite.com/library , you need to use the path parameter of [Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp).
This plugin adds the [library-viewer] shortcode in your WordPress site!
So the only thing that you must do to display the folders and files in the front-end is to add this shortcode in a post, page, widget etc.
The [library-viewer] shortcode get **optional parameters** that extend the functionality of plugin:
== Parameters Documentation ==
[PARAMETERS DOCUMENTATION AND USE CASES](https://www.pexlechris.dev/library-viewer/parameters-wp)
**PARAMETERS OF LIBRARY VIEWER**
* **have_file_access** (have_file_access parameter determines which user have access to view the files.)
* **my_doc_viewer** (my_doc_viewer parameter determines in which viewer the file will be opened.)
* **login_page** (login_page parameter defines the login page that user will be redirected -if need it-, to log in.)
**PARAMETERS OF [LIBRARY VIEWER FOR WOOCOMMERCE](https://www.pexlechris.dev/library-viewer/for-woocommerce/)**
* **have_file_access="customer_with_folder_access"** (The `customer_with_folder_access` value for the `have_file_access` parameter grants access to users who have purchased a product with folder access.)
* **sold_on** (sold_on parameter specifies which product must be purchased in order to gain folder access.)
**PARAMETERS OF [LIBRARY VIEWER PRO](https://www.pexlechris.dev/library-viewer/pro-wp)**
* **path** (path determines which folder to display in the Library on the front end. When we refer to a "folder," we mean the folder's contents, including any subfolders and files within it.)
* **guest_view_access** (guest_view_access determines if guest users can view folder contents. By default, all users can see folder contents, but they cannot open files.)
* **waiting_seconds** (waiting_seconds parameter sets the seconds of user is waiting the redirection to login and see the file (0: for instant redirect).)
* **breadcrumb** (breadcrumb parameter determines if breadcrumb will be displayed in the Library in front-end or not.)
* **hidden_folders** (hidden_folders determines which folders will not be displayed and will not be accessible by Library in the front-end.)
* **shown_folders** (shown_folders parameter determines which folders will be displayed and will be accessible by Library in the front-end.)
* **hidden_files** (hidden_files determines which files will not be displayed and will not be accessible by Library in the front-end.)
* **shown_files** (shown_files parameter determines which files will be displayed and will be accessible by Library in the front-end.)
* **url_suffix** (url_suffix allow you to add a suffix in the URL, so you can use the [library-viewer] shortcode more than one time in the same page.)
**PARAMETERS OF [LIBRARY VIEWER FILE MANAGER ADD-ON](https://www.pexlechris.dev/library-viewer/fm-wp)**
* **delete_folder** (delete_folder parameter determines which user can delete a folder.)
* **delete_file** (delete_file parameter determines which user can delete a file.)
* **rename_folder** (rename_folder parameter determines which user can rename a folder.)
* **rename_file** (rename_folder parameter determines which user can rename a file.)
* **create_folder** (create_folder parameter determines which user can create a folder.)
* **upload_file** (upload_file parameter determines which user can upload a file.)
* **unzip_file** (unzip_file parameter determines which user can unzip a zip file.)
* **download_folder** (download_folder parameter determines which user can download a folder as a zip file.)
* **download_file** (download_file parameter determines which user can download a file.)
[PARAMETERS DOCUMENTATION AND USE CASES](https://www.pexlechris.dev/library-viewer/parameters-wp)
== Hooks Documentation ==
From 2.0.0 version and then, there are many hooks that you can customize the functionality of this plugin.
You can read more in [HOOKS DOCUMENTATION](https://www.pexlechris.dev/library-viewer/hooks-wp)
Read also [how to add PHP hooks in your WordPress Site in my blog](https://www.pexlechris.dev/how-to-add-php-hooks-in-your-wordpress-site)
== Other Details ==
* The algorithm does not show in the front-end folders that contains in their name the string "hidden-folder".
Also does not show .php , .ini files and files that contains in their name the string "hidden-file".
So if you don't want to display an existing folder or file, you can rename it appropriately!
In addition, With **Library Viewer Pro**, you can **set the names that you don't (and you do) want to be displayed** in the front-end using appropriate shortcode parameters.
* If you want to add text above the front-end folders or below the front-end files, view more in the FAQ below.
* In addition, with the **[LIBRARY VIEWER PRO](https://www.pexlechris.dev/library-viewer/pro-wp)** you can,
- customize the URLs of library viewer, with the hooks and the parameters.
- you can display folders & files of a directory (in FTP) of your choice, **not only library directory** (yoursite.com/library)
- you can hide the breadcrumb with just a shortcode parameter.
- you can show/hide the folders and files of your choice.
* Also, with the **[LIBRARY VIEWER FOR WOOCOMMERCE ADD-ON](https://www.pexlechris.dev/library-viewer/for-woocommerce/)** you can,
- give the ability to you users to **gain folder access** to a Library (to a page with the Library Viewer shortcode installed), just **buying** a virtual/with-folder-access product.
* Finally, with the **[LIBRARY VIEWER FILE MANAGER ADD-ON](https://www.pexlechris.dev/library-viewer/fm-wp)** you can,
- give the ability to your users to have their own library and to upload and edit files.
- use the library as file manager for your admins (you may need also Library Viewer Pro, and to restrict the WP page from other users)
== Screenshots ==
1. library folder must be located in the root of your FTP server
2. Not all files and folders are displaying in the front-end Library Viewer because of their special names (hidden-folder, hidden-file, .php etc.)
3. The string-value of the $text_at_beginning variable is displayed between the breadcrumb and the folders, the string-value of the $text_at_end variable is displayed below the folders & files.
4. With Library Viewer File Manager Add-On, you can give the ability to some of your users to manage the library from the front-end.
== Frequently Asked Questions ==
= Can I forbid the direct access in the files of the library? I want only via library files can be accessible. =
With Library Viewer Pro, you can! See this support topic: [wordpress.org/support/topic/executable-pdf-file](https://wordpress.org/support/topic/executable-pdf-file/)
= How can I deny users to execute php files in folders of my library? =
You need to add the following code in the .htaccess file of the folder that you want to deny users execute php files
`
deny from all
`
= Can I hide an existing folder or file of FTP folder from the front-end library? =
Yes. Please read carefully the section "Other Details" of plugin.
= Are there shortcode examples? =
You can test your own use cases in the [DEMO](https://www.pexlechris.dev/library-viewer/demo-wp)
= Which Page Builders are compatible with Library Viewer? =
Library Viewer have been tested with TinyMCE (Classic Editor), Gutenberg, WPBakery, Visual Composer, Elementor and works fine!
Generally can be used, everywhere that shortcodes are accepted...
= Library Viewer does not work properly and/or I get some ERRORS. Why? =
- Check your permalinks PLAIN PERMALINKS ARE NOT SUPPORTED. Please change your permalink from /wp-admin/options-permalink.php to something else.
- Check the folders' and files' read permissions (safe choice is to use 644)
- If you use the plugin **Remove Uppercase Ascents** and a CSS code like *.library-viewer--folder{text-transform: uppercase;}* maybe this cause the problem. The solution in this case is to use instead this CSS code: .library-viewer--folder h3 a{text-transform: uppercase;}
- Check if the file or folder has special characters in its name. Some are not supported as names of folders and files such as %.
In this case, contact me via [email](mailto:info@pexlechris.dev) or via [support forum](https://wordpress.org/support/plugin/library-viewer/) to find a solution!
- If you use the plugin **Remove Uppercase Ascents** and a CSS code like *.library-viewer--folder{text-transform: uppercase;}* maybe this cause the problem. The solution in this case is to use instead this CSS code: .library-viewer--folder h3 a{text-transform: uppercase;}
- For other problems, you can open a support ticket in [support forum](https://wordpress.org/support/plugin/library-viewer/)
= Can I add my custom text inside a folder of front-end library viewer? =
Yes. If you want to add text above the front-end folders or below the front-end files, you can create via FTP a file with name "include.php" in the FTP folder that you want texts to be shown in front-end.
HTML tags are allowed!
Your texts must be values of php variables ($text_at_beginning , $text_at_end respectively) as you can see below:
`
`
Also, you can use the hooks `lv_folder_text_at_beginning` and `lv_folder_text_at_end` respectively for this scope.
= How to upload files and create new folders? =
You can do this via FTP/cPanel or you can buy the **[Library Viewer File Manager Add-on](https://www.pexlechris.dev/library-viewer/fm-wp)** to manage the folder from the front-end.
= Is Library Viewer' file viewer supports all mime types (file extensions)?
From 1.1.2, the Library Viewer' file viewer supports all mime types that wordpress supports.
These that included in the function: wp_get_mime_types()
If you want to add support for mime types that are not included, use the WP filter: lv_mime_types to include them.
Read more in [HOOKS DOCUMENTATION](https://www.pexlechris.dev/library-viewer/hooks-wp#lv_mime_types)
Read also [how to add PHP hooks in your WordPress Site in my blog](https://www.pexlechris.dev/how-to-add-php-hooks-in-your-wordpress-site)
= I want all files to be downloaded. Is that possible?
Yes, you need to use the Library Viewer' file viewer (my_doc_viewer="library-viewer") and to add the following hook in your functions.php
`
add_filter('lv_mime_types', function(){
return array();
});
`
Read [how to add PHP hooks in your WordPress Site in my blog](https://www.pexlechris.dev/how-to-add-php-hooks-in-your-wordpress-site)
= Can I change the colors or the fonts that plugin uses? =
Yes. But only with plain CSS at the moment. So you can add your custom css from WP customizer (from Additional CSS)
= I have a proposal for a new functionality of this plugin. Can I suggest it to you? =
Yes. I need new ideas to improve my plugin. Send it to me via email or via [support forum](https://wordpress.org/support/plugin/library-viewer/)
== Installation ==
1. Download the plugin from [Official WP Plugin Repository](https://wordpress.org/plugins/library-viewer/)
2. Upload Plugin from your WP Dashboard ( Plugins>Add New>Upload Plugin ) the library-viewer.zip file.
3. Activate the plugin through the 'Plugins' menu in WordPress Dashboard
4. Add to a new or existing page/post (or widget etc.) the shortcodes [library-viewer] with the parameters of your choice.
5. Create the folder library and put files and folders there.
== Changelog ==
= 3.2.0 =
* Tested up to WP: 6.9
* [Security Fix]: XSS fix. Please update now.
= 3.1.0 =
* Tested up to WP: 6.8.1
* [Bug Fix]: The URL structure has been updated — `dir` GET parameter now displays slashes (`/`) instead of their encoded form (`%2F`).
= 3.0.4 =
* [Bug Fix]: Avoid some errors when file classes are loaded without loading at current page
= 3.0.3 =
* [Bug Fix]: Fixed a PHP warning `Undefined array key "abspath"`, which occurred when viewing a file.
= 3.0.2 =
* Tested up to WP: 6.7.2
* [Bug Fix]: Fixed a bug introduced in version 3.0.0 where a hook was loaded on the default WP login page, causing a blank page in some cases.
* [New]: Added a new static method `Library_Viewer_Init::is_frontend()` to determine when the above hooks should be loaded.
= 3.0.1 =
* [Bug Fix]: Fixed a bug introduced in version 3.0.0 where a user was not being redirected to the file after logging in via a custom login page when using the `login_page` shortcode parameter.
= 3.0.0 =
* [New Feature]: If the page contains only one shortcode in its content, the current folder name is now prepended to the document title. The `lv_prepend_document_title` action handles this.
* [New Feature]: From now and then, with Library Viewer Pro you can **display any folder of your server** you want! Previously, only folders of the WP installation could be displayed. For more ask in the support forum!
* [New]: Introduced global variable `$library_viewer_object`, which stores the shortcode object after shortcode execution or when a file is being viewed.
* [New]: New class global abspath. Default value is the WP constant ABSPATH, the absolute path of WordPress installation.
* [New]: `lv_prepend_document_title` filter introduced. Used to prepend the current folder in document title parts.
* [New]: `lv_folder_name` filter introduced. With this filter, you can filter the name of a folder. See more details in docs.
* [New]: `lv_breadcrumb_item_html` filter introduced. With this filter, you can filter html of each breadcrumb item. See more details in docs.
* [New]: Library Viewer inner action (not WP action) `enqueue_scripts` introduced, in order all addons be able to enqueue shortcode scripts more efficiently.
* [New]: Library Viewer inner action (not WP action) `enqueue_styles` introduced, in order all addons be able to enqueue shortcode styles more efficiently.
* [New]: Now styles and scripts are enqueued in WP hook wp_enqueue_scripts with callback shortcode class method `enqueue_styles_and_scripts`!
* [New]: New public method `Library_Viewer_Shortcode::get_single_shortcode_attrs()`
* [New]: New public method `Library_Viewer_Shortcode::get_page_shortcodes_matches()`
* [New]: New public method `Library_Viewer_Shortcode::get_page_shortcodes_counter()`
* [New]: New public method `Library_Viewer_Shortcode::get_current_folder()`
* [New]: New public method `Library_Viewer_Shortcode::get_breadcrumb_items()`
* [New]: New public method `Library_Viewer_Shortcode::get_globals()`
* [Enhancement]: Make shortcode & file classes to be loading **after init hook with priority 100 only in front-end** and not when shortcode is executed.
* [Enhancement]: Change inheritance of `protected` method `get_current_page_url()` to `public`.
* [Bug Fix]: A notice has been added for when Library Viewer is incompatible with Library Viewer for WooCommerce.
* [Deprecated]: `lv_before_breadcrumb_start` action has been deprecated. You can use filter lv_breadcrumb_html to **return** the HTML you want.
* [Deprecated]: `lv_after_breadcrumb_start` action has been deprecated. You can use filter lv_breadcrumb_html to **return** the HTML you want.
* [Deprecated]: `lv_after_breadcrumb_end` action has been deprecated. You can use filter lv_breadcrumb_html to **return** the HTML you want.
* [Deprecated]: `lv_before_breadcrumb_end` action has been deprecated. You can use filter lv_breadcrumb_html to **return** the HTML you want.
* [Removed]: The global variable `LIBRARY_VIEWER_SHORTCODE` has been removed. You can replace it with `$GLOBALS['library_viewer_object']?->get_globals()`.
* [Removed]: Library_Viewer_Init::get_library_viewer_file_identifier() static method removed. Use `apply_filters('lv_file_identifier', 'LV')` to get fil identifier.
* [Removed]: The following deprecated hooks that are deprecated in version 2.0.0 has been removed: `LV__folder_was_viewed`, ``LV__file_was_viewed`, `LV__mime_types`, `wp_get_mime_types`, `LV__array_replace_to__in_filenames`, `LV__array_replace_from__in_foldernames`, `LV__array_replace_from__in_filenames`, `LV__folder_html`, `LV__file_html`
* [Removed]: The protected properties of `Library_Viewer_Shortcode` (and its child classes), `shortcode_class_names`, `file_viewer_class_names`, and `all_class_names` have been removed and replaced by the `class_names` property.
= 2.0.10 =
* Tested up to WP: 6.7.1
* [Bug Fix]: Resolved a minor issue in Library Viewer Pro when used with Library Viewer for WooCommerce.
= 2.0.9 =
* [Bug Fix]: Fix translation text domain
= 2.0.8 =
* Tested up to PHP: 8.2
* Tested up to WP: 6.6.2
* [New]: New filter lv_display_errors to restrict access to a folder. See more details in docs.
* [Enhancement]: Combine all CSS files into a single file to improve the UI for first-time content loading.
* [Enhancement]: Fixed deprecated notices in non-standard environments or command-line scripts for server variables when using PHP 8.2.
* [Enhancement]: Remove $GLOBALS['library_viewer_file_identifier'] and change it with static method Library_Viewer_Init::get_library_viewer_file_identifier()
* [Enhancement]: Update Language pot (translation template) file
* [Enhancement]: Rename Library_Viewer_Shortcode::hook() protected method to Library_Viewer_Shortcode::filter() and introduce Library_Viewer_Shortcode::action() method.
* [CHANGELOG FIX]: lv_restrict_folder_access filter was never included in Library Viewer and its plugins codebase,
instead in Library Viewer Pro introduced **guest_view_access parameter** and **global have_folder_access** that can be filtered with a WP hook
= 2.0.7 =
* Tested up to WP: 6.6.1
* Tested up to PHP: 8.1
* New Required PHP version: 7.0
* [New]: Ability to change or unset (passing empty value) the default folder icon.
Just add in lv_containing_folders in each folder value for folder_icon_html. See docs of hook lv_containing_folders for more.
* [New]: Ability to change or unset (passing empty value) the default file icon (default file icon is a span with no content).
* [New]: New global have_folder_access. Determines who have access to folder contents. Can be filtered with WP hook with Library Viewer Pro!
* [Enhancement]: New help methods in class Library_Viewer_Shortcode
* [Enhancement]: In function lv_error_message(), need_to_login_button, go_back_button cases have been added in order to give the ability to developer to use them.
* [Enhancement]: In filter lv_error_message, $s and $s2 have been added as filter's parameters, because in some cases these strings are used in order to replace the %s in translation strings.
= 2.0.6.3 =
* [Bug Fix]: Fix bug of Library Viewer Pro, if path parameter contains spaces.
= 2.0.6.2 =
* [Bug Fix]: Fix of not playing mp4/mp3 files in some cases.
= 2.0.6.1 =
* Tested up to WP 6.2
* Potential vulnerability fixed: This could allow a malicious actor to redirect users from one site to the other due to the redirect URL not being validated. Users could be tricked to visiting a legitimate site to then be redirected to a malicious site and cause a phishing incident.
* Potential vulnerability fixed: The plugin did not validate and escape some of its shortcode attributes before outputting them back in a page/post where the shortcode is embed, which could allow users with the contributor role and above to perform Stored Cross-Site Scripting attacks.
* Thanks [Mika](https://www.buymeacoffee.com/mikadminfr) for reporting issues
= 2.0.6 =
* Tested up to WP 6.1.1
* Required PHP: 5.6
* [Bug Fix]: Fix of logout conflict in some cases.
= 2.0.5 =
* [New]: 2 new globals values added in the File class. file_folder_real_path, file_folder_abs_path
* [New]: html attribute `library-viewer-name` has been added in the div with class `library-viewer--container`
* [Enhancement]: Better message if a shortcode used more than 1 times in the same page.
* [Bug Fix]: Fix a minor php warning when viewing a file with plugin's file viewer
* [Bug Fix]: Compatibility fixed with Library Viewer Pro
= 2.0.4 =
* Tested up to WP 5.9.2
* [Bug Fix]: Compatibility fixed with Library Viewer File Manager Add-On
* [Bug Fix]: Load textdomain in order to be able to get translations from wordpress.org
= 2.0.3 =
* Tested up to WP 5.8.1
* [New]: `lv_filter_global_{$parameter}` filter introduced. With this filter, you can filter the parameters BEFORE the rest globals' initialization.
* [New]: `lv_breadcrumb_html` filter introduced. With this filter, you can filter the html of whole breadcrumb.
* [New]: If `library` folder doesn't exist, will be created automatically when the shortcode will called in the front-end.
* [Bug Fix]: In the $globals array that was passed in the hooks, value `current_viewer` was not existed. Now exists.
* [Enhancement]: /languages/library-viewer.pot language template file has been created.
* [Enhancement]: On the filter `lv_file_anchor_html`, the variable $file_anchor_href has been also added in the array $file (2nd parameter). View hook' documentation for more info.
* [Enhancement]: `.library-viewer--folder h3{margin-top: 0; display: inline-block;}` css has been added.
* [Enhancement]: $file_abs_path is added in the $all_files parameter ( $all_files['file_abs_path'] ) in the parameters of hooks: lv_containing_files, lv_file_icon_html, lv_file_html, lv_before_file, lv_after_file.
* [Enhancement]: File icon element has been moved into the html element.
* [Deprecated]: The filter `lv_shortcode_class_name` has been replaced by `lv_shortcode_class_names`. This is an advanced hook...
* [Deprecated]: The filter `lv_file_viewer_class_name` has been replaced by `lv_file_viewer_class_names`. This is an advanced hook...
= 2.0.2 =
* [Deprecated]: `breadcrumb` value has been removed from Library Viewer globals parameter of all hooks. From now, there is only in Library Viewer Pro's hooks
* [Bug Fix]: Fix compatibility with Library Viewer Pro 2.0.1
= 2.0.1 =
* [Bug Fix]: Fix bug of Library Viewer Pro. Files weren't opened...
= 2.0.0 =
* Tested up to WP 5.7
* [Enhancement]: Add compatibility for symbols #, ? for file names and folder names of your library
* [Enhancement]: Security update: Hidden folders (that have in their name the string 'hidden-folder') and hidden-files (that have in their name the string 'hidden-ile'), now,
are not accessible, if you know the full path of the hidden folder/file.
* [Enhancement]: Now the file link is being encoded and then is appended to the `my_doc_viewer` parameter. If you don't want to be encoded use `lv_my_doc_viewer_file_encoded` filter.
* [Deprecated]: `library-viewer--current-breadcrumb-item` class removed from breadcrumb current item. Replaced with the CSS rule `.library-viewer--breadcrumb-item:last-of-type`
Hooks:
* [Deprecated]: `LV__folder_was_viewed` action replaced with `lv_folder_was_viewed` action.
* [Deprecated]: `LV__array_replace_to__in_foldernames` filter replaced with `lv_folder_fake_path_symbols` filter.
* [Deprecated]: `LV__array_replace_from__in_foldernames` filter replaced with `lv_folder_real_path_symbols` filter.
* [Deprecated]: `LV__array_replace_to__in_filenames` filter replaced with `lv_file_fake_path_symbols` filter.
* [Deprecated]: `LV__array_replace_from__in_filenames` filter replaced with `lv_file_real_path_symbols` filter.
* [Deprecated]: `LV__folder_html` filter replaced with `lv_folder_html` filter.
* [Deprecated]: `LV__file_html` filter replaced with `lv_file_html` filter.
* [Deprecated]: `LV__file_was_viewed` filter replaced with `lv_file_was_viewed` filter.
* [New]: `lv_file_identifier` filter introduced. With this you can change the '/LV/' that is the part of URL of a file.
* [New]: `lv_before_breadcrumb_start` action introduced.
* [New]: `lv_after_breadcrumb_start` action introduced.
* [New]: `lv_breadcrumb_folder_delimiter_html` action introduced. You can change the delimiter of folders of breadcrumb.
* [New]: `lv_breadcrumb_items` action introduced. With this filter, you can alter the breadcrumb items, for example the folder name and folder fake link.
* [New]: `lv_before_breadcrumb_end` action introduced.
* [New]: `lv_after_breadcrumb_end` action introduced.
* [New]: `lv_empty_folder_html` filter introduced. If the current folder contains neither files nor folders, an equivalent message will be displayed an with filter. With this filter you can change it.
* [New]: `lv_folder_text_at_beginning` filter introduced. This filter allow us to add or change the text at beginning of the folder, i.e. the text before the first containing folder.
* [New]: `lv_containing_folders` filter introduced. Containing folders of current folder filter.
* [New]: `lv_folder_icon_html` filter introduced. Used to filter the html of folder icon.
* [New]: `lv_folder_html` filter introduced. Used to filter the html output of printed folder.
* [New]: `lv_before_folder` action introduced.
* [New]: `lv_after_folder` action introduced.
* [New]: `lv_containing_files` filter introduced. Containing files of current folder filter.
* [New]: `lv_file_icon_html` filter introduced. Used to set a file icon using php.
* [New]: `lv_file_html` filter introduced. Used to filter the html output of printed file.
* [New]: `lv_before_file` action introduced.
* [New]: `lv_after_file` action introduced.
* [New]: `lv_folder_text_at_end` filter introduced. This filter allow us to add or change the text at end of the folder, i.e. the text after the last containing file.
* [New]: `lv_folder_was_viewed` action introduced. Do some actions if a folder was accessed/viewed.
* [New]: `lv_file_was_viewed` action introduced. Do some actions if a file was accessed/viewed.
* [New]: Filter `lv_my_doc_viewer_file_encoded` introduced. With this filter you can determine if the file will be appended to `my_doc_viewer` as encoded or not default is true (encoded).
* [New]: Filter `lv_mime_types` introduced. If you want to add support for mime types that are not included, use this filter.
= 1.2.3 =
* Tested up to WP 5.6
* [Enhancement]: In filter `LV__folder_html` introduced the $attributes parameter
* [New]: filter `LV__file_html` introduced
= 1.2.2 =
* Tested up to WP 5.5.3
* [Enhancement]: Change Library Viewer Pro URL in plugins' page on dashboard
= 1.2.1 =
* [Bug Fix]: False Positive: shortcode [library-viewer] seams to be used more than 1 times in the same page, but not
= 1.2.0 =
* Tested up to WP 5.5.1
* [New]: LV__folder_was_viewed wordpress action was added in the code
* [Enhancement]: From 1.2.0, the shortcode settings are saved in database, not in files. Also, the folder /wp-content/uploads/library-viewer will be deleted!
* [Bug Fix]: Now Library Viewer' shortcode is supported in the homepage too
* [New]: library-viewer has been added to the available values that my_doc_viewer can get
* [Bug Fix in PRO]: The shortcode [library-viewer] cannot be used more than 1 times in the same page. This feature is available in Library Viewer Pro
= 1.1.2 =
* LV__mime_types wordpress filter was added in the code
* LV__file_was_viewed wordpress action was added in the code
* Tested up to WP 5.4.2
= 1.1.1 =
* Some errors has been fixed!
= 1.1.0 =
* now is possible to restrict users from open files by a **capability** using the have_file_access parameter
* php die() replaced by wp_die() for more pretty messages
* enhancement in code
* delete folder library-viewer of your uploads folder on uninstall
* now you can more easily add an icon in the front of a file using CSS
= 1.0.7 =
* Library Viewer has been tested up to WP 5.3.2
* PHP Notices fixed
= 1.0.6 =
* Folders icons NOW are printed by css background-image attribute
* Compatibility with sites that exist in a subdirectory fixed
= 1.0.5 =
* SECURITY PATCH (Please update NOW)
= 1.0.3 =
* Library Viewer has been tested up to WP 5.2.3
* readme file was translated in Greek
* Compatibility with Visual Composer have been tested and works fine
* Instruction to fix the conflict with Remove Uppercase Ascents Plugin added in FAQ
* Go Back button have been added in error messages
= 1.0.2 =
* Library Viewer has been tested up to WP 5.2.2
* Link notice for Library Viewer Pro has been added in the backend (WP Plugins Page)
* Plugin URI has been fixed
* A screenshot has been added in the Official WP Page of Library Viewer Plugin
* Minor typo fixes in the readme file and Official WP Page of Library Viewer Plugin
= 1.0.1 =
* Compatibility have added for most common special characters(**+** , **&** , **'** , **.**)
* Redirect waiting time to login is now 5 seconds (if you want to change this you need to buy the [Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp))
* The ability of encryption of the real path of your folder (with hash technique) moved to [Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp)
= 1.0.0 =
* Initial Release.