Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla4/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla4/cartnotify.tar

cartnotify.php000064400000015601151157023700007443 0ustar00<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgHikashopCartnotify extends JPlugin
{
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);

		if(isset($this->params))
			return;

		$plugin = JPluginHelper::getPlugin('hikashop',
'cartnotify');
		$this->params = new JRegistry(@$plugin->params);
	}

	public function onBeforeCompileHead() {
		$app = JFactory::getApplication();
		if(version_compare(JVERSION,'4.0','<')) {
			if($app->isAdmin())
				return;
		} else {
			if($app->isClient('administrator'))
				return;
		}

		$reference = $this->params->get('notification_reference',
'global');
		if($reference == 'popup')
			return $this->initVex();

		$this->initCartNotificationScript();
	}

	protected function initCartNotificationScript() {
		$app = JFactory::getApplication();
		$doc = JFactory::getDocument();
		$base = (hikashop_isClient('administrator')) ? '..' :
JURI::base(true);

		hikashop_loadJslib('notify');
		$doc->addScript($base.'/plugins/hikashop/cartnotify/media/notify.js');

		$reference = $this->params->get('notification_reference',
'global');

		$default_position =
$this->params->get('notification_position', 'top
right');
		if(!in_array($default_position, array('top right', 'top
left', 'top center', 'right', 'bottom
right', 'bottom left', 'bottom center',
'left')))
			$default_position = 'top right';

		$params = array(
			'arrowShow' => false,
			'globalPosition' => $default_position,
			'elementPosition' => $default_position,
			'clickToHide' => true
		);

		$delay = (int)$this->params->get('delay', 5000);
		if($delay > 0) {
			$params['autoHideDelay'] = (int)$delay;
			$params['autoHide'] = true;
		} else {
			$params['autoHide'] = false;
		}

		$url = '';
		if($this->params->get('auto_redirect',
'no_redirect') == 'on_success') {
			$menusClass = hikashop_get('class.menus');
			$url = $menusClass->getCheckoutURL();
		}
		$cartNotifyParams = array(
			'reference' => $reference,
			'img_url' =>
HIKASHOP_IMAGES.'icons/icon-32-newproduct.png',
			'redirect_url' => $url,
			'redirect_delay' =>
$this->params->get('auto_redirect_delay', 4000),
			'title' => JText::_('PRODUCT_ADDED_TO_CART'),
			'text' =>
JText::_('PRODUCT_SUCCESSFULLY_ADDED_TO_CART'),
			'wishlist_title' =>
JText::_('PRODUCT_ADDED_TO_WISHLIST'),
			'wishlist_text' =>
JText::_('PRODUCT_SUCCESSFULLY_ADDED_TO_WISHLIST'),
			'list_title' =>
JText::_('PRODUCTS_ADDED_TO_CART'),
			'list_text' =>
JText::_('PRODUCTS_SUCCESSFULLY_ADDED_TO_CART'),
			'list_wishlist_title' =>
JText::_('PRODUCTS_ADDED_TO_WISHLIST'),
			'list_wishlist_text' =>
JText::_('PRODUCTS_SUCCESSFULLY_ADDED_TO_WISHLIST'),
			'err_title' =>
JText::_('PRODUCT_NOT_ADDED_TO_CART'),
			'err_text' =>
JText::_('PRODUCT_UNSUCCESSFULLY_ADDED_TO_CART'),
			'err_wishlist_title' => 
JText::_('PRODUCT_NOT_ADDED_TO_WISHLIST'),
			'err_wishlist_text' =>
JText::_('PRODUCT_UNSUCCESSFULLY_ADDED_TO_WISHLIST')
		);

		if($this->params->get('guest_wishlist_redirect',
'0') == '1') {
			$user = JFactory::getUser();
			if($user->guest) {
				global $Itemid;
				$url = '';
				if(!empty($Itemid))
					$url = '&Itemid='.$Itemid;
				$url = 'index.php?option=com_users&view=login'.$url;
				$cartNotifyParams['err_wishlist_guest'] =
JRoute::_($url.'&return='.urlencode(base64_encode(hikashop_currentUrl('',
false))));
			}
		}

		$js = '
jQuery.notify.defaults('.json_encode($params).');
window.cartNotifyParams = '.json_encode($cartNotifyParams).';
';
		if($this->params->get('notification_click_to_checkout',
'0') == '1') {
			$menusClass = hikashop_get('class.menus');
			$url = $menusClass->getCheckoutURL();
			$js.= '
jQuery(document).on("click", ".notifyjs-hidable",
function(e) {
	if(e.currentTarget.querySelector(\'.notifyjs-metro-info\'))
		window.location=\''.$url.'\';
});
';

		}
		$doc->addScriptDeclaration($js);
	}

	protected function initVex() {
		hikashop_loadJslib('vex');

		$app = JFactory::getApplication();
		$doc = JFactory::getDocument();

		$base = (hikashop_isClient('administrator')) ? '..' :
JURI::base(true);
		$doc->addScript($base.'/plugins/hikashop/cartnotify/media/notify-vex.js');
		$doc->addStyleSheet($base.'/media/com_hikashop/css/notify-metro.css');

		$menusClass = hikashop_get('class.menus');
		$url_checkout = $menusClass->getCheckoutURL(true);
		$link_to_checkout =
(int)$this->params->get('checkout_button', 1);

		$link_continue = $this->params->get('continue_url',
'');
		$link_continue = hikashop_translate($link_continue);
		$continue_js = '';
		if(!empty($link_continue)){
			$continue_js =
'window.location="'.$link_continue.'";';
		}

		$extra_data = array();
		if($link_to_checkout) {
			$extra_data[] = '
window.cartNotifyParams.cart_params = {buttons:[
	{text:"'.JText::_('PROCEED_TO_CHECKOUT',
true).'",type:"button",className:"vex-dialog-button-primary",click:function
proceedClick(){window.location="'.$url_checkout.'";}},
	{text:"'.JText::_('CONTINUE_SHOPPING',
true).'",type:"submit",className:"vex-dialog-button-primary",click:function
continueClick(){'.$continue_js.'}}
]};';
		}

		$cartNotifyParams = array(
			'img_url' =>
HIKASHOP_IMAGES.'icons/icon-32-newproduct.png',
			'title' => JText::_('PRODUCT_ADDED_TO_CART'),
			'text' =>
JText::_('PRODUCT_SUCCESSFULLY_ADDED_TO_CART'),
			'wishlist_title' =>
JText::_('PRODUCT_ADDED_TO_WISHLIST'),
			'wishlist_text' =>
JText::_('PRODUCT_SUCCESSFULLY_ADDED_TO_WISHLIST'),
			'list_title' =>
JText::_('PRODUCTS_ADDED_TO_CART'),
			'list_text' =>
JText::_('PRODUCTS_SUCCESSFULLY_ADDED_TO_CART'),
			'list_wishlist_title' =>
JText::_('PRODUCTS_ADDED_TO_WISHLIST'),
			'list_wishlist_text' =>
JText::_('PRODUCTS_SUCCESSFULLY_ADDED_TO_WISHLIST'),
			'err_title' =>
JText::_('PRODUCT_NOT_ADDED_TO_CART'),
			'err_text' =>
JText::_('PRODUCT_UNSUCCESSFULLY_ADDED_TO_CART'),
			'err_wishlist_title' =>
JText::_('PRODUCT_NOT_ADDED_TO_WISHLIST'),
			'err_wishlist_text' =>
JText::_('PRODUCT_UNSUCCESSFULLY_ADDED_TO_WISHLIST')
		);

		if($this->params->get('guest_wishlist_redirect',
'0') == '1') {
			$user = JFactory::getUser();
			if($user->guest) {
				global $Itemid;
				$url = '';
				if(!empty($Itemid))
					$url = '&Itemid='.$Itemid;
				$url = 'index.php?option=com_users&view=login'.$url;
				$cartNotifyParams['err_wishlist_guest'] =
JRoute::_($url.'&return='.urlencode(base64_encode(hikashop_currentUrl('',
false))));
			}
		}

		$js = '
if(window.Oby) {
vex.defaultOptions.className = "vex-theme-default";
vex.dialog.buttons.YES.text = "'.JText::_('HIKA_OK',
true).'";
window.cartNotifyParams =
'.json_encode($cartNotifyParams).';'.implode('',$extra_data).'
}
';
		$doc->addScriptDeclaration($js);
	}
}
cartnotify.xml000064400000014110151157023700007446 0ustar00<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="hikashop">
	<name>Hikashop Add to Cart notification Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Obsidev</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2011-2021 OBSIDEV. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin display notifications when a product is
added to the cart</description>
	<files>
		<filename
plugin="cartnotify">cartnotify.php</filename>
		<folder>media</folder>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="notification_reference" type="list"
default="global"
label="HIKA_CARTNOTIFICATION_REFERENCE_LBL"
description="HIKA_CARTNOTIFICATION_REFERENCE_DESC">
			<option
value="global">HIKA_CARTNOTIF_REF_GLOBAL</option>
			<option
value="button">HIKA_CARTNOTIF_REF_BUTTON</option>
			<option
value="popup">HIKA_CARTNOTIF_REF_POPUP</option>
		</param>
		<param name="continue_url" type="text"
size="50" default=""
label="HIKA_CARTNOTIFICATION_CONTINUE_URL_LBL"
description="HIKA_CARTNOTIFICATION_CONTINUE_URL_DESC" />
		<param name="notification_position" type="list"
default="top right"
label="HIKA_CARTNOTIFICATION_POSITION_LBL"
description="HIKA_CARTNOTIFICATION_POSITION_DESC">
			<option value="top
right">HIKA_CARTNOTIF_POS_TOPRIGHT</option>
			<option value="top
center">HIKA_CARTNOTIF_POS_TOPCENTER</option>
			<option value="top
left">HIKA_CARTNOTIF_POS_TOPLEFT</option>
			<option
value="right">HIKA_CARTNOTIF_POS_RIGHT</option>
			<option value="bottom
right">HIKA_CARTNOTIF_POS_BOTTOMRIGHT</option>
			<option value="bottom
center">HIKA_CARTNOTIF_POS_BOTTOMCENTER</option>
			<option value="bottom
left">HIKA_CARTNOTIF_POS_BOTTOMLEFT</option>
			<option
value="left">HIKA_CARTNOTIF_POS_LEFT</option>
		</param>
		<param name="notification_click_to_checkout"
type="list" default="1"
label="HIKA_CARTNOTIFICATION_NOTIFICATION_CLICK_TO_CHECKOUT"
description="HIKA_CARTNOTIFICATION_NOTIFICATION_CLICK_TO_CHECKOUT_DESC">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="delay" type="text"
size="50" default="5000"
label="HIKA_CARTNOTIFICATION_DELAY_LBL"
description="HIKA_CARTNOTIFICATION_DELAY_DESC"/>
		<param name="auto_redirect" type="list"
default="on_success"
label="HIKA_CARTNOTIFICATION_REDIRECT"
description="HIKA_CARTNOTIFICATION_REDIRECT_DESC">
			<option
value="on_success">HIKA_CARTNOTIFICATION_ON_SUCCESS</option>
			<option
value="no_redirect">HIKA_CARTNOTIFICATION_NO_REDIRECT</option>
		</param>
		<param name="auto_redirect_delay" type="text"
size="50" default="5000"
label="HIKA_CARTNOTIFICATION_REDIRECT_DELAY_LBL"
description="HIKA_CARTNOTIFICATION_REDIRECT_DELAY_DESC" />
		<param name="guest_wishlist_redirect" type="list"
default="0"
label="HIKA_CARTNOTIFICATION_GUEST_WISHLIST_REDIRECT"
description="HIKA_CARTNOTIFICATION_GUEST_WISHLIST_REDIRECT_DESC">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="notification_reference" type="list"
default="global"
label="HIKA_CARTNOTIFICATION_REFERENCE_LBL"
description="HIKA_CARTNOTIFICATION_REFERENCE_DESC">
					<option
value="global">HIKA_CARTNOTIF_REF_GLOBAL</option>
					<option
value="button">HIKA_CARTNOTIF_REF_BUTTON</option>
					<option
value="popup">HIKA_CARTNOTIF_REF_POPUP</option>
				</field>
				<field name="continue_url" type="url"
size="50" default=""
showon="notification_reference:popup"
label="HIKA_CARTNOTIFICATION_CONTINUE_URL_LBL"
description="HIKA_CARTNOTIFICATION_CONTINUE_URL_DESC" />
				<field name="notification_position" type="list"
default="top right"
showon="notification_reference!:popup"
label="HIKA_CARTNOTIFICATION_POSITION"
description="HIKA_CARTNOTIFICATION_POSITION_DESC">
					<option value="top
right">HIKA_CARTNOTIF_POS_TOPRIGHT</option>
					<option value="top
center">HIKA_CARTNOTIF_POS_TOPCENTER</option>
					<option value="top
left">HIKA_CARTNOTIF_POS_TOPLEFT</option>
					<option
value="right">HIKA_CARTNOTIF_POS_RIGHT</option>
					<option value="bottom
right">HIKA_CARTNOTIF_POS_BOTTOMRIGHT</option>
					<option value="bottom
center">HIKA_CARTNOTIF_POS_BOTTOMCENTER</option>
					<option value="bottom
left">HIKA_CARTNOTIF_POS_BOTTOMLEFT</option>
					<option
value="left">HIKA_CARTNOTIF_POS_LEFT</option>
				</field>
				<field name="notification_click_to_checkout"
type="list" default="1"
showon="notification_reference!:popup"
label="HIKA_CARTNOTIFICATION_NOTIFICATION_CLICK_TO_CHECKOUT"
description="HIKA_CARTNOTIFICATION_NOTIFICATION_CLICK_TO_CHECKOUT_DESC">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="delay" type="text"
size="50" default="5000"
showon="notification_reference!:popup"
label="HIKA_CARTNOTIFICATION_DELAY_LBL"
description="HIKA_CARTNOTIFICATION_DELAY_DESC" />
				<field name="auto_redirect" type="list"
default="on_success"
showon="notification_reference!:popup"
label="HIKA_CARTNOTIFICATION_REDIRECT"
description="HIKA_CARTNOTIFICATION_REDIRECT_DESC">
					<option
value="on_success">HIKA_CARTNOTIFICATION_ON_SUCCESS</option>
					<option
value="no_redirect">HIKA_CARTNOTIFICATION_NO_REDIRECT</option>
				</field>
				<field name="auto_redirect_delay" type="text"
size="50" default="4000"
showon="auto_redirect:on_success[AND]notification_reference!:popup"
label="HIKA_CARTNOTIFICATION_REDIRECT_DELAY_LBL"
description="HIKA_CARTNOTIFICATION_REDIRECT_DELAY_DESC" />
				<field name="guest_wishlist_redirect"
type="list" default="0"
label="HIKA_CARTNOTIFICATION_GUEST_WISHLIST_REDIRECT"
description="HIKA_CARTNOTIFICATION_GUEST_WISHLIST_REDIRECT_DESC">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
index.html000064400000000054151157023700006541 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>media/index.html000064400000000054151157023700007620
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>media/notify-metro.css000064400000001674151157023700011002
0ustar00.notifyjs-metro-base,
.notifyjs-metro-lite-base{
	position: relative;
    min-height: 52px;
    color:#444;
}
.notifyjs-metro-base .image {
	display: table;
	position: absolute;
	height: auto;
	width: auto;
	left: 25px;
	top: 50%;
	-moz-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	-o-transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.notifyjs-metro-base .text-wrapper,
.notifyjs-metro-lite-base .text-wrapper {
	display: inline-block;
	vertical-align: top;
	text-align: left;
	clear: both;
	font-family: 'Segoe UI';
}
.notifyjs-metro-base .text-wrapper {
	margin: 10px 10px 10px 52px;
}
.notifyjs-metro-base .title,
.notifyjs-metro-lite-base .title {
	font-size: 15px;
	font-weight: bold;
}
.notifyjs-metro-base .text,
.notifyjs-metro-lite-base .text {
	font-size: 12px;
	font-weight: normal;
	vertical-align: middle;
}
.notifyjs-container {
	min-width:250px;
}media/notify-vex.js000064400000003716151157023700010301
0ustar00if(window.Oby) {
window.Oby.registerAjax(["cart.updated","wishlist.updated"],function(params){
	var cart = (params.type == "cart"),
		p = window.cartNotifyParams,
		img_url = p.img_url,
		title = cart ? p.title : p.wishlist_title,
		text = cart ? p.text : p.wishlist_text,
		class_name = "info";
	if(params.notify === false)
		return;
	if(params.resp.ret == 0) {
		class_name = "warning";
		title = cart ? p.err_title : p.err_wishlist_title;
		text = cart ? p.err_text : p.err_wishlist_text;

		if(!cart && params.resp.err_wishlist_guest &&
p.err_wishlist_guest) {
			p.redirect_url = p.err_wishlist_guest;
		}
	}else if(params.product_id == 'list' &&
!params.resp.product_name){
		title = cart ? p.list_title : p.list_wishlist_title;
		text = cart ? p.list_text : p.list_wishlist_text;
	}
	if(params.resp.image)
		img_url = params.resp.image;
	if(params.resp.product_name)
		title = params.resp.product_name;
	if(params.resp.message)
		text = params.resp.message;

	var content = "";
	if(img_url == null) {
		content = "<div
class=\"notifyjs-metro-lite-base\"><div
class=\"text-wrapper\"><div
class=\"title\">"+title+"</div><div
class=\"text\">"+text+"</div></div></div>";
	} else {
		content = "<div
class=\"notifyjs-metro-base\"><div
class=\"image\"><img
src=\""+img_url+"\" width=\"50\"
height=\"50\" alt=\"\"/></div><div
class=\"text-wrapper\"><div
class=\"title\">"+title+"</div><div
class=\"text\">"+text+"</div></div></div>";
	}
	var vex_params = {message: content},
		params_key = params.type + (params.resp.ret == 0 ? '_err' :
'') + '_params';
	if(p[params_key]) {
		if(Object && Object.assign)
			vex_params = Object.assign(vex_params, p[params_key]);
		else
			vex_params = jQuery.extend(true, vex_params, p[params_key]);
	}
	vex.dialog.alert(vex_params);

	if(p.redirect_url) {
		if(!p.redirect_delay)
			p.redirect_delay = 4000;
		setTimeout(function(){ window.location = p.redirect_url; },
p.redirect_delay);
	}
	return true;
});
}media/notify.js000064400000004327151157023700007500
0ustar00window.cartNotifyParams = {
	img_url: null,
	title:"Product added to cart",
	text:"Product successfully added to the cart",
	wishlist_title:"Product added to wishlist",
	wishlist_text:"Product successfully added to the wishlist",
	err_title:"Error",
	err_text:"The product cannot be added to the cart",
	err_wishlist_title:"Error",
	err_wishlist_text:"The product cannot be added to the wishlist"
};
if(window.Oby) {
window.Oby.registerAjax(["cart.updated","wishlist.updated"],function(params){
	var cart = (params.type == "cart"),
		p = window.cartNotifyParams,
		img_url = p.img_url,
		title = cart ? p.title : p.wishlist_title,
		text = cart ? p.text : p.wishlist_text,
		class_name = "info", success = true;

	if(params.notify === false)
		return;
		console.log(params.resp.ret);
	if(params.resp.ret == 0) {
		class_name = "warning";
		title = cart ? p.err_title : p.err_wishlist_title;
		text = cart ? p.err_text : p.err_wishlist_text;
		success = false;
		if(!cart && params.resp.err_wishlist_guest &&
p.err_wishlist_guest) {
			p.redirect_url = p.err_wishlist_guest;
			success = true;
		}

	}else if(params.product_id == 'list' &&
!params.resp.product_name){
		title = cart ? p.list_title : p.list_wishlist_title;
		text = cart ? p.list_text : p.list_wishlist_text;
	}
	if(params.resp.image)
		img_url = params.resp.image;
	if(params.resp.product_name)
		title = params.resp.product_name;
	if(params.resp.message)
		text = params.resp.message;

	if(params.resp.messages && params.resp.messages[0] &&
params.resp.messages[0].type)
		class_name = params.resp.messages[0].type;

	if(p && p.reference && p.reference == 'button'
&& params.el) {
		jQuery(params.el).notify({title:title,text:text,image:"<img
src=\""+img_url+"\" width=\"50\"
height=\"50\"
alt=\"\"/>"},{style:"metro",className:class_name,arrowShow:true});
	}else if(img_url == null) {
		jQuery.notify({title:title,text:text},{style:"metro-lite",className:class_name});
	} else {
		jQuery.notify({title:title,text:text,image:"<img
src=\""+img_url+"\"
alt=\"\"/>"},{style:"metro",className:class_name});
	}

	if(success && p.redirect_url) {
		if(!p.redirect_delay)
			p.redirect_delay = 4000;
		setTimeout(function(){ window.location = p.redirect_url; },
p.redirect_delay);
	}

	return true;
});
}