Coming into Focus

A groundbreaking study of the Liberal Party's post-war survival is reviewed by Michael Meadowcroft

Mark Egan's new book Coming into Focus has considerable significance for Liberal history. It deals with the survival of the Liberal Party from 1945 to 1964, not by reference to its leadership or its national party organisation but, uniquely, by concentrating on its local membership and its local council representation. It encompasses a vast amount of research in local archives and a remarkable list of interviewees. The latter were conducted between 1995 and 1997, which is so long ago that I had forgotten that I had been interviewed and spent a lot of time reading the book and muttering as to why I hadn't been asked about important events of the time, only to discover later on that I had been!

Egan's painstaking trawl of local and regional records, plus his interviews, elicit evidence of a dogged determination to battle on, even if it was based more on a surrealistic belief that victory was around the corner than on electoral arithmetic. He is particularly good on the arrangements for electoral pacts at local level - of which I have many painful remembrances - most of which, but not all, were entered into as anti-socialist fronts or as a means of preserving some Liberal representation. He skilfully examines the relationship between party headquarters and local associations, particularly to determine the impact of central directives and policy initiatives.

His exposure of the operations of the 'special seats' fund, and particularly of Ted Wheeler's idiosyncratic reports on constituencies and their candidates, are a genuine 'first' and they recall many happy hours at staff meetings at party headquarters with Ted's abusive accounts of his meetings the evening before. Pratap Chitnis, then the head of the Liberal Party Organisation, commented to me at the time that one could always tell someone with a small mind - they invariably recounted where they had been the previous evening. Ever since then I've religiously avoided all mentions of any recent peregrinations.

Egan notes the establishment of the Local Government Department at party headquarters in 1961 - financed personally by Richard Wainwright when the party refused to do so - and, on my watch, the later formation of the Association of Liberal Councillors. He also looks in detail, and sympathetically, on the role of the Young Liberals of the time who were often more intellectually aware and therefore more politically productive than their seniors. Finally, Egan considers the role of the different 'ginger groups' in considerable detail and assesses their influence.

Without detracting from the importance of this study, there are a number of rather telling criticisms. First, stylistically it is all too obviously a PhD thesis. Egan commendably makes this clear and I am conscious of the fact that it has taken him nine years to publish it in this form, rather than many more years to rewrite. Nevertheless the book would have been more accessible if some of the more arcane tables and analyses so beloved of academic supervisors had been omitted.

Second, and more importantly, the time span examined, 1945 to 1964, is not sufficiently homogenous for such a study. The party's post-war history has a number of distinctive phases, the first of which extends to the 1959 election when Jo Grimond's leadership began to show its effects. The second phase arguably runs from 1959 to 1967 and the election of Jeremy Thorpe as leader. There may well be an argument as to the precise delineation but the state of the party from 1945 to 1959 (or, perhaps, more precisely the late 1958 by-elections) was very different to its later ruder health, rendering direct comparisons across the years somewhat esoteric.

It is difficult to argue that there is any direct correlation of the grass roots organisation in the period 1945-58 when the party's poll rating hovered around the 10% mark with that of the later period when it reached 25% and was generally around 15%, quite apart from the palpable difference in the state of mind of the party in the two periods. Egan's detailed tables and analyses should therefore be read with this in mind.

My precocious involvement with the Liberal Party ensures that I have a great deal of 'colour' to add to Egan's academic anaemia.

He refers to a 1958 list of seven seats that the North West Liberal Federation wanted fought at the forthcoming general election and remarks that of them only Rossendale was in fact contested. Not so. Southport was also fought, and in very unusual circumstances. At the time, the Southport Liberal Association had taken a lease on expensive new offices in the centre of the town and therefore decided that it could not afford to fight the general election. (This only served to illustrate the myopic local primacy of municipal elections at the time).

However, a highly respected local Liberal councillor, Sam Goldberg, had always said that if no-one was going to fight the seat, he would do so. This was not taken seriously but on nomination day I got a frantic phone call at the bank where I was working to say that "Sam Goldberg's got himself nominated" and that there would be an emergency meeting that evening. It was a bizarre meeting. The purists, backed by the regional party agent, argued that Sam could not be an official candidate as he was not on the approved list and, in any case, the association had formally agreed not to put forward a candidate. The niceties of this argument were batted to and fro until a senior - and very practical - councillor, Andy Hughes, said "Why are we wasting good canvassing time? Sam is a Liberal councillor and cannot be disavowed. We ought to get out and campaign for him now." This rallying call was carried by acclamation and out we immediately went! With a bare ten-day campaign, Sam Goldberg took a good second place, polling over 11,000 votes.

Egan details the curious events of the early 1960s and the unofficial Liberal candidates in three London seats, but he does not make sufficient distinction between the eccentric and undisciplined, but essentially Liberal, Simon Knott in Baron's Court and the far right and racist Alan Lomas in Islington East. Lomas figured in a 1970s book on the far right which made the point that Lomas cleverly latched on to the generous benefits of the 'Liberal' description while propagating wholly illiberal views. Lomas was eventually expelled from the party but carried his acolytes into an Islington East 'New Liberal' Association. At the subsequent Liberal Assembly, he managed to sneak into the conference hall during the lunch break. Party officials, including Frank Byers, fearful of a public scene, were all for leaving him there but, as Chief Steward, I was having none of it, being sure that he would try and intervene in the proceedings. I went over to where he was sitting and said firmly, "You - out, now!" To my surprise, and relief, he complied immediately and we heard no more of him.

The book mentions Jo Grimond's ability to recruit distinguished academic experts as policy advisors, whether or not party members, but he fails to mention the series of well researched and written policy papers that resulted from their collaboration. He ought also to have mentioned Harry Cowie's monthly high quality briefings, 'Current Topics', produced with his research assistants John Blake and Michael O'Hara and, occasionally, myself.

Egan's account of the initial work of Pratap Chitnis as Local Government Officer mentions the problem of compiling a comprehensive list of Liberal representatives but isn't able to detail the trials and tribulations this involved. I arrived as Pratap's assistant in January 1962. He had already been designated as the agent for the Orpington by-election and he took me to three routine meetings in London to show me the ropes and then said, "Cheerio - I'm off to Orpington." Amongst a myriad of other duties, I carried on the search and rescue operation and found elderly Liberal aldermen popping up all over the place: Alderman Bowman in Stamford, for instance, and two more, Lee and McManus, in Manchester.

There was also the curious case of Buckley UDC in North Wales. In 1962 it was listed as having fifteen independent councillors but in 1963 it suddenly appeared in the Municipal Year Book as having seven Liberal, five Labour and three Conservative councillors! Apparently they had simply decided to reveal their true colours. Even more challenging were the reported victories of unrecorded Liberal candidates. In 1963 there was a press note of a Liberal gain on the Hoylake UDC in the Wirral constituency. We at HQ were unaware that we had any candidates there so we set out on the search for this elusive hero. No local party sources were contactable so, assuming the face saving guise of a fictitious Municipal Research Centre, I eventually called the local West Kirby News. The local reporter went off to check for me and returned to the phone to say that he had been unable to find any information and suggested that I called Liberal headquarters in London as they were sure to know!

Egan's research prompts a long held idea of mine for a further thesis: what happened to the Liberal councillors elected in May 1962 in the aftermath of the Orpington by-election victory. All over the country, out of nowhere, Liberal candidates found themselves elected. At the time, there were hardly any vetting procedures for local candidates and, although many became solid Liberal representatives, quite a number defected or resigned before their terms were completed. My memory may now be playing tricks but I recall that four Liberals elected to the Kingston Borough Council all joined the Conservatives. It would be an interesting academic study of political allegiance and capriciousness to research this unusual phenomenon.

Mark Egan has done historians a great favour by publishing his thesis. In the way of such publications these days, it is obscenely expensive. Most Liberals follow Meadowcroft's Law: why buy clothes when you can books, but if economics are still a significant consideration, get your local library to buy this tome and then borrow it.

As for me, I reckon I could have saved Mark a considerable amount of work. I once asked George Allen why he and others of the era had kept the party going in the dark days of the early 1950s when it must have seemed a lost cause. George, who had fought Abingdon in 1953 and 1955, and Bath in 1959, pondered this deep philosophical question for but an instant and replied, "Well, we couldn't stand the Tories and we didn't trust the state." It still seems a pretty good summary to me!

