web-dev-qa-db-fra.com

Comment puis-je inclure les liens d'un article dans le texte d'introduction du blog

J'aimerais inclure l'article Liens (défini dans l'onglet Images et liens) sous le texte d'introduction présenté dans la présentation du blog, au-dessus ou au-dessous du lien "En savoir plus".

J'ai essayé d'inclure ceci à partir de l'article default.php mais cela ne fonctionne pas, il manque peut-être quelque chose ou c'est complètement faux:

<?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '0')) || ($params->get('urls_position') == '0' && empty($urls->urls_position)))
        || (empty($urls->urls_position) && (!$params->get('urls_position')))) : ?>
<?php echo $this->loadTemplate('links'); ?>
<?php endif; ?>

Quelqu'un peut-il me dire comment faire cela?

Je sais comment bricoler les mises en page du contenu et j'ai créé un remplacement pour le fichier blog_item.php mais je ne suis pas un expert en php.

Toute aide serait grandement appréciée.

Merci beaucoup Leila

2
LeilaH

Ajoutez le code suivant à votre blog_item.php _ écrasez le fichier dans lequel vous souhaitez que les liens apparaissent:

<?php 
$urls    = json_decode($this->item->urls); // Create shortcut
if ($urls && (!empty($urls->urla) || !empty($urls->urlb) || !empty($urls->urlc))) :
?>
<div class="content-links">
    <ul class="nav nav-tabs nav-stacked">
        <?php
            $urlarray = array(
            array($urls->urla, $urls->urlatext, $urls->targeta, 'a'),
            array($urls->urlb, $urls->urlbtext, $urls->targetb, 'b'),
            array($urls->urlc, $urls->urlctext, $urls->targetc, 'c')
            );
            foreach ($urlarray as $url) :
                $link = $url[0];
                $label = $url[1];
                $target = $url[2];
                $id = $url[3];

                if ( ! $link) :
                    continue;
                endif;

                // If no label is present, take the link
                $label = ($label) ? $label : $link;

                // If no target is present, use the default
                $target = $target ? $target : $params->get('target'.$id);
                ?>
            <li class="content-links-<?php echo $id; ?>">
                <?php
                    // Compute the correct link

                    switch ($target)
                    {
                        case 1:
                            // open in a new window
                            echo '<a href="'. htmlspecialchars($link) .'" target="_blank"  rel="nofollow">'.
                                htmlspecialchars($label) .'</a>';
                            break;

                        case 2:
                            // open in a popup window
                            $attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=600';
                            echo "<a href=\"" . htmlspecialchars($link) . "\" onclick=\"window.open(this.href, 'targetWindow', '".$attribs."'); return false;\">".
                                htmlspecialchars($label).'</a>';
                            break;
                        case 3:
                            // open in a modal window
                            JHtml::_('behavior.modal', 'a.modal'); ?>
                            <a class="modal" href="<?php echo htmlspecialchars($link); ?>"  rel="{handler: 'iframe', size: {x:600, y:600}}">
                                <?php echo htmlspecialchars($label) . ' </a>';
                            break;

                        default:
                            // open in parent window
                            echo '<a href="'.  htmlspecialchars($link) . '" rel="nofollow">'.
                                htmlspecialchars($label) . ' </a>';
                            break;
                    }
                ?>
                </li>
        <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>

(J'ai copié ce code de components\com_content\views\article\tmpl\default_links.php.)

3
johanpw