Review: 'Doctor Who: The Giggle'

Doctor Who, thank you! You have given us –a wild ride of fun and terror. This is what I have been missing with Doctor Who — the drama and the comedy. It’s what we need in the world today and very few shows in the last five years have moved me from laughter to tears. In fact, I’ll say this. In some ways, it reminds me of the move from the Fifth Doctor to the Sixth Doctor. That’s when you lost me initially. 

Doctor Who’s “The Giggle” had something for everyone. The opening echoes the time we live in (scary right). Then we got the return of our old friend (and The Doctor’s formal employer) U.N.I.T. with Lethbridge-Stewart. We have the Toymaker which echoes back to the very first doctor. The TARDIS is being transported by helicopter to the 11th Doctor. And all along the way, we have our Doctor and Donna taking the trip. 

Let’s get real for a moment. The Toymaker played by Neil Patrick Harris is one of their best villains of all time. He not only held our attention, but he brought the story into focus with a crazy style (dancing to Spice Girls, really). The maze house in which he trapped the Doctor reminded me of old horror movies, but the remembrance of Amy and Clara also brought a touch of sadness. The Toymaker showed his true colors here when The Doctor reminded him that in a way they survived. I think it was the second game that was telling. Would the outcome have been different if The Doctor had cut the cards?

Let’s move to UNIT. UNIT was a strictly military force with scientists. Without even checking Donna’s background, Lethbridge-Stewart gave her a job at 150,000 pounds and five weeks of vacation. Wow! What a lucky break Donna got. Then, she was the one who could stop the Toymaker’s diabolical laugh that was causing trouble by a computer program. Did this all come from her time with the Doctor or was it meant to be? It was also great that we got another former companion in the mix. Mel was a wonderful addition to the team. Oh, and let’s not forget. The Doctor can order weapons fired to destroy satellites over the Presidents (who were going crazy).

“The Laugh” was the controlling feature that turned EVERYONE into a person who fought for what they wanted (be it a road or London). The victimhood turned on everybody was unnerving because it’s what the world looks like sometimes today (especially with some discussion groups on X). Everyone has an opinion, and you don’t dare disagree. In the case of “the laugh,” it turned normally sane people into control freaks wanting more. “I’m right!” “This is mine!” We see that in our world today. Yes, it is wrong, but we must deal with it and live, as Donna says, “day to day.”

Okay, let’s get to the big story – the regeneration. We should have expected something new and fresh from Russell T. Davies. We got it! Has anyone thought of bi-generational Doctors before? Well, now that it has been done, I’m going to have to rethink the ending of the 50th anniversary show. If you remember, the eleventh Doctor met the Curator at a gallery. The Curator reminded the old-time fans like me of Tom Baker, the beloved fourth doctor. Of course, it could have been because Tom Baker was playing a role. Now, I have to wonder if it was the bi-generational effect. And we have found out that the bi-generational effect is a myth that our Doctor has proven true.

The way The Doctor regenerated was amazing in itself and very unique. He had Donna and Mel pull an arm, and the new Doctor (the 15th) appeared, making the two appear as Siamese twins. The 14th Doctor and the 15th Doctor pushed until both stood side by side. The 14th Doctor did not die or disappear but remained to fight The Toymaker. Even the Toymaker was confused but saw it as a new game he could play for hundreds of years. Of course, causing the Doctor to split over and over might not have had the same effect. What this regeneration meant is simple. It would take both of the Doctors to play catch with the Toymaker who would cheat. With the direct mention of “I want to play a game” by both of them, the fans knew the Toymaker didn’t stand a chance. And two getting their own TARDIS made it all the more special when the second appeared as a prize. But that seems trivial now when you look at the potential for the show over the next years. 

Why did the Doctor double? Doublemint Gum has a slogan of “double your pleasure, double your fun.” Well, let’s face it. Doctor 10/14 always seemed careworn and intense. The fourteenth Doctor returned to solve the final problem of The Toymaker started with the first Doctor. He also had to reunite with Donna, his best friend. As the 15th Doctor tells him, he has carried so many of the troubles of the universe and deaths he seen on himself that 14 was getting thin (sick). When the Doctor came back as the 14th Doctor, he had to see Donna to get rid of the cares. Somehow Donna brought out the best of Doctor 10. And, it was with Donna that he finally let the sorrow and what he had seen go. As the 15th Doctor tells 14, he’s healed the 15th Doctor who can now go back and do the business he should do with fun and joy. 

Which brings me to the ending. Did you ever think you’d see a Doctor be part of the family? The sheer joy that was in the final scene of the 14th Doctor sitting down and becoming a member of Donna’s family was one of joy. I can see him sneaking off with Donna’s daughter, Rose, to show her the world. Sean seems to have accepted the other man in Donna’s life. Sylvia says the Doctor hasn’t seen the evil stepmother yet. And the extended family continues with the addition of a former companion, Mel, as an aunt. We see the set-up for the Doctor having friends, an extended family, and a life away from saving the world and mankind.

Now on to the hint of the future. The Toymaker had played against The Master and won. In winning, the Toymaker put The Master into a gold tooth crown. When the Toymaker was defeated, he lost the tooth. So, who was the woman with red nails who picked it up? And did this remind anyone of another episode in the 10th Doctor’s years with something similar happening? I replayed that scene several times and even went back and looked at the scenes in UNIT. I could not tell who had red nails. The only two options that I could find were Lethbridge-Stewart and Sylvia (Mel and Donna appeared to have clean nails). Could one of them be responsible for the return of The Master? Better yet! Will The Master also have a bi-generation regeneration to deal with? What possibilities that could give! I have a feeling it is Sylvia who we saw stand up from her wheelchair. I’m going to be watching her carefully.

To finish, I want to say that David Tennant and Catherine Tate should be given acting awards for their performances. They did a tour de force of every emotion there could be. Russell T. Davies, thank you for bringing the Doctor full circle. You started it with the casting of Eccleston and Tennant. While I do have issues with you, Davies, over Torchwood, I’ll stand back and watch this with joy – something that has been missing for a while with Doctor Who.

9.094MBMemory Usage289msRequest 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" => 1746185303 "last" => 1746185303...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (528.29KB) (9.01ms)
  • afterInitialise (1.26MB) (53.84ms)
  • afterRoute (222.19KB) (27.97ms)
  • beforeRenderComponent com_content (38.28KB) (1.39ms)
  • Before Access::preloadComponents (all components) (34.69KB) (1.16ms)
  • After Access::preloadComponents (all components) (109.3KB) (1.42ms)
  • Before Access::preloadPermissions (com_content) (3.91KB) (20μs)
  • After Access::preloadPermissions (com_content) (2.92MB) (13.06ms)
  • Before Access::getAssetRules (id:1780 name:com_content.article.957) (258.8KB) (215μs)
  • After Access::getAssetRules (id:1780 name:com_content.article.957) (8.47KB) (233μs)
  • beforeRenderRawModule mod_related_items (Read More) (826.29KB) (105ms)
  • Before Access::getAssetRules (id:8 name:com_content) (81.17KB) (7.15ms)
  • After Access::getAssetRules (id:8 name:com_content) (1.59KB) (20μs)
  • afterRenderRawModule mod_related_items (Read More) (81.7KB) (9.41ms)
  • beforeRenderModule mod_related_items (Read More) (704B) (15μs)
  • afterRenderModule mod_related_items (Read More) (3.57KB) (280μs)
  • afterRenderComponent com_content (43.19KB) (99μs)
  • afterDispatch (3.53KB) (356μs)
  • beforeRenderRawModule mod_menu (Newsletters) (355.27KB) (30.52ms)
  • afterRenderRawModule mod_menu (Newsletters) (14.71KB) (720μs)
  • beforeRenderModule mod_menu (Newsletters) (720B) (6μs)
  • afterRenderModule mod_menu (Newsletters) (1.89KB) (252μs)
  • beforeRenderRawModule mod_menu (Other Content) (712B) (52μs)
  • afterRenderRawModule mod_menu (Other Content) (944B) (152μs)
  • beforeRenderModule mod_menu (Other Content) (720B) (5μs)
  • afterRenderModule mod_menu (Other Content) (1.3KB) (115μs)
  • beforeRenderRawModule mod_finder (Head Search) (1.94KB) (98μs)
  • afterRenderRawModule mod_finder (Head Search) (66.47KB) (6.2ms)
  • beforeRenderModule mod_finder (Head Search) (720B) (8μs)
  • afterRenderModule mod_finder (Head Search) (3.3KB) (218μs)
  • beforeRenderRawModule mod_custom ([Offcanvas] Custom banner) (864B) (75μs)
  • afterRenderRawModule mod_custom ([Offcanvas] Custom banner) (3.88KB) (399μs)
  • beforeRenderModule mod_custom ([Offcanvas] Custom banner) (736B) (5μs)
  • afterRenderModule mod_custom ([Offcanvas] Custom banner) (4.82KB) (114μs)
  • beforeRenderRawModule mod_custom ([Offcanvas] Social media) (24B) (26μs)
  • afterRenderRawModule mod_custom ([Offcanvas] Social media) (1.05KB) (108μ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) (26μs)
  • afterRenderRawModule mod_menu (Off Canvas) (944B) (150μs)
  • beforeRenderModule mod_menu (Off Canvas) (720B) (5μs)
  • afterRenderModule mod_menu (Off Canvas) (1.28KB) (100μs)
  • beforeRenderRawModule mod_menu (magazine-menu-3) (55.45KB) (1.42ms)
  • afterRenderRawModule mod_menu (magazine-menu-3) (116.49KB) (3.28ms)
  • beforeRenderModule mod_menu (magazine-menu-3) (720B) (6μs)
  • afterRenderModule mod_menu (magazine-menu-3) (6.28KB) (108μs)
  • afterRender (681.13KB) (12.7ms)
  • 1 x beforeRenderRawModule mod_related_items (Read More) (826.29KB) (36.4%)
    105.14ms
    1 x afterInitialise (1.26MB) (18.64%)
    53.84ms
    1 x beforeRenderRawModule mod_menu (Newsletters) (355.27KB) (10.57%)
    30.52ms
    1 x afterRoute (222.19KB) (9.68%)
    27.97ms
    1 x After Access::preloadPermissions (com_content) (2.92MB) (4.52%)
    13.06ms
    1 x afterRender (681.13KB) (4.4%)
    12.70ms
    1 x afterRenderRawModule mod_related_items (Read More) (81.7KB) (3.26%)
    9.41ms
    1 x afterLoad (528.29KB) (3.12%)
    9.01ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (81.17KB) (2.48%)
    7.15ms
    1 x afterRenderRawModule mod_finder (Head Search) (66.47KB) (2.15%)
    6.20ms
    1 x afterRenderRawModule mod_menu (magazine-menu-3) (116.49KB) (1.14%)
    3.28ms
    1 x beforeRenderRawModule mod_menu (magazine-menu-3) (55.45KB) (0.49%)
    1.42ms
    1 x After Access::preloadComponents (all components) (109.3KB) (0.49%)
    1.42ms
    1 x beforeRenderComponent com_content (38.28KB) (0.48%)
    1.39ms
    1 x Before Access::preloadComponents (all components) (34.69KB) (0.4%)
    1.16ms
    1 x afterRenderRawModule mod_menu (Newsletters) (14.71KB) (0.25%)
    720μs
    1 x afterRenderRawModule mod_custom ([Offcanvas] Custom banner) (3.88KB) (0.14%)
    399μs
    1 x afterDispatch (3.53KB) (0.12%)
    356μs
    1 x afterRenderModule mod_related_items (Read More) (3.57KB) (0.1%)
    280μs
    1 x afterRenderModule mod_menu (Newsletters) (1.89KB) (0.09%)
    252μs
    1 x After Access::getAssetRules (id:1780 name:com_content.article.957) (8.47KB) (0.08%)
    233μs
    1 x afterRenderModule mod_finder (Head Search) (3.3KB) (0.08%)
    218μs
    1 x Before Access::getAssetRules (id:1780 name:com_content.article.957) (258.8KB) (0.07%)
    215μs
    1 x afterRenderRawModule mod_menu (Other Content) (944B) (0.05%)
    152μs
    1 x afterRenderRawModule mod_menu (Off Canvas) (944B) (0.05%)
    150μs
    1 x afterRenderModule mod_menu (Other Content) (1.3KB) (0.04%)
    115μs
    1 x afterRenderModule mod_custom ([Offcanvas] Custom banner) (4.82KB) (0.04%)
    114μs
    1 x afterRenderRawModule mod_custom ([Offcanvas] Social media) (1.05KB) (0.04%)
    108μs
    1 x afterRenderModule mod_menu (magazine-menu-3) (6.28KB) (0.04%)
    108μs
    1 x afterRenderModule mod_custom ([Offcanvas] Social media) (2.93KB) (0.04%)
    103μs
    1 x afterRenderModule mod_menu (Off Canvas) (1.28KB) (0.03%)
    100μs
    1 x afterRenderComponent com_content (43.19KB) (0.03%)
    99μs
    1 x beforeRenderRawModule mod_finder (Head Search) (1.94KB) (0.03%)
    98μ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_custom ([Offcanvas] Social media) (24B) (0.01%)
    26μs
    1 x beforeRenderRawModule mod_menu (Off Canvas) (2.23KB) (0.01%)
    26μs
    1 x Before Access::preloadPermissions (com_content) (3.91KB) (0.01%)
    20μs
    1 x After Access::getAssetRules (id:8 name:com_content) (1.59KB) (0.01%)
    20μ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 (Newsletters) (720B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (magazine-menu-3) (720B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (Other Content) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_custom ([Offcanvas] Custom banner) (736B) (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 unique79.36ms469.84KB
  • SELECT @@SESSION.sql_mode;101μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `tvlfg_session` WHERE `session_id` = ?232μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `tvlfg_session` WHERE `session_id` = :session_id LIMIT 1121μ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)703μs944BParams/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` = 1304μs2.23KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `tvlfg_viewlevels`124μ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` = :guest215μ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`736μs3.8KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • UPDATE tvlfg_extensions SET enabled=1 WHERE `type`='plugin' AND `element`='jacontenttype' AND `folder`='ajax'11.83ms1.3KB/plugins/system/jacontenttype/jacontenttype.php:62Copy
  • SELECT * FROM `tvlfg_languages` WHERE `published` = 1 ORDER BY `ordering` ASC364μs2.17KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT * FROM tvlfg_menu WHERE alias ='reviews' AND published=1261μ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`694μ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`678μs5.13KBParams/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` = 1542μ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)818μ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.51ms229.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `tvlfg_content`6.91ms4.89KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `tvlfg_content` SET `hits` = (`hits` + 1) WHERE `id` = '957'12.55ms48B/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)10.97ms24.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`692μs5.17KBParams/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.6ms5.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`539μs5.17KBParams/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)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) 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.68ms3.53KBParams/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`538μs5.17KBParams/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.id186μs1KB/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:279Copy
  • SELECT enabled FROM tvlfg_extensions WHERE `type` = 'plugin' AND `element` = 'profile'179μ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 ordering194μs1.09KB/plugins/system/t4/src/t4/MVC/Model/AuthorModel.php:420Copy
  • SHOW FULL COLUMNS FROM `tvlfg_users`1.39ms2.2KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • SELECT * FROM `tvlfg_users` WHERE `id` = :userid197μ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` = :muserid215μ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 ASC479μs5.31KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `name` FROM `tvlfg_users` WHERE id = '51'119μs11.84KB/plugins/system/t4/src/t4/MVC/Router/Content/Router.php:66Copy
  • SELECT username FROM tvlfg_users WHERE id=51121μ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.27ms2.38KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `metakey` FROM `tvlfg_content` WHERE `id` = :id194μ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 54.18ms1.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 ASC1.19ms57.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)3.68ms5.5KBParams/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`552μ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`768μs5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `tvlfg_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1540μ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)241μs904B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT * FROM tvlfg_acym_configuration338μs2.88KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_list WHERE type = 'standard'167μs2.28KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_field151μs2.31KB/administrator/components/com_acym/libraries/joomla/database.php:32Copy
  • SELECT * FROM tvlfg_acym_form WHERE active = 1 AND type != 'shortcode'138μ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` = 1194μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `tvlfg_session` WHERE `session_id` = ?145μs1.63KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `tvlfg_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?1.25ms912BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy