Documentos adjuntos se muestran como una URL en texto

Buenos dias, estoy utilizando Tainacan para un repositorio de documentos. Un item de mi colección puede tener varios adjuntos descargables (Docx, pptx,…). Mi duda es como puedo lograr que no se me muestre la ruta al documento a descargar en el lightbox, sinó que simplemente me muestre un icono o imagen. Gracias

Olá @Juanjo, tudo bem? Seja bem vindo à nossa comunidade!

Qual tema você está utilizando? A depender temos algumas configurações que permitem a modificação da galeria de mídia.

Buenos dias, Mateus.
Todo bien, gracias por la bienvenida.
El tema que estoy utilizando es “Interficie del Tainacan”.
A ver si puedes darme alguna idea :wink:

Eu fiz alguns testes aqui… Infelizmente acho que não vai ser possível sem algum ajuste em código.

A nossa galeria de mídias, embora feita para funcionar com tudo que é tipo de mídias, ainda privilegia muito arquivos que podem de fator ser visualizados na Web. Arquivos como estes ela mostra por padrão o link direto para download. Tem alguns ajustes que você pode fazer nessa visualização através do menu “Personalizar” → “Página de um item Tainacan” → “Documentos e anexos do item”. Por exemplo, desabilitando o lightbox e usando a seção “Documentos” (que une a galeria maior, do documento, com a de anexos em um só carrossel), você reduz um clique para este link. Mas mudar a aparência dele, mostrando por exemplo um botão com rótulo ao invés do link em extenso, demandaria ainda mais opções que não criamos nos temas.

Via código, porém, isso pode ser configurado, caso você tenha alguma experiência em PHP. Temos um filtro get_tainacan_item_gallery justamente para que o HTML dessa galeria possa ser manipulado. Caso este seja um caminho para você, vale dar uma olhada na função que gera a própria galeria, aqui e aqui.

1 curtida

Gracias por la información. Probaré lo que me dices y te cuento

Hola de nuevo,
estuve haciendo algunas pruebas, intentando modificar el código en single_attachments_old.php que era donde había localizado el tainacan_media_attachment_html_url, para que me detectara si la extension de los documentos adjuntos era docx o pptx. Pero no veo cambio en la visualización.
Estoy llegando a la conclusion que seguramente no lo estoy cambiando en el sitio correcto.
Alguna recomendación?

¡Hola @Juanjo! Estoy utilizando algunas herramientas de traducción automática para ver si ayuda como comunicar :slight_smile:

single_attachments_old.php está ahí en el tema sobre todo para mantener la compatibilidad con versiones anteriores de Tainacan, donde la función tainacan_the_item_gallery() no existía todavía en el plugin Tainacan. Definitivamente estás interesado en manipular el contenido generado por tainacan_the_item_gallery(). Pero el mejor enfoque para hacerlo no es cambiar el código en sí, sino usar filtros para ajustar su salida.

Por ejemplo, puedes añadir el siguiente código en tu tema o plugin:

add_filter('get_tainacan_item_gallery', function($output, $args) {
  // Manipula $output HTML string si quieres o usa 
 // $args content para construir tu propio $output y devolverlo
  return $output;
}, 10, 2);

Este filtro permite anular la salida de la función get_tainacan_item_gallery. No hay una manera fácil de explicarlo todo, creo que lo mejor es echar un vistazo al código.

Echando un vistazo al código, puedo ver que podría ser difícil para usted encontrar dónde ajustar esa función, porque en realidad hace mucho entre bastidores (renderiza el carrusel, lightbox, y todo tipo de vistas previas de archivos…). Así que creo que lo que está buscando podría ser el contenido de salida por el tainacan-item-get-attachment-as-html función llamada desde dentro de ella. Y por suerte esa función también se puede filtrar:

add_filter('tainacan-item-get-attachment-as-html', function($output, $img_size, $item) {
  // Haz lo que necesites con $output, ¡no olvides devolverlo!
   return $output;
}, 10, 3);

Dentro de esa función puedes manipular la salida de adjuntos. Echa un vistazo a la función que lo construye para saber lo que quieres:

El enlace que no te gusta se muestra en la línea 974. Así que probablemente querrás repetir esa lógica - comprobando el tipo de adjunto, intentando incrustar, etc. - y entonces en caso de que no sea incrustable (esc_url($embed) == esc_url($url)), construir un botón HTML en lugar de un enlace. Sólo tenga cuidado de que las cosas cambian un poco en el contexto del filtro. Por ejemplo, $this sería $item en tu filtro.

Muchas gracias por la información.
Trataré de investigar un poco más con lo último que me has mandado.
Veo que seguramente lo estaba complicando más de lo necesario.
No te preocupes por el idioma, si me lo escribes en Portugués o inglés ya lo traduciré yo :wink: