web-dev-qa-db-ja.com

ブログの紹介文に記事のリンクを含めるにはどうすればよいですか

[画像とリンク]タブで設定した記事のリンクを、ブログのレイアウトで表示されるイントロテキストの下、[詳細]リンクの上または下に含めたいと思います。

私は記事default.phpからこれを含めようとしましたが、機能しません、何かが欠落しているか、完全に間違っています:

<?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; ?>

誰でもこれを行う方法を教えてもらえますか?

私はコンテンツレイアウトをいじくり回す方法を知っており、blog_item.phpファイルのオーバーライドを作成しましたが、phpの専門家ではありません。

どんな助けでも大歓迎です。

レイラありがとう

2
LeilaH

リンクを表示するblog_item.phpオーバーライドファイルに次のコードを追加します。

<?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; ?>

(このコードをcomponents\com_content\views\article\tmpl\default_links.phpからコピーしました。)

3
johanpw