| Server IP : 54.36.91.62 / Your IP : 216.73.217.112 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/montpellier/plugins/system/hikashopsocial/ |
Upload File : |
<?php
/**
* @package HikaShop for Joomla!
* @version 6.1.0
* @author hikashop.com
* @copyright (C) 2010-2025 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
include_once(JPATH_ROOT.'/administrator/components/com_hikashop/pluginCompat.php');
if(!class_exists('hikashopJoomlaPlugin')) return;
class plgSystemHikashopsocial extends hikashopJoomlaPlugin {
var $meta = array();
var $headScripts = array();
var $uploadFolder = null;
var $main_uploadFolder = null;
var $uploadFolder_url = null;
var $main_uploadFolder_url = null;
var $thumbnail = null;
var $thumbnail_x = null;
var $thumbnail_y = null;
var $main_thumbnail_x = null;
var $main_thumbnail_y = null;
function __construct(&$subject, $params) {
parent::__construct($subject, $params);
}
function onAfterRender() {
if(HIKASHOP_J50 && !class_exists('JFactory'))
class_alias('Joomla\CMS\Factory', 'JFactory');
$app = JFactory::getApplication();
if(version_compare(JVERSION,'3.0','>=')) {
$option = $app->input->getVar('option');
$ctrl = $app->input->getVar('ctrl');
$task = $app->input->getVar('task');
} else {
$option = JRequest::getVar('option');
$ctrl = JRequest::getVar('ctrl');
$task = JRequest::getVar('task');
}
if(version_compare(JVERSION,'4.0','>=')) {
$admin = $app->isClient('administrator');
} else {
$admin = $app->isAdmin();
}
if($admin || !in_array($option, array('com_hikashop', 'com_hikamarket', '')) || !in_array($ctrl, array('product', 'category', 'vendor')) || !in_array($task, array('show', 'listing')))
return;
if(!defined('HIKASHOP_COMPONENT'))
return;
if(class_exists('JResponse'))
$body = JResponse::getBody();
$alternate_body = false;
if(empty($body)){
$body = $app->getBody();
$alternate_body = true;
}
if(strpos($body,'{hikashop_social}') === false)
return;
$pluginsClass = hikashop_get('class.plugins');
$plugin = $pluginsClass->getByName('system', 'hikashopsocial');
$default = array(
'position' => 0,
'display_twitter' => 1,
'display_pinterest' => 1,
'display_fb' => 1,
'display_linkedin' => 1,
'fb_style' => 0,
'fb_faces' => 1,
'fb_verb' => 0,
'fb_theme' => 0,
'fb_font' => 0,
'fb_type' => 0,
'fb_send' => 0,
'fb_tag' => 'iframe',
'fb_mode' => 'fb-like',
'twitter_count' => 0,
'display_url_btn' => 0,
'redirection_btn' => 'tab',
'redirect' => 'tab',
'display_mode' => 'hikashopsocial_inline',
'hashtag_twitter' => '',
);
if(empty($plugin->params))
$plugin->params = array();
$plugin->params = array_merge($default, $plugin->params);
$plugin->params['redirect'] = $plugin->params['redirection_btn'];
$plugin->params['display'] = $plugin->params['display_mode'];
$plugin->params['legacy'] = $plugin->params['display_url_btn'];
$PinterestButton = '';
if (!empty($plugin->params['display_pinterest']) && $plugin->params['display_pinterest'] == 1)
$PinterestButton = $this->_addPinterestButton($plugin, $plugin->params);
$TwitterButton = '';
if (!empty($plugin->params['display_twitter']) && $plugin->params['display_twitter'] == 1)
$TwitterButton = $this->_addTwitterButton($plugin, $plugin->params);
$FacebookButton = '';
if (!empty($plugin->params['display_fb']))
$FacebookButton = $this->_addFacebookButton($plugin, $plugin->params);
$LinkedInButton = '';
if (!empty($plugin->params['display_linkedin']) && $plugin->params['display_linkedin'] == 1)
$LinkedInButton = $this->_addLinkedInButton($plugin, $plugin->params);
$MastodonButton = '';
if (!empty($plugin->params['display_mastodon']) && $plugin->params['display_mastodon'] == 1)
$MastodonButton = $this->_addMastodonButton($plugin, $plugin->params);
$BlueskyButton = '';
if (!empty($plugin->params['display_bluesky']) && $plugin->params['display_bluesky'] == 1)
$BlueskyButton = $this->_addBlueSkyButton($plugin, $plugin->params);
$LineButton = '';
if (!empty($plugin->params['display_line']) && $plugin->params['display_line'] == 1)
$LineButton = $this->_addLineButton($plugin, $plugin->params);
$WhatsappButton = '';
if (!empty($plugin->params['display_whatsapp']) && $plugin->params['display_whatsapp'] == 1)
$WhatsappButton = $this->_addWhatsappButton($plugin, $plugin->params);
$TelegramButton = '';
if (!empty($plugin->params['display_telegram']) && $plugin->params['display_telegram'] == 1)
$TelegramButton = $this->_addTelegramButton($plugin, $plugin->params);
$html = array(
$TwitterButton,
$PinterestButton,
$FacebookButton,
$LinkedInButton,
$MastodonButton,
$BlueskyButton,
$LineButton,
$WhatsappButton,
$TelegramButton
);
$styles = 'text-align:left;';
if($plugin->params['position'] == 1) {
$styles = 'text-align:right;';
if(!empty($plugin->params['width']) && (int)$plugin->params['width'] > 0)
$styles .= 'width:'.(int)$plugin->params['width'].'px';
else
$styles .= 'width:100%';
}
$html = implode('', $html);
if(!empty($html))
$html = '<div id="hikashop_social" style="'.$styles.'">' . $html . '</div>';
$body = str_replace('{hikashop_social}', $html, $body);
if(!empty($plugin->params['display_fb'])) {
$body = str_replace('<html ', '<html xmlns:fb="https://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns# " xmlns:fb="http://ogp.me/ns/fb#" ', $body);
if($plugin->params['fb_tag'] == "xfbml" && $plugin->params['display_fb'] != 2) {
$mainLang = JFactory::getLanguage();
$tag = str_replace('-', '_', $mainLang->get('tag'));
$fb = '
<div id="fb-root"></div>
<script>
(function(d,s,id) {
var js, fjs = d.getElementsByTagName(s)[0];
if(d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/'.$tag.'/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>';
$body = preg_replace('#<body.*>#Us', '$0'.$fb, $body);
}
}
if(!empty($this->headScripts))
$body = str_replace('</head>', implode("\r\n", $this->headScripts)."\r\n".'</head>', $body);
if(!empty($this->meta)) {
$meta = array();
foreach($this->meta as $k => $v) {
if(strpos($body, $k) === false)
$meta[] = $v;
}
if(!empty($meta))
$body = str_replace('</head>', implode("\r\n", $meta)."\r\n".'</head>', $body);
}
if($alternate_body){
$app->setBody($body);
}else{
JResponse::setBody($body);
}
}
function _addLinkedInButton(&$plugin, $params) {
if(!empty($plugin->params['legacy']) || empty($plugin->params['display_linkedin']))
return '';
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$btn_mode = $this->rs_mode($params['redirect'], 'https://www.linkedin.com/sharing/share-offsite/?url='. $current_url, '');
$array_elem = array(
'icon' => 'linkedin_icon.png',
'class' => 'hikasocial_linkedin',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'Linkedin'
);
$btn_html = $this->btn_build($array_elem);
return $btn_html;
}
function _addMastodonButton(&$plugin, $params) {
if(!empty($plugin->params['legacy']) || empty($plugin->params['display_mastodon']))
return '';
$jconf = JFactory::getConfig();
if(HIKASHOP_J30)
$siteName = $jconf->get('sitename');
else
$siteName = $jconf->getValue('config.sitename');
$siteName = htmlspecialchars($siteName, ENT_COMPAT,'UTF-8');
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$btn_mode = $this->rs_mode($params['redirect'], 'https://mastodonshare.com/?text='. $siteName .'amp;url='. $current_url, '');
$array_elem = array(
'icon' => 'mastodon_icon.png',
'class' => 'hikasocial_mastodon',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'mastodon'
);
$btn_html = $this->btn_build($array_elem);
return $btn_html;
}
function _addBlueSkyButton(&$plugin, $params) {
if(!empty($plugin->params['legacy']) || empty($plugin->params['display_bluesky']))
return '';
$jconf = JFactory::getConfig();
if(HIKASHOP_J30)
$siteName = $jconf->get('sitename');
else
$siteName = $jconf->getValue('config.sitename');
$siteName = htmlspecialchars($siteName, ENT_COMPAT,'UTF-8');
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$btn_mode = $this->rs_mode($params['redirect'], 'https://bsky.app/intent/compose?text='. $siteName .'%0A'. $current_url, '');
$array_elem = array(
'icon' => 'bluesky_icon.png',
'class' => 'hikasocial_bluesky',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'bluesky'
);
$btn_html = $this->btn_build($array_elem);
return $btn_html;
}
function _addLineButton(&$plugin, $params) {
if(!empty($plugin->params['legacy']) || empty($plugin->params['display_line']))
return '';
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$btn_mode = $this->rs_mode($params['redirect'], 'https://line.me/R/msg/text/?'. $current_url, '');
if (!empty($plugin->params['line_msg']))
$msg = $plugin->params['line_msg'];
$array_elem = array(
'icon' => 'line_icon.png',
'class' => 'hikasocial_line',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'line'
);
$btn_html = $this->btn_build($array_elem);
return $btn_html;
}
function _addWhatsappButton(&$plugin, $params) {
if(!empty($plugin->params['legacy']) || empty($plugin->params['display_telegram']))
return '';
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$btn_mode = $this->rs_mode($params['redirect'], 'https://api.whatsapp.com/send?text='. $current_url, '');
$array_elem = array(
'icon' => 'whatsapp_icon.png',
'class' => 'hikasocial_whatsapp',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'whatsapp'
);
$btn_html = $this->btn_build($array_elem);
return $btn_html;
}
function _addTelegramButton (&$plugin, $params) {
if(!empty($plugin->params['legacy']) || empty($plugin->params['display_telegram']))
return '';
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$btn_mode = $this->rs_mode($params['redirect'], 'https://t.me/share/url?url='. $current_url, '');
$array_elem = array(
'icon' => 'telegram_icon.png',
'class' => 'hikasocial_telegram',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'telegram'
);
$btn_html = $this->btn_build($array_elem);
return $btn_html;
}
function _addPinterestButton(&$plugin, $params) {
if(!empty($element->url_canonical))
$url = hikashop_cleanURL($element->url_canonical);
else
$url = hikashop_currentURL('',false);
$url = $this->_handleAffiliateParameter($url);
$element = $this->_getElementInfo();
$imageUrl = $this->_getImageURL($element, $plugin);
$description = $this->_cleanDescription($element->description, 500);
$layouts = array(0 => 'horizontal', 1 => 'vertical', 2 => 'none');
$count = $layouts[ (int)@$plugin->params['pinterest_display'] ];
if ($params['legacy']) {
if(empty($plugin->params['display_pinterest']))
return '';
$this->headScripts['pinterest'] = '<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>';
$c = '';
if($plugin->params['position'] == 1)
$c = '_right';
$return = '<span class="hikashop_social_pinterest'.$c.'"><a href="//pinterest.com/pin/create/button/?url='.urlencode($url).'&media='.urlencode($imageUrl).'&description='.rawurlencode($description).'" class="pin-it-button" count-layout="'.$count.'"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a></span>';
}
else {
$current_url = urlencode(hikashop_currentURL());
$btn_mode = $this->rs_mode($params['redirect'], 'http://pinterest.com/pin/create/button/?url='.$current_url.'&media='.$imageUrl, '');
$array_elem = array(
'icon' => 'pintinterest_icon.png',
'class' => 'hikasocial_pintinterest',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'Pinterest'
);
$btn_html = $this->btn_build($array_elem);
$return = $btn_html;
}
return $return;
}
function _addTwitterButton(&$plugin, $params) {
if ($params['legacy']) {
if(empty($plugin->params['display_twitter']))
return '';
$element = $this->_getElementInfo();
if(empty($element))
return '';
$layouts = array(0 => 'horizontal', 1 => 'vertical', 2 => 'none');
$count = $layouts[ (int)$plugin->params['twitter_count'] ];
$c = '';
if($plugin->params['twitter_count'] == 0)
$c .= '_horizontal';
if($plugin->params['position'] == 1)
$c .= '_right';
$message = '';
if(!empty($plugin->params['twitter_text']))
$message = ' data-text="'.$plugin->params['twitter_text'].'"';
$mention = '';
if(!empty($plugin->params['twitter_mention']))
$mention = ' data-via="'.$plugin->params['twitter_mention'].'"';
$mainLang = JFactory::getLanguage();
$locale = strtolower(substr($mainLang->get('tag'), 0, 2));
$lang = '';
if(in_array($locale, array('fr', 'de', 'es', 'it', 'ja', 'ru', 'tr', 'ko')))
$lang = ' data-lang="'.$locale.'"';
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) {
$this->meta['hikashop_twitter_js_code'] = '
<script type="text/javascript">
function twitterPop(str) {
mywindow = window.open(\'http://twitter.com/share?url=\'+str,"Tweet_widow","channelmode=no,directories=no,location=no,menubar=no,scrollbars=no,toolbar=no,status=no,width=500,height=375,left=300,top=200");
mywindow.focus();
}
</script>';
if(!empty($element->url_canonical))
$url = hikashop_cleanURL($element->url_canonical);
else
$url = hikashop_currentURL('',false);
$url = $this->_handleAffiliateParameter($url);
return '<span class="hikashop_social_tw'.$c.'"><a href="javascript:twitterPop(\''.$url.'\')"><img src="'.HIKASHOP_IMAGES.'icons/tweet_button.jpg"></a></span>';
}
$return = '<span class="hikashop_social_tw'.$c.'"><a href="//twitter.com/share" class="twitter-share-button"'.$message.' data-count="'.$count.'"'.$mention.$lang.'>Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></span>';
}
else {
$hashtag = '';
if ($plugin->params['hashtag_twitter'] != "")
$hashtag = '&hashtags=' . $plugin->params['hashtag_twitter'];
$current_url = urlencode($this->_handleAffiliateParameter(hikashop_currentURL()));
$btn_mode = $this->rs_mode($params['redirect'], 'https://twitter.com/intent/tweet?url='.$current_url, $hashtag);
$array_elem = array(
'icon' => 'twitter_icon.png',
'class' => 'hikasocial_twitter',
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'Twitter'
);
$return = $this->btn_build($array_elem);
}
return $return;
}
function _handleAffiliateParameter($url) {
$user = hikashop_loadUser(true);
if(empty($user->user_partner_activated))
return $url;
$separator = '?';
if(strpos($url, '?')) {
$separator = '&';
}
$plugin = JPluginHelper::getPlugin('system', 'hikashopaffiliate');
if(empty($plugin))
return $url;
$params = new JRegistry(@$plugin->params);
if(empty($params))
return $url;
$key_name = $params->get('partner_key_name', 'partner_id');
$url .= $separator.$key_name.'='.$user->user_id;
return $url;
}
function _addFacebookButton(&$plugin, $params) {
if(empty($plugin->params['display_fb']))
return '';
$element = $this->_getElementInfo();
if(empty($element))
return '';
if(!empty($element->url_canonical))
$url = hikashop_cleanURL($element->url_canonical);
else
$url = hikashop_currentURL('', false);
$url = $this->_handleAffiliateParameter($url);
$this->_addOpenGraph($element, $plugin, $url);
$html = '';
if ($params['legacy']) {
$options = array(
'layout' => 'standard',
'width' => 400
);
$xfbml_options = array();
$classname = 'standard';
switch((int)$plugin->params['fb_style']) {
case 1:
$classname = 'button_count';
$options['layout'] = 'button_count';
$xfbml_options['layout'] = 'button_count';
$options['width'] = 115;
break;
case 2:
$classname = 'box_count';
$options['layout'] = 'box_count';
$xfbml_options['layout'] = 'box_count';
$options['width'] = 115;
break;
case 3:
$classname = 'button';
$options['layout'] = 'button';
$xfbml_options['layout'] = 'button';
$options['width'] = 65;
break;
}
if(empty($plugin->params['fb_faces'])) {
$options['show_faces'] = 'false';
$xfbml_options['show-faces'] = 'false';
} else {
$options['show_faces'] = 'true';
$xfbml_options['show-faces'] = 'false'; // in the first version of the plugin, in fact is was set to "false", so...
}
if(empty($plugin->params['fb_verb'])) {
$options['action'] = 'like';
} else {
$options['action'] = 'recommend';
$xfbml_options['action'] = 'recommend';
}
if(empty($plugin->params['fb_theme'])) {
$options['colorscheme'] = 'light';
} else {
$options['colorscheme'] = 'dark';
$xfbml_options['colorscheme'] = 'dark';
}
$fonts = array(
0 => 'arial',
1 => 'lucida%20grande',
2 => 'segoe%20ui',
3 => 'tahoma',
4 => 'trebuchet%20ms',
5 => 'verdana',
);
if(isset($fonts[ (int)$plugin->params['fb_font'] ])) {
$options['font'] = $fonts[ (int)$plugin->params['fb_font'] ];
$xfbml_options['font'] = $fonts[ (int)$plugin->params['fb_font'] ];
}
if(!empty($plugin->params['fb_send']))
$xfbml_options['send'] = 'true';
if($plugin->params['display_fb'] != 2) {
$html = '<span class="hikashop_social_fb">';
if($plugin->params['position'] == 1)
$html = '<span class="hikashop_social_fb_right">';
$url_options = array();
if($plugin->params['fb_tag'] == 'iframe') {
foreach($options as $k => $v) {
$url_options[] = $k . '=' . urlencode($v);
}
$html .= '<iframe '.
'src="//www.facebook.com/plugins/like.php?href='.urlencode($url).'&send=false&'.implode('&', $url_options).'&height=30" '.
'scrolling="no" frameborder="0" allowTransparency="true" '.
'style="border:none; overflow:hidden;" class="hikashop_social_fb_'.$classname.'"></iframe>';
} else {
foreach($xfbml_options as $k => $v) {
$url_options[] = 'data-' . $k . '="' . urlencode($v) . '"';
}
if(empty($plugin->params['fb_mode'])){
$plugin->params['fb_mode'] = 'fb-like';
}
$html .= '<div class="'.$plugin->params['fb_mode'].'" data-href="'.$url.'" '.implode(' ', $url_options).'></div>';
}
$html .= '</span>';
}
}
elseif($plugin->params['display_fb'] != 2) {
$display = 'popup';
if($params['redirection_btn'] == 'tab') {
$display = 'page';
}
$current_url = urlencode(hikashop_currentURL());
$current_url = $this->_handleAffiliateParameter($current_url);
$share_url ='https://www.facebook.com/sharer/sharer.php?u='.$current_url.'&display='.$display;
$btn_mode = $this->rs_mode($params['redirect'], $share_url, '');
$array_elem = array(
'icon' => 'facebook_icon.png',
'class' => 'fb-share-button hikasocial_facebook " data-href="'.HIKASHOP_LIVE,
'display' => $params['display'],
'btn_mode' => $btn_mode,
'name' => 'Facebook'
);
$html = $this->btn_build($array_elem);
}
return $html;
}
function _addOpenGraph(&$element, &$plugin, $url) {
$this->meta['property="og:title"'] = '<meta property="og:title" content="'.htmlspecialchars($element->name, ENT_COMPAT,'UTF-8').'"/> ';
$types = array(
0 => 'product',
1 => 'album',
2 => 'book',
3 => 'company',
4 => 'drink',
5 => 'game',
6 => 'movie',
7 => 'song',
);
if(isset($types[ (int)$plugin->params['fb_type']]))
$this->meta['property="og:type"']='<meta property="og:type" content="'.$types[ (int)$plugin->params['fb_type']].'"/> ';
$config = hikashop_config();
$uploadFolder = ltrim(JPath::clean(html_entity_decode($config->get('uploadfolder','media/com_hikashop/upload/'))), DS);
$uploadFolder = rtrim($uploadFolder,DS) . DS;
$this->uploadFolder_url = str_replace(DS, '/', $uploadFolder);
$this->uploadFolder = JPATH_ROOT . DS . $uploadFolder;
$this->thumbnail = $config->get('thumbnail', 1);
$this->thumbnail_y = $config->get('product_image_y', $config->get('thumbnail_y'));
$this->thumbnail_x = $config->get('product_image_x', $config->get('thumbnail_x'));
$this->main_thumbnail_x = $this->thumbnail_x;
$this->main_thumbnail_y = $this->thumbnail_y;
$this->main_uploadFolder_url = $this->uploadFolder_url;
$this->main_uploadFolder = $this->uploadFolder;
if (!isset($element->condition) && empty($element->condition))
$element->condition = "new";
$imageUrl = $this->_getImageURL($element, $plugin);
if(!empty($imageUrl))
$this->meta['property="og:image"']='<meta property="og:image" content="'.$imageUrl.'" /> ';
$this->meta['property="og:url"']='<meta property="og:url" content="'.$url.'" />';
$description = $this->_cleanDescription($element->description);
$this->meta['property="og:description"'] = '<meta property="og:description" content="'.$description.'"/> ';
if($element->type == 'product') {
$this->meta['property="product:retailer_item_id"'] = '<meta property="product:retailer_item_id" content="'.htmlspecialchars($element->retailer_item_id, ENT_COMPAT,'UTF-8').'"/> ';
$this->meta['property="product:availability"'] = '<meta property="product:availability" content="'.$element->availability.'"/> ';
$this->meta['property="product:condition"'] = '<meta property="product:condition" content="'.$element->condition.'"/> ';
}
$jconf = JFactory::getConfig();
if(HIKASHOP_J30)
$siteName = $jconf->get('sitename');
else
$siteName = $jconf->getValue('config.sitename');
$this->meta['property="og:site_name"'] = '<meta property="og:site_name" content="'.htmlspecialchars($siteName, ENT_COMPAT,'UTF-8').'"/> ';
if(!empty($plugin->params['admin']))
$this->meta['property="fb:admins"'] = '<meta property="fb:admins" content="'.htmlspecialchars($plugin->params['admin'], ENT_COMPAT,'UTF-8').'" />';
}
function _getElementInfo() {
if(version_compare(JVERSION,'3.0','>=')) {
$app = JFactory::getApplication();
$option = $app->input->getVar('option');
$ctrl = $app->input->getVar('ctrl');
$task = $app->input->getVar('task');
} else {
$option = JRequest::getVar('option');
$ctrl = JRequest::getVar('ctrl');
$task = JRequest::getVar('task');
}
$ret = new stdClass();
if(in_array($option, array('com_hikamarket', '')) && $ctrl == 'vendor' && $task == 'show') {
$element = $this->_getVendorInfo();
$ret->type = 'vendor';
$ret->id = (int)$element->vendor_id;
$ret->name = $element->vendor_name;
$ret->description = $element->vendor_description;
$ret->url_canonical = @$element->vendor_canonical;
$ret->image = $element->vendor_image;
} else {
$element = $this->_getProductInfo();
$ret->type = 'product';
$ret->id = (int)$element->product_id;
$ret->name = $element->product_name;
$ret->description = $element->product_description;
$ret->url_canonical = @$element->product_canonical;
$ret->availability = 'in stock';
if($element->product_quantity == 0) {
$ret->availability = 'out of stock';
}
$ret->retailer_item_id = $element->product_code;
if(!empty($element->product_condition)) {
$ret->condition = strtolower(str_replace('Condition', '', $element->product_condition));
}
}
return $ret;
}
function _getProductInfo() {
static $product = null;
if($product !== null)
return $product;
$app = JFactory::getApplication();
$product_id = (int)hikashop_getCID('product_id');
$menus = $app->getMenu();
$menu = $menus->getActive();
global $Itemid;
if(empty($menu) && !empty($Itemid)) {
$menus->setActive($Itemid);
$menu = $menus->getItem($Itemid);
}
if(empty($product_id) && is_object($menu)) {
if(!empty($menu)) {
if(HIKASHOP_J30)
$menuParams = $menu->getParams();
else
$menuParams = @$menu->params;
}
$product_id = $menuParams->get('product_id');
}
$product = false;
if(!empty($product_id)) {
$productClass = hikashop_get('class.product');
$product = $productClass->get($product_id);
if(!empty($product) && $product->product_type == 'variant') {
$product = $productClass->get($product->product_parent_id);
}
}
return $product;
}
function _getVendorInfo() {
static $vendor = null;
if($vendor !== null)
return $vendor;
$app = JFactory::getApplication();
$vendor_id = (int)hikashop_getCID('vendor_id');
$menus = $app->getMenu();
$menu = $menus->getActive();
if(empty($menu) && !empty($Itemid)) {
$menus->setActive($Itemid);
$menu = $menus->getItem($Itemid);
}
if(empty($vendor_id) && is_object($menu)) {
if(!empty($menu)) {
if(HIKASHOP_J30)
$menuParams = $menu->getParams();
else
$menuParams = @$menu->params;
}
$vendor_id = $menuParams->get('vendor_id');
}
$vendor = false;
if(!empty($vendor_id)) {
$vendorClass = hikamarket::get('class.vendor');
$vendor = $vendorClass->get($vendor_id);
}
return $vendor;
}
function _getImageURL(&$element, &$plugin) {
$config =& hikashop_config();
$uploadFolder = ltrim(JPath::clean(html_entity_decode($config->get('uploadfolder','media/com_hikashop/upload/'))),DS);
$uploadFolder = rtrim($uploadFolder,DS).DS;
$this->uploadFolder_url = str_replace(DS,'/',$uploadFolder);
$this->uploadFolder = JPATH_ROOT . DS . $uploadFolder;
$this->main_uploadFolder_url = $this->uploadFolder_url;
$imageUrl = '';
if($element->type == 'vendor') {
$imageUrl = JURI::base() . $this->main_uploadFolder_url . ltrim($element->image, '/');
} else {
$product_id = (int)$element->id;
$db = JFactory::getDBO();
$queryImage = 'SELECT * FROM '.hikashop_table('file').' WHERE file_ref_id='.$product_id.' AND file_type=\'product\' ORDER BY file_ordering ASC, file_id ASC';
$db->setQuery($queryImage);
$image = $db->loadObject();
if(empty($image)) {
$queryImage = 'SELECT * FROM '.hikashop_table('file').' as a LEFT JOIN '.hikashop_table('product').' as b ON a.file_ref_id=b.product_id WHERE product_parent_id='.$product_id.' AND file_type=\'product\' ORDER BY file_ordering ASC, file_id ASC';
$db->setQuery($queryImage);
$image = $db->loadObject();
}
if(!empty($image)) {
if(!empty($plugin->params['thumbnail_x']) && !empty($plugin->params['thumbnail_y'])) {
$imageHelper = hikashop_get('helper.image');
$img = $imageHelper->getThumbnail(
$image->file_path,
array('width' => $plugin->params['thumbnail_x'], 'height' => $plugin->params['thumbnail_y']),
array('default' => true,'forcesize'=>$this->config->get('image_force_size',true),'scale'=>$this->config->get('image_scale_mode','inside'))
);
if($img->success) {
return $img->url;
}
}
$imageUrl = JURI::base() . $this->main_uploadFolder_url . ltrim($image->file_path, '/');
}
}
return $imageUrl;
}
function _cleanDescription($description, $max = 0){
$description = preg_replace('#\{(load)?(module|position|modulepos) +[a-z_0-9]+\}#i','',$description);
$description = preg_replace('#\{(slider|tab|modal|tip|article|snippet)(-[a-z_0-9]+)? +[a-z_ 0-9\|]+\}.*\{\/(slider|tab|modal|tip|article|snippet)s?(-[a-z_0-9]+)?\}#Usi','',$description);
$description = htmlspecialchars(strip_tags($description), ENT_COMPAT,'UTF-8');
if($max && strlen($description) > $max)
$description = substr($description, 0, $max-4).'...';
return $description;
}
function btn_build($array_elem){
$btn_html = ''.
'<span class="'.$array_elem['display'].' hikasocial_btn '.$array_elem['class'].'">'.
$array_elem['btn_mode'].
'<span class="hikasocial_icon">'.
'<img src="'.HIKASHOP_IMAGES.'icons/'.$array_elem['icon'].'" >'.
'</span>'.
'<span class="hikasocial_name">'.$array_elem['name'].'</span>'.
'</a>'.
'</span>';
return $btn_html;
}
function rs_mode($redirect, $url, $hashtag) {
if ($redirect == 'popup') {
$js = "window.open('".$url.$hashtag."','popup','width=600,height=600'); return false;";
$js = 'onclick="'.$js.'"';
$btn_mode = '<a href="'.$url.$hashtag.'" target="popup" '.$js.'>';
}
else
$btn_mode = '<a href="'.$url.$hashtag.'" target="_blank" >';
return $btn_mode;
}
}