Too Much TV: What Is The Role Of TV Critics In 2025?

Here's everything you need to know about the world of television for Wednesday, April 2nd, 2025:

THE END OF AN ERA FOR TV CRITICS
It's no secret to anyone that the entertainment business is going through a series of seismic changes that are disrupting the long-established ways of writing, producing, and distributing television. What has been less obvious until today is how disruptive the changes have been to the business of writing about television.

The Television Critics Association is a nonprofit organization which was founded in 1979 to "enhance television criticism, reporting, and editing standards; promote accurate coverage; increase public understanding; and elevate television's role in American culture." What that meant in reality was that the TCA began organizing twice-a-year press tours that connected TCA members with TV executives, producers, actors, and others working in the industry. Those close to two week-long tours featured non-stop panels, one-on-one interviews, set visits, and after-hours parties where critics could connect with those they were covering.

Back in those days, the profession of TV criticism was limited primarily to people working at large entertainment magazines, a few radio and wire services and daily newspapers. Even fairly small-market newspapers had a dedicated TV critic and they used those TCA gatherings as a way to get access to stars they otherwise wouldn't have had.

But with the onset of the internet, the business began to change. And both the networks and the TCA were resistant to tweaking a process that seemed on the outside to be working just fine. I first applied for TCA membership in the late 1990s and was turned down because they weren't accepting anyone who only wrote for a digital publication.

Back in 2007, I wrote a piece entitled "Reinventing The TCA: Do TV Critics Still Matter?" and while it attained somewhat viral popularity in the industry, I think it's fair to say that it wasn't well-received by TV critics. But re-reading it nearly 20 years later, I think I managed to frame the upcoming challenges for the industry pretty well:

Newspaper TV critics are rapidly becoming a dying breed, in large part due to the fact that they seem less relevant to a younger audience. The critics aren’t reflecting the changes in the industry, they’re not writing frequently enough, or about a wide enough range of programming.

They are also ironically being hurt by the very premise of the TCA gatherings. Ten years ago, giving a TV Critic in Cleveland access to quotes from Steven Bochco was great for both the critic and his newspaper. The readers didn’t realize he had the same quotes as the critic from Des Moines or Birmingham. Most people only were able to read the local coverage.

But with the everyday use of the Internet, that lack of original coverage is noticeable both to readers and to the management at the respective newspapers. And when it’s time to make job cuts, many TV critics are feeling the pain because there is a growing impression that the paper can now just get that Bochco quotes from a wire service.

All of this leads me to conclude that the TCA has its creative relevance to the television industry. While I understand why the critics love the TCA gatherings, I’m less convinced that the presentations make sense for the networks. The critics tend to write the most about shows that least need coverage. Everyone wants to be there for the HBO panels, but the smaller cable networks and broadcasters get scant appreciation. Most networks would be better served by focusing their attention primarily on less traditional outlets that tend to write more frequently.

Despite my problems with the way the mission of the TCA has been defined in recent years, they do serve a purpose. As do the twice-a-year tours. The problem is that in 2025, networks and streamers are increasingly convinced that for the most part, TV critics don't matter much when it comes to promoting a new or ongoing show.

And to be fair, the number of journalists who fit the traditional description of television critic is fairly small. The industry has a lot of freelancers and contract workers and let me clear, they are doing the best they can. I spent a lot of years writing for anyone who would pay me and honestly, it's a job with low pay and not a lot of job security.

But if you are working as a freelancer, you likely don't have much say in what you cover. You're a hired gun for hire, working for an editor who is most interested in clicks and revenue. So even at the bigger Penske-owned trades, most of the coverage is devoted to stories about what some star said on a podcast, the release of a new trailer, some casting information, or some other piece of reporting based on a press release. 

All of that helps reinforce in the minds of networks and streamers that most of this coverage can still happen without an expensive TCA press tour. TV executives would much rather make a presentation about strategy at an investment conference than in front of 200 TV writers, where they have no idea what questions they'll face.

And given that an increasing amount of TV coverage focuses on the clickiest topics, there's no point in their eyes to bringing in smaller, less high-profile shows to do a TCA visit. 

