Version Notes
v0.1.6 - Initial Release
Download this release
Release Info
| Developer | Kash Corp. |
| Extension | kash_gateway |
| Version | 0.2.0 |
| Comparing to | |
| See all releases | |
Code changes from version 0.1.4 to 0.2.0
- app/code/local/Kash/Gateway/Model/Api/Bb.php +13 -0
- app/code/local/Kash/Gateway/Model/Checkout.php +10 -0
- app/code/local/Kash/Gateway/controllers/BbController.php +53 -67
- app/code/local/Kash/Gateway/etc/config.xml +1 -1
- package.xml +17 -11
- skin/frontend/base/default/css/kash/._lightwindow.css +0 -0
- skin/frontend/base/default/css/kash/lightwindow.css +3 -0
- skin/frontend/base/default/js/kash/._lightwindow.js +0 -0
- skin/frontend/base/default/js/kash/lightwindow.js +8 -4
app/code/local/Kash/Gateway/Model/Api/Bb.php
CHANGED
|
@@ -135,6 +135,19 @@ class Kash_Gateway_Model_Api_Bb extends Kash_Gateway_Model_Api_Abstract
|
|
| 135 |
$request = $this->_importAddresses($request);
|
| 136 |
}
|
| 137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
$date = Zend_Date::now();
|
| 139 |
$request['x_timestamp'] = $date->getIso();
|
| 140 |
$request['x_signature'] = $this->getSignature($request, $this->getHmacKey());
|
| 135 |
$request = $this->_importAddresses($request);
|
| 136 |
}
|
| 137 |
|
| 138 |
+
//make sure we have the email
|
| 139 |
+
if (empty($request['x_customer_email'])) {
|
| 140 |
+
try {
|
| 141 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 142 |
+
$request['x_customer_email'] = $customer->getEmail();
|
| 143 |
+
} catch (Exception $e) {
|
| 144 |
+
Mage::log($e->getMessage());
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
$request['x_version'] = '2';
|
| 149 |
+
$request['x_plugin'] = 'magento';
|
| 150 |
+
|
| 151 |
$date = Zend_Date::now();
|
| 152 |
$request['x_timestamp'] = $date->getIso();
|
| 153 |
$request['x_signature'] = $this->getSignature($request, $this->getHmacKey());
|
app/code/local/Kash/Gateway/Model/Checkout.php
CHANGED
|
@@ -374,6 +374,14 @@ class Kash_Gateway_Model_Checkout
|
|
| 374 |
return $this;
|
| 375 |
}
|
| 376 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 377 |
/**
|
| 378 |
* Checks if customer with email coming from Express checkout exists
|
| 379 |
* +/
|
|
@@ -459,6 +467,7 @@ class Kash_Gateway_Model_Checkout
|
|
| 459 |
$shipping = $quote->isVirtual() ? null : $quote->getShippingAddress();
|
| 460 |
|
| 461 |
$customer = $this->getCustomerSession()->getCustomer();
|
|
|
|
| 462 |
if (!$billing->getCustomerId() || $billing->getSaveInAddressBook()) {
|
| 463 |
$customerBilling = $billing->exportCustomerAddress();
|
| 464 |
$customer->addAddress($customerBilling);
|
|
@@ -641,3 +650,4 @@ class Kash_Gateway_Model_Checkout
|
|
| 641 |
}
|
| 642 |
}
|
| 643 |
}
|
|
|
| 374 |
return $this;
|
| 375 |
}
|
| 376 |
|
| 377 |
+
/**
|
| 378 |
+
* Logins the user so orders can be created with the right account
|
| 379 |
+
*/
|
| 380 |
+
public function loginUser() {
|
| 381 |
+
$customerId = $this->_lookupCustomerId();
|
| 382 |
+
$this->getCustomerSession()->loginById($customerId);
|
| 383 |
+
}
|
| 384 |
+
|
| 385 |
/**
|
| 386 |
* Checks if customer with email coming from Express checkout exists
|
| 387 |
* +/
|
| 467 |
$shipping = $quote->isVirtual() ? null : $quote->getShippingAddress();
|
| 468 |
|
| 469 |
$customer = $this->getCustomerSession()->getCustomer();
|
| 470 |
+
|
| 471 |
if (!$billing->getCustomerId() || $billing->getSaveInAddressBook()) {
|
| 472 |
$customerBilling = $billing->exportCustomerAddress();
|
| 473 |
$customer->addAddress($customerBilling);
|
| 650 |
}
|
| 651 |
}
|
| 652 |
}
|
| 653 |
+
|
app/code/local/Kash/Gateway/controllers/BbController.php
CHANGED
|
@@ -116,25 +116,38 @@ class Kash_Gateway_BbController extends Mage_Core_Controller_Front_Action
|
|
| 116 |
public function callbackAction()
|
| 117 |
{
|
| 118 |
$param = Mage::app()->getRequest()->getParam('x_reference');
|
| 119 |
-
$
|
| 120 |
-
$this->_quote = $
|
| 121 |
|
| 122 |
$this->_config->setStoreId($this->_getQuote()->getStoreId());
|
| 123 |
$this->_checkout = Mage::getSingleton($this->_checkoutType, array(
|
| 124 |
'config' => $this->_config,
|
| 125 |
-
'quote' => $
|
| 126 |
));
|
| 127 |
|
| 128 |
$params = Mage::app()->getRequest()->getParams();
|
| 129 |
$this->_checkout->setParams($params);
|
| 130 |
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
}
|
| 139 |
}
|
| 140 |
|
|
@@ -144,7 +157,7 @@ class Kash_Gateway_BbController extends Mage_Core_Controller_Front_Action
|
|
| 144 |
public function completeAction()
|
| 145 |
{
|
| 146 |
try {
|
| 147 |
-
if (!$this->_initCheckout()) {
|
| 148 |
$this->getResponse()->setRedirect(Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB));
|
| 149 |
return;
|
| 150 |
}
|
|
@@ -161,7 +174,29 @@ class Kash_Gateway_BbController extends Mage_Core_Controller_Front_Action
|
|
| 161 |
return;
|
| 162 |
}
|
| 163 |
|
| 164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
if (!$this->_checkout->canSkipOrderReviewStep()) {
|
| 166 |
$this->_redirect('checkout/onepage/success');
|
| 167 |
} else {
|
|
@@ -186,18 +221,18 @@ class Kash_Gateway_BbController extends Mage_Core_Controller_Front_Action
|
|
| 186 |
$session = $this->_getCheckoutSession();
|
| 187 |
// "last successful quote"
|
| 188 |
$quoteId = $session->getLastQuoteId();
|
| 189 |
-
$
|
| 190 |
|
| 191 |
$this->loadLayout();
|
| 192 |
$this->_initLayoutMessages('kash_gateway/session');
|
| 193 |
$reviewBlock = $this->getLayout()->getBlock('gateway.kash.review');
|
| 194 |
-
$reviewBlock->setQuote($
|
| 195 |
-
$detailsBlock = $reviewBlock->getChild('details')->setCustomQuote($
|
| 196 |
if ($reviewBlock->getChild('shipping_method')) {
|
| 197 |
-
$reviewBlock->getChild('shipping_method')->setCustomQuote($
|
| 198 |
}
|
| 199 |
if ($detailsBlock->getChild('totals')) {
|
| 200 |
-
$detailsBlock->getChild('totals')->setCustomQuote($
|
| 201 |
}
|
| 202 |
$this->renderLayout();
|
| 203 |
return;
|
|
@@ -212,55 +247,6 @@ class Kash_Gateway_BbController extends Mage_Core_Controller_Front_Action
|
|
| 212 |
$this->_redirect('checkout/cart');
|
| 213 |
}
|
| 214 |
|
| 215 |
-
/**
|
| 216 |
-
* Submit the order
|
| 217 |
-
*/
|
| 218 |
-
protected function placeOrder()
|
| 219 |
-
{
|
| 220 |
-
try {
|
| 221 |
-
$this->_initToken();
|
| 222 |
-
$this->_checkout->place();
|
| 223 |
-
|
| 224 |
-
// prepare session to success or cancellation page
|
| 225 |
-
$session = $this->_getCheckoutSession();
|
| 226 |
-
$session->clearHelperData();
|
| 227 |
-
|
| 228 |
-
// "last successful quote"
|
| 229 |
-
$quoteId = $this->_getQuote()->getId();
|
| 230 |
-
$session->setLastQuoteId($quoteId)
|
| 231 |
-
->setLastSuccessQuoteId($quoteId);
|
| 232 |
-
|
| 233 |
-
// an order may be created
|
| 234 |
-
$order = $this->_checkout->getOrder();
|
| 235 |
-
$this->invoiceOrder($order);
|
| 236 |
-
if ($order) {
|
| 237 |
-
$session->setLastOrderId($order->getId())
|
| 238 |
-
->setLastRealOrderId($order->getIncrementId());
|
| 239 |
-
}
|
| 240 |
-
|
| 241 |
-
// redirect if Payment specified some URL
|
| 242 |
-
$url = $this->_checkout->getRedirectUrl();
|
| 243 |
-
if ($url) {
|
| 244 |
-
$this->getResponse()->setRedirect($url);
|
| 245 |
-
return;
|
| 246 |
-
}
|
| 247 |
-
$this->_initToken(false); // no need in token anymore
|
| 248 |
-
return;
|
| 249 |
-
} catch (Mage_Core_Exception $e) {
|
| 250 |
-
Mage::helper('checkout')->sendPaymentFailedEmail($this->_getQuote(), $e->getMessage());
|
| 251 |
-
$this->_getSession()->addError($e->getMessage());
|
| 252 |
-
$this->_redirect('*/*/review');
|
| 253 |
-
} catch (Exception $e) {
|
| 254 |
-
Mage::helper('checkout')->sendPaymentFailedEmail(
|
| 255 |
-
$this->_getQuote(),
|
| 256 |
-
$this->__('Unable to place the order.')
|
| 257 |
-
);
|
| 258 |
-
$this->_getSession()->addError($this->__('Unable to place the order.'));
|
| 259 |
-
Mage::logException($e);
|
| 260 |
-
$this->_redirect('*/*/review');
|
| 261 |
-
}
|
| 262 |
-
}
|
| 263 |
-
|
| 264 |
/**
|
| 265 |
* Auto invoice for order
|
| 266 |
*
|
|
@@ -446,4 +432,4 @@ class Kash_Gateway_BbController extends Mage_Core_Controller_Front_Action
|
|
| 446 |
$params = $this->_checkout->start();
|
| 447 |
return $params;
|
| 448 |
}
|
| 449 |
-
}
|
| 116 |
public function callbackAction()
|
| 117 |
{
|
| 118 |
$param = Mage::app()->getRequest()->getParam('x_reference');
|
| 119 |
+
$quote = Mage::getModel('sales/quote')->load($param, 'reserved_order_id');
|
| 120 |
+
$this->_quote = $quote;
|
| 121 |
|
| 122 |
$this->_config->setStoreId($this->_getQuote()->getStoreId());
|
| 123 |
$this->_checkout = Mage::getSingleton($this->_checkoutType, array(
|
| 124 |
'config' => $this->_config,
|
| 125 |
+
'quote' => $quote,
|
| 126 |
));
|
| 127 |
|
| 128 |
$params = Mage::app()->getRequest()->getParams();
|
| 129 |
$this->_checkout->setParams($params);
|
| 130 |
|
| 131 |
+
$this->_checkout->loginUser();
|
| 132 |
+
|
| 133 |
+
if ($this->_checkout->checkSignature() && $this->_checkout->checkResult() && $quote->getIsActive()) {
|
| 134 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 135 |
+
try {
|
| 136 |
+
$connection->beginTransaction();
|
| 137 |
+
|
| 138 |
+
$this->_checkout->place();
|
| 139 |
+
$order = $this->_checkout->getOrder();
|
| 140 |
+
|
| 141 |
+
if ($order->getIncrementId() == $param) {
|
| 142 |
+
$this->invoiceOrder($order);
|
| 143 |
+
$connection->commit();
|
| 144 |
+
}
|
| 145 |
+
else {
|
| 146 |
+
$connection->rollback();
|
| 147 |
+
}
|
| 148 |
+
} catch (Exception $e) {
|
| 149 |
+
$connection->rollback();
|
| 150 |
+
}
|
| 151 |
}
|
| 152 |
}
|
| 153 |
|
| 157 |
public function completeAction()
|
| 158 |
{
|
| 159 |
try {
|
| 160 |
+
if (!$this->_initCheckout(true)) {
|
| 161 |
$this->getResponse()->setRedirect(Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB));
|
| 162 |
return;
|
| 163 |
}
|
| 174 |
return;
|
| 175 |
}
|
| 176 |
|
| 177 |
+
|
| 178 |
+
$this->_initToken();
|
| 179 |
+
|
| 180 |
+
// prepare session to success or cancellation page
|
| 181 |
+
$session = $this->_getCheckoutSession();
|
| 182 |
+
$session->clearHelperData();
|
| 183 |
+
|
| 184 |
+
// store the last successful quote and order so the correct order can be displayed on
|
| 185 |
+
// on the next screen. Get the Quote and Order from the db using xref, since it's not
|
| 186 |
+
// in the session once callback completes.
|
| 187 |
+
$xref = $this->_checkout->getParams('x_reference');
|
| 188 |
+
$quote = Mage::getModel('sales/quote')->load($xref, 'reserved_order_id');
|
| 189 |
+
$session->setLastQuoteId($quote->getId())
|
| 190 |
+
->setLastSuccessQuoteId($quote->getId());
|
| 191 |
+
|
| 192 |
+
//get the order that was created and store the IDs for use in info pages
|
| 193 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($xref);
|
| 194 |
+
$session->setLastOrderId($order->getId())
|
| 195 |
+
->setLastRealOrderId($order->getIncrementId());
|
| 196 |
+
|
| 197 |
+
// no need in token anymore
|
| 198 |
+
$this->_initToken(false);
|
| 199 |
+
|
| 200 |
if (!$this->_checkout->canSkipOrderReviewStep()) {
|
| 201 |
$this->_redirect('checkout/onepage/success');
|
| 202 |
} else {
|
| 221 |
$session = $this->_getCheckoutSession();
|
| 222 |
// "last successful quote"
|
| 223 |
$quoteId = $session->getLastQuoteId();
|
| 224 |
+
$quote = Mage::getModel('sales/quote')->load($quoteId);
|
| 225 |
|
| 226 |
$this->loadLayout();
|
| 227 |
$this->_initLayoutMessages('kash_gateway/session');
|
| 228 |
$reviewBlock = $this->getLayout()->getBlock('gateway.kash.review');
|
| 229 |
+
$reviewBlock->setQuote($quote);
|
| 230 |
+
$detailsBlock = $reviewBlock->getChild('details')->setCustomQuote($quote);
|
| 231 |
if ($reviewBlock->getChild('shipping_method')) {
|
| 232 |
+
$reviewBlock->getChild('shipping_method')->setCustomQuote($quote);
|
| 233 |
}
|
| 234 |
if ($detailsBlock->getChild('totals')) {
|
| 235 |
+
$detailsBlock->getChild('totals')->setCustomQuote($quote);
|
| 236 |
}
|
| 237 |
$this->renderLayout();
|
| 238 |
return;
|
| 247 |
$this->_redirect('checkout/cart');
|
| 248 |
}
|
| 249 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 250 |
/**
|
| 251 |
* Auto invoice for order
|
| 252 |
*
|
| 432 |
$params = $this->_checkout->start();
|
| 433 |
return $params;
|
| 434 |
}
|
| 435 |
+
}
|
app/code/local/Kash/Gateway/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Kash_Gateway>
|
| 5 |
-
<version>0.
|
| 6 |
</Kash_Gateway>
|
| 7 |
</modules>
|
| 8 |
<global>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Kash_Gateway>
|
| 5 |
+
<version>0.2.0</version>
|
| 6 |
</Kash_Gateway>
|
| 7 |
</modules>
|
| 8 |
<global>
|
package.xml
CHANGED
|
@@ -1,22 +1,28 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>kash_gateway</name>
|
| 4 |
-
<version>0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>MITL</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Payment gateway that allows customers in the US to make payment via Direct Debit or Credit Card for just 0.5%.</summary>
|
| 10 |
-
<description
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
<compatible/>
|
| 21 |
<dependencies><required><php><min>5.4.45</min><max>5.6.15</max></php></required></dependencies>
|
| 22 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>kash_gateway</name>
|
| 4 |
+
<version>0.2.0</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>MITL</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Payment gateway that allows customers in the US to make payment via Direct Debit or Credit Card for just 0.5%.</summary>
|
| 10 |
+
<description><a href="http://www.withkash.com">Kash</a> payment gateway allows you to accept payments for just 0.5% fee per transaction.<br />
|
| 11 |
+
<br />
|
| 12 |
+
- Accept Direct Debit payments<br />
|
| 13 |
+
- Accept credit card payments as well (you could either include or exclude the credit card fee in the total)<br />
|
| 14 |
+
- No monthly fee<br />
|
| 15 |
+
- No chargebacks on Direct Debit payments<br />
|
| 16 |
+
- Daily clearance (money deposited to your bank by next business day)<br />
|
| 17 |
+
<br />
|
| 18 |
+
You will need a Kash account in order to use this gateway. Please contact info@withkash.com for any questions.<br />
|
| 19 |
+
<br />
|
| 20 |
+
Direct Debit payment works by having the customers use their bank account to pay. Your customers can have the option to pay using a credit card as well. You can choose to either charge the credit card processing fee to the customer, or pay for the fee yourself like you do currently.</description>
|
| 21 |
+
<notes>v0.1.6 - Initial Release</notes>
|
| 22 |
+
<authors><author><name>Kash Corp.</name><user>Kash Corp</user><email>info@withkash.com</email></author></authors>
|
| 23 |
+
<date>2015-12-08</date>
|
| 24 |
+
<time>23:53:50</time>
|
| 25 |
+
<contents><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="kash"><file name="lightwindow.css" hash="543637b1312fd4b72696f18c14fc7a54"/><file name="start.css" hash="d310d178769035d366ebb2caff9bd4a3"/><file name="._lightwindow.css" hash="6bac7309b1e370cf137d882ba90d6510"/></dir></dir><dir name="js"><dir name="kash"><file name="lightwindow.js" hash="d94daf37446ba2fd00222de24c7cf9b6"/><file name="._lightwindow.js" hash="6bac7309b1e370cf137d882ba90d6510"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Kash_Gateway.xml" hash="03365c54da611a023ea2a12c6404c455"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="kash"><file name="gateway.xml" hash="62ce90320a5d09cc8334e512c3cda3b3"/></dir></dir><dir name="template"><dir name="kash"><file name="container.phtml" hash="9dafeab90d16b221ab8684990ef62ec3"/><file name="form.phtml" hash="0b4b05f427474b08d1c52cfc09fc3485"/><file name="js.phtml" hash="3a1b1a96fd25b4035f41dbe95633f229"/><dir name="payment"><file name="mark.phtml" hash="96ac85ef2f73ec0953dee53cd3d7d0a7"/><file name="redirect.phtml" hash="9cd530bec26cc5f76ab01cfb57095c32"/><dir name="review"><file name="details.phtml" hash="ff2ad65893e66920a4cc8b098dc397c1"/></dir><file name="review.phtml" hash="ef1d435a2bc0e9daff56594a715bed1a"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="kash"><dir name="info"><file name="default.phtml" hash="79bcf1003e40c03ec35c383ec4ca5236"/></dir></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Kash"><dir name="Gateway"><dir name="Block"><dir name="Adminhtml"><file name="Info.php" hash="186ac575a69755543d649d2174f43474"/><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="757f5028ff98d3c375cf3345675d55b7"/></dir></dir></dir><dir name="Form"><file name="Bb.php" hash="2516cb64469800cfc450710250317d72"/></dir><dir name="Review"><file name="Details.php" hash="9a077c6688f913bd4f9fee74fad68b7e"/></dir><file name="Review.php" hash="a2a24914d577262188c491898c77307e"/></dir><dir name="Helper"><file name="Checkout.php" hash="89863d74391a81e7336073a8c9634ce8"/><file name="Data.php" hash="cc0eb77c1be47e1d4e846033cc2aed9a"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="99ed019c3e8e13caf90fa248e608c9ea"/><file name="Bb.php" hash="3cabc71ab5f616b0614fa3d628e9dc4a"/></dir><file name="Cart.php" hash="ced06fca31abf3fbe20e3e2eb430cfea"/><file name="Checkout.php" hash="bed98494d4bb1d93b6e6758555d98450"/><file name="Config.php" hash="5299275ecc589f56c9bc9c9123e39405"/><dir name="Method"><file name="Bb.php" hash="6cd0683fa597d31d830ae7787b0284cd"/></dir><file name="Observer.php" hash="eede09fb15543e8a535820612104e520"/><file name="Session.php" hash="1778fbe493d2ceb81d8a20b58a21ce3c"/></dir><dir name="controllers"><file name="BbController.php" hash="3ab8fcfabbc52474eb7f161fc91c5986"/></dir><dir name="data"><dir name="kash_gateway_setup"><file name="data-install-0.0.1.php" hash="5fe91e15bc5e6269eadcc50f8991250a"/><file name="data-upgrade-0.0.1-0.0.2.php" hash="632331f77e2238438e1bddfe4c2b82bf"/></dir></dir><dir name="etc"><file name="config.xml" hash="9538e1037a44f4280726f537f0a9d3e5"/><file name="system.xml" hash="3667ceed76bc0a905af96e7b4adbf2b0"/></dir><dir name="sql"><dir name="kash_gateway_setup"><file name="install-0.0.1.php" hash="9ecb52ba48345cdbee9ce0fd92d2aff9"/></dir></dir></dir></dir></target></contents>
|
| 26 |
<compatible/>
|
| 27 |
<dependencies><required><php><min>5.4.45</min><max>5.6.15</max></php></required></dependencies>
|
| 28 |
</package>
|
skin/frontend/base/default/css/kash/._lightwindow.css
ADDED
|
Binary file
|
skin/frontend/base/default/css/kash/lightwindow.css
CHANGED
|
@@ -58,6 +58,9 @@
|
|
| 58 |
-webkit-box-sizing: content-box;
|
| 59 |
-moz-box-sizing: content-box;
|
| 60 |
box-sizing: content-box;
|
|
|
|
|
|
|
|
|
|
| 61 |
}
|
| 62 |
|
| 63 |
#lightwindow_loading {
|
| 58 |
-webkit-box-sizing: content-box;
|
| 59 |
-moz-box-sizing: content-box;
|
| 60 |
box-sizing: content-box;
|
| 61 |
+
/* needed for iOS scroller */
|
| 62 |
+
-webkit-overflow-scrolling: touch;
|
| 63 |
+
overflow-y: scroll;
|
| 64 |
}
|
| 65 |
|
| 66 |
#lightwindow_loading {
|
skin/frontend/base/default/js/kash/._lightwindow.js
ADDED
|
Binary file
|
skin/frontend/base/default/js/kash/lightwindow.js
CHANGED
|
@@ -585,10 +585,14 @@ lightwindow.prototype = {
|
|
| 585 |
// Empty the contents
|
| 586 |
$('lightwindow_contents').innerHTML = '';
|
| 587 |
|
| 588 |
-
|
| 589 |
-
|
| 590 |
-
|
| 591 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 592 |
|
| 593 |
if (!this.windowActive) {
|
| 594 |
$('lightwindow_data_slide_inner').setStyle({
|
| 585 |
// Empty the contents
|
| 586 |
$('lightwindow_contents').innerHTML = '';
|
| 587 |
|
| 588 |
+
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
|
| 589 |
+
if (!userAgent.match(/iPad|iPhone|iPod/i)) {
|
| 590 |
+
// Reset the scroll bars, except on iOS
|
| 591 |
+
$('lightwindow_contents').setStyle({
|
| 592 |
+
overflow: 'hidden'
|
| 593 |
+
});
|
| 594 |
+
}
|
| 595 |
+
|
| 596 |
|
| 597 |
if (!this.windowActive) {
|
| 598 |
$('lightwindow_data_slide_inner').setStyle({
|
