2 namespace wcf\system\option
;
3 use wcf\data\option\Option
;
4 use wcf\system\exception\UserInputException
;
5 use wcf\system\payment\method\PaymentMethodHandler
;
9 * Option type implementation for selecting payment methods.
12 * @copyright 2001-2014 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 * @package com.woltlab.wcf
15 * @subpackage system.option
16 * @category Community Framework
18 class PaymentMethodSelectOptionType
extends AbstractOptionType
{
20 * @see \wcf\system\option\IOptionType::getFormElement()
22 public function getFormElement(Option
$option, $value) {
23 $selectOptions = PaymentMethodHandler
::getInstance()->getPaymentMethodSelection();
25 return WCF
::getTPL()->fetch('paymentMethodSelectOptionType', 'wcf', array(
26 'selectOptions' => $selectOptions,
28 'value' => explode(',', $value)
33 * @see \wcf\system\option\IOptionType::validate()
35 public function validate(Option
$option, $newValue) {
36 if (!is_array($newValue)) {
40 $selectOptions = PaymentMethodHandler
::getInstance()->getPaymentMethodSelection();
41 foreach ($newValue as $optionName) {
42 if (!isset($selectOptions[$optionName])) {
43 throw new UserInputException($option->optionName
, 'validationFailed');
49 * @see \wcf\system\option\IOptionType::getData()
51 public function getData(Option
$option, $newValue) {
52 if (!is_array($newValue)) return '';
53 return implode(',', $newValue);