← phpBB

Mudar autor de posts?

Lida 13088 vezes

Offline

SFCMiguel 
Membro
Mensagens 187 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Boa tarde, precisava de saber se é possível alterar o autor de uns posts sem ser um a um, por exemplo através da db ou mesmo no ACP se tiver essa opção.
Offline

diogoosorio 
Membro
Mensagens 134 Gostos 1
Feedback +1

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

No WordPress?

Vai à tabela wp_users e vê qual o ID do utilizador para o qual queres mudar a autoria dos posts (ex, o utilizador com o ID 5).

Depois executa a seguinte query:

Citar
UPDATE wp_posts SET post_author='5'

Obviamente substitui o 5 pelo ID do teu user. Isto altera o autor de todos os posts que tens no blog. Tem também atenção ao prefixo da base de dados - neste caso utilizei a wp_, porque é a mais usual, mas confirma o nome das tuas tabelas.

Se quiseres filtrar mais a query (ex. substituir apenas os posts onde o autor é o ID 3 ou 4, pelo autor com o ID 5), faz o seguinte:

Citar
UPDATE wp_posts SET post_author=5 WHERE post_author IN (3, 4)
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 49
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Este post foi publicado no forum do phpBB...
De qualquer maneira ve isto mas é so manual 1 a 1 pelo que percebi...
http://www.phpbb.com/community/viewtopic.php?f=46&t=702585&p=4021455
Offline

diogoosorio 
Membro
Mensagens 134 Gostos 1
Feedback +1

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Oops, não vi...

De qualquer das formas o procedimento é muito similar.

Vais à tabela phpbb_users e apanha o user_id do utilizador que alterar a autoria dos posts e o user_id do utilizador para o qual vais substituir a autoria dos posts.

Agora neste exemplo vou substituir todos os posts dos user_id 3, 5 e 7 pelo user_id 8.

Código: (sql) [Seleccione]
// Actualizar topicos dos utilizadores
UPDATE phpbb_topics SET topic_poster=8, topic_last_poster_name=(SELECT username_clean FROM phpbb_users WHERE user_id=8) WHERE topic_poster IN (3,5,7)
UPDATE phpbb_topics_posted SET user_id=8 WHERE user_id IN (3,5,7)

// Actualizar posts dos utilizadores
UPDATE phpbb_posts SET poster_id=8, post_username=(SELECT username_clean FROM phpbb_users WHERE user_id=8) WHERE poster_id IN (3,5,7)
UPDATE phpbb_forums SET forum_last_poster_id=8, forum_last_poster_name=(SELECT username_clean FROM phpbb_users WHERE user_id=8) WHERE forum_last_poster_id IN (3,5,7)

Isto à "força bruta". Confesso que não conheço o sistema a fundo, de qualquer das formas baseei-me no modelo E-R que encontrei para a versão 3.0 (http://internal.shirta.com/tech/phpbb3_tables.png). Portanto se alguém souber algum add-on ou opção no painel de administração que satisfaça o que pediste, é sempre melhor.

Senão, assim também deve funcionar. :)
Offline

SFCMiguel 
Membro
Mensagens 187 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Boas diogoosorio seguindo a tua lógica então o User que actualmente tem os posts tem o ID 1 e o que é para ficar é o 273 e fiz isto:

Código: [Seleccione]
UPDATE phpbb_topics SET topic_poster=273, topic_last_poster_name=(SELECT username_clean FROM phpbb_users WHERE user_id=273) WHERE topic_poster IN (1)
UPDATE phpbb_topics_posted SET user_id=273 WHERE user_id IN (1)
UPDATE phpbb_posts SET poster_id=273, post_username=(SELECT username_clean FROM phpbb_users WHERE user_id=273) WHERE poster_id IN (1)
UPDATE phpbb_forums SET forum_last_poster_id=273, forum_last_poster_name=(SELECT username_clean FROM phpbb_users WHERE user_id=273) WHERE forum_last_poster_id IN (1)

Mas apareceu-me este erro:

Código: [Seleccione]
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE phpbb_topics_posted SET user_id=273 WHERE user_id IN (1) UPDATE phpbb_po' at line 2
O que será?
Offline

SFCMiguel 
Membro
Mensagens 187 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Resolvido.

Instalei o STK e usei a opção de fusão de utilizadores.

Cumprimentos