Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miglioramento visualizzazione card "scheda_progetto" e "scheda_didattica" #732

Open
2 tasks done
Cate55 opened this issue Oct 21, 2024 · 1 comment
Open
2 tasks done
Labels
enhancement New feature or request

Comments

@Cate55
Copy link
Contributor

Cate55 commented Oct 21, 2024

Prerequisiti

Proposta

A seguito dell'ultima release, in cui è stata introdotta la sezione "in evidenza" per il backoffice della scheda_progetto, si potrebbe aggiungere la scheda_didattica se interessa (stessa procedura come riportato in PR #722), ma entrambe mostrano in home una card con descrizione estesa troncata.

Questa modifica migliora la logica di visualizzazione dei campi di descrizione personalizzati (abstract) nelle card di "scheda_progetto" e "scheda_didattica".

Descrizione del problema
Nella visualizzazione delle card "scheda_progetto" e "scheda_didattica" in home, il campo abstract veniva ignorato o combinato con il contenuto esteso, causando confusione. Inoltre, se il campo abstract veniva lasciato vuoto, non era disponibile un fallback al riassunto di WordPress.

Miglioramento
L'aggiornamento introduce i seguenti miglioramenti:

Visualizzazione corretta del campo abstract personalizzato _dsi_scheda_progetto_descrizione e _dsi_scheda_didattica_descrizione, se popolati.
Se questi campi sono vuoti, viene utilizzato come fallback l'excerpt (riassunto) di WordPress per garantire una visualizzazione coerente dei contenuti.
Migliorata la logica per la gestione dei post di tipo "post", assicurando che venga sempre mostrato l'excerpt quando non è disponibile una descrizione personalizzata.

Esempio di codice

Ecco la logica migliorata nel file card-vertical-thumb.php:

global $post, $autore, $set_card_top_margin, $set_card_wrapper;
$autore = get_user_by("ID", $post->post_author);

$image_id = get_post_thumbnail_id($post);
$image_url = get_the_post_thumbnail_url($post, "vertical-card");
$show_contatore_commenti = dsi_get_option("show_contatore_commenti", "setup");
?>
<div class="card card-bg card-vertical-thumb bg-white card-thumb-rounded <?php echo $set_card_wrapper ? "card-wrapper" : ""; ?> <?php echo $set_card_top_margin ? "mt-2" : ""; ?>">
    <div class="card-body">
        <div class="card-content flex-grow-1">
            <h3 class="h5"><a href="<?php echo get_permalink($post); ?>"><?php echo get_the_title($post); ?></a></h3>

            <?php
            // Campo personalizzato per scheda_progetto
            if ($post->post_type == "scheda_progetto") {
                $breve_descrizione = get_post_meta($post->ID, '_dsi_scheda_progetto_descrizione', true);
                echo !empty($breve_descrizione) ? '<p>' . esc_html($breve_descrizione) . '</p>' : '';
            }
            // Campo personalizzato per scheda_didattica
            else if ($post->post_type == "scheda_didattica") {
                $breve_descrizione = get_post_meta($post->ID, '_dsi_scheda_didattica_descrizione', true);
                echo !empty($breve_descrizione) ? '<p>' . esc_html($breve_descrizione) . '</p>' : '<p>' . get_the_excerpt($post) . '</p>';
            }
            // Per tutti gli altri post normali, inclusi i "post"
            else if ($post->post_type == "post") {
                $breve_descrizione = get_post_meta($post->ID, '_dsi_articolo_descrizione', true);
                echo !empty($breve_descrizione) ? '<p>' . esc_html($breve_descrizione) . '</p>' : '<p>' . get_the_excerpt($post) . '</p>';
            } 
            // Fallback per altri tipi di post
            else {
                echo '<p>' . get_the_excerpt($post) . '</p>';
            }
            ?>
        </div>

        <?php if ($image_url) { ?>
            <div class="card-thumb">
                <?php dsi_get_img_from_id_url($image_id, $image_url); ?>
            </div>
        <?php } ?>
    </div><!-- /card-body -->

    <div class="card-comments-wrapper">
        <?php get_template_part("template-parts/autore/card"); ?>
        <?php
        if ($post->post_type == "post" && $show_contatore_commenti != "false") {
            ?>
            <div class="comments">
                <p><?php echo $post->comment_count; ?></p>
            </div><!-- /comments -->
            <?php
        }
        ?>
    </div><!-- /card-comments-wrapper -->
</div><!-- /card -->

Passi per riprodurre il problema

  1. Aggiungere o modificare un post di tipo "scheda_progetto" o "scheda_didattica".
  2. Verificare che nella visualizzazione della card venga mostrato correttamente l'excerpt.

Grazie per aver preso in considerazione questo miglioramento!

Motivazione e contesto

Comportamento atteso

Ora le card "scheda_progetto" e "scheda_didattica" mostreranno correttamente l'abstract o, in mancanza di questo, utilizzeranno l'excerpt come fallback. Gli altri tipi di post non saranno influenzati. In questo modo la home presenterà le card in linea con le varie tipologie.

Prima della modifica
card-scheda-progetto
Dopo la modifica
tipologie-card

@Cate55 Cate55 added the enhancement New feature or request label Oct 21, 2024
@Cate55 Cate55 changed the title Miglioramento nella visualizzazione delle descrizioni personalizzate nelle card "scheda_progetto" e "scheda_didattica" Miglioramento visualizzazione card "scheda_progetto" e "scheda_didattica" Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants
@Cate55 and others