diff --git a/Block/Config/Form/Field/Fieldset.php b/Block/Config/Form/Field/Fieldset.php
index d72c2a992..d2c9128d0 100644
--- a/Block/Config/Form/Field/Fieldset.php
+++ b/Block/Config/Form/Field/Fieldset.php
@@ -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_';
@@ -57,7 +94,7 @@ protected function _getFrontendClass($element)
}
$classes = parent::_getFrontendClass($element);
- $classes .= ' ' . $class;
+ $classes .= ' bk-payment-method ' . $class;
return $classes;
}
@@ -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();
@@ -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
];
@@ -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) . '';
+ }
+
+ /**
+ * 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);
+ }
}
diff --git a/Block/Info.php b/Block/Info.php
index cfb82e1cb..740dcf717 100644
--- a/Block/Info.php
+++ b/Block/Info.php
@@ -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
{
@@ -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;
}
/**
@@ -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);
}
/**
@@ -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);
}
/**
@@ -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);
}
}
diff --git a/Block/Info/Creditcard.php b/Block/Info/Creditcard.php
index 69a7f1a2e..8c75cc024 100644
--- a/Block/Info/Creditcard.php
+++ b/Block/Info/Creditcard.php
@@ -24,8 +24,8 @@
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
@@ -33,17 +33,17 @@ 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
@@ -54,7 +54,7 @@ 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
*/
@@ -62,11 +62,11 @@ 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;
}
diff --git a/Service/LogoService.php b/Service/LogoService.php
new file mode 100644
index 000000000..f0b0520b9
--- /dev/null
+++ b/Service/LogoService.php
@@ -0,0 +1,129 @@
+assetRepo = $assetRepo;
+ }
+
+ /**
+ * Get payment method logo
+ *
+ * @param string $paymentCode
+ * @return string
+ */
+ public function getPayment(string $paymentCode): 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",
+ "buckaroovoucher" => "svg/vouchers.svg",
+ "paybybank" => "paybybank.gif"
+ ];
+
+ $name = "svg/{$paymentCode}.svg";
+
+ if (isset($mappings[$paymentCode])) {
+ $name = $mappings[$paymentCode];
+ }
+
+ return $this->assetRepo->getUrl("Buckaroo_Magento2::images/{$name}");
+ }
+
+ /**
+ * Get gift card logo url by code
+ *
+ * @param string $code
+ * @return string
+ */
+ public function getGiftcard(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}");
+ }
+
+ /**
+ * Get creditcard logo by code
+ *
+ * @param string $code
+ * @return string
+ */
+ public function getCreditcard(string $code): string
+ {
+ if ($code === 'cartebleuevisa') {
+ $code = 'cartebleue';
+ }
+
+ return $this->assetRepo->getUrl("Buckaroo_Magento2::images/creditcards/{$code}.svg");
+ }
+}
diff --git a/view/adminhtml/templates/info/creditcard.phtml b/view/adminhtml/templates/info/creditcard.phtml
index 699fde4cb..d6da5789c 100644
--- a/view/adminhtml/templates/info/creditcard.phtml
+++ b/view/adminhtml/templates/info/creditcard.phtml
@@ -29,7 +29,7 @@ if ($giftCards = $block->getGiftCards()) {
foreach ($giftCards as $giftCard) { ?>