The problem with all of this is that the networks and streamers need coverage of their programming that goes beyond rewritten stenography. Companies have cut PR staff and marketing spending and are increasingly convinced they can use technology to put new shows in front of their subscribers.

However, we all know that this approach is only partly successful and depends on the priorities of the company. The small amount of money expended on connecting directly with TV critics is well worth it if they promote a show that the network or streamer doesn't have the resources to properly promote.

On a personal level, this is an issue I have been wrestling with a lot over the past couple of years. I live in the Twin Cities, so it's not practical for me to fly to L.A. every time there's a one-off press event. And with the cutback in resources, in-person opportunities such as set visits are a lot more limited than they were even a decade ago. So I struggle on a daily basis to get the best coverage I can given my smaller footprint in the industry.

On the other hand, I think I've been often punching above my weight in recent years, breaking a number of stories before even the Hollywood trades. But I'll miss those connections I would make at the TCA. There is nothing like sitting across from a table, talking to someone one-on-one. Honestly, it's something I think I do pretty well. And I have a lot of years of knowledge and expertise about the business to draw on.

I know I have a lot of people in the industry who read this newsletter. So if you are a publicist or someone on the creative side, you can always reach out to me. I spend a lot of time talking to people on and off the record. And I am always looking for unique interview and coverage ideas. 

And this seems like a good time to pimp me out a bit and mention that I do offer a paid subscription level for the newsletter. There are some fun features available for paid subscribers, but it's also a way of helping to support an independent journalist trying to make a difference in the industry.

And tomorrow, I'll be back to my normal coverage of TV and Hollywood.

ODDS AND SODS
* Deborah Norville, host of Inside Edition for the last 30 years, announced Wednesday that she is leaving the show at the end of the season. Norville is set to host CBS Media Ventures’ new syndicated game show The Perfect Line in the fall. My connection to this story is that I once had an extremely awkward lunch with Norville when she was working as a reporter/anchor at Chicago's WMAQ. 

* The new Guy Ritchie film Fountain of Youth stars John Krasinski, Natalie Portman, and Stanley Tucci and it debuts on Apple TV+ May 23rd. Here is a look at the trailer, which honestly looks like a blast. And I suspect this is one of those films that would have received a full theatrical release if Apple TV+ hadn't decided to scale back those efforts.

* Comedy Central announced on Wednesday that South Park will return for season 27, two years after season 26 premiered.

* Fox has given four-season renewals for its animated shows The Simpsons, Family Guy, and Bob’s Burgers. It also announced a return to the network for American Dad, which will also be given four seasons. There's no word yet on the future of the animated series The Great North.

* The Food Network has picked up a third season of Wildcard Kitchen and has signed host Eric Adjepong to an "exclusive new multi-year deal." No details on the deal, but the Food Network is leaning into these exclusive deals. Because at the end of the day, lots of people can produce food programming and often the primary differentiator for the Food Network is its stable of recognizable names.

TWEET OF THE DAY



WHAT'S NEW TONIGHT AND TOMORROW

WEDNESDAY, APRIL 2ND:
Banger (Netflix)
Fix My Frankenhouse Season Two Premiere (HGTV)
Garnachas: Glorious Street Food! (Netflix)
Love On The Spectrum U.S. Season Three Premiere (Netflix)
Oklahoma City Bombing: One Day In America (NatGeo)
Please Put Them On, Takamine-san Series Premiere (Crunchyroll)
The Beginning After The End Series Premiere (Crunchyroll) 
The Too-Perfect Saint: Tossed Aside By My Fiancé and Sold To Another Kingdom Series Premiere (Crunchyroll)

THURSDAY, APRIL 3TH:
Devil May Cry Series Premiere (Netflix)
Flipping 101 With Tarek El Moussa Season Premiere (HGTV)
Jurassic World: Chaos Theory Season Premiere (Netflix)
Pulse Season Premiere (Netflix) 
Rock Is A Lady's Modesty Series Premiere (Hidive)
Savor The City Series Premiere (TV One)
SurrealEstate (Syfy)
The Bondsman Series Premiere (Prime Video)
The Brilliant Healer's New Life In The Shadows Series Premiere (Crunchyroll)
Wind Breaker (Crunchyroll)

