[英]AddThis in Joomla Category Blog Override. Linking to corresponding articles
我已經覆蓋了類別博客的“ blog.php”,以便將AddThis社交媒體共享插件放在每篇文章的底部。 在joomla 3.0上工作
類別博客布局每頁顯示許多文章。 默認情況下,AddThis使用您當前的頁面來共享/贊/鳴叫/等。
我添加此代碼如下所示:
<div class="article-sharing">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=undefined"></script>
<!-- AddThis Button END -->
</div>
我當然想要的是更改用於相應文章的URL。 這是可能的( http://support.addthis.com/customer/portal/articles/381242-url-title#.Ucd1HevmT2x )。
代碼應如下所示(僅適用於動態網址):
<div class="article-sharing">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style"
addthis:url="http://example.com/blog/my-article-about-horses"
addthis:title="The title of my article"
addthis:description="The short article description">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=undefined"></script>
<!-- AddThis Button END -->
</div>
如果有人可以幫助我更好地了解我如何做到這一點,那將很棒。
addthis:url="http://example.com/blog/my-article-about-horses"
addthis:title="The title of my article"
addthis:description="The short article description"
這是完整的blog.php代碼。
<?php
/**
* @package Joomla.Site
* @subpackage com_content
*
* @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers');
JHtml::_('behavior.caption');
?>
<div class="blog<?php echo $this->pageclass_sfx;?>">
<?php if ($this->params->get('show_page_heading', 1)) : ?>
<div class="page-header">
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
</div>
<?php endif; ?>
<?php if ($this->params->get('show_category_title', 1) or $this->params->get('page_subheading')) : ?>
<h2> <?php echo $this->escape($this->params->get('page_subheading')); ?>
<?php if ($this->params->get('show_category_title')) : ?>
<span class="subheading-category"><?php echo $this->category->title;?></span>
<?php endif; ?>
</h2>
<?php endif; ?>
<?php if ($this->params->get('show_description', 1) || $this->params->def('show_description_image', 1)) : ?>
<div class="category-desc">
<?php if ($this->params->get('show_description_image') && $this->category->getParams()->get('image')) : ?>
<img src="<?php echo $this->category->getParams()->get('image'); ?>"/>
<?php endif; ?>
<?php if ($this->params->get('show_description') && $this->category->description) : ?>
<?php echo JHtml::_('content.prepare', $this->category->description, '', 'com_content.category'); ?>
<?php endif; ?>
<div class="clr"></div>
</div>
<?php endif; ?>
<?php $leadingcount = 0; ?>
<?php if (!empty($this->lead_items)) : ?>
<div class="items-leading">
<?php foreach ($this->lead_items as &$item) : ?>
<div class="leading-article leading-<?php echo $leadingcount; ?><?php echo $item->state == 0 ? ' system-unpublished' : null; ?>">
<?php
$this->item = &$item;
echo $this->loadTemplate('item');
?>
</div>
<div class="clearfix"></div>
<?php
$leadingcount++;
?>
<div class="article-sharing">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style"
addthis:url="http://example.com"
addthis:title="An Example Title"
addthis:description="An Example Description">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=undefined"></script>
<!-- AddThis Button END -->
</div>
<?php endforeach; ?>
</div><!-- end items-leading -->
<div class="clearfix"></div>
<?php endif; ?>
<?php
$introcount = (count($this->intro_items));
$counter = 0;
?>
<?php if (!empty($this->intro_items)) : ?>
<?php foreach ($this->intro_items as $key => &$item) : ?>
<?php
$key = ($key - $leadingcount) + 1;
$rowcount = (((int) $key - 1) % (int) $this->columns) + 1;
$row = $counter / $this->columns;
if ($rowcount == 1) : ?>
<div class="items-row cols-<?php echo (int) $this->columns;?> <?php echo 'row-'.$row; ?> row-fluid">
<?php endif; ?>
<div class="span<?php echo round((12 / $this->columns));?>">
<div class="item column-<?php echo $rowcount;?><?php echo $item->state == 0 ? ' system-unpublished' : null; ?>">
<?php
$this->item = &$item;
echo $this->loadTemplate('item');
?>
<div class="article-sharing">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=undefined"></script>
<!-- AddThis Button END -->
</div>
</div><!-- end item -->
<?php $counter++; ?>
</div><!-- end spann -->
<?php if (($rowcount == $this->columns) or ($counter == $introcount)): ?>
</div><!-- end row -->
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
<?php if (!empty($this->link_items)) : ?>
<div class="items-more older-articles">
<?php echo $this->loadTemplate('links'); ?>
</div>
<?php endif; ?>
<?php if (!empty($this->children[$this->category->id])&& $this->maxLevel != 0) : ?>
<div class="cat-children">
<h3> <?php echo JTEXT::_('JGLOBAL_SUBCATEGORIES'); ?> </h3>
<?php echo $this->loadTemplate('children'); ?> </div>
<?php endif; ?>
<?php if (($this->params->def('show_pagination', 1) == 1 || ($this->params->get('show_pagination') == 2)) && ($this->pagination->get('pages.total') > 1)) : ?>
<div class="pagination">
<?php if ($this->params->def('show_pagination_results', 1)) : ?>
<!-- <p class="counter pull-right hidden-phone"> <?php echo $this->pagination->getPagesCounter(); ?> </p> -->
<?php endif; ?>
<?php echo $this->pagination->getPagesLinks(); ?> </div>
<?php endif; ?>
</div>
謝謝艾哈邁德的回答。 它幫了很多忙。
這是我當前在blog_item.php文件中的AddThis代碼。 它適用於Twitter,電子郵件等。但是,關於Facebook,我有一些問題。 沒有使用“ addthis:title”及其描述。 相反,正在使用index.php文件中包含的OG標簽。 當在Facebook上單擊共享鏈接時,它仍鏈接到正確的文章。 這可能會使用戶感到困惑-當他/她出現Facebook共享彈出窗口時,他/她想要共享的文章一無所有-僅關於頁面的一般信息。
<div class="article-sharing">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style"
addthis:url="http://www.tolt-inspiration.com<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>"
addthis:title="<?php echo $this->escape($this->item->title); ?>"
addthis:description="<?php echo $this->escape($this->item->metadesc); ?>">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"
addthis:title="<?php echo $this->escape($this->item->title); ?>"
addthis:description="<?php echo $this->escape($this->item->metadesc); ?>"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<!-- AddThis Button END -->
</div>
如何解決?
首先讓我們澄清一下,編輯Joomla的核心文件是一種不好的做法。
您應該始終
使用替代 。
這樣,您可以確保更新Joomla時所做的更改不會被覆蓋。
更新:沒有注意到問題標題說OP已經在進行覆蓋。
讓我們在Joomla中剖析類別視圖(按執行順序)。 它從default.php (所有視圖的母親)開始,然后加載:
對於<span class="article_separator"> </span>
之前的Joomla 1.5 ,添加代碼
對於<div class="item-separator"></div>
之前的Joomla 2.5 ,添加代碼
<div class="article-sharing">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style"
addthis:url="<?php echo $this->item->readmore_link; ?>"
addthis:title="<?php echo $this->escape($this->item->title); ?>"
addthis:description="<?php echo $this->escape($this->item->metadesc); ?>">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script>
注意,現在我們還沒有添加addthis <script>
。 您不想將其添加到blog_item.php
,否則將被添加多次。 我們將其添加到blog.php
。 要使用Joomla的API添加它:
之后:
defined('_JEXEC') or die('Restricted access');
加:
$doc =& JFactory::getDocument();
$doc->addScript("//s7.addthis.com/js/300/addthis_widget.js#pubid=undefined");
注意
不需要使用addScript
方法添加腳本,但它比僅在模板中添加腳本addScript
可取。 例如,某些插件會在關閉body標簽之前立即移動每個script標簽; 它提供了一種掌握該對象的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.