Coming into Focus: The Transformation of the Liberal Party 1945-64 by Mark Egan was published in 2009 by VDM Verlag Dr Müller, price £70

10.449MBMemory Usage738msRequest Duration
Joomla! Version4.4.4
PHP Version8.2.14
Identityguest
Response200
Templatetp_advocat
Database
Server
mysql
Version
10.11.11-MariaDB
Collation
utf8mb4_unicode_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:54 [ "LSPHP_ProcessGroup" => "on" "PATH" => "/usr/local/bin:/bin:/usr/bin" "HTTP_ACCEPT"...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1745053413 "last" => 1745053413...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (784.32KB) (78.66ms)
  • afterInitialise (2.27MB) (168ms)
  • afterRoute (1.06MB) (54.72ms)
  • beforeRenderComponent com_content (113.53KB) (14.53ms)
  • Before Access::preloadComponents (all components) (107.21KB) (13.22ms)
  • After Access::preloadComponents (all components) (114.14KB) (1.85ms)
  • Before Access::preloadPermissions (com_content) (1.66KB) (22μs)
  • After Access::preloadPermissions (com_content) (335.15KB) (1.66ms)
  • Before Access::getAssetRules (id:577 name:com_content.article.337) (18.65KB) (43μs)
  • After Access::getAssetRules (id:577 name:com_content.article.337) (7.28KB) (985μs)
  • afterRenderComponent com_content (1.39MB) (101ms)
  • afterDispatch (259.16KB) (14.45ms)
  • Before Access::getAssetRules (id:16 name:com_menus) (1.34MB) (74.16ms)
  • After Access::getAssetRules (id:16 name:com_menus) (5.7KB) (53μs)
  • beforeRenderRawModule mod_tags_popular (Filter articles by topic) (6.27KB) (143μs)
  • afterRenderRawModule mod_tags_popular (Filter articles by topic) (123.6KB) (20.43ms)
  • beforeRenderModule mod_tags_popular (Filter articles by topic) (736B) (17μs)
  • afterRenderModule mod_tags_popular (Filter articles by topic) (7.94KB) (735μs)
  • beforeRenderRawModule mod_menu (In this section... ) (64B) (1.7ms)
  • afterRenderRawModule mod_menu (In this section... ) (5.57KB) (2.92ms)
  • beforeRenderModule mod_menu (In this section... ) (720B) (9μs)
  • afterRenderModule mod_menu (In this section... ) (2.82KB) (173μs)
  • beforeRenderRawModule mod_tags_popular (Filter by topic:) (80B) (465μs)
  • afterRenderRawModule mod_tags_popular (Filter by topic:) (17.02KB) (12.42ms)
  • beforeRenderModule mod_tags_popular (Filter by topic:) (720B) (15μs)
  • afterRenderModule mod_tags_popular (Filter by topic:) (6.1KB) (203μs)
  • beforeRenderRawModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (720B) (1.66ms)
  • afterRenderRawModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (15.88KB) (4.73ms)
  • beforeRenderModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (736B) (12μs)
  • afterRenderModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (3.82KB) (200μs)
  • beforeRenderRawModule mod_search (My search for top menu) (496B) (622μs)
  • afterRenderRawModule mod_search (My search for top menu) (32.27KB) (3.08ms)
  • beforeRenderModule mod_search (My search for top menu) (720B) (10μs)
  • afterRenderModule mod_search (My search for top menu) (4.84KB) (164μs)
  • beforeRenderRawModule mod_menu (Main Menu Mobile) (1KB) (396μs)
  • afterRenderRawModule mod_menu (Main Menu Mobile) (9.31KB) (4.48ms)
  • beforeRenderModule mod_menu (Main Menu Mobile) (720B) (9μs)
  • afterRenderModule mod_menu (Main Menu Mobile) (10.02KB) (166μs)
  • afterRender (453.59KB) (157ms)
  • 1 x afterInitialise (2.27MB) (22.82%)
    168.31ms
    1 x afterRender (453.59KB) (21.27%)
    156.85ms
    1 x afterRenderComponent com_content (1.39MB) (13.74%)
    101.35ms
    1 x afterLoad (784.32KB) (10.66%)
    78.66ms
    1 x Before Access::getAssetRules (id:16 name:com_menus) (1.34MB) (10.05%)
    74.16ms
    1 x afterRoute (1.06MB) (7.42%)
    54.72ms
    1 x afterRenderRawModule mod_tags_popular (Filter articles by topic) (123.6KB) (2.77%)
    20.43ms
    1 x beforeRenderComponent com_content (113.53KB) (1.97%)
    14.53ms
    1 x afterDispatch (259.16KB) (1.96%)
    14.45ms
    1 x Before Access::preloadComponents (all components) (107.21KB) (1.79%)
    13.22ms
    1 x afterRenderRawModule mod_tags_popular (Filter by topic:) (17.02KB) (1.68%)
    12.42ms
    1 x afterRenderRawModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (15.88KB) (0.64%)
    4.73ms
    1 x afterRenderRawModule mod_menu (Main Menu Mobile) (9.31KB) (0.61%)
    4.48ms
    1 x afterRenderRawModule mod_search (My search for top menu) (32.27KB) (0.42%)
    3.08ms
    1 x afterRenderRawModule mod_menu (In this section... ) (5.57KB) (0.4%)
    2.92ms
    1 x After Access::preloadComponents (all components) (114.14KB) (0.25%)
    1.85ms
    1 x beforeRenderRawModule mod_menu (In this section... ) (64B) (0.23%)
    1.70ms
    1 x After Access::preloadPermissions (com_content) (335.15KB) (0.23%)
    1.66ms
    1 x beforeRenderRawModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (720B) (0.22%)
    1.66ms
    1 x After Access::getAssetRules (id:577 name:com_content.article.337) (7.28KB) (0.13%)
    985μs
    1 x afterRenderModule mod_tags_popular (Filter articles by topic) (7.94KB) (0.1%)
    735μs
    1 x beforeRenderRawModule mod_search (My search for top menu) (496B) (0.08%)
    622μs
    1 x beforeRenderRawModule mod_tags_popular (Filter by topic:) (80B) (0.06%)
    465μs
    1 x beforeRenderRawModule mod_menu (Main Menu Mobile) (1KB) (0.05%)
    396μs
    1 x afterRenderModule mod_tags_popular (Filter by topic:) (6.1KB) (0.03%)
    203μs
    1 x afterRenderModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (3.82KB) (0.03%)
    200μs
    1 x afterRenderModule mod_menu (In this section... ) (2.82KB) (0.02%)
    173μs
    1 x afterRenderModule mod_menu (Main Menu Mobile) (10.02KB) (0.02%)
    166μs
    1 x afterRenderModule mod_search (My search for top menu) (4.84KB) (0.02%)
    164μs
    1 x beforeRenderRawModule mod_tags_popular (Filter articles by topic) (6.27KB) (0.02%)
    143μs
    1 x After Access::getAssetRules (id:16 name:com_menus) (5.7KB) (0.01%)
    53μs
    1 x Before Access::getAssetRules (id:577 name:com_content.article.337) (18.65KB) (0.01%)
    43μs
    1 x Before Access::preloadPermissions (com_content) (1.66KB) (0%)
    22μs
    1 x beforeRenderModule mod_tags_popular (Filter articles by topic) (736B) (0%)
    17μs
    1 x beforeRenderModule mod_tags_popular (Filter by topic:) (720B) (0%)
    15μs
    1 x beforeRenderModule mod_breadcrumbs_adv (Breadcrumbs Advanced) (736B) (0%)
    12μs
    1 x beforeRenderModule mod_search (My search for top menu) (720B) (0%)
    10μs
    1 x beforeRenderModule mod_menu (In this section... ) (720B) (0%)
    9μs
    1 x beforeRenderModule mod_menu (Main Menu Mobile) (720B) (0%)
    9μs
113 statements were executed, 89 of which were duplicates, 24 unique52.69ms538.07KB
  • SELECT @@SESSION.sql_mode;105μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `jto7c_session` WHERE `session_id` = ?109μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `jto7c_session` WHERE `session_id` = :session_id LIMIT 192μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `jto7c_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)392μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `jto7c_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1653μs1.73KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `jto7c_viewlevels`99μs624B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `jto7c_usergroups` AS `a` LEFT JOIN `jto7c_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest208μs1.31KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `jto7c_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1) ORDER BY `ordering`1.77ms3.96KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • 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 `jto7c_menu` AS `m` LEFT JOIN `jto7c_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`2.67ms165.17KBParams/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 `jto7c_categories` AS `s` INNER JOIN `jto7c_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`668μs3.88KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id` FROM `jto7c_content` WHERE `alias` = :alias AND `catid` = :catid293μs1.34KBParams/components/com_content/src/Service/Router.php:263Copy
  • SELECT `template`,`id`,`title`,`params`,`home` FROM `jto7c_template_styles` WHERE `id`='36'155μs768B/libraries/astroid/framework/library/astroid/Template.php:223Copy
  • SELECT * FROM `jto7c_languages` WHERE `published` = 1 ORDER BY `ordering` ASC171μs1.59KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `jto7c_template_styles` AS `s` LEFT JOIN `jto7c_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` = 1612μs864B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jto7c_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,:preparedArray40,:preparedArray41,:preparedArray42)1.29ms7.56KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jto7c_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0838μs29.48KBParams/libraries/src/Access/Access.php:301Copy
  • 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 `jto7c_content` AS `a` INNER JOIN `jto7c_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `jto7c_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `jto7c_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `jto7c_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `jto7c_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)576μs23.42KBParams/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 `jto7c_categories` AS `s` INNER JOIN `jto7c_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) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`540μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `jto7c_contentitem_tag_map` AS `m` INNER JOIN `jto7c_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)1.55ms3.98KBParams/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 `jto7c_categories` AS `s` INNER JOIN `jto7c_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) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`591μs3.91KBParams/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 jto7c_fields AS a LEFT JOIN `jto7c_languages` AS l ON l.lang_code = a.language LEFT JOIN jto7c_users AS uc ON uc.id=a.checked_out LEFT JOIN jto7c_viewlevels AS ag ON ag.id = a.access LEFT JOIN jto7c_users AS ua ON ua.id = a.created_user_id LEFT JOIN jto7c_fields_groups AS g ON g.id = a.group_id LEFT JOIN `jto7c_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)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5)) 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 ASC1.33ms4.72KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT * FROM jto7c_categories WHERE id=40266μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34143μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40127μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34153μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40141μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34128μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40127μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34123μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40125μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34123μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40152μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34129μs5.5KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40152μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34196μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40163μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34167μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40134μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34123μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40151μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34134μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40135μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34124μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40125μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34124μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40129μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34121μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40120μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34122μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40122μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34144μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40124μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34121μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40122μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34134μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40171μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34144μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40124μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34159μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40151μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34133μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40122μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34122μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40120μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34124μs14KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40124μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34123μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40128μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34125μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40131μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34125μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40122μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34139μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40121μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34142μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40130μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34132μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40124μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34124μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40134μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34122μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40206μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34156μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40157μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34158μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40150μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34148μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40152μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34154μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40150μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34151μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40150μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34153μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40132μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34126μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40198μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34162μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40150μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34149μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40162μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34130μs3KB/plugins/content/articletool/articletool.php:239Copy
  • SELECT * FROM jto7c_categories WHERE id=40138μs3KB/plugins/content/articletool/articletool.php:234Copy
  • SELECT * FROM jto7c_categories WHERE id=34150μs3KB/plugins/content/articletool/articletool.php:239Copy
  • 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 `jto7c_categories` AS `s` INNER JOIN `jto7c_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) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`501μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `params` FROM `jto7c_categories` WHERE `id`=40118μs536B/libraries/astroid/framework/library/astroid/Article.php:677Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `jto7c_modules` AS `m` LEFT JOIN `jto7c_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `jto7c_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)) 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`2.39ms1.94KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `a`.`tag_id`,`a`.`count`,`a`.`title`,`a`.`access`,`a`.`alias`,`a`.`language` FROM ( SELECT MAX(`tag_id`) AS `tag_id`,COUNT(*) AS `count`,MAX(`t`.`title`) AS `title`,MAX(`t`.`access`) AS `access`,MAX(`t`.`alias`) AS `alias`,MAX(`t`.`params`) AS `params`,MAX(`t`.`language`) AS `language` FROM `jto7c_contentitem_tag_map` AS `m` INNER JOIN `jto7c_ucm_content` AS `ucm` ON `m`.`content_item_id` = `ucm`.`core_content_item_id` AND `m`.`type_id` = `ucm`.`core_type_id` INNER JOIN `jto7c_categories` AS `cat` ON `ucm`.`core_catid` = `cat`.`id` INNER JOIN `jto7c_tags` AS `t` ON `tag_id` = `t`.`id` INNER JOIN `jto7c_ucm_content` AS `c` ON `m`.`core_content_id` = `c`.`core_content_id` WHERE `t`.`access` IN (:preparedArray1) AND `t`.`published` = 1 AND `cat`.`published` > 0 AND `m`.`type_alias` = `c`.`core_type_alias` AND `c`.`core_state` = 1 AND (`c`.`core_access` IN (:preparedArray2) OR `c`.`core_access` = 0) AND (`c`.`core_publish_up` IS NULL OR `c`.`core_publish_up` = :nullDate2 OR `c`.`core_publish_up` <= :nowDate2) AND (`c`.`core_publish_down` IS NULL OR `c`.`core_publish_down` = :nullDate3 OR `c`.`core_publish_down` >= :nowDate3) GROUP BY `tag_id`,`t`.`title`,`t`.`access`,`t`.`alias` ORDER BY `count` DESC LIMIT 70) AS `a` ORDER BY `a`.`title` ASC LIMIT 7011.31ms2.16KBParams/modules/mod_tags_popular/src/Helper/TagsPopularHelper.php:183Copy
  • SELECT `a`.`tag_id`,`a`.`count`,`a`.`title`,`a`.`access`,`a`.`alias`,`a`.`language` FROM ( SELECT MAX(`tag_id`) AS `tag_id`,COUNT(*) AS `count`,MAX(`t`.`title`) AS `title`,MAX(`t`.`access`) AS `access`,MAX(`t`.`alias`) AS `alias`,MAX(`t`.`params`) AS `params`,MAX(`t`.`language`) AS `language` FROM `jto7c_contentitem_tag_map` AS `m` INNER JOIN `jto7c_ucm_content` AS `ucm` ON `m`.`content_item_id` = `ucm`.`core_content_item_id` AND `m`.`type_id` = `ucm`.`core_type_id` INNER JOIN `jto7c_categories` AS `cat` ON `ucm`.`core_catid` = `cat`.`id` INNER JOIN `jto7c_tags` AS `t` ON `tag_id` = `t`.`id` INNER JOIN `jto7c_ucm_content` AS `c` ON `m`.`core_content_id` = `c`.`core_content_id` WHERE `t`.`access` IN (:preparedArray1) AND `t`.`published` = 1 AND `cat`.`published` > 0 AND `m`.`type_alias` = `c`.`core_type_alias` AND `c`.`core_state` = 1 AND (`c`.`core_access` IN (:preparedArray2) OR `c`.`core_access` = 0) AND (`c`.`core_publish_up` IS NULL OR `c`.`core_publish_up` = :nullDate2 OR `c`.`core_publish_up` <= :nowDate2) AND (`c`.`core_publish_down` IS NULL OR `c`.`core_publish_down` = :nullDate3 OR `c`.`core_publish_down` >= :nowDate3) GROUP BY `tag_id`,`t`.`title`,`t`.`access`,`t`.`alias` ORDER BY `count` DESC LIMIT 70) AS `a` ORDER BY `a`.`title` ASC LIMIT 7011.12ms2.16KBParams/modules/mod_tags_popular/src/Helper/TagsPopularHelper.php:183Copy
  • SELECT `alias` FROM `jto7c_content` WHERE `id` = :id150μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `jto7c_content` WHERE `id` = :id85μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • 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 `jto7c_scheduler_tasks` AS `a` WHERE `a`.`state` = 1199μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `jto7c_session` WHERE `session_id` = ?135μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `jto7c_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?442μs592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy