{"id":229138,"date":"2025-04-14T15:56:01","date_gmt":"2025-04-14T15:56:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/modules-insight\/"},"modified":"2025-04-14T15:55:39","modified_gmt":"2025-04-14T15:55:39","slug":"modules-insight","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/modules-insight\/","author":14394976,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.9.2","stable_tag":"trunk","tested":"6.7.5","requires":"5.2","requires_php":"7.2","requires_plugins":null,"header_name":"Modules Insight","header_author":"Pedro Matias","header_description":"Displays a list of installed plugins (active and inactive) via shortcode [plugin_list] and a dashboard widget. Allows downloading the list as JSON.","assets_banners_color":"","last_updated":"2025-04-14 15:55:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/matias2018\/Plugin-List-Display","header_author_uri":"https:\/\/pedromatias.dev","rating":0,"author_block_rating":0,"active_installs":20,"downloads":280,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"2.1.2":"<p>This version fixes a date function usage to correctly respect your WordPress timezone settings for the exported JSON filename.<\/p>","2.1.0":"<p>Major security and code quality improvements. Download now requires Administrator privileges and data is regenerated securely on request. Dashboard widget output is properly escaped.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3272654,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3272654,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3272632,"resolution":"1","location":"assets","locale":""},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3272632,"resolution":"2","location":"assets","locale":""},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3272632,"resolution":"3","location":"assets","locale":""},"Screenshot-4.png":{"filename":"Screenshot-4.png","revision":3272632,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"The Modules Insight dashboard widget showing active\/inactive plugins.","2":"The \"Download List as JSON\" button available to administrators and structure of the exported JSON file.","3":"Example of a page generated using ths shorcode and the collapsed description view using <code>&lt;details&gt;<\/code>.","4":"Example of \"print\" page using shortcode and automatic expanded description view using <code>&lt;details&gt;<\/code>."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[39231,4932,27283,240806,176846],"plugin_category":[],"plugin_contributors":[240807],"plugin_business_model":[],"class_list":["post-229138","plugin","type-plugin","status-publish","hentry","plugin_tags-admin-tools","plugin_tags-developer-tools","plugin_tags-plugin-management","plugin_tags-plugin-report","plugin_tags-plugin-status","plugin_contributors-pedro-matias","plugin_committers-fropt"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/modules-insight\/assets\/icon-128x128.png?rev=3272654","icon_2x":"https:\/\/ps.w.org\/modules-insight\/assets\/icon-256x256.png?rev=3272654","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/modules-insight\/assets\/Screenshot-1.png?rev=3272632","caption":"The Modules Insight dashboard widget showing active\/inactive plugins."},{"src":"https:\/\/ps.w.org\/modules-insight\/assets\/Screenshot-2.png?rev=3272632","caption":"The \"Download List as JSON\" button available to administrators and structure of the exported JSON file."},{"src":"https:\/\/ps.w.org\/modules-insight\/assets\/Screenshot-3.png?rev=3272632","caption":"Example of a page generated using ths shorcode and the collapsed description view using <code>&lt;details&gt;<\/code>."},{"src":"https:\/\/ps.w.org\/modules-insight\/assets\/Screenshot-4.png?rev=3272632","caption":"Example of \"print\" page using shortcode and automatic expanded description view using <code>&lt;details&gt;<\/code>."}],"raw_content":"<!--section=description-->\n<p><strong>Modules Insight<\/strong> is a simple WordPress plugin that lists all installed plugins, showing which are <strong>active<\/strong> and which are <strong>inactive<\/strong>. Ideal for developers and site managers needing a quick status overview.<\/p>\n\n<p>MI adds a widget to your <strong>Dashboard<\/strong> and provides a shortcode <code>[plugin_list]<\/code> for displaying the plugin status list. It also allows <strong>Administrators<\/strong> to download the list as a <code>.json<\/code> report directly from the widget or shortcode output.<\/p>\n\n<p>MI is completely read-only and does <strong>not<\/strong> make any changes to your site's plugin activation status.<\/p>\n\n<h3>\u2728 Key Features<\/h3>\n\n<ul>\n<li>\ud83d\udccb Lists all installed plugins (active, inactive, network active)<\/li>\n<li>\u2705 Includes plugin name and version. <\/li>\n<li>\ud83d\udcca Displays a summary count of plugins<\/li>\n<li>\ud83d\udcc1 Allows <strong>Administrators<\/strong> to export plugin data as a <code>.json<\/code> report<\/li>\n<li>\ud83d\udda5 Adds a convenient Dashboard Widget<\/li>\n<li><code>[plugin_list]<\/code> Shortcode support for display anywhere<\/li>\n<li>\n<ul>\n<li>Upcoming: Plugin description on generated page<\/li>\n<\/ul><\/li>\n<li>\ud83d\udee1 100% read-only \u2014 safe for production use<\/li>\n<\/ul>\n\n<h3>\ud83d\udca1 Use Cases<\/h3>\n\n<ul>\n<li>\ud83e\uddfe Client reports on installed plugins<\/li>\n<li>\ud83d\udea7 Pre-deployment or pre-update plugin checks<\/li>\n<li>\ud83d\udd12 Identifying potentially unused plugins for cleanup<\/li>\n<li>\ud83d\udc65 Sharing plugin status easily with your team or support<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<p>Made with \u2764\ufe0f by Pedro Matias for WordPress developers and admins.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>modules-insight<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress plugin screen directly (Plugins &gt; Add New).<\/li>\n<li>Activate the plugin through the \u2018Plugins\u2019 menu in WordPress.<\/li>\n<li>Check your <strong>Dashboard<\/strong> for the \"Modules Insight - Plugin List\" widget.<\/li>\n<li>Alternatively, use the shortcode <code>[plugin_list]<\/code> on any page or post to display the list.<\/li>\n<li>Administrators will see a \"Download List as JSON\" button within the widget\/shortcode output.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20this%20plugin%20make%20any%20changes%20to%20my%20site%3F'><h3>Does this plugin make any changes to my site?<\/h3><\/dt>\n<dd><p>No. MI is read-only. It does not activate, deactivate, install, or delete any plugins.<\/p><\/dd>\n<dt id='who%20can%20see%20the%20plugin%20list%20and%20download%20the%20json%20file%3F'><h3>Who can see the plugin list and download the JSON file?<\/h3><\/dt>\n<dd><p>By default, the list and download button are visible only to users with the <code>activate_plugins<\/code> capability (typically Administrators). You can adjust capability checks in the code if needed for other roles, but be mindful of security implications.<\/p><\/dd>\n<dt id='what%20format%20is%20the%20export%20file%3F'><h3>What format is the export file?<\/h3><\/dt>\n<dd><p>The plugin exports data as a <code>.json<\/code> file, timestamped with the date of export (according to your site's timezone).<\/p><\/dd>\n<dt id='can%20i%20use%20this%20on%20a%20live%2Fproduction%20site%3F'><h3>Can I use this on a live\/production site?<\/h3><\/dt>\n<dd><p>Yes! MI is completely safe to use on live sites as it performs no write operations.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Fix: Use <code>current_time()<\/code> instead of <code>date()<\/code> for JSON filename timestamp to respect WordPress timezone settings (Fixes PHPCS error).<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Feature: Wrap plugin descriptions in <code>&lt;details&gt;<\/code>\/<code>&lt;summary&gt;<\/code> tags for a cleaner default view.<\/li>\n<li>Fix: Add required <code>translators:<\/code> comments for internationalization functions with placeholders (Fixes Plugin Check error).<\/li>\n<li>Fix: Ensure <code>&lt;details&gt;<\/code> and <code>&lt;summary&gt;<\/code> tags are allowed in <code>wp_kses<\/code> for the dashboard widget.<\/li>\n<li>Refine: Improve multisite plugin detection slightly.<\/li>\n<li>Refine: Use case-insensitive sorting for plugin lists.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Refactor: Introduce helper function <code>get_plugin_insight_data()<\/code> to centralize data retrieval.<\/li>\n<li>Security: Regenerate plugin data on download instead of passing via POST.<\/li>\n<li>Security: Add capability checks (<code>activate_plugins<\/code>) for viewing list and downloading JSON.<\/li>\n<li>Security: Remove <code>nopriv<\/code> action hook for downloads.<\/li>\n<li>Feature: Add more plugin details (version, description, author, URIs) to data structure.<\/li>\n<li>Feature: Handle network-activated plugins on multisite installs.<\/li>\n<li>Improvement: Use <code>wp_json_encode()<\/code> for standard JSON output.<\/li>\n<li>Improvement: Use output buffering and proper escaping (<code>esc_*<\/code>, <code>wp_kses_post<\/code>) throughout HTML generation.<\/li>\n<li>Improvement: Make widget title translatable.<\/li>\n<li>Fix: Address various Plugin Check escaping errors.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Initial version shared for review (contained shortcode, dashboard widget, basic JSON download via POST).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>(Internal\/Previous Version) Initial concept release.<\/li>\n<\/ul>","raw_excerpt":"Provides a quick overview of installed WordPress plugins with their status, exportable as JSON.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/229138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=229138"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fropt"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=229138"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=229138"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=229138"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=229138"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=229138"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=229138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}