There seem to be three reasons Hams are purchasing IP boxes such as the Shark RF OpenSpot or the DV4 series.

  1. No DMR repeater in their area
  2. There are only DMR-MARC repeaters in their area and they want to use BrandMeister
  3. They’re uncomfortable using the local repeaters

 

The third reason is the most concerning, and if the trend continues, DMR repeaters could be a short-lived trend.

There are stories from around the country of users and equipment being banned from DMR repeaters ranging from issues with the user’s equipment to a repeater owner demanding low utilization rates of his repeater(s). There are two sides to every story and a reason for every rule. And a consequence.

Digital voice (DV) modes are not new to amateur radio. D-Star has been around for quite some time. Yaesu launched its System Fusion line and saw success getting low-cost repeaters deployed, helping transition Hams from the analog to the digital world. P-25 and NXDN require expensive commercial radios, which is a barrier. None has seen the end-user response that DMR has seen, primarily driven by the arrival of low-cost (cheap) DMR radios arriving from China, potentially to the chagrin of some circles, but with enthusiasm by others. The barrier to enter DMR is very low compared to other digital modes. Some of these radios perform very well compared to the high priced commercial counterparts coming from the likes of Kenwood and Motorola. Though, a few Chinese models can cause significant difficulty on repeaters because they do not correctly manage time slots, and should not be used on repeaters at all.

Now, there are growing pains, and repeater owners are grasping for the right balance of usability and order when managing a system that so easily connects users to the world. Rules are being made, some good and necessary. Some, maybe not so good and suffocating.  Some Hams have found themselves publicly shamed or banned from repeaters. If they’re not using a radio that sounds good enough, is not a specific brand, or activate a talk group with too much activity, they are being asked to leave. Forever. There are even repeaters out there that disallow transmitting that you are monitoring. You can only make a call to another specific station: no rag chewing, only short QSOs, only time slot one. No nets. The list of rules from all over the country goes on and on. It seems nobody wants to help out a newbie with lousy audio or someone that can’t figure out how to put together a code plug. There can be a steep learning curve. If you want to listen to a net, buy an IP box.

So, I did. I bought an OpenSpot. And with the OpenSpot, I fell in love with DMR as the world opened to me. I enjoy speaking with Hams from all over the world. What a fantastic system DMR has created. Easy and fun. I make calls now and find folks to talk with all the time. Great people. I made calls on the local repeaters and rarely heard from anyone. I also get less packet loss using the OpenSpot than trying to go through the local repeater. I found a great net that I would not have found otherwise.

The Tennessee TG 3147 Net is an excellent learning net, but there are many out there. I like this net because it contributes to the collective knowledge base of the DMR community and seeks to teach others about how to set up their radios and operate them properly. They also provide guest speakers who speak to the trends in the DMR community. And most of all, they’re friendly. It goes on for a good hour and a half. Some repeater owners would lose their minds counting duty cycles.

Rules that promote good operating practices and promote a better a well-mannered community environment are essential. The unfortunate part of some regulations is that they sometimes go beyond the rules that help encourage good operating practices that we used to call “Elmering.” Instead, they promote exclusivity, classes, and cliques within the community. I often wonder, “if a repeater owner wants his system of repeaters to be quiet, why is it even hooked up to a c-bridge that connects to the rest of the world?” Just cluster them and wall off from everyone else.  It’s like building your house along the busy highway for good transportation access but complaining about the traffic.

I agree with the concept of a repeater owner, making any rule he wants to or limiting the use in any way. It’s his house, his rules, and the rules are justifiable. I mentioned the consequences before. For me, I may just not come over to visit anymore, and many more Hams are feeling this way-too many. With my TPLink and the hotspot from my LTE-enabled phone, I don’t even need to buy a mobile radio. Nearly perfect connections every time in my car while commuting or at the office. I have little use for the local repeaters anymore. I call it, “Ruled Out.” Instead of listening to barely used repeaters or fretting about the repercussions of making a mistake on the repeaters, I am actively communicating with others, learning about DMR, making new friends and connections. Love it. I wish nobody felt compelled to buy the OpenSpot for reason number three on my list. I think it’s a shame to disconnect from the locals.

My favorite part of amateur radio has always been the commute to work. I love listening to the old-timers give the traffic and weather reports, especially during weather events. Sometimes, they would touch on topics that I was interested in or I had better information for them. “Break.” That’s how we got to know each other and eventually meet for an “eyeball.” I have no use for repeaters that discourage this practice. I found the repeaters that encourage community are busy gathering spots and were always the first place I went to when I needed information about local emergencies, like earthquakes. Hams are talking about it before the news is. Every time.

I bought an OpenSpot, as many folks are doing. I can dial up whatever talk group I want, talk for as long as I want, listen to whatever I want, and not worry about being outed or shamed for violating the rules of the repeater, rules that go beyond common sense, but rather promote disuse. With the affordability, flexibility, and ease of use of these devices, repeater owners may find their repeaters used less and less. For some, this may be exactly what they want.

 

Come visit the Repeaterbook bunch on our own talkgroup at 31419. We’d love to hear from you.

