[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fDQ6uAA_ot_YhLM23sF0_qJ2OUM65NAO2IdwWU21qufs":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":144,"fingerprints":528},"ensemble","Ensemble","1.1.1","Drew Jaynes","https:\u002F\u002Fprofiles.wordpress.org\u002Fdrewapicture\u002F","\u003Cp>Ensemble is a game-changing solution for running a color guard or other alternative sports circuit using WordPress. Finally, all of the data you need in one place, and it’s all tied together: venues, contests, seasons, units, unit directors, and more.\u003C\u002Fp>\n\u003Cp>Note: Ensemble serves only as the data layer. There are a wide variety of rich connections between the data, which can be managed via the WordPress admin, but this plugin serves only to create an entry point for tying all of that data together.\u003C\u002Fp>\n\u003Cp>A sister theme is in the works to bring all of this to the front end in the near future.\u003C\u002Fp>\n\u003Ch4>Contests\u003C\u002Fh4>\n\u003Cp>Contests are central to how Ensemble works. They’re tied to venues and seasons, which are in-turn tied to everything else.\u003C\u002Fp>\n\u003Ch4>Venue Management\u003C\u002Fh4>\n\u003Cp>Being able to manage canonical venue data is what ultiamtely allows for so much work to be done once instead of once every season.\u003C\u002Fp>\n\u003Ch4>Competing Units\u003C\u002Fh4>\n\u003Cp>Units are the heart and soul of any sports activity, and Ensemble has designed them to be super easy to tie in to everything.\u003C\u002Fp>\n\u003Ch4>Unit Directors\u003C\u002Fh4>\n\u003Cp>People management is important too – this first version of Ensemble has a Unit Director component baked in from the start.\u003C\u002Fp>\n\u003Ch4>Season & Time Management\u003C\u002Fh4>\n\u003Cp>Season creation with start and end dates means no more confusion about which contests are current and which have already passed.\u003C\u002Fp>\n\u003Ch4>What’s Next?\u003C\u002Fh4>\n\u003Cp>Integrations will be coming soon in the form of sister theme for the front-end and support for popular calendar & eCommerce solutions.\u003C\u002Fp>\n","Easily manage the data for a color guard circuit (or similar sport\u002Factivity organization) with WordPress.",0,1616,"","5.1.0","4.9.6","7.0",[18,19,20,21,22],"circuit","color-guard","percussion","sports","teams","https:\u002F\u002Fwerdswords.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fensemble.1.1.1.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"drewapicture",7,4120,88,30,86,"2026-04-04T04:58:53.875Z",[38,65,86,109,127],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":59,"download_link":60,"security_score":61,"vuln_count":62,"unpatched_count":11,"last_vuln_date":63,"fetched_at":64},"wp-club-manager","WP Club Manager – WordPress Sports Club Plugin","2.2.17","WP Club Manager","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpclubmanager\u002F","\u003Ch4>Build A Pro Sports Club Website With No Hassle\u003C\u002Fh4>\n\u003Cp>WP Club Manager is a sports plugin used to create and manage a club website with WordPress. Quick and easy to set-up, you can manage clubs, player profiles and performance data, staff, sponsors, league tables, keep track of your fixtures and results and loads more.\u003C\u002Fp>\n\u003Ch4>Endorsed by USA Rugby\u003C\u002Fh4>\n\u003Cblockquote>\n\u003Cp>“\u003Cem>It’s perfect for the professional sports web developer and the first-time team administrator. Incredibly easy to customize and integrate, I highly recommend WP Club Manager to any sports teams that want a better website!\u003C\u002Fem>”\u003Cbr \u002F>\n  Davey Jacobson, \u003Cem>Information Systems Developer\u003C\u002Fem>, \u003Ca href=\"https:\u002F\u002Fwww.usa.rugby\" rel=\"nofollow ugc\">USA Rugby\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>Features Include\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Manage multiple teams in your club\u003C\u002Fli>\n\u003Cli>Player and staff profiles\u003C\u002Fli>\n\u003Cli>Player performance ratings\u003C\u002Fli>\n\u003Cli>Full player statistics\u003C\u002Fli>\n\u003Cli>Informative club profiles with club stats\u003C\u002Fli>\n\u003Cli>Fixtures and results\u003C\u002Fli>\n\u003Cli>Automatically updated league tables\u003C\u002Fli>\n\u003Cli>Match statistics and reports\u003C\u002Fli>\n\u003Cli>Manage club sponsors\u003C\u002Fli>\n\u003Cli>Venue details and maps\u003C\u002Fli>\n\u003Cli>Fixture, results, player, table, sponsor and birthday widgets\u003C\u002Fli>\n\u003Cli>Easily Import matches, players, staff and clubs from a CSV file\u003C\u002Fli>\n\u003Cli>Easy-to-use Shortcodes\u003C\u002Fli>\n\u003Cli>Customize appearance with flexible templates\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Find out more about all each feature and more, please visit \u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\" rel=\"nofollow ugc\">our site\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Supported Sports\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>American Football\u003C\u002Fli>\n\u003Cli>Australian Rules Football\u003C\u002Fli>\n\u003Cli>Baseball\u003C\u002Fli>\n\u003Cli>Basketball\u003C\u002Fli>\n\u003Cli>Cricket\u003C\u002Fli>\n\u003Cli>Field Hockey\u003C\u002Fli>\n\u003Cli>Floorball\u003C\u002Fli>\n\u003Cli>Football (Soccer)\u003C\u002Fli>\n\u003Cli>Gaelic Football\u003C\u002Fli>\n\u003Cli>Handball\u003C\u002Fli>\n\u003Cli>Hurling\u003C\u002Fli>\n\u003Cli>Ice Hockey\u003C\u002Fli>\n\u003Cli>Lacrosse\u003C\u002Fli>\n\u003Cli>Netball\u003C\u002Fli>\n\u003Cli>Rugby League\u003C\u002Fli>\n\u003Cli>Rugby Union\u003C\u002Fli>\n\u003Cli>Volleyball\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Find extensive \u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\u002Fdocumentation\u002F\" rel=\"nofollow ugc\">documentation\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\u002Fsupport\u002F\" rel=\"nofollow ugc\">friendly support\u003C\u002Fa> at our \u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\" rel=\"nofollow ugc\">plugin website\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Themes & Extensions\u003C\u002Fh4>\n\u003Cp>The WP Club Manager plugin has a growing catalogue of themes to add extra functionality and a professional look to your club website. Browse through our collection of \u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\u002Fthemes\u002F\" rel=\"nofollow ugc\">WP Club Manager themes\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\u002Fproducts\u002Fvictory\u002F\" rel=\"nofollow ugc\">Victory Theme\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpclubmanager.com\u002Fproducts\u002Fscoreline\u002F\" rel=\"nofollow ugc\">Scoreline Theme\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Included Languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Arabic – العربية (ar)\u003C\u002Fli>\n\u003Cli>Bulgarian – Български (bg_BG)\u003C\u002Fli>\n\u003Cli>Chinese (China) – 中文 (zh_CN)\u003C\u002Fli>\n\u003Cli>Croatian – Hrvatski (hr)\u003C\u002Fli>\n\u003Cli>Czech – Čeština (cs_CZ)\u003C\u002Fli>\n\u003Cli>Danish – Dansk (da_DK)\u003C\u002Fli>\n\u003Cli>Dutch – Nederlands (nl_NL)\u003C\u002Fli>\n\u003Cli>English – UK (en_GB)\u003C\u002Fli>\n\u003Cli>German – Deutsch (de_DE)\u003C\u002Fli>\n\u003Cli>Finnish – Suomi (fi)\u003C\u002Fli>\n\u003Cli>French – Français (fr_FR)\u003C\u002Fli>\n\u003Cli>Greek – Ελληνικά (el_GR)\u003C\u002Fli>\n\u003Cli>Hebrew – עברית (he_IL)\u003C\u002Fli>\n\u003Cli>Hungarian – Magyar (hu_HU)\u003C\u002Fli>\n\u003Cli>Italian – Italiano (it_IT)\u003C\u002Fli>\n\u003Cli>Latvian – Latviešu (lv_LV)\u003C\u002Fli>\n\u003Cli>Lithuanian – Lietuvių kalba (lt_LT)\u003C\u002Fli>\n\u003Cli>Persian – فارسی (fa_IR)\u003C\u002Fli>\n\u003Cli>Polish – Polski (pl_PL)\u003C\u002Fli>\n\u003Cli>Portuguese (Brazil) – Português do Brasil (pt_BR)\u003C\u002Fli>\n\u003Cli>Portuguese (Portugal) – Português (pt_PT)\u003C\u002Fli>\n\u003Cli>Russian – Русский (ru_RU)\u003C\u002Fli>\n\u003Cli>Slovak – Slovenčina (sk_SK)\u003C\u002Fli>\n\u003Cli>Spanish – Español (es_ES)\u003C\u002Fli>\n\u003Cli>Swedish – Svenska (sv_SE)\u003C\u002Fli>\n\u003Cli>Turkish – Türkçe (tr_TR)\u003C\u002Fli>\n\u003Cli>Vietnamese – Tiếng Việt (vi)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Getting Involved\u003C\u002Fh4>\n\u003Cp>Translators can contribute to WP Club Manager translations at \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fwp-club-manager\" rel=\"nofollow ugc\">GlotPress\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Extensible, adaptable, and open source — WP Club Manager is created with developers in mind. Contribute on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FClubPress\u002Fwp-club-manager\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Please Rate and Enjoy!\u003C\u002Fh4>\n\u003Cp>Please take a moment to leave a review on WordPress.org. Your feedback is much appreciated and helps towards the continued improvement of WP Club Manager.\u003C\u002Fp>\n","WP Club Manager is easy to set-up and has everything you need to build and manage an amazing sports club website.",700,129131,94,40,"2024-04-15T11:56:00.000Z","6.5.8","4.9","7.2",[55,56,57,58,22],"club","club-management","sport","sports-club","https:\u002F\u002Fwpclubmanager.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-club-manager.2.2.17.zip",90,3,"2024-04-22 00:00:00","2026-03-15T15:16:48.613Z",{"slug":66,"name":67,"version":68,"author":69,"author_profile":70,"description":71,"short_description":72,"active_installs":73,"downloaded":74,"rating":25,"num_ratings":75,"last_updated":76,"tested_up_to":77,"requires_at_least":78,"requires_php":53,"tags":79,"homepage":84,"download_link":85,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":64},"cyberpress","CyberPress","2.5.7","nK","https:\u002F\u002Fprofiles.wordpress.org\u002Fnko\u002F","\u003Cp>Manage eSport teams, players, matches and tournaments. Included individual players and teams profiles. Pages with information about matches and tournaments.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Online Demo \u003Ca href=\"https:\u002F\u002Fgetcyberpress.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fgetcyberpress.com\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Tournaments\u003C\u002Fli>\n\u003Cli>Matches\u003C\u002Fli>\n\u003Cli>Teams\u003C\u002Fli>\n\u003Cli>Players\u003C\u002Fli>\n\u003Cli>Games\u003C\u002Fli>\n\u003C\u002Ful>\n","Manage eSport Tournaments, Matches, Teams and Players.",200,16892,4,"2026-01-11T12:26:00.000Z","6.9.4","6.3",[80,81,82,22,83],"esports","games","matches","tournaments","https:\u002F\u002Fgetcyberpress.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcyberpress.2.5.7.zip",{"slug":87,"name":88,"version":89,"author":90,"author_profile":91,"description":92,"short_description":93,"active_installs":73,"downloaded":94,"rating":95,"num_ratings":96,"last_updated":97,"tested_up_to":98,"requires_at_least":99,"requires_php":100,"tags":101,"homepage":104,"download_link":105,"security_score":106,"vuln_count":62,"unpatched_count":107,"last_vuln_date":108,"fetched_at":64},"team-rosters","Team Rosters","4.8.2","Mark O'Donnell","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarkodonnell\u002F","\u003Cp>The MSTW Team Rosters plugin manages rosters for multiple sports teams. It provides roster tables with built-in formats for high school, college, and professional teams as well as custom roster formats for baseball. Admins can repurpose data fields by re-labeling them, so rosters can be used for Office Directories, for example. See the \u003Ca href=\"http:\u002F\u002Fdev.shoalsummitsolutions.com\" rel=\"nofollow ugc\">MSTW Plugin Development Site\u003C\u002Fa> for examples.\u003C\u002Fp>\n\u003Cp>Players are assigned to team rosters using a Teams custom taxonomy. These taxonomies may now be linked to the MSTW Schedules & Scoreboards teams database, and the Team Rosters plugin can pull information on teams, such as their logos and colors, from that plugin.\u003C\u002Fp>\n\u003Cp>The plugin supports as many players and teams as needed. It provides several views of rosters including: a table (via a shortcode), a player gallery (via both a shortcode and a custom taxonomy template), and single player bio (via a custom post type template). Samples of all of the above displays are available in the screenshots on WordPress.org and on the \u003Ca href=\"http:\u002F\u002Fshoalsummitsolutions.com\u002Fdev\" rel=\"nofollow ugc\">Shoal Summit Solutions Plugin Development Site\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>[The complete users manual is available at] (http:\u002F\u002Fshoalsummitsolutions.com\u002Fcategory\u002Fusers-manuals\u002Ftr-plugin\u002F)\u003C\u002Fp>\n\u003Ch3>Usage Notes\u003C\u002Fh3>\n\u003Cp>\u003Cem>I suggest that you use the test pages on \u003Ca href=\"http:\u002F\u002Fshoalsummitsolutions.com\u002Fdev\" rel=\"nofollow ugc\">the MSTW Plugin Development Site\u003C\u002Fa> as guides to what works and what doesn’t.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>The \u003Ca href=\"http:\u002F\u002Fshoalsummitsolutions.com\u002Ftr-usage-notes\u002F\" rel=\"nofollow ugc\">Other Usage Notes\u003C\u002Fa> are available on shoalsummitsolutions.com.\u003C\u002Fp>\n\u003Ch3>4.8.2\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed problems with the single player profile created by the security fixes. \u003Ca href=\"http:\u002F\u002Fshoalsummitsolutions.com\u002Ftr-customizing\" rel=\"nofollow ugc\">See the Customizing the Team Rosters Plugin in the users manuals.\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>4.8.1\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Re-corrected security issues identified by the WordPress team.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.8\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Corrected a security issues identified by the WordPress team\u003C\u002Fli>\n\u003Cli>Added a .pot file in the \u002Flang directory so the plugin is now translatable.\u003C\u002Fli>\n\u003Cli>Tested on PHP 8.2.23 and WP 6.7.2. \u003C\u002Fli>\n\u003Cli>Cleaned up more annoying PHP 8 warnings on new shoalsummitsolutions.com.\u003C\u002Fli>\n\u003Cli>No significant functional or performance changes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.7\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Tested on PHP version 8.2.23 & WordPress 6.7.1\u003C\u002Fli>\n\u003Cli>Cleaned up some minor code issues.\u003C\u002Fli>\n\u003Cli>No functional or performance changes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.6\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added new capability to customize the order of the fields\u002Fcolumns in roster tables (in addition to labels and visibility).\u003C\u002Fli>\n\u003Cli>Fixed issue which prevented player profiles for players on multiple teams from displaying correctly. Note this is only an issue if a site has a single player on multiple teams.\u003C\u002Fli>\n\u003Cli>Major improvements in player gallery responsiveness to the default fields\u002Fcolumns & color settings, combined with shortcode arguments. \u003C\u002Fli>\n\u003Cli>The gallery page (WP taxonomy) now accepts arguments.\u003C\u002Fli>\n\u003Cli>The single player template now responds correctly to the combined settings and shortcode args (passed to it).\u003C\u002Fli>\n\u003Cli>Re-tested CSV import (more CSV features coming in planned releases)\u003C\u002Fli>\n\u003Cli>Created a new POEdit Template for I18N (Internationalization & translation) support.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.5\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added color settings for the team rosters 2 shortcode [mstw-tr-roster-2].\u003C\u002Fli>\n\u003Cli>Added field settings for the team rosters 2 shortcode [mstw-tr-roster-2].\u003C\u002Fli>\n\u003Cli>Added ‘roster_type’ settings for the 3 data fields in the team rosters 2 shortcode. \u003C\u002Fli>\n\u003Cli>Re-tested the color and field settings for all shortcodes. \u003C\u002Fli>\n\u003Cli>Removed the PHP each() function which has been removed from PHP 8.0.\u003C\u002Fli>\n\u003Cli>Fixed a couple of bugs with the bio page colors in the Settings admin page.\u003C\u002Fli>\n\u003Cli>Corrected a bug with the player bio page layout(template) which caused problems on some, but not all, websites.\u003C\u002Fli>\n\u003Cli>Corrected bug with roster table sort by number.\u003C\u002Fli>\n\u003Cli>Changed handling of height & weight columns. When both are displayed, they are now combined into one column.\u003C\u002Fli>\n\u003Cli>Changed the default color scheme of all shortcode displays\u003C\u002Fli>\n\u003Cli>Roster tables now sort correctly by number and name.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.4\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added new mstw_tr_roster_2 shortcode.\u003C\u002Fli>\n\u003Cli>Added new “long format” for the position field, so a player can have a postion of QB and a long format position of Quarterback. In this release, the long format is used only in the mstw_tr_roster_2 shortcode display.\u003C\u002Fli>\n\u003Cli>Re-designed the player profile\u002Fbio page to make it (much more) responsive.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.3\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed link to the plugin’s settings page from the Plugins admin page.\u003C\u002Fli>\n\u003Cli>Added a dropdown menu to the single player page that allows the user to access all players on a given team.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.2\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Allow user to sort roster tables by number and name on the front end.\u003C\u002Fli>\n\u003Cli>Fixed bug that prevented showing players by last name (only).\u003C\u002Fli>\n\u003Cli>Minor stylesheet cleanup.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.1.4\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed bug with settings. Should be able to always save them now without PHP warnings.\u003C\u002Fli>\n\u003Cli>Removed call to get_screen_icon(). screen_icon() has been removed from WP core.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.1.3\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added mstw_tr_get_teams_list to allow MSTW League Manager to link rosters to teams.\u003C\u002Fli>\n\u003Cli>Removed add_meta_boxes_mstw_lm_team action to eliminate PHP warnings. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.1.2\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed a bug that prevented the Edit Rosters screen from saving any data.\u003C\u002Fli>\n\u003Cli>Customizations to labels in the Data Fields & Columns settings tab are now reflected on the appropriate admin screens, in addition to the front end displays.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.1.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed a couple of installation bugs. No new functionality.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added new admin screen to add players to rosters “in bulk” (paginated, 20 at a time).\u003C\u002Fli>\n\u003Cli>Added a new admin screen to edit players on a team “in bulk” (20 at a time).\u003C\u002Fli>\n\u003Cli>Added the capability to link the teams in Team Rosters to teams in the MSTW League Manager plugin, in addition to the MSTW Schedules & Scoreboards plugin. Team logos are pulled from the selected database when the display settings call for it. (Team Colors are available only in S&S currently, but that will be addressed in the next League Manager release.)\u003C\u002Fli>\n\u003Cli>Added a Quick Start admin screen.\u003C\u002Fli>\n\u003Cli>Added context sensitive help to all admin screens.\u003C\u002Fli>\n\u003Cli>Finally squashed the dastardly bug that ‘broke’ Featured Images (thumbnails) for posts in SOME THEMES. (I believe. Please let me know if you see this behavior again.)\u003C\u002Fli>\n\u003Cli>Corrected a bug that prevented “sort roster by number” from working in certain circumstances.\u003C\u002Fli>\n\u003Cli>Corrected a bug that prevented the CSV Import screen from using the team selected in the “Select Team to Import” control.\u003C\u002Fli>\n\u003Cli>Moved translation (internationalization) to [WordPress’s new “PolyGlots” system] (https:\u002F\u002Ftranslate.wordpress.org\u002F), and removed the \u002Flang\u002F directory from the plugin itself.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.0.2\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Made the mstw_tr_player Custom Post Type searchable\u003C\u002Fli>\n\u003Cli>Corrected a bug that caused local files to be copied into the Media Library when importing players from a CSV file and the Move Photos checkbox was not checked on the CSV Import screen.\u003C\u002Fli>\n\u003Cli>Added a sample CSV file for Teams import to the \u002Fcsv-examples directory.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.0.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Corrected a bug in display of ‘B’ hitters.\u003C\u002Fli>\n\u003Cli>Corrected a bug in the CSV importer that prevented the bats and throws columns created by MSTW CSV Exporter to import correctly.\u003C\u002Fli>\n\u003Cli>Removed a PHP warning from several front end displays.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>4.0\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Access controls for MSTW Admin, MSTW Team Rosters Admin, and Team Admins.\u003C\u002Fli>\n\u003Cli>New data fields for the team taxonomy to integrate with MSTW Schedules & Scoreboards Teams database\u003C\u002Fli>\n\u003Cli>Completely re-wrote the settings screen – organized with tabs and added help screens\u003C\u002Fli>\n\u003Cli>Re-orgainized Edit Player screen\u003C\u002Fli>\n\u003Cli>Added field to link Team taxonomy to MSTW Schedules & Scoreboards Teams DB\u003C\u002Fli>\n\u003Cli>Corrected the display of height\u002Fweight in the single-player.php template\u003C\u002Fli>\n\u003Cli>Cleaned up WP internationalization\u002Ftranslation. Domain was changed from mstw-loc-domain to mstw-team-rosters.\u003C\u002Fli>\n\u003Cli>Changed Custom Post Type & Taxonomy names to reduce the possibility of name collisions with themes and other plugins. THIS HAS A MAJOR IMPACT ON UPGRADES FROM PREVIOUS VERSIONS. READ HOW TO DO IT RIGHT HERE.\u003C\u002Fli>\n\u003Cli>Uses the single-player.php and taxonomy-team.php templates from the plugin’s \u002Ftheme-templates directory so the template no longer needs to be copied to the theme’s (or child theme’s) directory. But they can be moved to the main theme (or child theme) directory if desired. The plugin looks for them there first.\u003C\u002Fli>\n\u003Cli>The plugin’s stylesheet (\u002Fcss\u002Fmstw-tr-styles.css) no longer needs to be modified. One can create custom styles in the mstw-tr-custom-styles.css sytlesheet in the theme’s (or child theme’s) main directory. It will be loaded AFTER the plugin’s stylesheet in the plugin’s \u002Fcss directory, so mstw-tr-custom-styles.css will have the highest priory in the plugin’s style cascade.\u003C\u002Fli>\n\u003Cli>Added a setting to control the addition of links to single player profile pages from the player names in roster tables \u003C\u002Fli>\n\u003Cli>Integrated mstw_utility_functions – removed old mstw-admin-utils.php \u003C\u002Fli>\n\u003Cli>Added if ( !function_exists( ‘function_name’ ) ) wrappers to all include files\u003C\u002Fli>\n\u003Cli>The problem with filtering the All Players admin screen by Team MAY BE corrected. This bug only appeared on a few installations, so it’s difficult to test. If it rears its ugly head on your site, the first thing to try is to deactivate all other plugins, including any other MSTW plugins, and re-activate them one by one. Please let me know, and I’ll work with you to fix it.\u003C\u002Fli>\n\u003Cli>Cleaned up many details in admin UI\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>3.1.2\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed a bug (a typo) that prevented the team gallery shortcode from behaving correctly.\u003C\u002Fli>\n\u003Cli>Fixed bug with the show\u002Fhide table title setting – titles could not be hidden with the display setting. Corrected and tested.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>3.1.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed bug that prevented links to single player profiles from working with CHILD THEMES. If you aren’t using a CHILD THEME, you don’t need this patch.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>3.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fixed bug with sort order. Roster table and player gallery views both sort properly by number, first name, and last name.\u003C\u002Fli>\n\u003Cli>Fixed bug with show_height settings.\u003C\u002Fli>\n\u003Cli>Fixed minor bug: gallery sometimes linked to players\u002Fplayer-slug\u002F?format=” instead of players\u002Fplayer-slug\u002F?format=custom. This bug may or may not have an affect on a site, depending on formats and usage.\u003C\u002Fli>\n\u003Cli>Fixed the “Filter by Team” dropdown on the Show All Players admin screen. \u003C\u002Fli>\n\u003Cli>Re-enabled the bulk delete menu on the All Players screen.\u003C\u002Fli>\n\u003Cli>Enabled the “Other” field. It may now be used on all ‘custom’ displays but it is disabled by default.\u003C\u002Fli>\n\u003Cli>Improved responsiveness of single player profile page (single-player.php). Looks better on small screens.\u003C\u002Fli>\n\u003Cli>Combined \u003Ccode>single-player.php\u003C\u002Fcode> and \u003Ccode>content-single-player.php\u003C\u002Fcode> templates (into the \u003Ccode>single-player.php\u003C\u002Fcode> template. Why? …\u003C\u002Fli>\n\u003Cli>The use of links from the players\u002Froster gallery or players\u002Froster table to the single player profile is now determined by the existence of the \u003Ccode>single-player.php\u003C\u002Fcode> template in the active theme’s main directory. Removed the ‘use_xxx-links’ settings, which are now superfluous. If you want links, just put the \u003Ccode>single-player.php\u003C\u002Fcode> template in the right directory. If not, omit it.\u003C\u002Fli>\n\u003Cli>Re-factored the admin menu code. Added MSTW icon to admin menu and screens.\u003C\u002Fli>\n\u003Cli>The WordPress Color Selector has been added to all color settings in the admin settings screen.\u003C\u002Fli>\n\u003Cli>Added a control to show player photos in the roster tables (shortcode).\u003C\u002Fli>\n\u003Cli>Added a gallery shortcode. [mstw-tr-gallery team=team-slug]\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>3.0.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Tweaked two calls (one in mstw-team-rosters.php and one in includes\u002Fmstw-team-rosters-admin.php) to prevent WARNINGS. (Easily fixed by setting WP_DEBUG to false in wp-config.php.) \u003C\u002Fli>\n\u003Cli>Restructured the include files (filenames and function calls) to prevent conflicts with other MSTW plugins.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>3.0\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added a filter by team to the “All Players” table on the admin screen (screenshot-1).\u003C\u002Fli>\n\u003Cli>Added ability to configure table columns and data fields to meet specific application requirements. Show\u002Fhide all columns (except Player Name) and change the header\u002Flabel of all columns and data fields. \u003C\u002Fli>\n\u003Cli>Provided additional color settings on the Display Settings admin screen, and refactored the code to improve performance.\u003C\u002Fli>\n\u003Cli>Added the new WordPress Color Selector to the Display Settings admin screen.\u003C\u002Fli>\n\u003Cli>Added more CSS tags the display code to allow any team’s rosters to be uniquely styled via the plugin’s stylesheet. \u003C\u002Fli>\n\u003Cli>Added player name format control to the Display Settings admin screen. Several formats are available, perhaps most importantly a first name only format is now available to address privacy concerns with young players.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Re-factored the featured image (thumbnail) activation code to avoid conflicts with another plugin. (Thanks, Razz.)\u003C\u002Fli>\n\u003Cli>In the process, modified the theme settings so that the player photo width and height settings would always be honored. The default remains 150x150px regardless of how the thumbnail sizes are set in the theme.\u003C\u002Fli>\n\u003Cli>Corrected another conflict with some themes due to my horrible choice of the function name – my_get_posts(). Shame on me … it’s now mstw_tr_get_posts(). Doh!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.0.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>One include file was omitted from the build. That file is only needed for the CSV import function, which won’t run without it.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.0\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added the ability to import rosters from CSV files\u003C\u002Fli>\n\u003Cli>Actived the Featured Image metabox on the add\u002Fedit page for players (player custom post type). Standard WordPress “Featured Images” are used for the player photos in the single player and player gallery pages.\u003C\u002Fli>\n\u003Cli>Added admin setting to hide player weights\u003C\u002Fli>\n\u003Cli>Added the ability to set the player photo size on the plugin settings page.\u003C\u002Fli>\n\u003Cli>Added three new formats for baseball: baseball-high-school, baseball-college, baseball-pro\u003C\u002Fli>\n\u003Cli>Cleaned up misc error checking and file\u002Ffunction includes to prevent conflicts with other plugins.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>1.1\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Added the “Player Gallery” view of a roster\u003C\u002Fli>\n\u003Cli>Added admin settings for the sort order to allow numerical rosters in both the table [shortcode] and the player gallery.\u003C\u002Fli>\n\u003Cli>Added admin settings to enable or disable links from both the table view [shortcode] and the player gallery to the single player pages.\u003C\u002Fli>\n\u003Cli>Added an admin setting to control the title of the “Player Bio” content box on the single player view. By default, it is “Player Bio”.\u003C\u002Fli>\n\u003Cli>Added fields to the player post type so that no field serves different purposes in different views [high-school|college|pro]. Note that not every field is used in every views and many fields are used in multiple views. However, every field now has one and only one meaning.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>1.0\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Initial release.\u003C\u002Fli>\n\u003C\u002Ful>\n","Manages multiple team rosters. Creates roster tables, player galleries, and player profile pages.",35207,96,20,"2025-08-28T01:30:00.000Z","6.8.5","3.4.2","5.6",[102,103,21,87,22],"players","rosters","http:\u002F\u002Fshoalsummitsolutions.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fteam-rosters.4.8.2.zip",72,1,"2025-04-02 00:00:00",{"slug":110,"name":111,"version":112,"author":90,"author_profile":91,"description":13,"short_description":113,"active_installs":25,"downloaded":114,"rating":95,"num_ratings":75,"last_updated":115,"tested_up_to":116,"requires_at_least":117,"requires_php":118,"tags":119,"homepage":123,"download_link":124,"security_score":125,"vuln_count":107,"unpatched_count":107,"last_vuln_date":126,"fetched_at":64},"mstw-league-manager","MSTW League Manager","2.10","Manages multiple sports leagues and seasons. Displays schedules and standings in multiple formats.",13186,"2024-11-19T01:47:00.000Z","6.6.5","4.9.1","5.5",[120,121,21,122,22],"leagues","schedules","standings","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmstw-league-manager\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmstw-league-manager.2.10.zip",70,"2025-09-05 00:00:00",{"slug":128,"name":129,"version":130,"author":131,"author_profile":132,"description":133,"short_description":134,"active_installs":25,"downloaded":135,"rating":25,"num_ratings":75,"last_updated":136,"tested_up_to":116,"requires_at_least":137,"requires_php":16,"tags":138,"homepage":141,"download_link":142,"security_score":143,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":64},"sportsteam-widget","Sportsteam Widget – Football livescore","2.4.3","wpsports","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpsports\u002F","\u003Cp>SportsTeam Widget is a widget that shows the next match of a game.\u003Cbr \u002F>\nIt uses a Custom Post Type for sportsteams, together with a Taxonomy\u002FTerm\u003Cbr \u002F>\nfor the class\u002Flevel where the team plays.\u003Cbr \u002F>\nYou can add widget to every page anywhere you want and customize it for your needs for every sport – football (soccer), basketball, hockey, tennis, cricket and much more. Just add your team or teams and set up widget settings such as:\u003Cbr \u002F>\n* Widget title\u003Cbr \u002F>\n* Match date\u003Cbr \u002F>\n* Subtitle\u003Cbr \u002F>\n* Is match away (ticker)\u003Cbr \u002F>\n* Class\u003Cbr \u002F>\n* Home Team\u003Cbr \u002F>\n* Home Team result\u003Cbr \u002F>\n* Home Team color\u003Cbr \u002F>\n* Out Team\u003Cbr \u002F>\n* Out Team result\u003Cbr \u002F>\n* Out Team color\u003Cbr \u002F>\n* Background color\u003Cbr \u002F>\n* Text color\u003Cbr \u002F>\n* Show teams as links\u003C\u002Fp>\n\u003Cp>But that’s not all! We’ve added a new feature – football livescore widget to add fully automated live scores and results for today from any tournament you want (or all of them at once). Just insert simple shortcode where you want on page and your users will get livescores with real time updates with no need to refresh the page.\u003Cbr \u002F>\nLivescore widget is fully responsive for any screen sizes and has no ads.\u003C\u002Fp>\n\u003Ch4>Compatibility\u003C\u002Fh4>\n\u003Cp>This plugin is compatible with \u003Ca href=\"https:\u002F\u002Fwww.classicpress.net\" rel=\"nofollow ugc\">ClassicPress\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Interaction with External Services\u003C\u002Fh4>\n\u003Cp>Sportsteam Widget utilizes the external service 777score.com to obtain up-to-date information about the schedule and results of football matches. 777score.com is a recognized source of sports information trusted by the sports community. This service provides a wide range of information about football, including various leagues, tournaments, and championships from around the world.\u003C\u002Fp>\n\u003Cp>The functioning of the 777score.com service is based on delivering real-time data about selected matches, including the match start time, its status, incidents, and the score. Users have the ability to view detailed information about matches, such as goal lists, received cards, and other key events, without the need to refresh the page. This means that data is automatically updated without requiring page reload.\u003C\u002Fp>\n\u003Cp>This approach ensures users quick and uninterrupted access to the latest sports data without the effort of manually updating information, allowing them to stay informed about ongoing events in real-time.\u003C\u002Fp>\n","A widget that shows the next match of a team.",12880,"2024-09-02T10:46:00.000Z","4.1",[57,21,139,22,140],"team","widget","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsportsteam-widget\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsportsteam-widget.2.4.3.zip",92,{"attackSurface":145,"codeSignals":336,"taintFlows":416,"riskAssessment":519,"analyzedAt":527},{"hooks":146,"ajaxHandlers":332,"restRoutes":333,"shortcodes":334,"cronEvents":335,"entryPointCount":11,"unprotectedCount":11},[147,152,157,162,166,171,176,179,182,186,190,195,199,201,204,207,212,215,218,220,222,224,227,229,231,233,237,241,244,248,251,254,258,261,264,267,271,274,276,278,281,283,285,287,289,292,294,296,299,301,304,309,313,317,320,323,326,329],{"type":148,"name":149,"callback":149,"file":150,"line":151},"action","admin_head","ensemble.php",117,{"type":148,"name":153,"callback":154,"file":155,"line":156},"ensemble_admin_notices","show_notices","includes\\class-ensemble.php",138,{"type":148,"name":158,"callback":159,"file":160,"line":161},"ensemble_units-add_unit_fields","add_unit_class_field","includes\\components\\classifications\\admin\\class-actions.php",32,{"type":148,"name":163,"callback":164,"file":160,"line":165},"ensemble_units-edit_unit_fields","edit_unit_class_field",33,{"type":167,"name":168,"callback":169,"file":160,"line":170},"filter","ensemble_units-ensemble_unit_coloumns","filter_unit_table_columns",36,{"type":167,"name":172,"callback":173,"priority":174,"file":160,"line":175},"manage_ensemble_unit_custom_column","column_class",13,37,{"type":148,"name":177,"callback":178,"file":160,"line":49},"create_ensemble_unit","save_unit_meta",{"type":148,"name":180,"callback":178,"file":160,"line":181},"edit_ensemble_unit",41,{"type":167,"name":183,"callback":184,"priority":25,"file":160,"line":185},"manage_edit-ensemble_class_columns","filter_class_table_columns",44,{"type":148,"name":187,"callback":188,"file":160,"line":189},"add_tag_form_pre","hide_add_class_slug_field",47,{"type":148,"name":191,"callback":192,"priority":193,"file":194,"line":34},"admin_menu","register_submenu",35,"includes\\components\\classifications\\admin\\class-menu.php",{"type":148,"name":196,"callback":197,"file":198,"line":170},"init","add_contest","includes\\components\\contests\\admin\\class-actions.php",{"type":148,"name":196,"callback":200,"file":198,"line":175},"update_contest",{"type":148,"name":196,"callback":202,"file":198,"line":203},"delete_contest",38,{"type":148,"name":191,"callback":192,"priority":96,"file":205,"line":206},"includes\\components\\contests\\admin\\class-menu.php",31,{"type":167,"name":208,"callback":209,"priority":210,"file":211,"line":34},"map_meta_cap","map_meta_caps",10,"includes\\components\\contests\\class-setup.php",{"type":148,"name":191,"callback":192,"priority":213,"file":214,"line":34},50,"includes\\components\\integrations\\admin\\class-menu.php",{"type":148,"name":196,"callback":216,"file":217,"line":193},"add_director","includes\\components\\people\\directors\\admin\\class-actions.php",{"type":148,"name":196,"callback":219,"file":217,"line":170},"update_director",{"type":148,"name":196,"callback":221,"file":217,"line":175},"delete_director",{"type":148,"name":191,"callback":192,"priority":49,"file":223,"line":34},"includes\\components\\people\\directors\\admin\\class-menu.php",{"type":148,"name":196,"callback":225,"file":226,"line":193},"add_instructor","includes\\components\\people\\instructors\\admin\\class-actions.php",{"type":148,"name":196,"callback":228,"file":226,"line":170},"update_instructor",{"type":148,"name":196,"callback":230,"file":226,"line":175},"delete_instructor",{"type":148,"name":191,"callback":192,"priority":49,"file":232,"line":34},"includes\\components\\people\\instructors\\admin\\class-menu.php",{"type":148,"name":234,"callback":235,"file":236,"line":165},"ensemble_season_add_form_fields","add_season_fields","includes\\components\\seasons\\admin\\class-actions.php",{"type":148,"name":238,"callback":239,"file":236,"line":240},"ensemble_season_edit_form","edit_season_fields",34,{"type":167,"name":242,"callback":243,"priority":25,"file":236,"line":175},"manage_edit-ensemble_season_columns","filter_season_table_columns",{"type":167,"name":245,"callback":246,"priority":247,"file":236,"line":49},"manage_ensemble_season_custom_column","column_start_date",11,{"type":167,"name":245,"callback":249,"priority":250,"file":236,"line":181},"column_end_date",12,{"type":167,"name":245,"callback":252,"priority":174,"file":236,"line":253},"column_contests",42,{"type":148,"name":255,"callback":256,"file":236,"line":257},"create_ensemble_season","save_season_meta",45,{"type":148,"name":259,"callback":256,"file":236,"line":260},"edit_ensemble_season",46,{"type":148,"name":187,"callback":262,"file":236,"line":263},"hide_add_season_fields",49,{"type":148,"name":191,"callback":192,"priority":265,"file":266,"line":34},25,"includes\\components\\seasons\\admin\\class-menu.php",{"type":148,"name":268,"callback":269,"file":270,"line":165},"ensemble_unit_add_form_fields","add_unit_fields","includes\\components\\units\\admin\\class-actions.php",{"type":148,"name":272,"callback":273,"file":270,"line":240},"ensemble_unit_edit_form","edit_unit_fields",{"type":167,"name":275,"callback":169,"priority":25,"file":270,"line":175},"manage_edit-ensemble_unit_columns",{"type":167,"name":172,"callback":277,"priority":247,"file":270,"line":203},"column_city",{"type":167,"name":172,"callback":279,"priority":250,"file":270,"line":280},"column_staff",39,{"type":148,"name":177,"callback":282,"file":270,"line":253},"save_fields",{"type":148,"name":180,"callback":282,"file":270,"line":284},43,{"type":148,"name":187,"callback":286,"file":270,"line":260},"hide_default_add_unit_fields",{"type":148,"name":191,"callback":192,"priority":34,"file":288,"line":34},"includes\\components\\units\\admin\\class-menu.php",{"type":148,"name":196,"callback":290,"file":291,"line":193},"add_venue","includes\\components\\venues\\admin\\class-actions.php",{"type":148,"name":196,"callback":293,"file":291,"line":170},"update_venue",{"type":148,"name":196,"callback":295,"file":291,"line":175},"delete_venue",{"type":148,"name":191,"callback":192,"priority":297,"file":298,"line":206},15,"includes\\components\\venues\\admin\\class-menu.php",{"type":167,"name":208,"callback":209,"priority":210,"file":300,"line":34},"includes\\components\\venues\\class-setup.php",{"type":148,"name":191,"callback":302,"file":303,"line":161},"register_menus","includes\\core\\admin\\class-menu.php",{"type":148,"name":305,"callback":306,"file":307,"line":308},"wp_enqueue_scripts","assets","includes\\core\\class-assets.php",27,{"type":148,"name":310,"callback":311,"file":307,"line":312},"admin_enqueue_scripts","admin_assets",28,{"type":148,"name":314,"callback":315,"file":316,"line":34},"query_vars","whitelist_query_vars","includes\\core\\class-requests.php",{"type":167,"name":318,"callback":319,"file":316,"line":206},"removable_query_args","clear_admin_query_args",{"type":148,"name":321,"callback":322,"file":316,"line":165},"load-toplevel_page_ensemble-unit-admin","redirect_units_menu",{"type":167,"name":208,"callback":209,"priority":210,"file":324,"line":325},"includes\\core\\class-users.php",29,{"type":148,"name":196,"callback":327,"file":328,"line":240},"register_taxonomy","includes\\core\\traits\\trait-taxonomy-component.php",{"type":167,"name":330,"callback":331,"file":328,"line":193},"parent_file","set_menu_highlight",[],[],[],[],{"dangerousFunctions":337,"sqlUsage":338,"outputEscaping":349,"fileOperations":11,"externalRequests":11,"nonceChecks":250,"capabilityChecks":247,"bundledLibraries":415},[],{"prepared":165,"raw":62,"locations":339},[340,344,347],{"file":341,"line":342,"context":343},"includes\\core\\class-database.php",562,"$wpdb->get_var() with variable interpolation",{"file":345,"line":34,"context":346},"uninstall.php","$wpdb->query() with variable interpolation",{"file":345,"line":348,"context":346},71,{"escaped":350,"rawEcho":34,"locations":351},261,[352,356,358,360,362,365,367,369,370,372,374,376,378,380,382,383,385,387,390,393,395,397,399,401,403,405,407,409,411,413],{"file":353,"line":354,"context":355},"includes\\components\\contests\\admin\\views\\delete.php",60,"raw output",{"file":353,"line":357,"context":355},73,{"file":353,"line":359,"context":355},78,{"file":353,"line":361,"context":355},79,{"file":363,"line":364,"context":355},"includes\\components\\people\\directors\\admin\\views\\delete.php",65,{"file":363,"line":366,"context":355},69,{"file":368,"line":364,"context":355},"includes\\components\\people\\instructors\\admin\\views\\delete.php",{"file":368,"line":366,"context":355},{"file":236,"line":371,"context":355},105,{"file":236,"line":373,"context":355},113,{"file":375,"line":213,"context":355},"includes\\components\\venues\\admin\\views\\delete.php",{"file":375,"line":377,"context":355},51,{"file":375,"line":379,"context":355},52,{"file":375,"line":381,"context":355},59,{"file":375,"line":354,"context":355},{"file":375,"line":384,"context":355},61,{"file":375,"line":386,"context":355},62,{"file":388,"line":389,"context":355},"includes\\functions.php",129,{"file":391,"line":392,"context":355},"includes\\util\\class-html.php",157,{"file":391,"line":394,"context":355},188,{"file":391,"line":396,"context":355},219,{"file":391,"line":398,"context":355},290,{"file":391,"line":400,"context":355},396,{"file":391,"line":402,"context":355},430,{"file":391,"line":404,"context":355},456,{"file":391,"line":406,"context":355},485,{"file":391,"line":408,"context":355},555,{"file":391,"line":410,"context":355},630,{"file":391,"line":412,"context":355},720,{"file":391,"line":414,"context":355},764,[],[417,442,452,465,478,489,500,510],{"entryPoint":418,"graph":419,"unsanitizedCount":11,"severity":441},"delete_contest (includes\\components\\contests\\admin\\class-actions.php:166)",{"nodes":420,"edges":436},[421,426,430],{"id":422,"type":423,"label":424,"file":198,"line":425},"n0","source","$_REQUEST",189,{"id":427,"type":428,"label":429,"file":198,"line":425},"n1","transform","→ delete()",{"id":431,"type":432,"label":433,"file":341,"line":434,"wp_function":435},"n2","sink","query() [SQLi]",307,"query",[437,439],{"from":422,"to":427,"sanitized":438},false,{"from":427,"to":431,"sanitized":440},true,"low",{"entryPoint":443,"graph":444,"unsanitizedCount":11,"severity":441},"\u003Cclass-actions> (includes\\components\\contests\\admin\\class-actions.php:0)",{"nodes":445,"edges":449},[446,447,448],{"id":422,"type":423,"label":424,"file":198,"line":425},{"id":427,"type":428,"label":429,"file":198,"line":425},{"id":431,"type":432,"label":433,"file":341,"line":434,"wp_function":435},[450,451],{"from":422,"to":427,"sanitized":438},{"from":427,"to":431,"sanitized":440},{"entryPoint":453,"graph":454,"unsanitizedCount":464,"severity":441},"\u003Cdelete> (includes\\components\\contests\\admin\\views\\delete.php:0)",{"nodes":455,"edges":462},[456,459],{"id":422,"type":423,"label":457,"file":353,"line":458},"$_REQUEST (x2)",16,{"id":427,"type":432,"label":460,"file":353,"line":354,"wp_function":461},"echo() [XSS]","echo",[463],{"from":422,"to":427,"sanitized":438},2,{"entryPoint":466,"graph":467,"unsanitizedCount":464,"severity":441},"\u003Cdelete> (includes\\components\\people\\directors\\admin\\views\\delete.php:0)",{"nodes":468,"edges":475},[469,470,472,473],{"id":422,"type":423,"label":457,"file":363,"line":458},{"id":427,"type":432,"label":460,"file":363,"line":471,"wp_function":461},58,{"id":431,"type":423,"label":457,"file":363,"line":458},{"id":474,"type":432,"label":460,"file":363,"line":364,"wp_function":461},"n3",[476,477],{"from":422,"to":427,"sanitized":440},{"from":431,"to":474,"sanitized":438},{"entryPoint":479,"graph":480,"unsanitizedCount":464,"severity":441},"\u003Cdelete> (includes\\components\\people\\instructors\\admin\\views\\delete.php:0)",{"nodes":481,"edges":486},[482,483,484,485],{"id":422,"type":423,"label":457,"file":368,"line":458},{"id":427,"type":432,"label":460,"file":368,"line":471,"wp_function":461},{"id":431,"type":423,"label":457,"file":368,"line":458},{"id":474,"type":432,"label":460,"file":368,"line":364,"wp_function":461},[487,488],{"from":422,"to":427,"sanitized":440},{"from":431,"to":474,"sanitized":438},{"entryPoint":490,"graph":491,"unsanitizedCount":11,"severity":441},"delete_venue (includes\\components\\venues\\admin\\class-actions.php:141)",{"nodes":492,"edges":497},[493,495,496],{"id":422,"type":423,"label":424,"file":291,"line":494},164,{"id":427,"type":428,"label":429,"file":291,"line":494},{"id":431,"type":432,"label":433,"file":341,"line":434,"wp_function":435},[498,499],{"from":422,"to":427,"sanitized":438},{"from":427,"to":431,"sanitized":440},{"entryPoint":501,"graph":502,"unsanitizedCount":11,"severity":441},"\u003Cclass-actions> (includes\\components\\venues\\admin\\class-actions.php:0)",{"nodes":503,"edges":507},[504,505,506],{"id":422,"type":423,"label":424,"file":291,"line":494},{"id":427,"type":428,"label":429,"file":291,"line":494},{"id":431,"type":432,"label":433,"file":341,"line":434,"wp_function":435},[508,509],{"from":422,"to":427,"sanitized":438},{"from":427,"to":431,"sanitized":440},{"entryPoint":511,"graph":512,"unsanitizedCount":62,"severity":441},"\u003Cdelete> (includes\\components\\venues\\admin\\views\\delete.php:0)",{"nodes":513,"edges":517},[514,516],{"id":422,"type":423,"label":515,"file":375,"line":297},"$_REQUEST (x3)",{"id":427,"type":432,"label":460,"file":375,"line":381,"wp_function":461},[518],{"from":422,"to":427,"sanitized":438},{"summary":520,"deductions":521},"The 'ensemble' plugin v1.1.1 exhibits a strong security posture based on the provided static analysis.  The absence of any identified AJAX handlers, REST API routes, shortcodes, or cron events with unprotected entry points significantly limits its attack surface.  Furthermore, the code demonstrates good practices with a high percentage of SQL queries using prepared statements and a substantial majority of outputs being properly escaped.  The presence of nonce and capability checks further bolsters its security, suggesting thoughtful development in these areas.  The taint analysis reveals a small number of flows with unsanitized paths, but importantly, no critical or high severity issues were flagged, indicating these are likely minor or misclassified.  The plugin's vulnerability history is completely clear, with zero recorded CVEs of any severity. This lack of historical vulnerabilities, combined with the static analysis findings, paints a picture of a well-developed and secure plugin.\n\nWhile the plugin's overall security is impressive, the taint analysis did identify four flows with unsanitized paths. Although these did not reach critical or high severity levels, they still represent a potential weakness. The majority of SQL queries are prepared, but the small percentage that are not could be a minor concern, depending on the context of those specific queries. The limited attack surface is a significant strength, but it's worth noting that any entry points, even if currently secured, could become targets if future functionality is added without proper security considerations.  In conclusion, 'ensemble' v1.1.1 appears to be a robust and secure plugin, with only minor areas for potential scrutiny based on the taint analysis. Its strong adherence to best practices in SQL prepared statements, output escaping, and authentication checks, along with a clean vulnerability history, are significant positive indicators.",[522,525],{"reason":523,"points":524},"Flows with unsanitized paths",8,{"reason":526,"points":62},"SQL queries without prepared statements","2026-03-17T05:52:55.864Z",{"wat":529,"direct":538},{"assetPaths":530,"generatorPatterns":533,"scriptPaths":534,"versionParams":535},[531,532],"\u002Fwp-content\u002Fplugins\u002Fensemble\u002Fassets\u002Fcss\u002Fensemble.css","\u002Fwp-content\u002Fplugins\u002Fensemble\u002Fassets\u002Fjs\u002Fensemble.js",[],[532],[536,537],"ensemble\u002Fassets\u002Fcss\u002Fensemble.css?ver=","ensemble\u002Fassets\u002Fjs\u002Fensemble.js?ver=",{"cssClasses":539,"htmlComments":541,"htmlAttributes":542,"restEndpoints":544,"jsGlobals":545,"shortcodeOutput":546},[540],"ensemble-reqs-row",[],[543],"data-plugin=\"ensemble\u002Fensemble.php\"",[],[],[]]