簡體   English   中英

Joomla介紹圖像閱讀更多鏈接

[英]Joomla intro image as read more link

我想讓joomla文章介紹圖像表現得像閱讀更多,標題鏈接。 因此,用戶單擊圖像,然后加載文章。

我不是PHP專家,但也許這是readmore鏈接代碼:

<a href="<?php echo $this->item->readmore_link; ?>" class="button<?php echo $this->item->params->get('pageclass_sfx'); ?>">
        <?php if ($this->item->readmore_register) :
            echo JText::_('Register to read more...');
        elseif ($readmore = $this->item->params->get('readmore')) :
            echo $readmore;
        else :
                echo JText::_("Read Article");
        endif; ?></a>

這就是我想要對我的joomla網站上的每個介紹圖像做的事情。 謝謝 !

剛剛解決了!

你的思維方式幫助了我。 謝謝!

這是我的代碼:

        <a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>">

    <?php
        $images = json_decode($item->images);
        if (isset($images->image_intro) and !empty($images->image_intro)) {
            $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro;
            $class = (htmlspecialchars($imgfloat) != 'none') ? ' class="size-auto align-'.htmlspecialchars($imgfloat).'"' : ' class="size-auto"';
            $title = ($images->image_intro_caption) ? ' title="'.htmlspecialchars($images->image_intro_caption).'"' : '';
            echo '<img'.$class.$title.' src="'.htmlspecialchars($images->image_intro).'" alt="'.htmlspecialchars($images->image_intro_alt).'" />';
        }

        echo $this->item->introtext;

    ?>

    </a>

對於Joomla 2.5:

在_item.php(位置:yourtemplate \\ html \\ mod_articles_news \\ item.php)的覆蓋中放置以下行:

<?php if ($params->get('image')) : ?>
    <?php  $images = json_decode($item->images); ?>
    <?php  if (isset($images->image_intro) and !empty($images->image_intro)) : ?>
        <a href="<?php echo $item->link;?>"><img src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo   htmlspecialchars($images->image_intro_alt); ?>"/></a>
    <?php endif; ?>
<?php endif; ?>

將它放在您希望它出現的位置例如:

<?php echo $item->beforeDisplayContent; ?>

您的介紹圖片現已成為鏈接。 isset部分,確保如果查看器使用Internet Explorer,它不會顯示一個小的紅色十字框。

僅供參考:在blog_item.php中,您可以找到一個示例代碼,它是如何在文章中顯示的。 在這里你也可以找到imagefloat等的代碼。

<?php  if (isset($images->image_intro) and !empty($images->image_intro)) : ?>
<?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?>
<div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>">
<img
    <?php if ($images->image_intro_caption):
        echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"';
    endif; ?>
    src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/>
</div>
<?php endif; ?>

在Joomla 3.1中,intro_image布局已移至layouts / joomla / content文件夾。 在我的情況下,它從com_content / views / category / tmpl / blog_item.php調用,如下所示:

<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?>

我將該文件移動到我的template / html / com_content / category / blog_item.php,然后將調用包裝到JLayoutHelper中,如下所示:

<?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>
<a href="<?php echo $link; ?>">
<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?>
</a>

那么,首先讓我解釋一下上面發布的代碼。 整個代碼塊生成一個鏈接:有一堆基於某些設置確定的if語句。 例如,如果您已設置人們需要注冊以便閱讀更多內容,則鏈接將顯示“注冊以閱讀更多內容...”

然而,我們在這里感興趣的部分,因為我們想要將圖像轉換為鏈接,是我們希望圖像鏈接到的URL。 這是第一行:

<a href="<?php echo $this->item->readmore_link; ?>"

所以我們知道URL是動態提供的,這要歸功於$item->item->readmore_link ,所有這些代碼所做的就是將它回顯到HTML中。

剩下的就是編輯您擁有圖像的頁面的Joomla模板(可能與您從中獲取此代碼的文件相同)。 看起來這應該是更大的PHP循環的一部分,循環遍歷所有帖子。 在上面找到此代碼的地方,應該是與該帖子一起的介紹圖像的代碼。

我不確定它會是什么樣子,它可能是<img src="<? stuff here; ?> />或者它可以動態生成。繼續閱讀。如果你仍然不確定在哪里找到最后,使用模板的完整代碼編輯你的帖子,你可以從中獲取上述剪輯。無論它看起來如何,它都被稱為<WHATEVER IMAGE CODE YOU FOUND ABOVE>在下面的步驟中:

您必須使用“a”標記包裝該圖像,使其看起來如下所示:

<a href="<?php echo $this->item->readmore_link; ?>"> <WHATEVER IMAGE CODE YOU FOUND ABOVE> </a>

應該這樣做。 如果您有任何問題,請告訴我,如果您能提供更詳細的信息,我會非常樂意讓我的帖子更具體,但我已經嘗試解釋得很清楚,您應該能夠解決這個問題。一對夫婦。

正如您所說,您不是PHP專家,聽起來您最好的選擇是使用具有與您想要的功能類似的Joomla擴展。

我相信mod_minifrontpage可以滿足您的需求。 它允許您顯示文章列表,並根據要引用的第一個圖像為這些文章生成縮略圖。

J中有文章介紹圖像,自1.7.5開始,現在最新的2.5.3,你需要的是更改component_content的默認值,

您可以通過兩種方式完成,在您的install / components / com_content / views /中編輯視圖

或者使用模板覆蓋,首先需要知道模板是否使用覆蓋,否則如果編輯組件本身的組件視圖,則不會看到更改。

要驗證這一點,請轉到site_name / templates / template_name / html文件夾並檢查是否有文件夾名稱com_content,

如果是這種情況,那么你的模板使用覆蓋,並且任何編輯都應該通過組件完成

現在到實際的代碼

這是在components \\ com_content \\ views \\ featured \\ tmpl \\ default_item.php(這是我的默認前景文章)

<?php  if (isset($images->image_intro) and !empty($images->image_intro)) : ?>
    <?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?>

    <div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>">
    <img
        <?php if ($images->image_intro_caption):
            echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"';
        endif; ?>
        src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/>
    </div>
<?php endif; ?>

所有你需要做的就是用這樣的readmore鏈接在IMG標簽周圍包裝一個元素

<a href="<?php echo $this->item->readmore_link; ?>">

<img
        <?php if ($images->image_intro_caption):
            echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"';
        endif; ?>
        src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/>



</a>

不要忘記,如果com_content有模板覆蓋,你需要編輯其中的feature / default_item.php

如果在Joomla 3.1上安裝了Gantry,則覆蓋位於不同的位置。 您將需要導航到plugins / system / gantry / overrides / 3.0 / 2.5 / com_content / category / blog_item.php並使用讀取更多鏈接代碼包裝介紹圖像。

    <?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>
<a href="<?php echo $link; ?>"><img
        <?php if ($images->image_intro_caption):
            echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"';
        endif; ?>
        src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/></a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM