Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sql optimise new index merged branch #10284

Closed
wants to merge 45 commits into from
Closed
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7c8bc5b
Added two sub string indexes to the session table
nadeeshaan Jun 21, 2014
4f14432
Added index idx_published_ordering to language table
nadeeshaan Jul 9, 2014
c6d76a4
idx_client_id Index added to template_styles table
nadeeshaan Jul 9, 2014
963b6bc
Added index to contentitem_tag_map table
nadeeshaan Jul 10, 2014
db025d5
index2 added to extensions table
nadeeshaan Jul 13, 2014
ff2487a
index added to the menu table
nadeeshaan Jul 14, 2014
8a21186
removed select *
nadeeshaan Jul 16, 2014
ede8fb3
Removed the select star and included the relevant fields
nadeeshaan Jul 21, 2014
60a4f53
improved readability for the table fields
nadeeshaan Jul 21, 2014
1f31c0d
removed group by clause instead added select distinct
nadeeshaan Jul 30, 2014
9e9d8e0
index added to viewlevels table
nadeeshaan Jul 30, 2014
a49c9f0
removed distinct and added the where clause
nadeeshaan Aug 2, 2014
19c56b7
bug fixed for the index not using
nadeeshaan Aug 4, 2014
8beb13a
changed the primary key size to 32
nadeeshaan Aug 4, 2014
b5d7dbb
bug fixed for the in equality check
nadeeshaan Aug 4, 2014
7125aa1
Adding SQL update file of ALTER Queries
Aug 18, 2014
50652b3
Review code style
Aug 18, 2014
a237e2f
query changed to work with the index
nadeeshaan Aug 18, 2014
7e0ed08
Resolve Conflict and update code style suggestions
gunjanpatel Jan 25, 2015
310641c
merge
zero-24 May 7, 2016
1476977
fix conflicts 1) #__contentitem_tag_map
alikon May 7, 2016
3e104df
fix conflicts 2) #__extensions
alikon May 7, 2016
6adfe62
Merge pull request #5 from alikon/patch-63
zero-24 May 7, 2016
08e3f51
Merge pull request #4 from alikon/patch-61
zero-24 May 7, 2016
c87ebfa
fix conflicts 3) #__languages
alikon May 7, 2016
ceddaff
fix conflicts 4) #__menu
alikon May 7, 2016
9d1b889
Merge pull request #7 from alikon/patch-64
zero-24 May 7, 2016
5481af2
Merge pull request #8 from alikon/patch-65
zero-24 May 7, 2016
48862f3
fix conflicts 5) #__session
alikon May 7, 2016
95ac0fc
fix conflicts 6) #__template_styles
alikon May 7, 2016
2e5b48a
Merge pull request #10 from alikon/patch-67
zero-24 May 7, 2016
cf2599c
Merge pull request #9 from alikon/patch-66
zero-24 May 7, 2016
93efc9d
fix conflicts 7) #__viewlevels
alikon May 7, 2016
773fe42
Merge pull request #11 from alikon/patch-68
zero-24 May 7, 2016
95e4f02
change the update sql filename
zero-24 May 7, 2016
d42bb63
change the update sql filename
zero-24 May 7, 2016
2514cdb
added postgresql for #4115
alikon May 7, 2016
a1ebfc0
typo fix
alikon May 7, 2016
7d54ec0
added mssql for #4115
alikon May 7, 2016
a27d18e
added postgresql index for #4115
alikon May 7, 2016
035358f
added postgresql for #4115
alikon May 7, 2016
f8d65b5
added mssql for #4115
alikon May 7, 2016
145d286
code style
alikon May 7, 2016
9b1afc8
Correct idx_alias_item_id for mysql utf8mb4
richard67 May 8, 2016
c0595d8
Merge pull request #20 from richard67/patch-1
alikon May 9, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,8 @@
ALTER TABLE `#__languages` ADD INDEX `idx_published_ordering` (`published`,`ordering`);
ALTER TABLE `#__session` DROP PRIMARY KEY, ADD PRIMARY KEY (session_id(32));
ALTER TABLE `#__session` DROP INDEX `time`, ADD INDEX `time` (time(10));
ALTER TABLE `#__template_styles` ADD INDEX `idx_client_id` (`client_id`);
ALTER TABLE `#__contentitem_tag_map` ADD INDEX `idx_alias_item_id` (`type_alias`,`content_item_id`);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be

ALTER TABLE #__contentitem_tag_map ADD INDEX idx_alias_item_id (type_alias(100),content_item_id);
in order to work with utf8mb4, because the InnoDB storage engine has a maximum index length of 767 bytesm which is max. 191 characters in utf8mb4, and for consistence with all other indexes we should use max. 100 characters.

ALTER TABLE `#__extensions` ADD INDEX `idx_type_ordering` (`type`,`ordering`);
ALTER TABLE `#__menu` ADD INDEX `idx_client_id_published_lft` (`client_id`,`published`,`lft`);
ALTER TABLE `#__viewlevels` ADD INDEX `idx_ordering_title` (`ordering`,`title`);
@@ -0,0 +1,6 @@
CREATE INDEX "#__languages_idx_published_ordering" ON "#__languages" ("published","ordering");
CREATE INDEX "#__template_styles_idx_client_id" ON "#__template_styles" ("client_id");
CREATE INDEX "#__contentitem_tag_map_idx_alias_item_id" ON "#__contentitem_tag_map" ("type_alias","content_item_id");
CREATE INDEX "#__extensions_idx_type_ordering" ON "#__extensions" ("type","ordering");
CREATE INDEX "#__menu_idx_client_id_published_lft" ON "#__menu" ("client_id","published","lft");
CREATE INDEX "#__viewlevels_idx_ordering_title" ON "#__viewlevels" ("ordering","title");
@@ -0,0 +1,36 @@
CREATE NONCLUSTERED INDEX [idx_published_ordering] ON [#__languages]
(
[published] ASC,
[ordering] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_client_id] ON [#__template_styles]
(
[client_id] ASC
)
WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_alias_item_id] ON [#__contentitem_tag_map]
(
[type_alias] ASC,
[content_item_id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_type_ordering] ON [#__extensions]
(
[type] ASC,
[ordering] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_client_id_published_lft] ON [#__menu]
(
[client_id] ASC,
[published] ASC,
[lft] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_ordering_title] ON [#__viewlevels]
(
[ordering] ASC,
[title] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);
25 changes: 16 additions & 9 deletions installation/sql/mysql/joomla.sql
@@ -1,4 +1,4 @@
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
Expand Down Expand Up @@ -434,7 +434,8 @@ CREATE TABLE IF NOT EXISTS `#__contentitem_tag_map` (
UNIQUE KEY `uc_ItemnameTagid` (`type_id`,`content_item_id`,`tag_id`),
KEY `idx_tag_type` (`tag_id`,`type_id`),
KEY `idx_date_id` (`tag_date`,`tag_id`),
KEY `idx_core_content_id` (`core_content_id`)
KEY `idx_core_content_id` (`core_content_id`),
KEY `idx_alias_item_id` (`type_alias`,`content_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci COMMENT='Maps items from content tables to tags';

-- --------------------------------------------------------
Expand Down Expand Up @@ -475,7 +476,8 @@ CREATE TABLE IF NOT EXISTS `#__extensions` (
PRIMARY KEY (`extension_id`),
KEY `element_clientid` (`element`,`client_id`),
KEY `element_folder_clientid` (`element`,`folder`,`client_id`),
KEY `extension` (`type`,`element`,`folder`,`client_id`)
KEY `extension` (`type`,`element`,`folder`,`client_id`),
KEY 'idx_type_ordering' ('type','ordering')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=10000;

--
Expand Down Expand Up @@ -1196,7 +1198,8 @@ CREATE TABLE IF NOT EXISTS `#__languages` (
UNIQUE KEY `idx_image` (`image`),
UNIQUE KEY `idx_langcode` (`lang_code`),
KEY `idx_access` (`access`),
KEY `idx_ordering` (`ordering`)
KEY `idx_ordering` (`ordering`),
KEY 'idx_published_ordering' ('published','ordering')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;

--
Expand Down Expand Up @@ -1244,7 +1247,8 @@ CREATE TABLE IF NOT EXISTS `#__menu` (
KEY `idx_left_right` (`lft`,`rgt`),
KEY `idx_alias` (`alias`(100)),
KEY `idx_path` (`path`(100)),
KEY `idx_language` (`language`)
KEY `idx_language` (`language`),
KEY 'idx_client_id_published_lft' ('client_id','published','lft')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=102;

--
Expand Down Expand Up @@ -1558,11 +1562,12 @@ CREATE TABLE IF NOT EXISTS `#__session` (
`data` mediumtext,
`userid` int(11) DEFAULT 0,
`username` varchar(150) DEFAULT '',
PRIMARY KEY (`session_id`),
PRIMARY KEY (`session_id`(32)),
KEY `userid` (`userid`),
KEY `time` (`time`)
KEY `time` (`time`(10))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;


-- --------------------------------------------------------

--
Expand Down Expand Up @@ -1632,7 +1637,8 @@ CREATE TABLE IF NOT EXISTS `#__template_styles` (
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_template` (`template`),
KEY `idx_home` (`home`)
KEY `idx_home` (`home`),
KEY 'idx_client_id' ('client_id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=9;

--
Expand Down Expand Up @@ -1973,7 +1979,8 @@ CREATE TABLE IF NOT EXISTS `#__viewlevels` (
`ordering` int(11) NOT NULL DEFAULT 0,
`rules` varchar(5120) NOT NULL COMMENT 'JSON encoded access control.',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_assetgroup_title_lookup` (`title`)
UNIQUE KEY `idx_assetgroup_title_lookup` (`title`),
KEY `idx_ordering_title` (`ordering`,`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=7;

--
Expand Down
6 changes: 6 additions & 0 deletions installation/sql/postgresql/joomla.sql
Expand Up @@ -424,6 +424,7 @@ CREATE TABLE "#__contentitem_tag_map" (
CREATE INDEX "#__contentitem_tag_map_idx_tag_type" ON "#__contentitem_tag_map" ("tag_id", "type_id");
CREATE INDEX "#__contentitem_tag_map_idx_date_id" ON "#__contentitem_tag_map" ("tag_date", "tag_id");
CREATE INDEX "#__contentitem_tag_map_idx_core_content_id" ON "#__contentitem_tag_map" ("core_content_id");
CREATE INDEX "#__contentitem_idx_alias_item_id" ON "#__contentitem_tag_map" ("type_alias","content_item_id");

COMMENT ON COLUMN "#__contentitem_tag_map"."core_content_id" IS 'PK from the core content table';
COMMENT ON COLUMN "#__contentitem_tag_map"."content_item_id" IS 'PK from the content type table';
Expand Down Expand Up @@ -467,6 +468,7 @@ CREATE TABLE "#__extensions" (
CREATE INDEX "#__extensions_element_clientid" ON "#__extensions" ("element", "client_id");
CREATE INDEX "#__extensions_element_folder_clientid" ON "#__extensions" ("element", "folder", "client_id");
CREATE INDEX "#__extensions_extension" ON "#__extensions" ("type", "element", "folder", "client_id");
CREATE INDEX "#__extensions_idx_type_ordering" ON "#__extensions" ("type","ordering");

-- Components
INSERT INTO "#__extensions" ("extension_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
Expand Down Expand Up @@ -1132,6 +1134,7 @@ CREATE TABLE "#__languages" (
);
CREATE INDEX "#__languages_idx_ordering" ON "#__languages" ("ordering");
CREATE INDEX "#__languages_idx_access" ON "#__languages" ("access");
CREATE INDEX "#__languages_idx_published_ordering" ON "#__languages" ("published","ordering");

--
-- Dumping data for table #__languages
Expand Down Expand Up @@ -1178,6 +1181,7 @@ CREATE INDEX "#__menu_idx_left_right" ON "#__menu" ("lft", "rgt");
CREATE INDEX "#__menu_idx_alias" ON "#__menu" ("alias");
CREATE INDEX "#__menu_idx_path" ON "#__menu" ("path");
CREATE INDEX "#__menu_idx_language" ON "#__menu" ("language");
CREATE INDEX "#__menu_idx_client_id_published_lft" ON "#__menu" ("client_id","published","lft");

COMMENT ON COLUMN "#__menu"."menutype" IS 'The type of menu this item belongs to. FK to #__menu_types.menutype';
COMMENT ON COLUMN "#__menu"."title" IS 'The display title of the menu item.';
Expand Down Expand Up @@ -1561,6 +1565,7 @@ CREATE TABLE "#__template_styles" (
);
CREATE INDEX "#__template_styles_idx_template" ON "#__template_styles" ("template");
CREATE INDEX "#__template_styles_idx_home" ON "#__template_styles" ("home");
CREATE INDEX "#__template_styles_idx_client_id" ON "#__template_styles" ("client_id");

--
-- Dumping data for table #__template_styles
Expand Down Expand Up @@ -1884,6 +1889,7 @@ CREATE TABLE "#__viewlevels" (

COMMENT ON COLUMN "#__viewlevels"."id" IS 'Primary Key';
COMMENT ON COLUMN "#__viewlevels"."rules" IS 'JSON encoded access control.';
CREATE INDEX "#__viewlevels_idx_ordering_title" ON "#__viewlevels" ("ordering","title");

--
-- Dumping data for table #__viewlevels
Expand Down
39 changes: 39 additions & 0 deletions installation/sql/sqlazure/joomla.sql
Expand Up @@ -684,6 +684,12 @@ CREATE NONCLUSTERED INDEX [idx_core_content_id] ON [#__contentitem_tag_map]
[core_content_id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_alias_item_id] ON [#__contentitem_tag_map]
(
[type_alias] ASC,
[content_item_id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

/****** Object: Table [#__core_log_searches] ******/
SET QUOTED_IDENTIFIER ON;

Expand Down Expand Up @@ -740,6 +746,12 @@ CREATE NONCLUSTERED INDEX [extension] ON [#__extensions]
[client_id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_type_ordering] ON [#__extensions]
(
[type] ASC,
[ordering] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

SET IDENTITY_INSERT [#__extensions] ON;

INSERT [#__extensions] ([extension_id], [name], [type], [element], [folder], [client_id], [enabled], [access], [protected], [manifest_cache], [params], [custom_data], [system_data], [checked_out], [checked_out_time], [ordering], [state])
Expand Down Expand Up @@ -1876,6 +1888,13 @@ CREATE UNIQUE INDEX [idx_access] ON [#__languages]
[access] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_published_ordering] ON [#__languages]
(
[published] ASC,
[ordering] ASC
)
WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

SET IDENTITY_INSERT [#__languages] ON;

INSERT INTO [#__languages] ([lang_id], [lang_code], [title], [title_native], [sef], [image], [description], [metakey], [metadesc], [sitename], [published], [access], [ordering])
Expand Down Expand Up @@ -1972,6 +1991,13 @@ CREATE NONCLUSTERED INDEX [idx_img] ON [#__menu]
[img] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_client_id_published_lft] ON [#__menu]
(
[client_id] ASC,
[published] ASC,
[lft] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

SET IDENTITY_INSERT [#__menu] ON;

INSERT INTO [#__menu] ([id], [menutype], [title], [alias], [note], [path], [link], [type], [published], [parent_id], [level], [component_id], [checked_out], [checked_out_time], [browserNav], [access], [img], [template_style_id], [params], [lft], [rgt], [home], [language], [client_id])
Expand Down Expand Up @@ -2510,6 +2536,12 @@ CREATE NONCLUSTERED INDEX [idx_template] ON [#__template_styles]
[template] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

CREATE NONCLUSTERED INDEX [idx_client_id] ON [#__template_styles]
(
[client_id] ASC,
)
WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

SET IDENTITY_INSERT [#__template_styles] ON;

INSERT [#__template_styles] ([id], [template], [client_id], [home], [title], [params])
Expand Down Expand Up @@ -2988,6 +3020,13 @@ CREATE TABLE [#__viewlevels](
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY];

CREATE NONCLUSTERED INDEX [idx_ordering_title] ON [#__viewlevels]
(
[ordering] ASC,
[title] ASC
)
WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF);

SET IDENTITY_INSERT [#__viewlevels] ON;

INSERT INTO [#__viewlevels] ([id], [title], [ordering], [rules])
Expand Down
3 changes: 1 addition & 2 deletions libraries/cms/application/site.php
Expand Up @@ -477,8 +477,7 @@ public function getTemplate($params = false)
->select('id, home, template, s.params')
->from('#__template_styles as s')
->where('s.client_id = 0')
->where('e.enabled = 1')
->join('LEFT', '#__extensions as e ON e.element=s.template AND e.type=' . $db->quote('template') . ' AND e.client_id=s.client_id');
->join('LEFT', '#__extensions as e ON e.element=s.template AND e.type=' . $db->quote('template') . ' AND e.client_id=0 AND e.enabled = 1');

$db->setQuery($query);
$templates = $db->loadObjectList('id');
Expand Down
35 changes: 34 additions & 1 deletion libraries/cms/helper/tags.php
Expand Up @@ -417,7 +417,40 @@ public function getItemTags($contentType, $id, $getTagData = true)

if ($getTagData)
{
$query->select($db->quoteName('t') . '.*');
$query->select(
array(
'id',
'parent_id',
'lft',
'rgt',
'level',
'path',
'title',
'alias',
'note',
'description',
'published',
'checked_out',
'checked_out_time',
'access',
'params',
'metadesc',
'metakey',
'metadata',
'created_user_id',
'created_time',
'created_by_alias',
'modified_user_id',
'modified_time',
'images',
'urls',
'hits',
'language',
'version',
'publish_up',
'publish_down'
)
);
}

$query->join('INNER', $db->quoteName('#__tags') . ' AS t ' . ' ON ' . $db->quoteName('m.tag_id') . ' = ' . $db->quoteName('t.id'));
Expand Down
11 changes: 6 additions & 5 deletions libraries/cms/html/access.php
Expand Up @@ -42,11 +42,12 @@ public static function level($name, $selected, $attribs = '', $params = true, $i
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('a.id', 'value') . ', ' . $db->quoteName('a.title', 'text'))
->from($db->quoteName('#__viewlevels', 'a'))
->group($db->quoteName(array('a.id', 'a.title', 'a.ordering')))
->order($db->quoteName('a.ordering') . ' ASC')
->order($db->quoteName('title') . ' ASC');
->select('a.id AS value, a.title AS text')
->from($db->qn('#__viewlevels', 'a'))
->where($db->qn('a.ordering') . ' > -1')
->where($db->qn('a.title') . ' != ""')
->order($db->qn('a.ordering'))
->order($db->qn('title'));

// Get the options.
$db->setQuery($query);
Expand Down
18 changes: 17 additions & 1 deletion libraries/joomla/language/helper.php
Expand Up @@ -155,7 +155,23 @@ public static function getLanguages($key = 'default')
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->select(
array(
'lang_id',
'lang_code',
'title',
'title_native',
'sef',
'image',
'description',
'metakey',
'metadesc',
'sitename',
'published',
'access',
'ordering'
)
)
->from('#__languages')
->where('published=1')
->order('ordering ASC');
Expand Down