[英]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.