Exibir primeira imagem na lista de artigos arquivados

  • brunodyjorge
  • Avatar de brunodyjorge Autor do Tópico
  • Offline
  • JCB! Geek
  • JCB! Geek
Mais
13 anos 9 meses atrás #61913 por brunodyjorge
brunodyjorge created the topic: Exibir primeira imagem na lista de artigos arquivados
Olá pessoal,

Gostaria de saber como eu consigo exibir a primeira imagem de cada artigo na página de artigos arquivados padrão do Joomla! (index.php?option=com_content&view=archive).

Tenho feito algumas modificações em minha página com o intuito de melhorar a experiência com o visitante e acredito que uma maneira de fazer isto é exibir a primeira imagem do artigo ao lado do texto introdutório.

Pesquisando na internet, consegui achar isto:
http://forum.joomla.org/viewtopic.php?t=271517
Mas meus testes indicaram que a solução apresentada não funciona na página de artigos arquivados, somente na lista de artigos do tipo "Blog de categoria".

Olhando o código da minha página, encontrei o seguinte código que apresenta o texto introdutório.
<?php echo substr(strip_tags($item->introtext), 0, 255);  ?>...
Percebi que o comando "strip_tags" é o responsável por retirar todas as tags html do texto introdutório e exibi-lo sem nenhuma formatação. Assim, a tag <img> também é limpada. Se eu retirá-lo, as imagens dos artigos (que no meu caso estão sempre antes de iniciar o texto) aparecem, porém a formatação do texto também é mantida (uma vez que eu retirei o comando que limpa as tags) e isso é uma coisa que eu não desejo manter. Outra coisa é que todo o layout da página é comprometido, desconfigurado.

Resumindo, gostaria de uma maneira de exibir a primeira imagem de cada artigo, na lista de artigos arquivados do Joomla e limpando as tags do texto introdutório. Pode ser um plugin ou até o código para eu alterar no arquivo php.

Alguém pode me ajudar?

Please Entrar ou Registrar to join the conversation.


  • brunodyjorge
  • Avatar de brunodyjorge Autor do Tópico
  • Offline
  • JCB! Geek
  • JCB! Geek
Mais
13 anos 8 meses atrás #63026 por brunodyjorge
brunodyjorge replied the topic: Re: Exibir primeira imagem na lista de artigos arquivados
Procurei outros módulos que possuem esta função (encontrar a primeira imagem). Analisando o código do módulo "minifrontpage" encontrei uma parte do código que o autor comentou que seria a responsável por encontrar o caminho de uma imagem na tag img.

Como não entendo totalmente o código, vou colocar esta parte aqui para quem puder analisar e me retornar apenas um código que eu possa utilizar para conseguir pegar a primeira imagem de cada artigo.
for ( $r = 0; $r < $rc; $r++) {
			if ($thumb_embed && $counter) {	
				/* Regex tool for finding image path on img tag - thx to Jerson Figueiredo */	
				preg_match_all("/<img&#91;^>&#93;*>/Ui", $rows&#91;$r&#93;->introtext . $rows&#91;$r&#93;->fulltext, $txtimg);
				if (!empty($txtimg&#91;0&#93;)) {
					foreach ($txtimg&#91;0&#93; as $txtimgel) {
						$rows&#91;$r&#93;->introtext = str_replace($txtimgel,"",$rows&#91;$r&#93;->introtext);
						if (preg_match_all("#http#",$txtimgel,$txtimelsr,PREG_PATTERN_ORDER) > 0) {
							preg_match_all("#src=\"(&#91;\-\/\_A-Za-z0-9\.\:&#93;+)\"#",$txtimgel,$txtimgelsr);
							if (!empty($rows&#91;$r&#93;->images)) {
								$rows&#91;$r&#93;->images = $txtimgelsr&#91;1&#93;&#91;0&#93; . "\n" . $rows&#91;$r&#93;->images;
							} else {
								$rows&#91;$r&#93;->images = $txtimgelsr&#91;1&#93;&#91;0&#93;;
							}
						} elseif ( strstr($txtimgel, $image_path) ) {
							if (strstr($txtimgel, 'src="/')) {
								preg_match_all("#src=\"\/" . addslashes($image_path) . "\/(&#91;\:\-\/\_A-Za-z0-9\.&#93;+)\"#",$txtimgel,$txtimgelsr);
							} else {
								preg_match_all("#src=\"" . addslashes($image_path) . "\/(&#91;\:\-\/\_A-Za-z0-9\.&#93;+)\"#",$txtimgel,$txtimgelsr);
							}
				
							if (!empty($rows&#91;$r&#93;->images)) {
								$rows&#91;$r&#93;->images = $txtimgelsr&#91;1&#93;&#91;0&#93; . "\n" . $rows&#91;$r&#93;->images;
							} else {
								$rows&#91;$r&#93;->images = $txtimgelsr&#91;1&#93;&#91;0&#93;;
							}
						} 
					}
				}
			} // end of thumbnail processing

			$rows&#91;$r&#93;->introtext= preg_replace("/{&#91;^}&#93;*}/","",$rows&#91;$r&#93;->introtext);

Please Entrar ou Registrar to join the conversation.