SEE YOU ON THURSDAY!


9.19MBMemory Usage194msRequest Duration
Joomla! Version4.4.4
PHP Version8.1.32
Identityguest
Response200
Templateja_blockk
Database
Server
mysql
Version
8.0.39-cll-lve
Collation
utf8mb4_unicode_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:48 [ "PATH" => "/usr/local/bin:/bin:/usr/bin" "HTTP_ACCEPT" => "text/html,application/xhtm...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1749783977 "last" => 1749783977...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (528.41KB) (5.4ms)
  • afterInitialise (1.26MB) (33.9ms)
  • afterRoute (227.03KB) (8.18ms)
  • beforeRenderComponent com_content (38.3KB) (992μs)
  • Before Access::preloadComponents (all components) (34.7KB) (862μs)
  • After Access::preloadComponents (all components) (109.3KB) (1.18ms)
  • Before Access::preloadPermissions (com_content) (3.91KB) (18μs)
  • After Access::preloadPermissions (com_content) (2.99MB) (23.38ms)
  • Before Access::getAssetRules (id:4651 name:com_content.article.3817) (258.8KB) (198μs)
  • After Access::getAssetRules (id:4651 name:com_content.article.3817) (8.47KB) (196μs)
  • beforeRenderRawModule mod_related_items (Read More) (869.28KB) (41.73ms)
  • Before Access::getAssetRules (id:8 name:com_content) (79.63KB) (5.99ms)
  • After Access::getAssetRules (id:8 name:com_content) (1.59KB) (19μs)
  • afterRenderRawModule mod_related_items (Read More) (69.29KB) (13.57ms)
  • beforeRenderModule mod_related_items (Read More) (704B) (15μs)
  • afterRenderModule mod_related_items (Read More) (3.82KB) (201μs)
  • afterRenderComponent com_content (51.44KB) (93μs)
  • afterDispatch (3.53KB) (223μs)
  • beforeRenderRawModule mod_menu (Newsletters) (355.23KB) (20.08ms)
  • afterRenderRawModule mod_menu (Newsletters) (14.71KB) (579μs)
  • beforeRenderModule mod_menu (Newsletters) (720B) (7μs)
  • afterRenderModule mod_menu (Newsletters) (1.89KB) (222μs)
  • beforeRenderRawModule mod_menu (Other Content) (712B) (51μs)
  • afterRenderRawModule mod_menu (Other Content) (944B) (142μs)
  • beforeRenderModule mod_menu (Other Content) (720B) (5μs)
  • afterRenderModule mod_menu (Other Content) (1.3KB) (111μs)
  • beforeRenderRawModule mod_finder (Head Search) (1.94KB) (87μs)
  • afterRenderRawModule mod_finder (Head Search) (66.42KB) (4ms)
  • beforeRenderModule mod_finder (Head Search) (720B) (8μs)
  • afterRenderModule mod_finder (Head Search) (3.3KB) (197μs)
  • beforeRenderRawModule mod_custom ([Offcanvas] Custom banner) (864B) (77μs)
  • afterRenderRawModule mod_custom ([Offcanvas] Custom banner) (3.88KB) (358μs)
  • beforeRenderModule mod_custom ([Offcanvas] Custom banner) (736B) (6μs)
  • afterRenderModule mod_custom ([Offcanvas] Custom banner) (4.82KB) (112μs)
  • beforeRenderRawModule mod_custom ([Offcanvas] Social media) (24B) (26μs)
  • afterRenderRawModule mod_custom ([Offcanvas] Social media) (1.05KB) (95μs)
  • beforeRenderModule mod_custom ([Offcanvas] Social media) (736B) (5μs)
  • afterRenderModule mod_custom ([Offcanvas] Social media) (2.93KB) (103μs)
  • beforeRenderRawModule mod_menu (Off Canvas) (2.23KB) (25μs)
  • afterRenderRawModule mod_menu (Off Canvas) (944B) (142μs)
  • beforeRenderModule mod_menu (Off Canvas) (720B) (5μs)
  • afterRenderModule mod_menu (Off Canvas) (1.28KB) (101μs)
  • beforeRenderRawModule mod_menu (magazine-menu-3) (55.45KB) (1.32ms)
  • afterRenderRawModule mod_menu (magazine-menu-3) (116.6KB) (2.98ms)
  • beforeRenderModule mod_menu (magazine-menu-3) (720B) (7μs)
  • afterRenderModule mod_menu (magazine-menu-3) (6.28KB) (108μs)
  • afterRender (693.04KB) (12.09ms)
  • 1 x beforeRenderRawModule mod_related_items (Read More) (869.28KB) (21.48%)
    41.73ms
    1 x afterInitialise (1.26MB) (17.45%)
    33.90ms
    1 x After Access::preloadPermissions (com_content) (2.99MB) (12.04%)
    23.38ms
    1 x beforeRenderRawModule mod_menu (Newsletters) (355.23KB) (10.33%)
    20.08ms
    1 x afterRenderRawModule mod_related_items (Read More) (69.29KB) (6.99%)
    13.57ms
    1 x afterRender (693.04KB) (6.22%)
    12.09ms
    1 x afterRoute (227.03KB) (4.21%)
    8.18ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (79.63KB) (3.08%)
    5.99ms
    1 x afterLoad (528.41KB) (2.78%)
    5.40ms
    1 x afterRenderRawModule mod_finder (Head Search) (66.42KB) (2.06%)
    4.00ms
    1 x afterRenderRawModule mod_menu (magazine-menu-3) (116.6KB) (1.53%)
    2.98ms
    1 x beforeRenderRawModule mod_menu (magazine-menu-3) (55.45KB) (0.68%)
    1.32ms
    1 x After Access::preloadComponents (all components) (109.3KB) (0.61%)
    1.18ms
    1 x beforeRenderComponent com_content (38.3KB) (0.51%)
    992μs
    1 x Before Access::preloadComponents (all components) (34.7KB) (0.44%)
    862μs
    1 x afterRenderRawModule mod_menu (Newsletters) (14.71KB) (0.3%)
    579μs
    1 x afterRenderRawModule mod_custom ([Offcanvas] Custom banner) (3.88KB) (0.18%)
    358μs
    1 x afterDispatch (3.53KB) (0.11%)
    223μs
    1 x afterRenderModule mod_menu (Newsletters) (1.89KB) (0.11%)
    222μs
    1 x afterRenderModule mod_related_items (Read More) (3.82KB) (0.1%)
    201μs
    1 x Before Access::getAssetRules (id:4651 name:com_content.article.3817) (258.8KB) (0.1%)
    198μs
    1 x afterRenderModule mod_finder (Head Search) (3.3KB) (0.1%)
    197μs
    1 x After Access::getAssetRules (id:4651 name:com_content.article.3817) (8.47KB) (0.1%)
    196μs
    1 x afterRenderRawModule mod_menu (Other Content) (944B) (0.07%)
    142μs
    1 x afterRenderRawModule mod_menu (Off Canvas) (944B) (0.07%)
    142μs
    1 x afterRenderModule mod_custom ([Offcanvas] Custom banner) (4.82KB) (0.06%)
    112μs
    1 x afterRenderModule mod_menu (Other Content) (1.3KB) (0.06%)
    111μs
    1 x afterRenderModule mod_menu (magazine-menu-3) (6.28KB) (0.06%)
    108μs
    1 x afterRenderModule mod_custom ([Offcanvas] Social media) (2.93KB) (0.05%)
    103μs
    1 x afterRenderModule mod_menu (Off Canvas) (1.28KB) (0.05%)
    101μs
    1 x afterRenderRawModule mod_custom ([Offcanvas] Social media) (1.05KB) (0.05%)
    95μs
    1 x afterRenderComponent com_content (51.44KB) (0.05%)
    93μs
    1 x beforeRenderRawModule mod_finder (Head Search) (1.94KB) (0.04%)
    87μs
    1 x beforeRenderRawModule mod_custom ([Offcanvas] Custom banner) (864B) (0.04%)
    77μs
    1 x beforeRenderRawModule mod_menu (Other Content) (712B) (0.03%)
    51μs
    1 x beforeRenderRawModule mod_custom ([Offcanvas] Social media) (24B) (0.01%)
    26μs
    1 x beforeRenderRawModule mod_menu (Off Canvas) (2.23KB) (0.01%)
    25μs
    1 x After Access::getAssetRules (id:8 name:com_content) (1.59KB) (0.01%)
    19μs
    1 x Before Access::preloadPermissions (com_content) (3.91KB) (0.01%)
    18μs
    1 x beforeRenderModule mod_related_items (Read More) (704B) (0.01%)
    15μs
    1 x beforeRenderModule mod_finder (Head Search) (720B) (0%)
    8μs
    1 x beforeRenderModule mod_menu (magazine-menu-3) (720B) (0%)
    7μs
    1 x beforeRenderModule mod_menu (Newsletters) (720B) (0%)
    7μs
    1 x beforeRenderModule mod_custom ([Offcanvas] Custom banner) (736B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (Other Content) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_custom ([Offcanvas] Social media) (736B) (0%)
    5μs
    1 x beforeRenderModule mod_menu (Off Canvas) (720B) (0%)
    5μs
50 statements were executed, 3 of which were duplicates, 47 unique104ms628.27KB
  • SELECT @@SESSION.sql_mode;78μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `tvlfg_session` WHERE `session_id` = ?160μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `tvlfg_session` WHERE `session_id` = :session_id LIMIT 1106μs1.61KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `tvlfg_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)1.04ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `tvlfg_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1443μs2.23KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `tvlfg_viewlevels`110μs976B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `tvlfg_usergroups` AS `a` LEFT JOIN `tvlfg_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest208μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `tvlfg_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`6.44ms3.8KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • UPDATE tvlfg_extensions SET enabled=1 WHERE `type`='plugin' AND `element`='jacontenttype' AND `folder`='ajax'1.45ms1.3KB/plugins/system/jacontenttype/jacontenttype.php:62Copy
  • SELECT * FROM `tvlfg_languages` WHERE `published` = 1 ORDER BY `ordering` ASC219μs2.17KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT * FROM tvlfg_menu WHERE alias ='latest-news' AND published=1254μs4.09KB/plugins/system/t4/src/t4/MVC/Router/T4.php:352Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `tvlfg_menu` AS `m` LEFT JOIN `tvlfg_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`629μs20.92KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `tvlfg_categories` AS `s` INNER JOIN `tvlfg_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`362μs5.14KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `tvlfg_template_styles` AS `s` LEFT JOIN `tvlfg_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1264μs1.16KB/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `tvlfg_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)657μs7.75KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `tvlfg_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 05.56ms245.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `tvlfg_content`2.29ms4.89KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `tvlfg_content` SET `hits` = (`hits` + 1) WHERE `id` = '3817'10.25ms48B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `tvlfg_content` AS `a` INNER JOIN `tvlfg_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `tvlfg_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `tvlfg_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `tvlfg_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `tvlfg_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)573μs48.62KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `tvlfg_categories` AS `s` INNER JOIN `tvlfg_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`391μs5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `tvlfg_contentitem_tag_map` AS `m` INNER JOIN `tvlfg_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)1.64ms5.23KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `tvlfg_categories` AS `s` INNER JOIN `tvlfg_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`433μs5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM tvlfg_fields AS a LEFT JOIN `tvlfg_languages` AS l ON l.lang_code = a.language LEFT JOIN tvlfg_users AS uc ON uc.id=a.checked_out LEFT JOIN tvlfg_viewlevels AS ag ON ag.id = a.access LEFT JOIN tvlfg_users AS ua ON ua.id = a.created_user_id LEFT JOIN tvlfg_fields_groups AS g ON g.id = a.group_id LEFT JOIN `tvlfg_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4)) AND `a`.`access` IN (:preparedArray5,:preparedArray6)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray7,:preparedArray8)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC500μs6.06KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `tvlfg_content` AS `a` LEFT JOIN `tvlfg_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC2.4ms58.03KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `tvlfg_categories` AS `s` INNER JOIN `tvlfg_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`360μs5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT u.id, u.name, u.username, u.params FROM tvlfg_users AS u LEFT JOIN tvlfg_user_usergroup_map AS g ON g.user_id = u.id WHERE u.id = '51' GROUP BY u.id118μs1KB/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:279Copy
  • SELECT enabled FROM tvlfg_extensions WHERE `type` = 'plugin' AND `element` = 'profile'115μs856B/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:467Copy
  • SELECT profile_key, profile_value FROM tvlfg_user_profiles WHERE user_id = 51 AND profile_key LIKE 'profile.%' ORDER BY ordering127μs1.09KB/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:420Copy
  • SHOW FULL COLUMNS FROM `tvlfg_users`1.24ms2.2KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • SELECT * FROM `tvlfg_users` WHERE `id` = :userid202μs4.41KBParams/libraries/src/Table/User.php:104Copy
  • SELECT `g`.`id`,`g`.`title` FROM `tvlfg_usergroups` AS `g` INNER JOIN `tvlfg_user_usergroup_map` AS `m` ON `m`.`group_id` = `g`.`id` WHERE `m`.`user_id` = :muserid482μs1.7KBParams/libraries/src/Table/User.php:132Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM tvlfg_fields AS a LEFT JOIN `tvlfg_languages` AS l ON l.lang_code = a.language LEFT JOIN tvlfg_users AS uc ON uc.id=a.checked_out LEFT JOIN tvlfg_viewlevels AS ag ON ag.id = a.access LEFT JOIN tvlfg_users AS ua ON ua.id = a.created_user_id LEFT JOIN tvlfg_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC455μs5.31KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `name` FROM `tvlfg_users` WHERE id = '51'116μs11.84KB/plugins/system/t4/src/t4/MVC/Router/Content/Router.php:66Copy
  • SELECT username FROM tvlfg_users WHERE id=51101μs856B/plugins/system/t4/src/t4/MVC/Router/T4.php:288Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `tvlfg_modules` AS `m` LEFT JOIN `tvlfg_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `tvlfg_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`1.31ms2.38KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `metakey` FROM `tvlfg_content` WHERE `id` = :id176μs1.63KBParams/modules/mod_related_items/src/Helper/RelatedItemsHelper.php:88Copy
  • SELECT `a`.`id` FROM `tvlfg_content` AS `a` WHERE ( ( (`a`.`id` != :id AND `a`.`state` = 1 AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`metakey` LIKE :preparedArray3)) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :nowDate1)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :nowDate2) LIMIT 53.94ms1.82KBParams/modules/mod_related_items/src/Helper/RelatedItemsHelper.php:152Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language` FROM `tvlfg_content` AS `a` LEFT JOIN `tvlfg_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `tvlfg_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `tvlfg_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `tvlfg_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `tvlfg_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` WHERE `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND `a`.`id` IN (:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) ORDER BY a.ordering ASC1.42ms121.61KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `m`.`tag_id`,`m`.`content_item_id`,`t`.* FROM `tvlfg_contentitem_tag_map` AS `m` INNER JOIN `tvlfg_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `t`.`published` = 1 AND `m`.`content_item_id` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5) AND `t`.`access` IN (:preparedArray6,:preparedArray7)7.81ms5.44KBParams/libraries/src/Helper/TagsHelper.php:448Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `tvlfg_categories` AS `s` INNER JOIN `tvlfg_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`874μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `tvlfg_categories` AS `s` INNER JOIN `tvlfg_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`461μs5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `tvlfg_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1597μs976B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `tvlfg_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)220μs904B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT * FROM tvlfg_acym_configuration326μs2.88KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_list WHERE type = 'standard'179μs2.28KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_field149μs2.31KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_form WHERE active = 1 AND type != 'shortcode'137μs1.2KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `tvlfg_scheduler_tasks` AS `a` WHERE `a`.`state` = 1208μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `tvlfg_session` WHERE `session_id` = ?304μs1.63KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `tvlfg_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?45.86ms912BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy