| Current Path : /var/www/plugins/k2/jllike/ |
| Current File : /var/www/plugins/k2/jllike/jllike.php |
<?php
/**
* jllike
*
* @version 4.0.0
* @author Vadim Kunicin (vadim@joomline.ru), Arkadiy (a.sedelnikov@gmail.com)
* @copyright (C) 2010-2019 by Vadim Kunicin (http://www.joomline.ru)
* @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
**/
// no direct access
defined('_JEXEC') or die;
/**
* Example K2 Plugin to render YouTube URLs entered in backend K2 forms to video players in the frontend.
*/
// Load the K2 Plugin API
JLoader::register('K2Plugin', JPATH_ADMINISTRATOR . '/components/com_k2/lib/k2plugin.php');
use Joomla\String\StringHelper;
// Initiate class to hold plugin events
class plgK2Jllike extends K2Plugin
{
// Some params
var $pluginName = 'line';
var $pluginNameHumanReadable = 'Line-Chart';
private $enableShow;
function __construct(&$subject, $params)
{
if(!$this->enableShow())
{
$this->enableShow = false;
return;
}
parent::__construct($subject, $params);
$parent_contayner = $this->params->get('parent_contayner', '');
$plugin = JPluginHelper::getPlugin('content', 'jllike');
$this->params = new JRegistry($plugin->params);
if(!empty($parent_contayner))
{
$this->params->set('parent_contayner', $parent_contayner);
}
$this->loadLanguage('plg_content_jllike');
$this->enableShow = true;
}
function onK2BeforeDisplay(&$item, &$params, $limitstart){
if($this->check('onK2BeforeDisplay')){
return $this->loadLikes($item, $params, $limitstart);
}
}
function onK2AfterDisplayTitle(&$item, &$params, $limitstart){
if($this->check('onK2AfterDisplayTitle')){
return $this->loadLikes($item, $params, $limitstart);
}
}
function onK2BeforeDisplayContent(&$item, &$params, $limitstart){
if($this->check('onK2BeforeDisplayContent')){
return $this->loadLikes($item, $params, $limitstart);
}
}
function onK2AfterDisplayContent(&$item, &$params, $limitstart){
if($this->check('onK2AfterDisplayContent')){
return $this->loadLikes($item, $params, $limitstart);
}
}
function onK2AfterDisplay(&$item, &$params, $limitstart){
if($this->check('onK2AfterDisplay')){
return $this->loadLikes($item, $params, $limitstart);
}
}
private function enableShow()
{
$app = JFactory::getApplication();
$input = $app->input;
$view = $input->getString('view','');
$layout = $input->getString('layout','');
$task = $input->getString('task','');
if(!$app->isClient('administrator') && ($view == 'itemlist' || ($view == 'item' && ($layout == 'item' || !$layout))) && $task != 'edit' && $task != 'add')
{
return true;
}
else
{
return false;
}
}
private function check($trigger)
{
if($this->enableShow && $trigger == $this->params->get('k2trigger', ''))
{
return true;
}
return false;
}
private function loadLikes(&$article, &$params, $limitstart)
{
$k2categories = $this->params->get('k2categories', array());
$k2categories = (is_array($k2categories)) ? $k2categories : array();
$input = JFactory::getApplication()->input;
$print = $input->getInt('print', 0);
if(in_array($article->catid, $k2categories) || $print)
{
return '';
}
include_once JPATH_ROOT.'/plugins/content/jllike/helper.php';
$url = $this->getUrl();
$isCategory = ($input->getString('view', '') == 'itemlist') ? true : false;
$helper = PlgJLLikeHelper::getInstance($this->params);
$conf = JFactory::getConfig();
$enableSef = $conf->get('sef', 0);
if($enableSef)
{
$link = $url.JRoute::_(K2HelperRoute::getItemRoute($article->id.':'.$article->alias, $article->catid.':'.urlencode($article->category->alias)));
}
else
{
$link = $url.'/'.K2HelperRoute::getItemRoute($article->id.':'.$article->alias, $article->catid.':'.urlencode($article->category->alias));
}
if($this->params->get('k2_images', 'fields') == 'fields' && !empty($article->imageLarge))
{
$image = trim($article->imageLarge);
if(!empty($image))
{
if(StringHelper::strpos($image, '/') === 0)
{
$image = StringHelper::substr($image, 1);
}
$image = JURI::root().$image;
}
}
else
{
$image = PlgJLLikeHelper::extractImageFromText($article->introtext, $article->fulltext);
}
$text = $helper->getShareText($article->metadesc, $article->introtext, $article->fulltext);
$enableOG = $isCategory ? 0 : $this->params->get('k2_add_opengraph', 0);
$shares = $helper->ShowIN($article->id, $link, $article->title, $image, $text, $enableOG);
if (!$isCategory)
{
$helper->loadScriptAndStyle(0);
return $shares;
}
else if($this->params->get('allow_in_category', 0))
{
$helper->loadScriptAndStyle(1);
return $shares;
}
}
private function getUrl()
{
$root = JURI::getInstance()->toString(array('host'));
$prefix = (JFactory::getConfig()->get('force_ssl') == 2) ? 'https://' : 'http://';
$url = $prefix . $this->params->get('pathbase', '') . str_replace('www.', '', $root);
if($this->params->get('punycode_convert',0))
{
$file = JPATH_ROOT.'/libraries/idna_convert/idna_convert.class.php';
if(!JFile::exists($file))
{
return JText::_('PLG_JLLIKEPRO_PUNYCODDE_CONVERTOR_NOT_INSTALLED');
}
include_once $file;
if($url)
{
if (class_exists('idna_convert'))
{
$idn = new idna_convert;
$url = $idn->encode($url);
}
}
}
return $url;
}
}