U.S

John Landgraf And The Cult Of Peak TV

Every industry has its folklore. The business practices and methods of operating that everyone "knows" is the truth. Even though more often than not, the accepted narratives range from slightly mistaken to outright ludicrous.

Chairman of FX Entertainment, FX Content & FX Productions John Landgraf is a very smart guy and obviously cares very deeply about the television industry. He also is acutely aware that reporters in any industry respond to seemingly frank talk. That's especially the case in the television business, where network executives have proven in recent years to be reluctant to speak to TV critics during their network's presentations in front of the Television Critics Association (TCA) twice-a-year gatherings in Pasadena.

But Landgraf makes regular appearances during the TCA gatherings and even better for critics, he comes armed with lots of cool charts and data points the reporters can use in their coverage. It's a smart PR move on his part and his willingness to participate in the process has meant that he has had an outsized role in shaping the conventional wisdom of the television and streaming business.

One of his over-arching themes during the past few TCA gatherings is the idea of "peak TV," a phrase he coined back in 2015. Each year he brings out data compiled by FX's research folks, which among other things tracks the number of new English-language originals released over the past year in the United States. And as the number rises each year, the trend has sparked an entire cottage industry of think pieces that argue the television industry produces too many new shows.

That theme of "too much TV" has become the overarching folklore of the television industry and is cited as the underlying cause of so many of the problems faced by the industry.

"Streamers losing money?" Too many originals. "Slowdown in subscriber numbers?" "Rising subscriber churn?" "The collapse of linear television?" All of those new streaming originals are confusing consumers. And so on and so on.

On Thursday, Landgraf was back in front of the TCA and revealed that in 2022 there were 599 English-language scripted series across all platforms, up from 551 in 2021. He also said that he felt as if this might be the high water mark for new originals and that the number would slowly decline in the years to come.

"In August, I said it would be the 2020s you would find the market peak of scripted TV series and that is still my bet, while noting with humility that I’ve been wrong on this prediction twice before," Landgraf told critics. "I saw an article by John Koblin in The New York Times in which he tracked a decline in series orders year on year, which is a leading indicator of the next year's output. Between his reporting and the fact that you see s 16 percent deceleration - in other words, you were up 14 percent in the first half and down 2 - a 16 percent swing between the first and the second half of the year.  I think we have a strong indication that we're going to start to see a decline beginning in 2023."

But whatever the number might be, does it really matter? Obviously it's a lot of new shows and the number feeds into people's notions that there is entirely too much great television for anyone to keep track of every week. The idea that "Peak TV" is bad for the industry has become deeply embedded in the psyche of the entertainment world and it's nearly impossible to convince people that it is overblown. I suspect that I would be hard-pressed to convince Landgraf that nearly 600 new show figure isn't all that important. 

But I am going to give it a try.

The number of streaming originals is often used as a proxy for the complaint that the industry has replaced a profitable legacy linear ecosystem with a streaming business that is less profitable. And in a just-published interview with Vulture's Joe Adalian, Landgraf argues the industry is going to consolidate back to a business model that more closely resembles the glory days of linear television:

But we don’t have a compact business model — a limited number of retailers and a limited number of wholesalers, all of whom are profiting from the ecosystem. We will arrive at that place again, in my opinion. But the reason we’re seeing so much difficulty right now is that there are so many participants in that ecosystem, and they have been spending to pursue a beachhead to the future following the Netflix model. So as the old ecosystem declines, and the new ecosystem is not yet fully consolidated, there’s pressure across the board on profitability.

His argument is essentially that once the industry consolidates and there are fewer streamers, they will be able to cut back on their content spend while also somehow increasing profitability.

Now executives who grew up in the golden days of linear television long for those 40 percent margins (and larger) that were made possible by market consolidation, few choices for subscribers, and a carefully crafted assembly line of markets that allowed new TV shows to move from broadcast & cable first-run to physical product, on-demand and then through various levels of syndication. Every stop along the way provided another bit of revenue as well as plenty of residuals. 

Streaming is a very different business, but it's worth noting that it's not inherently unprofitable. I was amused to hear a Warner Bros Discovery financial exec shrug off the company's streaming business by noting that it's only a "20 percent margin business." For those of you who aren't CFO's or financial reporters, it's worth mentioning that in nearly any other business, a 20 percent margin is considered to be the sign of an extremely profitable business.

And that is the core of the problem right now. Media executives and shareholders are accustomed to seeing margins that are unrealistically large in any but the most unusual times. So they blame the streaming business instead of recognizing that the gravy train days of printing money without worrying about competition from other forms of entertainment is coming to an end.

It's difficult to imagine a scenario in which any combination of streaming consolidation and price hikes could provide linear era margins in the media business. That model isn't going away overnight - it still provides plenty of profits. But it's also impossible to recreate in a world filled with a myriad of viewing choices, at all possible price points.

A second counterpoint to Landgraf's argument is that study after study has shown that the two most influential factors for consumers when choosing a streaming service and deciding whether or not they will stay a subscriber is cost and the availability of new content. And both of those desires would prove challenging in a world with fewer subscription services that cost more while simultaneously providing a smaller number of new originals.

I would also argue that in the same way media executives are never going to be able to reconstruct a linear TV-style money train, we are also unlikely to return to a world in which tens or hundreds of millions of viewers share some simultaneous cultural experience. We live in an increasingly niche culture world and that is driven in large part by a universe in which the viewers' screen time is split between everything from TikTok and YouTube to HBO Max and Shudder. That mass culture experience is increasingly a thing of the past and waxing sentimental about it begins to resemble those music fans who moan that the business was so much better when consumers were forced to purchase full-length albums.



So rather than trying to fight that inevitable change, the television industry would be better served playing to the niches while also being cognizant that those niches have to be served at a reasonable cost. This isn't to say that there won't be mass hits or projects that are appealing to a wide audience. But it's a dance to balance the mix and while producing 600 originals in a year isn't an inherently bad thing, producing 600 shows hoping to be massive cultural experiences with the budget to reflect those ambitions is a bad idea. And that is really what has gotten the streaming industry in trouble in recent years.

I truly believe that producing 600 scripted originals a year - or even more - is sustainable. But it also has to be done wisely and that has proved to be the primary sticking point for nearly every service.

Rather than moan about cost and content abundance, there are some factors that will improve the revenue stream while also helping with the increasing churn rate at most streamers.

Content discovery is an industry-wide problem. Consumers can't remember which show is on which streaming service and that alone is enough to frustrate most people. Several companies have tried to build some version of a modern day TV Guide listings app, but no one has managed to create the killer content discovery app. Something that allows a consumer to put in the services that subscribe to and then be able to search for any show, learn whether or not it is available on some paid service, on-demand, or even AVOD. Because whether the streaming industry is creating 300 new scripted originals a year or 600, they are ultimately just wastes of money if audiences can't find them.

Another challenge in the 600 new shows a year universe is marketing and PR. No streamer or network has the resources to give every new show the marketing push and PR efforts they require. So triage is inevitably being done and the truth is that the wrong decision is made about as often as the correct one.

And then there is the increasingly common decision to let streaming customers organically "find" the show. There is a belief at Netflix and several other streamers that effective placement in the service's UI along with viral buzz can often be as effective as traditional press coverage. It's why you see so many reviews embargoed until the show's release date. The theory is that consumers respond when they suddenly begin hearing about a show just as it premieres. 

While there is likely some truth to that, it's also an incredibly inefficient approach. And one in which shows can frequently be missed until it's too late to save them.

In a 600 new show world, smart press coverage is even more important. The average streaming customer is best served by helpful curation and that is a process that is just now beginning to be developed on platforms.

I wrote several years ago about a social component that the entertainment-based vMVPD Philo was testing in-house:

Maybe three years ago an engineer at Philo gave me a rundown of an integrated social sharing tool they were experimenting with in-house. You could share programming suggestions with friends, connect with people who shared your love of a show, and create viewing lists you could share publicly or privately. The plan was eventually to offer networks the opportunity to send direct messages about shows to viewers who opted in. According to the engineer, the features had been very popular internally. But it hadn't been rolled out to the public, because it required a large subscriber base in order to scale correctly.

"Social" is a very mushy term, but in the content of SVODs, it really is about sharing your viewing experiences. Sometimes the sharing is direct - think of the various experimentations with watch parties. But the very nature of the way an SVOD works (and various content restrictions) makes those types of sharing difficult to bring to scale. But there are ways of creating a social experience that doesn't require actual direct social interaction.

Another streamer provided me with a look at an Alpha build of their proposed social component last May and you can read more about that here.

Both efforts show that there are solutions to the content marketing challenges facing the streaming business. And while those solutions might be challenging to implement in the short-term, they are a better solution than cutting the number of scripted originals and hoping it won't drive subscribers to leave.

It's also a better solution than the one being pushed by Warner Bros. Discovery executives, who believe the streaming business can be more profitable if they are fewer subscribers paying more per month.

Peak TV is a real issue. But it's not the cause of so much of the disruption impacting the streaming business in 2023. Producing fewer scripted programs won't bring back the golden days when everyone was talking around the water cooler about the latest episode of Seinfeld.

As an industry, we should not be trying to recreate the past or let fear hamstring innovation. Hollywood loves to mythologize the industry's early pioneers and the courage they showed when they were creating the business that still inspires the world. 

Peak TV shouldn't be seen as a warning. It's an indication that the best is yet to come.

9.128MBMemory Usage252msRequest 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" => 1743503079 "last" => 1743503079...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (528.29KB) (9.52ms)
  • afterInitialise (1.26MB) (37.9ms)
  • afterRoute (226.98KB) (10.74ms)
  • beforeRenderComponent com_content (38.27KB) (1.42ms)
  • Before Access::preloadComponents (all components) (34.7KB) (1.18ms)
  • After Access::preloadComponents (all components) (109.3KB) (1.46ms)
  • Before Access::preloadPermissions (com_content) (3.91KB) (21μs)
  • After Access::preloadPermissions (com_content) (2.39MB) (12.04ms)
  • Before Access::getAssetRules (id:1887 name:com_content.article.1064) (130.8KB) (261μs)
  • After Access::getAssetRules (id:1887 name:com_content.article.1064) (8.47KB) (242μs)
  • beforeRenderRawModule mod_related_items (Read More) (1.1MB) (57.97ms)
  • Before Access::getAssetRules (id:8 name:com_content) (84.03KB) (4.46ms)
  • After Access::getAssetRules (id:8 name:com_content) (1.59KB) (21μs)
  • afterRenderRawModule mod_related_items (Read More) (45.16KB) (8.97ms)
  • beforeRenderModule mod_related_items (Read More) (704B) (14μs)
  • afterRenderModule mod_related_items (Read More) (3.82KB) (281μs)
  • beforeRenderRawModule mod_articles_latest (Recent Post) (376B) (262μs)
  • afterRenderRawModule mod_articles_latest (Recent Post) (106.95KB) (34.24ms)
  • beforeRenderModule mod_articles_latest (Recent Post) (704B) (12μs)
  • afterRenderModule mod_articles_latest (Recent Post) (5.93KB) (183μs)
  • beforeRenderRawModule mod_jacontentlisting (Press Releases) (2.23KB) (49μs)
  • afterRenderRawModule mod_jacontentlisting (Press Releases) (279.39KB) (17.38ms)
  • beforeRenderModule mod_jacontentlisting (Press Releases) (736B) (9μs)
  • afterRenderModule mod_jacontentlisting (Press Releases) (9.93KB) (189μs)
  • afterRenderComponent com_content (70.21KB) (190μs)
  • afterDispatch (2.28KB) (306μs)
  • beforeRenderRawModule mod_menu (Newsletters) (156.63KB) (27.35ms)
  • afterRenderRawModule mod_menu (Newsletters) (15.28KB) (653μs)
  • beforeRenderModule mod_menu (Newsletters) (720B) (5μs)
  • afterRenderModule mod_menu (Newsletters) (1.89KB) (211μs)
  • beforeRenderRawModule mod_menu (Other Content) (712B) (52μs)
  • afterRenderRawModule mod_menu (Other Content) (944B) (142μs)
  • beforeRenderModule mod_menu (Other Content) (720B) (4μs)
  • afterRenderModule mod_menu (Other Content) (3.8KB) (107μs)
  • beforeRenderRawModule mod_finder (Head Search) (1.94KB) (91μs)
  • afterRenderRawModule mod_finder (Head Search) (77.02KB) (4.33ms)
  • beforeRenderModule mod_finder (Head Search) (720B) (6μs)
  • afterRenderModule mod_finder (Head Search) (3.3KB) (201μs)
  • beforeRenderRawModule mod_custom ([Offcanvas] Custom banner) (864B) (75μs)
  • afterRenderRawModule mod_custom ([Offcanvas] Custom banner) (3.88KB) (405μs)
  • beforeRenderModule mod_custom ([Offcanvas] Custom banner) (736B) (6μs)
  • afterRenderModule mod_custom ([Offcanvas] Custom banner) (2.32KB) (131μs)
  • beforeRenderRawModule mod_custom ([Offcanvas] Social media) (24B) (26μs)
  • afterRenderRawModule mod_custom ([Offcanvas] Social media) (1.05KB) (98μs)
  • beforeRenderModule mod_custom ([Offcanvas] Social media) (736B) (5μs)
  • afterRenderModule mod_custom ([Offcanvas] Social media) (2.93KB) (107μs)
  • beforeRenderRawModule mod_menu (Off Canvas) (2.23KB) (28μs)
  • afterRenderRawModule mod_menu (Off Canvas) (944B) (146μs)
  • beforeRenderModule mod_menu (Off Canvas) (720B) (4μs)
  • afterRenderModule mod_menu (Off Canvas) (1.28KB) (106μs)
  • beforeRenderRawModule mod_menu (magazine-menu-3) (55.45KB) (1.36ms)
  • afterRenderRawModule mod_menu (magazine-menu-3) (117.2KB) (3.51ms)
  • beforeRenderModule mod_menu (magazine-menu-3) (720B) (7μs)
  • afterRenderModule mod_menu (magazine-menu-3) (6.28KB) (125μs)
  • afterRender (713.13KB) (11.78ms)
  • 1 x beforeRenderRawModule mod_related_items (Read More) (1.1MB) (23.05%)
    57.97ms
    1 x afterInitialise (1.26MB) (15.07%)
    37.90ms
    1 x afterRenderRawModule mod_articles_latest (Recent Post) (106.95KB) (13.61%)
    34.24ms
    1 x beforeRenderRawModule mod_menu (Newsletters) (156.63KB) (10.87%)
    27.35ms
    1 x afterRenderRawModule mod_jacontentlisting (Press Releases) (279.39KB) (6.91%)
    17.38ms
    1 x After Access::preloadPermissions (com_content) (2.39MB) (4.79%)
    12.04ms
    1 x afterRender (713.13KB) (4.68%)
    11.78ms
    1 x afterRoute (226.98KB) (4.27%)
    10.74ms
    1 x afterLoad (528.29KB) (3.78%)
    9.52ms
    1 x afterRenderRawModule mod_related_items (Read More) (45.16KB) (3.57%)
    8.97ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (84.03KB) (1.77%)
    4.46ms
    1 x afterRenderRawModule mod_finder (Head Search) (77.02KB) (1.72%)
    4.33ms
    1 x afterRenderRawModule mod_menu (magazine-menu-3) (117.2KB) (1.4%)
    3.51ms
    1 x After Access::preloadComponents (all components) (109.3KB) (0.58%)
    1.46ms
    1 x beforeRenderComponent com_content (38.27KB) (0.56%)
    1.42ms
    1 x beforeRenderRawModule mod_menu (magazine-menu-3) (55.45KB) (0.54%)
    1.36ms
    1 x Before Access::preloadComponents (all components) (34.7KB) (0.47%)
    1.18ms
    1 x afterRenderRawModule mod_menu (Newsletters) (15.28KB) (0.26%)
    653μs
    1 x afterRenderRawModule mod_custom ([Offcanvas] Custom banner) (3.88KB) (0.16%)
    405μs
    1 x afterDispatch (2.28KB) (0.12%)
    306μs
    1 x afterRenderModule mod_related_items (Read More) (3.82KB) (0.11%)
    281μs
    1 x beforeRenderRawModule mod_articles_latest (Recent Post) (376B) (0.1%)
    262μs
    1 x Before Access::getAssetRules (id:1887 name:com_content.article.1064) (130.8KB) (0.1%)
    261μs
    1 x After Access::getAssetRules (id:1887 name:com_content.article.1064) (8.47KB) (0.1%)
    242μs
    1 x afterRenderModule mod_menu (Newsletters) (1.89KB) (0.08%)
    211μs
    1 x afterRenderModule mod_finder (Head Search) (3.3KB) (0.08%)
    201μs
    1 x afterRenderComponent com_content (70.21KB) (0.08%)
    190μs
    1 x afterRenderModule mod_jacontentlisting (Press Releases) (9.93KB) (0.08%)
    189μs
    1 x afterRenderModule mod_articles_latest (Recent Post) (5.93KB) (0.07%)
    183μs
    1 x afterRenderRawModule mod_menu (Off Canvas) (944B) (0.06%)
    146μs
    1 x afterRenderRawModule mod_menu (Other Content) (944B) (0.06%)
    142μs
    1 x afterRenderModule mod_custom ([Offcanvas] Custom banner) (2.32KB) (0.05%)
    131μs
    1 x afterRenderModule mod_menu (magazine-menu-3) (6.28KB) (0.05%)
    125μs
    1 x afterRenderModule mod_menu (Other Content) (3.8KB) (0.04%)
    107μs
    1 x afterRenderModule mod_custom ([Offcanvas] Social media) (2.93KB) (0.04%)
    107μs
    1 x afterRenderModule mod_menu (Off Canvas) (1.28KB) (0.04%)
    106μs
    1 x afterRenderRawModule mod_custom ([Offcanvas] Social media) (1.05KB) (0.04%)
    98μs
    1 x beforeRenderRawModule mod_finder (Head Search) (1.94KB) (0.04%)
    91μs
    1 x beforeRenderRawModule mod_custom ([Offcanvas] Custom banner) (864B) (0.03%)
    75μs
    1 x beforeRenderRawModule mod_menu (Other Content) (712B) (0.02%)
    52μs
    1 x beforeRenderRawModule mod_jacontentlisting (Press Releases) (2.23KB) (0.02%)
    49μs
    1 x beforeRenderRawModule mod_menu (Off Canvas) (2.23KB) (0.01%)
    28μs
    1 x beforeRenderRawModule mod_custom ([Offcanvas] Social media) (24B) (0.01%)
    26μs
    1 x After Access::getAssetRules (id:8 name:com_content) (1.59KB) (0.01%)
    21μs
    1 x Before Access::preloadPermissions (com_content) (3.91KB) (0.01%)
    21μs
    1 x beforeRenderModule mod_related_items (Read More) (704B) (0.01%)
    14μs
    1 x beforeRenderModule mod_articles_latest (Recent Post) (704B) (0%)
    12μs
    1 x beforeRenderModule mod_jacontentlisting (Press Releases) (736B) (0%)
    9μs
    1 x beforeRenderModule mod_menu (magazine-menu-3) (720B) (0%)
    7μs
    1 x beforeRenderModule mod_finder (Head Search) (720B) (0%)
    6μs
    1 x beforeRenderModule mod_custom ([Offcanvas] Custom banner) (736B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (Newsletters) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_custom ([Offcanvas] Social media) (736B) (0%)
    5μs
    1 x beforeRenderModule mod_menu (Other Content) (720B) (0%)
    4μs
    1 x beforeRenderModule mod_menu (Off Canvas) (720B) (0%)
    4μs
61 statements were executed, 8 of which were duplicates, 53 unique90.2ms682.37KB
  • SELECT @@SESSION.sql_mode;162μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `tvlfg_session` WHERE `session_id` = ?171μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `tvlfg_session` WHERE `session_id` = :session_id LIMIT 185μ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.38ms944BParams/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` = 1451μs2.23KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `tvlfg_viewlevels`116μ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` = :guest889μ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`727μs3.8KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • UPDATE tvlfg_extensions SET enabled=1 WHERE `type`='plugin' AND `element`='jacontenttype' AND `folder`='ajax'487μs1.3KB/plugins/system/jacontenttype/jacontenttype.php:62Copy
  • SELECT * FROM `tvlfg_languages` WHERE `published` = 1 ORDER BY `ordering` ASC239μs2.17KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT * FROM tvlfg_menu WHERE alias ='latest-news' AND published=1260μ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`659μ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`438μ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` = 1308μ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)960μ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.09ms225.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `tvlfg_content`2.02ms4.89KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `tvlfg_content` SET `hits` = (`hits` + 1) WHERE `id` = '1064'15.87ms48B/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)765μs24.63KBParams/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`541μ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)2.06ms5.25KBParams/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`506μ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 ASC552μ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.49ms38.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`489μ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.id288μs1KB/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:279Copy
  • SELECT enabled FROM tvlfg_extensions WHERE `type` = 'plugin' AND `element` = 'profile'220μ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 ordering223μs1.09KB/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:420Copy
  • SHOW FULL COLUMNS FROM `tvlfg_users`1.57ms2.2KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • SELECT * FROM `tvlfg_users` WHERE `id` = :userid251μ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` = :muserid339μ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 ASC471μs5.31KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `name` FROM `tvlfg_users` WHERE id = '51'134μs11.84KB/plugins/system/t4/src/t4/MVC/Router/Content/Router.php:66Copy
  • SELECT username FROM tvlfg_users WHERE id=51106μ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.16ms2.44KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `metakey` FROM `tvlfg_content` WHERE `id` = :id180μ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 OR `a`.`metakey` LIKE :preparedArray4)) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :nowDate1)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :nowDate2) LIMIT 52.03ms1.85KBParams/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 ASC2.96ms121.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)2.44ms5.47KBParams/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`614μs5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • 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`.`catid` IN (:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19) 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.publish_up DESC LIMIT 528.24ms59.17KBParams/libraries/src/MVC/Model/BaseDatabaseModel.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`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`821μ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`436μs5.19KBParams/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`,( SELECT COUNT(`i`.`id`) FROM `tvlfg_content` AS `i` WHERE `i`.`catid` = `c`.`id` AND `i`.`state` = 1) AS `numitems` 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`1.18ms5.22KBParams/libraries/src/Categories/Categories.php:375Copy
  • 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`.`catid` IN (:preparedArray5) 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.created DESC LIMIT 31.49ms24.83KBParams/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) AND `t`.`access` IN (:preparedArray4,:preparedArray5)2.95ms5.36KBParams/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`517μs5.19KBParams/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`493μ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 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 ASC536μs5.31KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT username FROM tvlfg_users WHERE id = 51 AND block = 0347μs856B/modules/mod_jacontentlisting/tmpl/elements/info_block/author.php:29Copy
  • SELECT username FROM tvlfg_users WHERE id = 51 AND block = 0208μs856B/modules/mod_jacontentlisting/tmpl/elements/info_block/author.php:29Copy
  • SELECT username FROM tvlfg_users WHERE id = 51 AND block = 0118μs856B/modules/mod_jacontentlisting/tmpl/elements/info_block/author.php:29Copy
  • SELECT `name`,`element` FROM `tvlfg_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1469μ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)216μs904B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT * FROM tvlfg_acym_configuration327μs2.88KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_list WHERE type = 'standard'169μs2.28KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_field124μs2.31KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_form WHERE active = 1 AND type != 'shortcode'109μ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` = 1179μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `tvlfg_session` WHERE `session_id` = ?116μs1.63KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `tvlfg_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?444μs912BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy