Skip to content

Commit

Permalink
BP-2831 Add payment method logo's to the payment method settings (#772)
Browse files Browse the repository at this point in the history
* BP-2831 Add payment method logo's to the payment method settings

* BP-2831 Add payment method logo's to the payment method settings - code review

---------

Co-authored-by: Ivascu Madalin <[email protected]>
Co-authored-by: Lucian Turiac <[email protected]>
  • Loading branch information
3 people committed Aug 16, 2023
1 parent 3dd51fb commit 5b52c7e
Show file tree
Hide file tree
Showing 7 changed files with 262 additions and 87 deletions.
96 changes: 86 additions & 10 deletions Block/Config/Form/Field/Fieldset.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,63 @@

namespace Buckaroo\Magento2\Block\Config\Form\Field;

use Buckaroo\Magento2\Service\LogoService;
use Magento\Backend\Block\Context;
use Magento\Backend\Model\Auth\Session;
use Magento\Config\Block\System\Config\Form\Fieldset as MagentoFieldset;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\Data\Form\Element\AbstractElement;
use Magento\Framework\View\Helper\Js;
use Magento\Framework\View\Helper\SecureHtmlRenderer;
use Magento\Store\Model\ScopeInterface;

class Fieldset extends MagentoFieldset
{
/**
* @param \Magento\Framework\Data\Form\Element\AbstractElement $element
* @return false
/**
* @var LogoService
*/
protected LogoService $logoService;

/**
* @param Context $context
* @param Session $authSession
* @param Js $jsHelper
* @param LogoService $logoService
* @param array $data
* @param SecureHtmlRenderer|null $secureRenderer
*/
public function __construct(
Context $context,
Session $authSession,
Js $jsHelper,
LogoService $logoService,
array $data = [],
?SecureHtmlRenderer $secureRenderer = null
) {
parent::__construct($context, $authSession, $jsHelper, $data, $secureRenderer);
$this->logoService = $logoService;
}

/**
* Collapsed or expanded fieldset when page loaded?
*
* @param AbstractElement $element
* @return bool
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
protected function _isCollapseState($element)
protected function _isCollapseState($element): bool
{
return false;
}

/**
* @inheritdoc
* Get frontend class
*
* @param AbstractElement $element
* @return string
*/
protected function _getFrontendClass($element)
protected function _getFrontendClass($element): string
{
$value = $this->getElementValue($element);
$class = 'payment_method_';
Expand All @@ -57,7 +94,7 @@ protected function _getFrontendClass($element)
}

$classes = parent::_getFrontendClass($element);
$classes .= ' ' . $class;
$classes .= ' bk-payment-method ' . $class;

return $classes;
}
Expand All @@ -68,7 +105,7 @@ protected function _getFrontendClass($element)
* @param AbstractElement $element
* @return string
*/
private function getElementValue($element)
private function getElementValue(AbstractElement $element): string
{
$scopeValues = $this->getScopeValue();

Expand All @@ -85,10 +122,10 @@ private function getElementValue($element)
*
* @return array
*/
private function getScopeValue()
private function getScopeValue(): array
{
$scopeValues = [
'scope' => ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
'scope' => ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
'scopevalue' => null
];

Expand All @@ -107,4 +144,43 @@ private function getScopeValue()

return $scopeValues;
}

/**
* Get the header title HTML including a logo.
*
* @param AbstractElement $element
* @return string
*/
protected function _getHeaderTitleHtml($element): string
{
if (
!isset($element->getGroup()['id']) ||
!is_string($element->getGroup()['id'])
) {
return parent::_getHeaderTitleHtml($element);
}

$method = str_replace("buckaroo_magento2_", "", $element->getGroup()['id']);
$logo = $this->getPaymentLogo($method);

if ($method === 'paylink') {
return parent::_getHeaderTitleHtml($element);
}
return parent::_getHeaderTitleHtml($element) . '<img class="bk-ad-payment-logo" src="' . $logo . '">';
}

/**
* Get payment method logo
*
* @param string $method
* @return string
*/
private function getPaymentLogo(string $method): string
{
if ($method == "voucher") {
$method = "buckaroovoucher";
}

return $this->logoService->getPayment($method);
}
}
80 changes: 12 additions & 68 deletions Block/Info.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@

namespace Buckaroo\Magento2\Block;

use Buckaroo\Magento2\Helper\PaymentGroupTransaction;
use Buckaroo\Magento2\Model\ResourceModel\Giftcard\Collection as GiftcardCollection;
use Buckaroo\Magento2\Service\LogoService;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\View\Asset\Repository;
use Magento\Framework\View\Element\Template\Context;
use Buckaroo\Magento2\Helper\PaymentGroupTransaction;
use Buckaroo\Magento2\Model\ResourceModel\Giftcard\Collection as GiftcardCollection;

class Info extends \Magento\Payment\Block\Info
{
Expand All @@ -44,28 +44,28 @@ class Info extends \Magento\Payment\Block\Info
protected $giftcardCollection;

/**
* @var Repository
* @var LogoService
*/
protected Repository $assetRepo;
protected LogoService $logoService;

/**
* @param Context $context
* @param PaymentGroupTransaction $groupTransaction
* @param GiftcardCollection $giftcardCollection
* @param Repository $assetRepo
* @param LogoService $logoService
* @param array $data
*/
public function __construct(
Context $context,
PaymentGroupTransaction $groupTransaction,
GiftcardCollection $giftcardCollection,
Repository $assetRepo,
LogoService $logoService,
array $data = []
) {
parent::__construct($context, $data);
$this->groupTransaction = $groupTransaction;
$this->giftcardCollection = $giftcardCollection;
$this->assetRepo = $assetRepo;
$this->logoService = $logoService;
}

/**
Expand Down Expand Up @@ -127,35 +127,7 @@ public function getPayPerEmailMethod()
*/
public function getPaymentLogo(string $method): string
{
$mappings = [
"afterpay2" => "svg/afterpay.svg",
"afterpay20" => "svg/afterpay.svg",
"capayablein3" => "svg/in3.svg",
"capayablepostpay" => "svg/in3.svg",
"creditcard" => "svg/creditcards.svg",
"creditcards" => "svg/creditcards.svg",
"giftcards" => "svg/giftcards.svg",
"idealprocessing" => "svg/ideal.svg",
"klarnain" => "svg/klarna.svg",
"klarnakp" => "svg/klarna.svg",
"mrcash" => "svg/bancontact.svg",
"p24" => "svg/przelewy24.svg",
"sepadirectdebit" => "svg/sepa-directdebit.svg",
"sofortbanking" => "svg/sofort.svg",
"emandate" => "emandate.png",
"pospayment" => "pos.png",
"transfer" => "svg/sepa-credittransfer.svg",
"paybybank" => "paybybank.gif",
"buckaroovoucher" => "svg/vouchers.svg"
];

$name = "svg/{$method}.svg";

if (isset($mappings[$method])) {
$name = $mappings[$method];
}

return $this->assetRepo->getUrl("Buckaroo_Magento2::images/{$name}");
return $this->logoService->getPayment($method);
}

/**
Expand All @@ -164,33 +136,9 @@ public function getPaymentLogo(string $method): string
* @param string $code
* @return string
*/
public function getGifcardLogo(string $code): string
public function getGiftcardLogo(string $code): string
{
$name = "svg/giftcards.svg";

$mappings = [
"ajaxgiftcard" => "ajaxgiftcard",
"boekenbon" => "boekenbon",
"cjpbetalen" => "cjp",
"digitalebioscoopbon" => "nationaletuinbon",
"fashioncheque" => "fashioncheque",
"fashionucadeaukaart" => "fashiongiftcard",
"nationaletuinbon" => "nationalebioscoopbon",
"nationaleentertainmentcard" => "nationaleentertainmentcard",
"podiumcadeaukaart" => "podiumcadeaukaart",
"sportfitcadeau" => "sport-fitcadeau",
"vvvgiftcard" => "vvvgiftcard",
"buckaroovoucher" => "vouchers"
];

if (isset($mappings[$code])) {
$name = "giftcards/{$mappings[$code]}.svg";
if ($mappings[$code] == 'vouchers') {
$name = "svg/{$mappings[$code]}.svg";
}
}

return $this->assetRepo->getUrl("Buckaroo_Magento2::images/{$name}");
return $this->logoService->getGiftcard($code);
}

/**
Expand All @@ -201,10 +149,6 @@ public function getGifcardLogo(string $code): string
*/
public function getCreditcardLogo(string $code): string
{
if ($code === 'cartebleuevisa') {
$code = 'cartebleue';
}

return $this->assetRepo->getUrl("Buckaroo_Magento2::images/creditcards/{$code}.svg");
return $this->logoService->getCreditcard($code);
}
}
14 changes: 7 additions & 7 deletions Block/Info/Creditcard.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,26 @@
use Buckaroo\Magento2\Helper\PaymentGroupTransaction;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Creditcard as ConfigProviderCreditcard;
use Buckaroo\Magento2\Model\ResourceModel\Giftcard\Collection as GiftcardCollection;
use Buckaroo\Magento2\Service\LogoService;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\View\Asset\Repository;
use Magento\Framework\View\Element\Template\Context;

class Creditcard extends Info
{
/**
* @var string
*/
protected $cardType;
protected string $cardType;

/**
* @var array
*/
protected $mpiStatus;
protected array $mpiStatus;

/**
* @var ConfigProviderCreditcard
*/
protected $configProvider;
protected ConfigProviderCreditcard $configProvider;

/**
* @var string
Expand All @@ -54,19 +54,19 @@ class Creditcard extends Info
* @param Context $context
* @param PaymentGroupTransaction $groupTransaction
* @param GiftcardCollection $giftcardCollection
* @param Repository $assetRepo
* @param LogoService $logoService
* @param array $data
* @param ConfigProviderCreditcard|null $configProvider
*/
public function __construct(
Context $context,
PaymentGroupTransaction $groupTransaction,
GiftcardCollection $giftcardCollection,
Repository $assetRepo,
LogoService $logoService,
array $data = [],
ConfigProviderCreditcard $configProvider = null
) {
parent::__construct($context, $groupTransaction, $giftcardCollection, $assetRepo, $data);
parent::__construct($context, $groupTransaction, $giftcardCollection, $logoService, $data);
$this->configProvider = $configProvider;
}

Expand Down
Loading

0 comments on commit 5b52c7e

Please sign in to comment.