3.759MBMemory Usage126msRequest Duration
Joomla! Version4.4.10
PHP Version8.2.28
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.6.21-MariaDB
Collation
utf8mb4_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:62 [ "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" "TEMP" => "/home/repeat...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1742033233 "last" => 1742033233...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
plg_system_languagefilter
array:1 [ "language" => "en-GB" ]
  • afterLoad (445.51KB) (6.87ms)
  • afterInitialise (1.32MB) (49.09ms)
  • afterRoute (268.79KB) (9.84ms)
  • beforeRenderComponent com_content (30.38KB) (3.32ms)
  • Before Access::preloadComponents (all components) (33.3KB) (1.59ms)
  • After Access::preloadComponents (all components) (107.16KB) (1.19ms)
  • Before Access::preloadPermissions (com_content) (1.57KB) (30μs)
  • After Access::preloadPermissions (com_content) (59.45KB) (1.12ms)
  • Before Access::getAssetRules (id:189 name:com_content.article.20) (1.15KB) (32μs)
  • After Access::getAssetRules (id:189 name:com_content.article.20) (6.59KB) (341μs)
  • Before Access::getAssetRules (id:1 name:root.1) (209.14KB) (13.24ms)
  • After Access::getAssetRules (id:1 name:root.1) (5.23KB) (39μs)
  • afterRenderComponent com_content (119.98KB) (11.19ms)
  • Before Access::getAssetRules (id:8 name:com_content) (97.45KB) (1.86ms)
  • After Access::getAssetRules (id:8 name:com_content) (1.28KB) (20μs)
  • afterDispatch (328B) (790μs)
  • beforeRenderRawModule mod_login (Login Form) (243.27KB) (4.59ms)
  • afterRenderRawModule mod_login (Login Form) (80.99KB) (4.95ms)
  • beforeRenderRawModule mod_djmegamenu (Main Menu) (24.17KB) (81μs)
  • afterRenderRawModule mod_djmegamenu (Main Menu) (184.17KB) (6.04ms)
  • beforeRenderModule mod_login (Login Form) (8.12KB) (1.06ms)
  • afterRenderModule mod_login (Login Form) (6.48KB) (315μs)
  • beforeRenderModule mod_djmegamenu (Main Menu) (23.09KB) (59μs)
  • afterRenderModule mod_djmegamenu (Main Menu) (9.98KB) (235μs)
  • afterRender (65.41KB) (7.02ms)
  • 1 x afterInitialise (1.32MB) (39.06%)
    49.09ms
    1 x Before Access::getAssetRules (id:1 name:root.1) (209.14KB) (10.53%)
    13.24ms
    1 x afterRenderComponent com_content (119.98KB) (8.9%)
    11.19ms
    1 x afterRoute (268.79KB) (7.83%)
    9.84ms
    1 x afterRender (65.41KB) (5.59%)
    7.02ms
    1 x afterLoad (445.51KB) (5.46%)
    6.87ms
    1 x afterRenderRawModule mod_djmegamenu (Main Menu) (184.17KB) (4.81%)
    6.04ms
    1 x afterRenderRawModule mod_login (Login Form) (80.99KB) (3.94%)
    4.95ms
    1 x beforeRenderRawModule mod_login (Login Form) (243.27KB) (3.65%)
    4.59ms
    1 x beforeRenderComponent com_content (30.38KB) (2.64%)
    3.32ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (97.45KB) (1.48%)
    1.86ms
    1 x Before Access::preloadComponents (all components) (33.3KB) (1.27%)
    1.59ms
    1 x After Access::preloadComponents (all components) (107.16KB) (0.95%)
    1.19ms
    1 x After Access::preloadPermissions (com_content) (59.45KB) (0.89%)
    1.12ms
    1 x beforeRenderModule mod_login (Login Form) (8.12KB) (0.84%)
    1.06ms
    1 x afterDispatch (328B) (0.63%)
    790μs
    1 x After Access::getAssetRules (id:189 name:com_content.article.20) (6.59KB) (0.27%)
    341μs
    1 x afterRenderModule mod_login (Login Form) (6.48KB) (0.25%)
    315μs
    1 x afterRenderModule mod_djmegamenu (Main Menu) (9.98KB) (0.19%)
    235μs
    1 x beforeRenderRawModule mod_djmegamenu (Main Menu) (24.17KB) (0.06%)
    81μs
    1 x beforeRenderModule mod_djmegamenu (Main Menu) (23.09KB) (0.05%)
    59μs
    1 x After Access::getAssetRules (id:1 name:root.1) (5.23KB) (0.03%)
    39μs
    1 x Before Access::getAssetRules (id:189 name:com_content.article.20) (1.15KB) (0.03%)
    32μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    30μs
    1 x After Access::getAssetRules (id:8 name:com_content) (1.28KB) (0.02%)
    20μs
39 statements were executed, 7 of which were duplicates, 32 unique20.91ms132.41KB
  • SELECT @@SESSION.sql_mode;93μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `jospp_session` WHERE `session_id` = ?165μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `jospp_session` WHERE `session_id` = :session_id LIMIT 1130μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `jospp_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)2.66ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `jospp_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1447μs1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `jospp_viewlevels`153μs672B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `jospp_usergroups` AS `a` LEFT JOIN `jospp_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest256μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `jospp_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`770μs4.48KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `value` FROM `jospp_admintools_storage` WHERE `key` = 'cparams'181μs1.15KB/administrator/components/com_admintools/src/Helper/Storage.php:120Copy
  • SELECT * FROM `jospp_languages` WHERE `published` = 1 ORDER BY `ordering` ASC252μs1.7KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `option`,`view`,`query` FROM `jospp_admintools_wafexceptions`119μs640B/plugins/system/admintools/src/Utility/Cache.php:196Copy
  • SELECT `params` FROM `jospp_extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'admintools'210μs536B/plugins/system/admintools/src/Utility/RescueUrl.php:324Copy
  • SET sql_mode=(SELECT REPLACE(@@sql_mode,'STRICT_TRANS_TABLES',''));76μs0B/administrator/components/com_osmembership/loader.php:84Copy
  • SELECT `element`,`name`,`client_id`,`extension_id` FROM `jospp_extensions` WHERE `type` = 'language' AND `state` = 0 AND `enabled` = 1349μs1.05KB/libraries/src/Language/LanguageHelper.php:213Copy
  • 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 `jospp_menu` AS `m` LEFT JOIN `jospp_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`742μs35.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 `jospp_categories` AS `c` WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `c`.`language` IN (:preparedArray1,:preparedArray2) ORDER BY `c`.`lft`562μs4.11KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `jospp_template_styles` AS `s` LEFT JOIN `jospp_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` = 1312μs2.06KB/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jospp_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)605μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jospp_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0602μs3.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `jospp_content`584μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `jospp_content` SET `hits` = (`hits` + 1) WHERE `id` = '20'2.3ms48B/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 `jospp_content` AS `a` INNER JOIN `jospp_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `jospp_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `jospp_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `jospp_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `jospp_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0 AND `a`.`language` IN (:preparedArray1,:preparedArray2)) 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 (:preparedArray3,:preparedArray4)461μs22.19KBParams/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 `jospp_categories` AS `s` INNER JOIN `jospp_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) 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`501μs3.97KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `jospp_contentitem_tag_map` AS `m` INNER JOIN `jospp_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)287μs3.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 `jospp_categories` AS `s` INNER JOIN `jospp_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) 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`671μs3.97KBParams/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 jospp_fields AS a LEFT JOIN `jospp_languages` AS l ON l.lang_code = a.language LEFT JOIN jospp_users AS uc ON uc.id=a.checked_out LEFT JOIN jospp_viewlevels AS ag ON ag.id = a.access LEFT JOIN jospp_users AS ua ON ua.id = a.created_user_id LEFT JOIN jospp_fields_groups AS g ON g.id = a.group_id LEFT JOIN `jospp_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)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) 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.75KBParams/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 `jospp_content` AS `a` LEFT JOIN `jospp_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) AND `a`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC662μs1.88KBParams/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 `jospp_categories` AS `s` INNER JOIN `jospp_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) 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`423μs3.97KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `language`,`id` FROM `jospp_menu` WHERE `home` = '1' AND `published` = 1 AND `client_id` = 0213μs592B/libraries/src/Language/Multilanguage.php:123Copy
  • SELECT `alias` FROM `jospp_content` WHERE `id` = :id119μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `jospp_content` WHERE `id` = :id111μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c2`.`language`,CONCAT_WS(':', `c2`.`id`, `c2`.`alias`) AS `id`,CONCAT_WS(':', `ca`.`id`, `ca`.`alias`) AS `catid` FROM `jospp_content` AS `c` INNER JOIN `jospp_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `jospp_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `jospp_content` AS `c2` ON `a2`.`id` = `c2`.`id` INNER JOIN `jospp_categories` AS `ca` ON `c2`.`catid` = `ca`.`id` AND `ca`.`extension` = :extension2 WHERE `c`.`id` = :id AND c2.access IN (1,5) AND c2.language != 'en-GB' AND (c2.publish_up IS NULL OR c2.publish_up <= '2025-03-15 10:07:13') AND (c2.publish_down IS NULL OR c2.publish_down >= '2025-03-15 10:07:13') AND c2.state = 1273μs1.47KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `jospp_modules` AS `m` LEFT JOIN `jospp_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `jospp_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) AND `m`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY `m`.`position`,`m`.`ordering`684μs4.84KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `alias` FROM `jospp_content` WHERE `id` = :id141μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `jospp_content` WHERE `id` = :id108μs1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT manifest_cache FROM jospp_extensions WHERE element='mod_djmegamenu' LIMIT 1188μs536B/modules/mod_djmegamenu/helpers/helper.php:404Copy
  • 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 `jospp_scheduler_tasks` AS `a` WHERE `a`.`state` = 1239μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `jospp_session` WHERE `session_id` = ?159μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `jospp_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?2.79ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy