Esta parte do código SQL configura o ambiente para gerenciar novos artigos no Joomla e K2 a partir do ID 15 da tabela content, usando a categoria padrão "Uncategorized" (ID 2). Isso envolve limpar os dados existentes a partir do ID 15, ajustar o auto_increment para começar em 15 e preparar o ambiente para novas inserções de artigos.
Passo 1: DELETE e ALTER TABLE
Este trecho de código SQL realiza duas operações:
Deleta todas as linhas da tabela "dyem7_content" onde o id é maior ou igual a 15.
Altera o valor auto_increment da tabela "dyem7_content" para 15.
/*
Este trecho de código SQL realiza duas operações:
1. Deleta todas as linhas da tabela "dyem7_content" onde o id é maior ou igual a 15.
2. Altera o valor auto_increment da tabela "dyem7_content" para 15.
*/
DELETE FROM dyem7_content WHERE id >= 15;
ALTER TABLE dyem7_content AUTO_INCREMENT = 15;
Passo 2: SELECT com JOIN
Seleciona registros da tabela dyem7_k2_items e atribui valores específicos a cada coluna selecionada.
/*
Seleciona registros da tabela dyem7_k2_items e atribui valores específicos a cada coluna selecionada.
O resultado é uma tabela temporária contendo as colunas título, alias, introtext, fulltext, state, created, created_by, created_by_alias, modified, modified_by, checked_out, attribs, publish_up, images, urls, version, ordering, metakey, metadesc, access, hits, metadata, featured, language e note.
Os registros são ordenados por id.
A categoria para cada item é definida como 2.
*/
SELECT
title,
alias,
introtext,
2 as catid,
`fulltext`,
CASE
WHEN published = 0 THEN 0
WHEN trash = 1 THEN -2
ELSE 1
END as state,
created,
created_by,
created_by_alias,
CASE modified
WHEN '0000-00-00 00:00:00' THEN created
ELSE modified
END as modified,
modified_by,
checked_out,
'{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","alternative_readmore":"","article_layout":""}' AS attribs,
publish_up,
'' as images,
'' as urls,
1 as version,
ordering,
metakey,
metadesc,
access,
hits,
metadata,
featured,
language,
'' as note
FROM `dyem7_k2_items`
ORDER BY id;
Passo 3: Outro SELECT com JOIN
Seleciona registros da tabela dyem7_content para criar uma tabela temporária com valores específicos.
/*
Seleciona registros da tabela dyem7_content onde o id é maior ou igual a 15, ordenados por id.
Em seguida, atribui valores específicos a cada coluna selecionada.
O resultado é uma tabela temporária contendo as colunas parent_id, lft, rgt, level, name, title e rules.
*/
SELECT
27 AS parent_id,
@row_number := @row_number + 1 AS lft,
@row_number := @row_number + 1 AS rgt,
3 AS level,
CONCAT('com_content.article.', id) AS name,
title AS title,
'{}' AS rules
FROM (
SELECT * FROM dyem7_content WHERE id >= 15 ORDER BY id ASC
) AS articles, (SELECT @row_number := 0) AS init;
Passo 4: UPDATE
Atualiza o campo asset_id da tabela dyem7_content com valores correspondentes da tabela dyem7_assets.
/*
Atualiza o campo asset_id da tabela dyem7_content com valores correspondentes da tabela dyem7_assets.
A atualização é realizada para registros na tabela dyem7_content onde o id é maior ou igual a 15.
A correspondência entre as tabelas é feita através do campo name da tabela dyem7_assets, que deve ser igual a CONCAT('com_content.article.', c.id),
onde c é um alias para a tabela dyem7_content.
*/
UPDATE dyem7_content AS c
JOIN dyem7_assets AS a ON CONCAT('com_content.article.', c.id) = a.name
SET c.asset_id = a.id
WHERE c.id >= 15;
Passo 5: INSERT
Atualiza os workflows para os artigos existentes com id >= 15.
/*
Atualiza os workflows para os artigos existentes com id >= 15.
*/
INSERT INTO `dyem7_workflow_associations` (`item_id`, `stage_id`, `extension`)
SELECT id, 1, 'com_content.article'
FROM dyem7_content
WHERE id >= 15;
Passo 6: Inserir Categorias K2 nas Categorias do Joomla
Insere categorias K2 na tabela de categorias do Joomla, começando a partir do ID máximo existente mais um.
/*
Passo 1: Obter o ID máximo da tabela de categorias do Joomla
*/
SET @max_id = (SELECT MAX(id) FROM dyem7_categories);
/*
Passo 2: Incrementar o ID máximo para usar como ID inicial para novas entradas
*/
SET @new_id = @max_id + 1;
/*
Passo 3: Inserir as categorias K2 na tabela de categorias do Joomla
*/
INSERT INTO dyem7_categories (id, asset_id, parent_id, lft, rgt, level, path, extension, title, alias, note, description, published, checked_out, checked_out_time, access, params, metadesc, metakey, metadata, created_user_id, created_time, modified_user_id, modified_time, hits, language, version)
SELECT
@new_id := @new_id + 1 AS id,
0 as asset_id,
parent as parent_id,
0 as lft,
0 as rgt,
0 as level,
alias as path,
'com_content' AS extension,
name as title,
alias,
'' as note,
description,
CASE
WHEN published = 0 THEN 0
WHEN trash = 1 THEN -2
ELSE 1
END AS published ,
NULL as checked_out,
-- now as checked_out_time,
now() as checked_out_time,
access,
'{"category_layout":"","image":"","image_alt":""}' as params,
'' as metadesc,
'' as metakey,
'{"author":"","robots":""}' as metadata,
0 as created_user_id,
now() as created_time,
0 as modified_user_id,
now() as modified_time,
0 as hits,
language,
1 as version
FROM dyem7_k2_categories
ORDER BY parent, ordering;