Estou tentando remover o link da minha imagem na página Tag (onde todo o artile com a mesma tag é exibido). A imagem é colocada com o <img>
tag no introtexto, não é uma imagem de introdução.
Eu encontrei a função php correta:
$notagintrotex =strip_tags( $this->item->introtext, '<img>');
echo $notagintrotex;
Mas não consigo encontrar qual arquivo tenho que substituir. Eu já vi isso pergunta mas parece que houve algumas mudanças desde o Joomla 3.3.1. em templates/yourtemplate/html/com_tags/tag/default_items.php
Ok, depois de ter uma melhor visão geral do seu problema, eis o que você precisa fazer para alcançar o que deseja:
Crie uma substituição de modelo dentro da pasta html do seu modelo, para o Componente Tags. Para fazer isso, crie a seguinte estrutura de pastas:
/ templates/yourtemplate/html/com_tags/tag /
Copie na pasta acima o arquivo:
default_items.php da pasta components/com_tags/views/tag/tmpl.
Abra este arquivo para editá-lo. Em torno da linha 80, você verá:
<?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
<?php echo $item->event->beforeDisplayContent; ?>
<span class="tag-body">
<?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
</span>
<?php echo $item->event->afterDisplayContent; ?>
Altere-o adicionando seu código antes de repetir o texto da descrição (por exemplo, antes da extensão "tag-body"):
<?php
$item->core_body =strip_tags( $item->core_body, '<img>');
?>
Então você terminará com algo como abaixo:
<?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
<?php echo $item->event->beforeDisplayContent; ?>
<?php
$item->core_body =strip_tags( $item->core_body, '<img>');
?>
<span class="tag-body">
<?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
</span>
<?php echo $item->event->afterDisplayContent; ?>
Seu site é um pouco confuso, um pouco difícil de navegar e não existe uma maneira padrão de acessar todo tipo de conteúdo e categorias. Também acho que há um pouco de confusão na configuração, pois algumas páginas exibem as informações das tags, outras apenas as categorias e assim por diante.
Além disso, eu estava tentando acessar um dos artigos dessa lista de tags para examinar como e por que ele usa uma imagem em seu introtexto com link para sites externos, mas, embora as imagens dos artigos sejam direcionadas a sites externos, os títulos dos artigos produzem um Erro 404.
Antes de tudo, acredito que você deve refinar toda a configuração do site e dos componentes. Não sei dizer exatamente o que você precisa fazer nesta resposta - você provavelmente precisará contratar alguém para ajudá-lo a resolver isso.
Em relação ao problema com os links - verifiquei também algumas outras tags e nem todas as tags possuem links para sua descrição. Isso me leva a pensar que essas imagens específicas no introtexto estão vinculadas a esses sites externos.
Penso que, uma vez que você configurou o componente Tags para exibir o introtexto, ele apenas o usará e conterá qualquer marcação do introtexto do artigo.
Uma maneira de superar isso é usar o recurso ocultar introtexto do componente Conteúdo. Seguindo essa abordagem, você criará o mesmo conteúdo duas vezes para introtexto e texto completo. No introtexto, você usará a imagem sem o link, enquanto no texto completo poderá adicionar seu link. Definir o Joomla para ocultar o introtexto da exibição do artigo resultará em 2 blocos de textos diferentes para exibir para suas necessidades.
O introtexto sem os links para todos os layouts de blogs/listas de tags, módulos de artigos etc. e o texto completo da exibição do artigo.
Ou você pode usar os recursos de imagens do Joomla Content, na guia "Imagens e links" e definir sua imagem de introdução.
No entanto, lembre-se de que a saída de cada componente também é controlada por qualquer possível substituição de modelo para cada componente.
Parece-me que você precisa criar um plug-in de conteúdo (é bastante fácil) remover as tags. Veja Criando um plugin de conteúdo e insira seu código no arquivo php. O evento que deve disparar é provavelmente o evento onContentPrepare
, ou talvez onContentBeforeDisplay
.