Simple Machines Community Forum

SMF Support => Português (Portuguese) => Language Specific Support => Arquivo => Topic started by: Sharkman™ on June 27, 2007, 07:35:54 PM

Title: contagem de mensagens
Post by: Sharkman™ on June 27, 2007, 07:35:54 PM
olá amigos !!

ja percori todas as opcoes na adm e naõ encontrei, como se activa para que quando ilminamos um topico ou mensagens do forum, nao atinja o n de post dos membros e de mensagens!!

obrigado!!
Title: Re: contagem de mensagens
Post by: margarett on June 28, 2007, 05:33:17 AM
Que eu saiba isso não existe... Remover mensagens actualiza sempre os totais do fórum...

Andei aqui a partir a cabeça nos Sources e acho que descobri... No ficheiro Sources/RemoveTopic.php esta é a função responsável por apagar os posts, depois de seleccionados por outras funções:

// Removes the passed ID_TOPICs. (permissions are NOT checked here!)
function removeTopics($topics, $decreasePostCount = true, $ignoreRecycling = false)
{
global $db_prefix, $sourcedir, $modSettings;

// Nothing to do?
if (empty($topics))
return;
// Only a single topic.
elseif (is_numeric($topics))
{
$condition = '= ' . $topics;
$topics = array($topics);
}
elseif (count($topics) == 1)
$condition = '= ' . $topics[0];
// More than one topic.
else
$condition = 'IN (' . implode(', ', $topics) . ')';

// Decrease the post counts.
if ($decreasePostCount)
{
$requestMembers = db_query("
SELECT m.ID_MEMBER, COUNT(*) AS posts
FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b)
WHERE m.ID_TOPIC $condition
AND b.ID_BOARD = m.ID_BOARD
AND m.icon != 'recycled'
AND b.countPosts = 0
GROUP BY m.ID_MEMBER", __FILE__, __LINE__);
if (mysql_num_rows($requestMembers) > 0)
{
while ($rowMembers = mysql_fetch_assoc($requestMembers))
updateMemberData($rowMembers['ID_MEMBER'], array('posts' => 'posts - ' . $rowMembers['posts']));
}
mysql_free_result($requestMembers);
}

....................................................................


Ora eu penso que se na 2ª linha alterares aquele:
$decreasePostCount = true
para
$decreasePostCount = false
Deves resolver o teu problema, porque mais à frente na função tens:

// Decrease the post counts.
if ($decreasePostCount)

Ora se essa variável for "false" ele não executa a parte de subtrair os totais do fórum ;)

Testa isto e diz alguma coisa. Não esquecer do backup da ordem ;)
Title: Re: contagem de mensagens
Post by: Sharkman™ on June 28, 2007, 05:41:29 AM
ok amigo vou tentar, depois digo se resultou ou não!!

obrigado
Title: Re: contagem de mensagens
Post by: Sharkman™ on June 28, 2007, 08:13:01 AM
olá!!

funcionou em relação á iliminação dos topicos,pois podemos iliminar os topicos que altera o n de mens, mas quando iliminamos uma mesagens dentro dum topico as mesmas continuem a ser descontadas nos post dos membros
Title: Re: contagem de mensagens
Post by: margarett on June 28, 2007, 09:07:19 AM
Pois :P

Aqui:
// Remove a specific message (including permission checks).
function removeMessage($message, $decreasePostCount = true)
{

Alteras o decreasPosCount para "false" (sem as aspas) ;)
Title: Re: contagem de mensagens
Post by: Sharkman™ on June 28, 2007, 10:06:54 AM
olá!!

amigo está tudo a funcionar!!!

o meu grande obrigado pela ajuda!!!

cumps,
Title: Re: contagem de mensagens
Post by: Amendoim on March 01, 2009, 05:07:41 PM
Obrigado..

Foi uma grande ajuda ;D