Relato de bug – Problema com redimensionamento de imagens no EhPortal 1.40.3 (SM

Iniciado por Mr Ajuda, Ontem às 10:02

Tópico anterior - Tópico seguinte

candidosa2 e 5 Visitantes estão a ver este tópico.

Mr Ajuda


Olá Equipa de Suporte,

Espero que se encontrem bem.

Gostaria de reportar um bug relacionado com a exibição de imagens ao utilizar o portal.

Detalhes do ambiente:

Versão do SMF: 2.1.7
Portal: EhPortal 1.40.3
Tema: Orangeline 2.1.4

Descrição do problema:
Ao ativar a opção "Resize images on portal", as imagens deixam de ser exibidas nas páginas do portal. O espaço da imagem fica vazio, embora a tag HTML da imagem (ex.: <img class="bbc_img" ...>) esteja presente no código.

Quando desativo esta opção, as imagens voltam a aparecer normalmente.

Notas adicionais:

O problema aparenta estar relacionado com CSS ou com a forma como o redimensionamento está a ser aplicado às imagens dentro dos blocos do portal.
Já testei algumas correções básicas em CSS (ex.: max-width: 100%; height: auto;), mas sem sucesso.
Este comportamento ocorre apenas no portal (EhPortal), não nos tópicos do fórum.

Poderiam, por favor, verificar esta situação ou indicar alguma solução ou alternativa?

Caso necessário, posso fornecer capturas de ecrã ou acesso para testes adicionais.

Com os melhores cumprimentos

candidosa2

Ao analisar o seu ficheiro PortalBlocks.php, vi que o seu sistema usa uma função própria chamada EhPortal_parsebbc. É logo a seguir a essa função que vamos dar o nosso "golpe de mestre".

Aqui estão os passos exatos para aplicar no ficheiro que acabou de enviar:

O Passo a Passo no PortalBlocks.php
1. Abra o seu PortalBlocks.php no editor.

2. Procure por esta linha exata (deve estar por volta da linha 527):

$row['body'] = EhPortal_parsebbc($row['body'], $row['smileys_enabled'], $row['id_msg']);
3. Pressione a tecla Enter no final dessa linha e cole este código exatamente por baixo dela:

// FIX ADELINO: Forçar resize de imagens geradas (Capas), ignorando smilies
$row['body'] = preg_replace(
'~<img(?![^>]*class="[^"]*smiley[^"]*")([^>]*)>~i',
'<img$1 style="max-height: 350px !important; max-width: 100% !important; width: auto !important; height: auto !important;">',
$row['body']
);

Como vai ficar o seu código (para ter a certeza):

$row['body'] = EhPortal_parsebbc($row['body'], $row['smileys_enabled'], $row['id_msg']);

// FIX ADELINO: Forçar resize de imagens geradas (Capas), ignorando smilies
$row['body'] = preg_replace(
'~<img(?![^>]*class="[^"]*smiley[^"]*")([^>]*)>~i',
'<img$1 style="max-height: 350px !important; max-width: 100% !important; width: auto !important; height: auto !important;">',
$row['body']
);

if (!empty($length) && $smcFunc['strlen']($row['body']) > $length && !$limited)
{


Como aumentar a imagem:
Abra novamente o PortalBlocks.php e vá ao código que acabámos de colar. Basta alterar o valor de max-height: 350px para 450px (ou 500px, dependendo do seu gosto).

Ficará exatamente assim:

// FIX ADELINO: Forçar resize de imagens geradas (Capas), ignorando smilies
$row['body'] = preg_replace(
'~<img(?![^>]*class="[^"]*smiley[^"]*")([^>]*)>~i',
'<img$1 style="max-height: 450px !important; max-width: 100% !important; width: auto !important; height: auto !important;">',
$row['body']
);