_formId = $formId;
}
/**
*
* get timezones table service
*
* @return \Ppb\Service\Timezones
*/
public function getTimezones()
{
if (!$this->_timezones instanceof TimezonesService) {
$this->setTimezones(
new TimezonesService());
}
return $this->_timezones;
}
/**
*
* set timezones table service
*
* @param \Ppb\Service\Timezones $timezones
*
* @return \Ppb\Model\Elements\AdminSettings
*/
public function setTimezones(TimezonesService $timezones)
{
$this->_timezones = $timezones;
return $this;
}
/**
*
* get currencies table service
*
* @return \Ppb\Service\Table\Currencies
*/
public function getCurrencies()
{
if (!$this->_currencies instanceof CurrenciesService) {
$this->setCurrencies(
new CurrenciesService());
}
return $this->_currencies;
}
/**
*
* set currencies service
*
* @param \Ppb\Service\Table\Currencies $currencies
*
* @return \Ppb\Model\Elements\AdminSettings
*/
public function setCurrencies(CurrenciesService $currencies)
{
$this->_currencies = $currencies;
return $this;
}
/**
*
* get model elements
*
* @return array
*/
public function getElements()
{
$settings = $this->getSettings();
$translate = $this->getTranslate();
$basePath = Front::getInstance()->getRequest()->getBasePath();
$totalListings = 0;
if ($this->_formId == 'listings_counters') {
$listingsService = new ListingsService();
$select = $listingsService->select(ListingsService::SELECT_LISTINGS);
$select->reset(Select::COLUMNS);
$select->columns(array('nb_rows' => new Expr('count(*)')));
$stmt = $select->query();
$totalListings = (integer)$stmt->fetchColumn('nb_rows');
}
$maximumFileUploadSize = \Ppb\Utility::getMaximumFileUploadSize('M')
. ' ' . $translate->_('MB');
return array(
/**
* --------------
* SITE SETUP
* --------------
*/
array(
'form_id' => 'site_setup',
'id' => 'sitename',
'element' => 'text',
'label' => $this->_('Site Name'),
'description' => $this->_('Enter your site\'s name. The name will be used for generating dynamic meta titles, and it will appear in all the emails sent by and through the site.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
'validators' => array(
'NoHtml'
),
),
array(
'form_id' => 'site_setup',
'id' => 'site_path',
'element' => 'text',
'label' => $this->_('Site URL'),
'description' => $this->_('Enter your site\'s URL.
'
. 'The URL must have the following format: http://www.yoursite.com
'
. 'If you have SSL available you can set your URL using https:// rather than http:// (Optional)'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
'validators' => array(
'Url',
),
),
array(
'form_id' => 'site_setup',
'id' => 'site_logo_path',
'element' => '\\Ppb\\Form\\Element\\MultiUpload',
'label' => $this->_('Site Logo'),
'description' => $this->_('Upload a logo for your website.'),
'required' => true,
'customData' => array(
'buttonText' => 'Select Logo',
'acceptFileTypes' => '/(\.|\/)(gif|jpe?g|png)$/i',
'formData' => array(
'fileSizeLimit' => 10000000, // approx 10MB
'uploadLimit' => 1,
),
),
),
array(
'form_id' => 'site_setup',
'id' => 'default_theme',
'element' => 'select',
'label' => $this->_('Site Theme'),
'multiOptions' => \Ppb\Utility::getThemes(),
'description' => $this->_('Select a theme for your website.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
),
array(
'form_id' => 'site_setup',
'id' => 'site_lang',
'element' => 'select',
'label' => $this->_('Site Language'),
'multiOptions' => \Ppb\Utility::getLanguages(),
'description' => $this->_('Select a default language for your website.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
),
array(
'form_id' => 'site_setup',
'id' => 'admin_security_key',
'element' => 'text',
'label' => $this->_('Admin Area Security Key'),
'description' => $this->_('(Optional) You can add a security key that will be required to be added to the admin path in order to be able to access it.
'
. 'Current Admin Path:')
. '
'
. $this->getView()->url(array('skey' => $this->getData('admin_security_key')), 'admin-index-index') . '
',
'attributes' => array(
'class' => 'form-control input-medium alert-box',
'data-message' => $translate->_('Warning! If adding a security key, please save the admin path in a safe place because you will '
. 'not be able to access the admin area without adding the security key to the url.'),
),
),
array(
'form_id' => 'site_setup',
'id' => 'admin_email',
'element' => 'text',
'label' => $this->_('Admin Email Address'),
'description' => $this->_('Enter your admin email address. This address will be used in the "From" field by all system emails.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
'validators' => array(
'Email'
),
),
array(
'form_id' => 'site_setup',
'id' => 'email_admin_title',
'element' => 'text',
'label' => $this->_('Admin Email From Name'),
'description' => $this->_('Enter the from name which will appear on all emails sent by the site on behalf of the administrator.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
'validators' => array(
'NoHtml'
),
),
array(
'form_id' => 'site_setup',
'id' => 'mailer',
'element' => 'select',
'label' => $this->_('Choose Mailer'),
'multiOptions' => array(
'mail' => 'PHP mail()',
'sendmail' => 'Sendmail',
'smtp' => 'SMTP',
),
'description' => $this->_('Available methods: php mail() function, unix sendmail app, SMTP protocol.
'
. 'SMTP recommended (if available on your server)'),
'required' => true,
'attributes' => array(
'id' => 'mailer',
'class' => 'form-control input-medium',
'onchange' => 'javascript:checkMailFields()',
),
'bodyCode' => "
",
),
/* site setup => sendmail path */
array(
'form_id' => 'site_setup',
'id' => 'sendmail_path',
'element' => 'text',
'label' => $this->_('Sendmail Path'),
'description' => $this->_('Enter the unix path for the sendmail app (available in phpinfo())'),
'required' => array('mailer', 'sendmail', true),
'attributes' => array(
'class' => 'mailer-sendmail form-control input-medium',
),
),
/* site setup => smtp related fields */
array(
'form_id' => 'site_setup',
'id' => 'smtp_host',
'element' => 'text',
'label' => $this->_('SMTP Host'),
'attributes' => array(
'class' => 'mailer-smtp form-control input-medium',
),
),
array(
'form_id' => 'site_setup',
'id' => 'smtp_port',
'element' => 'text',
'label' => $this->_('SMTP Port'),
'attributes' => array(
'class' => 'mailer-smtp form-control input-medium',
),
),
array(
'form_id' => 'site_setup',
'id' => 'smtp_username',
'element' => 'text',
'label' => $this->_('SMTP Username'),
'attributes' => array(
'class' => 'mailer-smtp form-control input-medium',
),
),
array(
'form_id' => 'site_setup',
'id' => 'smtp_password',
'element' => 'text',
'label' => $this->_('SMTP Password'),
'description' => $this->_('Enter your SMTP login details in case you choose to use SMTP as the system emails handler.
'
. 'Important: you only need enter a username and a password if you SMTP server requires authentication.'
. 'If the server doesn\'t require authentication, please leave these fields empty because otherwise the SMTP server can return an error and no emails will be sent.
'
. 'If you are unsure of your SMTP server\'s host name and port, please leave the Host and Port fields empty and the software will try to retrieve them for you.'),
'attributes' => array(
'class' => 'mailer-smtp form-control input-medium',
),
),
array(
'form_id' => 'site_setup',
'id' => 'maintenance_mode',
'element' => 'checkbox',
'label' => $this->_('Maintenance Mode'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable maintenance mode. With maintenance mode enabled, '
. 'only logged in administrators will be able to access the front end of the site.'),
),
array(
'form_id' => 'site_setup',
'id' => 'disable_installer',
'element' => 'checkbox',
'label' => $this->_('Disable Installer'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to disable the install module. The installer module should only be enabled when '
. 'you need to upgrade the software.'),
),
/**
* --------------
* USER SETTINGS
* --------------
*/
/**
* ++++++++++++++
* REGISTRATION & VERIFICATION
* ++++++++++++++
*/
array(
'form_id' => 'registration_verification',
'subtitle' => $this->_('User Registration'),
'id' => 'registration_type',
'element' => 'radio',
'label' => $this->_('Select Registration Type'),
'multiOptions' => array(
'quick' => array(
$translate->_('Quick'),
$translate->_('Only the username, email address and password fields will appear on the registration page.'),
),
'full' => array(
$translate->_('Full'),
$translate->_('This form will include all registration fields, address, date of birth, phone number and any available custom fields.'),
),
),
'attributes' => array(
'class' => 'field-changeable',
),
'bodyCode' => "
"
),
array(
'form_id' => 'registration_verification',
'id' => 'min_reg_age',
'element' => 'text',
'label' => $this->_('Minimum Registration Age'),
'suffix' => $this->_('years'),
'description' => $this->_('Enter the minimum age required for users to be able to register to your site, or leave empty to disable this functionality.'),
'attributes' => array(
'class' => 'form-control input-mini full-registration-field',
),
'validators' => array(
'Digits',
),
),
array(
'form_id' => 'registration_verification',
'id' => 'payment_methods_registration',
'element' => 'checkbox',
'label' => $this->_('Direct Payment Gateways Fields'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish to display the setup fields for your enabled direct payment gateways on the registration page.'),
),
/**
* ++++++++++++++
* USER VERIFICATION - UNIFIED SELLER/BUYER VERIFICATION
* ++++++++++++++
*/
array(
'form_id' => 'registration_verification',
'subtitle' => $this->_('User Verification'),
'id' => 'user_verification',
'element' => 'checkbox',
'label' => $this->_('Enable User Verification'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the user verification feature.
'
. 'Note: Even if you disable user verification, you will still be able to set the status of your '
. 'users to verified from the Users Management page. Users will however not be able to verify their '
. 'accounts themselves.'),
'attributes' => array(
'class' => 'field-changeable',
),
'bodyCode' => "
"
),
array(
'form_id' => 'registration_verification',
'id' => 'seller_verification_mandatory',
'element' => 'checkbox',
'label' => $this->_('Mandatory For Selling'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If mandatory seller verification is enabled, users will need to get verified in order to be able to list items on your website.'),
),
array(
'form_id' => 'registration_verification',
'id' => 'buyer_verification_mandatory',
'element' => 'checkbox',
'label' => $this->_('Mandatory for Buying'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If mandatory buyer verification is enabled, users will need to get verified in order to be able to bid on/purchase items on your website.'),
),
array(
'form_id' => 'registration_verification',
'table' => 'fees',
'id' => 'user_verification_fee',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Verification Fee'),
'prefix' => $settings['currency'],
'attributes' => array(
'class' => 'form-control input-mini',
),
'required' => ($this->getData('user_verification')) ? true : false,
'validators' => array(
'Numeric',
array('GreaterThan', array(0, true)),
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'registration_verification',
'id' => 'user_verification_recurring',
'element' => 'text',
'prefix' => $this->_('recurring every'),
'suffix' => $this->_('days'),
'description' => $this->_('You can set up a one time or recurring verification fee. If you wish the verification fee to be a one time fee enter 0 in the recurring field.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
),
array(
'form_id' => 'registration_verification',
'id' => 'user_verification_refund',
'element' => 'checkbox',
'label' => $this->_('Refund Verification Fee'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If the checkbox above is checked, the verification fee will be credited to the user\'s account after payment.
'
. 'The user\'s account will need to run in account mode for this feature to apply.'),
),
/**
* ++++++++++++++
* REGISTRATION TERMS & CONDITIONS LINK
* ++++++++++++++
*/
array(
'form_id' => 'registration_verification',
'subtitle' => $this->_('Terms and Conditions / Privacy Policy Link'),
'id' => 'enable_registration_terms',
'element' => 'checkbox',
'label' => $this->_('Show Registration Terms & Conditions Link'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to require users to agree to the site\'s terms and/or privacy when registering.'),
),
array(
'form_id' => 'registration_verification',
'id' => 'registration_terms_link',
'element' => 'text',
'label' => $this->_('Terms and Conditions Link'),
'description' => $this->_('Enter the url of the terms and conditions page (relative url).'),
'attributes' => array(
'class' => 'form-control input-large',
),
'required' => $this->getData('enable_registration_terms') ? true : false,
'validators' => array(
'NoHtml',
),
),
array(
'form_id' => 'registration_verification',
'id' => 'registration_privacy_link',
'element' => 'text',
'label' => $this->_('Privacy Policy Link'),
'description' => $this->_('Enter the url of the privacy policy page (relative url).'),
'attributes' => array(
'class' => 'form-control input-large',
),
'required' => $this->getData('enable_registration_terms') ? true : false,
'validators' => array(
'NoHtml',
),
),
/**
* ++++++++++++++
* USER ACCOUNT SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'account_settings',
'id' => 'payment_mode',
'element' => 'radio',
'label' => $this->_('Choose Payment Option'),
'multiOptions' => array(
'live' => array(
$translate->_('Live (Pay as You Go)'),
$translate->_('Choose this option if you want your users to pay for site fees immediately.'),
),
'account' => array(
$translate->_('Account Mode'),
$translate->_('Choose this option in order for your site\'s users to pay for site fees periodically. '
. 'All fees they owe will be added in their account balance.'),
),
),
'attributes' => array(
'class' => 'field-changeable',
),
'bodyCode' => "
"
),
array(
'form_id' => 'account_settings',
'id' => 'user_account_type',
'element' => 'radio',
'label' => $this->_('User Account Type'),
'multiOptions' => array(
'global' => array(
$translate->_('Global'),
$translate->_('Choose this option if you want all accounts to run using the default payment option.'),
),
'personal' => array(
$translate->_('Personal'),
$translate->_('Choose this option if you want to be able to choose the payment option for each user account, from the users management page.'),
),
),
'attributes' => array(
'class' => 'field-changeable',
),
),
array(
'form_id' => 'account_settings',
'subtitle' => $this->_('Account Mode Settings'),
'id' => 'signup_credit',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Signup Credit'),
'prefix' => $settings['currency'],
'attributes' => array(
'class' => 'form-control input-mini account-mode-field',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'account_settings',
'id' => 'maximum_debit',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Maximum Debit'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter the maximum debit an account is allowed to have before being suspended.'),
'attributes' => array(
'class' => 'form-control input-mini account-mode-field',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'account_settings',
'id' => 'min_invoice_value',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Minimum Credit Amount'),
'prefix' => $settings['currency'],
'attributes' => array(
'class' => 'form-control input-mini account-mode-field',
),
'description' => $this->_('Enter the minimum payment amount that a user can credit his account balance with.'),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'account_settings',
'id' => 'payment_reminder_email',
'element' => 'checkbox',
'label' => $this->_('Payment Notification Emails'),
'multiOptions' => array(
1 => null,
),
'attributes' => array(
'class' => 'account-mode-field',
),
'description' => $this->_('Check the above checkbox if you wish to send automatic notification emails to accounts that have exceeded their debit limit.'),
),
array(
'form_id' => 'account_settings',
'id' => 'suspend_over_limit_accounts',
'element' => 'checkbox',
'label' => $this->_('Suspend Accounts over Limit'),
'multiOptions' => array(
1 => null,
),
'attributes' => array(
'class' => 'account-mode-field',
),
'description' => $this->_('Check the above checkbox if you wish to suspend accounts that have the balance over the maximum debit limit.'),
),
array(
'form_id' => 'account_settings',
'id' => 'suspension_days',
'element' => 'text',
'label' => $this->_('Cron Invoice Suspension'),
'suffix' => $this->_('days'),
'attributes' => array(
'class' => 'form-control input-mini account-mode-field',
),
'description' => $this->_('(Optional) enter the number of days after which an account that has been sent an automatic payment notification email will be suspended. '
. 'This setting will only apply if you have selected not to suspend accounts that have exceeded their debit limit.'),
'validators' => array(
'Digits',
),
),
array(
'form_id' => 'account_settings',
'id' => 'rebill_expired_subscriptions',
'element' => 'checkbox',
'label' => $this->_('Re-bill Expired Subscriptions'),
'multiOptions' => array(
1 => null,
),
'attributes' => array(
'class' => 'account-mode-field',
),
'description' => $this->_('Check the above checkbox if you wish to bill expired subscriptions automatically from the users\' balances (works only when in account mode).'),
),
/**
* ++++++++++++++
* USER SIGNUP CONFIRMATION
* ++++++++++++++
*/
array(
'form_id' => 'signup_settings',
'id' => 'signup_settings',
'element' => 'radio',
'label' => $this->_('User Signup Confirmation'),
'multiOptions' => array(
0 => array(
$translate->_('No Confirmation Required'),
$translate->_('Check the above box if user accounts should be activated immediately, with no confirmation required.'),
),
1 => array(
$translate->_('Email Address Verification'),
$translate->_('Check the above box if you wish to enable email address confirmation. In this case, users will '
. 'need to click the link from the registration confirmation email they receive when registering in order to activate their account.'),
),
2 => array(
$translate->_('Admin Approval'),
$translate->_('Check the above box if you wish for the admin to manually activate each user from the users management page.
'
. 'Users will also need to confirm their email address like on the "email address confirmation" option.'),
),
),
'description' => $this->_('Select the signup confirmation settings which should apply on your website.'),
),
// /**
// * ++++++++++++++
// * ABOUT ME/PROFILE PAGE
// * ++++++++++++++
// */
// array(
// 'form_id' => 'profile_page',
// 'id' => 'profile_page',
// 'element' => 'checkbox',
// 'label' => $this->_('Enable About Me/Profile Page'),
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => $this->_('Check the above checkbox to enable users to create an about me/profile page on the website.'),
// ),
/**
* ++++++++++++++
* ENABLE PRIVATE REPUTATION COMMENTS
* ++++++++++++++
*/
array(
'form_id' => 'private_reputation_comments',
'id' => 'private_reputation',
'element' => 'checkbox',
'label' => $this->_('Enable Private Reputation Comments'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox in order to make the reputation comments private/not available for other users to read.
'
. 'In this case, only the reputation score will be viewable publicly.'),
),
/**
* DISABLE REPUTATION
*/
array(
'form_id' => 'users_reputation',
'id' => 'enable_reputation',
'element' => 'checkbox',
'label' => $this->_('Enable Reputation'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox in order to enable the reputation module.'),
),
/**
* ++++++++++++++
* TIME AND DATE SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'time_date',
'id' => 'timezone',
'element' => 'select',
'label' => $this->_('Time Zone'),
'multiOptions' => $this->getTimezones()->getMultiOptions(),
'description' => $this->_('Select your site\'s time zone.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => true,
),
array(
'form_id' => 'time_date',
'id' => 'date_format',
'element' => 'radio',
'label' => $this->_('Date Format'),
'multiOptions' => array(
'%m/%d/%Y %H:%M:%S' => array(
'mm/dd/yyyy h:m:s',
$translate->_('Example:') . ' ' . $this->getView()->date(time(), false, '%m/%d/%Y %H:%M:%S'),
),
'%d.%m.%Y %H:%M:%S' => array(
'dd.mm.yyyy h:m:s',
$translate->_('Example:') . ' ' . $this->getView()->date(time(), false, '%d.%m.%Y %H:%M:%S'),
),
),
'description' => $this->_('Select a format for displaying dates and date/time combinations on your website.'),
'required' => true,
),
/**
* ++++++++++++++
* USER DEFINED LANGUAGES
* ++++++++++++++
*/
array(
'form_id' => 'user_languages',
'id' => 'user_languages',
'element' => 'checkbox',
'label' => $this->_('Multi Language Support'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If this setting is enabled, visitors browsing your site will be able to select a language in which the site will be displayed.
'
. 'This setting will only apply if your site is available in multiple languages (not available by default).'),
),
/**
* ++++++++++++++
* SEO SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'seo_settings',
'id' => 'meta_title',
'element' => 'text',
'label' => $this->_('Meta Title'),
'description' => $this->_('(Highly Recommended) Add a meta title for your home page.'),
'attributes' => array(
'class' => 'form-control input-xlarge',
),
'validators' => array(
'NoHtml',
),
),
array(
'form_id' => 'seo_settings',
'id' => 'meta_description',
'element' => 'textarea',
'label' => $this->_('Meta Description'),
'description' => $this->_('(Highly Recommended) This meta description tells the search engines what your site is about. '
. 'Your description should have between 70 and 155 characters (including spaces).'),
'validators' => array(
'NoHtml',
),
'attributes' => array(
'rows' => '4',
'class' => 'form-control',
),
),
array(
'form_id' => 'seo_settings',
'id' => 'meta_data',
'element' => '\\Ppb\\Form\\Element\\MultiKeyValue',
'label' => $this->_('Other Tags'),
'description' => $this->_('(Optional) Enter any additional meta tags that you might want to add to your site.
'
. 'Format: name (keywords, robots, etc) - content (string)'),
'attributes' => array(
'class' => 'form-control input-medium',
),
),
array(
'form_id' => 'seo_settings',
'id' => 'mod_rewrite_urls',
'element' => 'checkbox',
'label' => $this->_('Enable Search Engine Friendly URLs'),
'description' => sprintf(
$this->_('The mod_rewrite apache extension should be loaded in order for search engine friendly URLs to work. '
. 'There are alternatives to this extension if running '
. 'ngnix or '
. 'Microsoft IIS.
'
. 'mod_rewrite extension status: %s'),
((\Ppb\Utility::checkModRewrite()) ?
'' . $this->_('Enabled') . '' :
'' . $this->_('Disabled / Check Failed') . '')),
'multiOptions' => array(
1 => null
),
),
array(
'form_id' => 'seo_settings',
'id' => 'home_page_html',
'element' => 'textarea',
'label' => $this->_('Home Page Custom HTML'),
'description' => $this->_('(Recommended for SEO) Add custom html to your home page. '
. 'You should add one h1 tag that best describes your website and at least one h2 tag with secondary descriptions.'),
'attributes' => array(
'class' => 'form-control textarea-code',
'rows' => 12,
),
),
// array(
// 'form_id' => 'seo_settings',
// 'id' => 'enable_sitemap',
// 'element' => 'checkbox',
// 'label' => $this->_('Enable XML Sitemap'),
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => $this->_('If this setting is enabled, visitors browsing your site will be able to select a language in which the site will be displayed.
'
// . 'This setting will only apply if your site is available in multiple languages (not available by default).'),
// ),
/**
* ++++++++++++++
* CRON JOBS
* ++++++++++++++
*/
array(
'form_id' => 'cron_jobs',
'id' => 'cron_job_type',
'element' => 'radio',
'label' => $this->_('Cron Jobs Setup'),
'multiOptions' => array(
'server' => array(
$translate->_('Run cron jobs from your server\'s control panel'),
sprintf($translate->_('Please add ONE of the following lines and set it to run every minute:
'
. 'curl -s %1$s/cron.php
' . ' or
'
. 'wget -q %1$s/cron.php
' . '
'
. 'Purge unused images - run once per hour:
'
. 'curl -s %1$s/cron.php?command=purge-unused-uploaded-files 2>&1
or' . '
'
. 'wget -q %1$s/cron.php?command=purge-unused-uploaded-files
' . '
'
. 'Purge cache data - run daily:
'
. 'curl -s %1$s/cron.php?command=purge-cache-data 2>&1
or' . '
'
. 'wget -q %1$s/cron.php?command=purge-cache-data
' . '
'
. 'Update currency exchange rates - run daily:
'
. 'curl -s %1$s/cron.php?command=update-currency-exchange-rates 2>&1
or' . '
'
. 'wget -q %1$s/cron.php?command=update-currency-exchange-rates
'
), $settings['site_path']),
),
'application' => array(
$translate->_('Run cron jobs from within the application'),
$translate->_('Cron jobs will be run automatically each time the site is accessed. Use only if you dont '
. 'have access to the cron tab application on your server.'),
)
),
),
/**
* ++++++++++++++
* CACHING ENGINE
* ++++++++++++++
*/
array(
'form_id' => 'caching',
'id' => 'caching_engine',
'element' => 'radio',
'label' => 'Caching Engine',
'multiOptions' => $this->_cachingEngineMultiOptions(),
),
/**
* ++++++++++++++
* PRIVATE SITE/SINGLE SELLER
* ++++++++++++++
*/
array(
'form_id' => 'private_site',
'id' => 'private_site',
'element' => 'checkbox',
'label' => $this->_('Private Site/Single Seller'),
'multiOptions' => array(
1 => null
),
'description' => $this->_('Enable this feature if you want to be able to select which users are allowed to list on your site.
'
. 'You can select which users will have selling privileges from the Users Management page.'),
),
/**
* ++++++++++++++
* PREFERRED SELLERS FEATURE
* ++++++++++++++
*/
array(
'form_id' => 'preferred_sellers',
'id' => 'preferred_sellers',
'element' => 'checkbox',
'label' => $this->_('Preferred Sellers Feature'),
'multiOptions' => array(
1 => null
),
'description' => $this->_('Enable this feature if you want to give certain users listing/sale fee reductions.'),
),
array(
'form_id' => 'preferred_sellers',
'id' => 'preferred_sellers_expiration',
'element' => 'text',
'label' => $this->_('Expires after'),
'description' => $this->_('(Optional) Enter the number of days after which the preferred seller status will expire.'),
'suffix' => $this->_('days'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
),
array(
'form_id' => 'preferred_sellers',
'id' => 'preferred_sellers_reduction',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Reduction'),
'description' => $this->_('Enter the reduction percentage that will be applied.'),
'suffix' => '%',
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'preferred_sellers',
'id' => 'preferred_sellers_apply_sale',
'element' => 'checkbox',
'label' => $this->_('Apply To Sale Fees'),
'multiOptions' => array(
1 => null
),
'description' => $this->_('Check the above checkbox if you wish to apply the preferred seller reduction to sale fees.'),
),
/**
* SITE INVOICES SETTINGS [ Header - Footer ]
*/
array(
'form_id' => 'site_invoices',
'id' => 'invoice_address',
'element' => 'textarea',
'label' => $this->_('Invoice Address'),
'description' => $this->_('Enter the address that will appear on site invoices.'),
'attributes' => array(
'rows' => '8',
'class' => 'form-control textarea-code',
),
'validators' => array(
'NoHtml',
),
),
array(
'form_id' => 'site_invoices',
'id' => 'invoice_header',
'element' => 'textarea',
'label' => $this->_('Invoice Header'),
'description' => $this->_('Add a custom html header for site invoices, or leave empty if you wish for the site logo will be displayed.'),
'attributes' => array(
'rows' => '12',
'class' => 'form-control textarea-code',
),
),
array(
'form_id' => 'site_invoices',
'id' => 'invoice_footer',
'element' => 'textarea',
'label' => $this->_('Invoice Footer'),
'description' => $this->_('Add a custom html footer for site invoices.'),
'attributes' => array(
'rows' => '12',
'class' => 'form-control textarea-code',
),
),
/**
* ++++++++++++++
* ADDRESS DISPLAY FORMAT
* ++++++++++++++
*/
array(
'form_id' => 'address_display_format',
'id' => 'address_display_format',
'element' => 'radio',
'label' => $this->_('Address Display Format'),
'multiOptions' => array(
'default' => array(
$translate->_('Default'),
$translate->_('Address, City, Post/Zip Code, County/State, Country'),
),
'alternate' => array(
$translate->_('Alternate'),
$translate->_('Address, City, County/State, Post/Zip Code, Country'),
),
),
'description' => $this->_('Choose how addresses should be displayed on the website (on sales, invoices, etc.).'),
),
/**
* ++++++++++++++
* GOOGLE ANALYTICS
* ++++++++++++++
*/
array(
'form_id' => 'google_analytics',
'id' => 'google_analytics_code',
'element' => 'textarea',
'label' => $this->_('Google Analytics Code'),
'description' => $this->_('If you have a Google Analytics account that you want to use for your site, you can add the tracking code that '
. 'Google provides in the field above.'),
'attributes' => array(
'rows' => '16',
'class' => 'form-control textarea-code',
),
),
/**
* ++++++++++++++
* ALLOW BUYER TO COMBINE PURCHASES
* ++++++++++++++
*/
array(
'form_id' => 'combine_purchases',
'id' => 'buyer_create_invoices',
'element' => 'checkbox',
'label' => $this->_('Buyer can Combine Purchases'),
'multiOptions' => array(
1 => null
),
'description' => $this->_('If this setting is enabled, buyers can combine purchased items from the same seller into a single invoice.
'
. 'Important: Only non-invoiced items can be combined.'),
),
/**
* ++++++++++++++
* FEATURED LISTINGS BOXES
* ++++++++++++++
*/
array(
'form_id' => 'home_page_appearance',
'id' => 'hp_listings_imgsize',
'element' => 'text',
'label' => $this->_('Image Size'),
'description' => $this->_('Enter the size of the listings images.'),
'required' => true,
'suffix' => $this->_('pixels'),
'validators' => array(
'Digits',
array('GreaterThan', array(30, true)),
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
/**
* DISPLAY SECTIONS SETTINGS
*/
/* HOME PAGE FEATURED */
array(
'form_id' => 'home_page_appearance',
'subtitle' => $this->_('Home Page Featured'),
'id' => 'hpfeat_nb',
'element' => 'text',
'label' => $this->_('Listings'),
'description' => $this->_('Enter the maximum number of home page featured listings that will be displayed or leave empty to disable.'),
'required' => false,
'validators' => array(
'Digits',
array('LessThan', array(24, true)),
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'hpfeat_tabbed',
'element' => 'checkbox',
'label' => $this->_('Tabbed Display'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'hpfeat_carousel',
'element' => 'checkbox',
'label' => $this->_('Carousel'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'hpfeat_box',
'element' => 'radio',
'label' => $this->_('Box Type'),
'required' => false,
'multiOptions' => array(
'list' => 'List',
'grid' => 'Grid',
),
),
/* RECENTLY LISTED */
array(
'form_id' => 'home_page_appearance',
'subtitle' => $this->_('Recently Listed'),
'id' => 'recent_nb',
'element' => 'text',
'label' => $this->_('Listings'),
'required' => false,
'validators' => array(
'Digits',
array('LessThan', array(32, true)),
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'recent_tabbed',
'element' => 'checkbox',
'label' => $this->_('Tabbed Display'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'recent_carousel',
'element' => 'checkbox',
'label' => $this->_('Carousel'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'recent_box',
'element' => 'radio',
'label' => $this->_('Box Type'),
'required' => false,
'multiOptions' => array(
'list' => 'List',
'grid' => 'Grid',
),
),
/* ENDING SOON */
array(
'form_id' => 'home_page_appearance',
'subtitle' => $this->_('Ending Soon'),
'id' => 'ending_nb',
'element' => 'text',
'label' => $this->_('Listings'),
'required' => false,
'validators' => array(
'Digits',
array('LessThan', array(32, true)),
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'ending_tabbed',
'element' => 'checkbox',
'label' => $this->_('Tabbed Display'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'ending_carousel',
'element' => 'checkbox',
'label' => $this->_('Carousel'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'ending_box',
'element' => 'radio',
'label' => $this->_('Box Type'),
'required' => false,
'multiOptions' => array(
'list' => 'List',
'grid' => 'Grid',
),
),
/* POPULAR */
array(
'form_id' => 'home_page_appearance',
'subtitle' => $this->_('Popular'),
'id' => 'popular_nb',
'element' => 'text',
'label' => $this->_('Listings'),
'required' => false,
'validators' => array(
'Digits',
array('LessThan', array(32, true)),
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'popular_tabbed',
'element' => 'checkbox',
'label' => $this->_('Tabbed Display'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'popular_carousel',
'element' => 'checkbox',
'label' => $this->_('Carousel'),
'required' => false,
'multiOptions' => array(
1 => null,
),
),
array(
'form_id' => 'home_page_appearance',
'id' => 'popular_box',
'element' => 'radio',
'label' => $this->_('Box Type'),
'required' => false,
'multiOptions' => array(
'list' => 'List',
'grid' => 'Grid',
),
),
/**
* ++++++++++++++
* CATEGORY PAGES FEATURED LISTINGS
* ++++++++++++++
*/
array(
'form_id' => 'category_featured',
'id' => 'catfeat_nb',
'element' => 'text',
'label' => $this->_('Number of Featured Items'),
'description' => $this->_('Leave empty or enter 0 to disable (applies to all the fields below as well).'),
'required' => false,
'validators' => array(
'Digits',
array('LessThan', array(24, true)),
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
/**
* ++++++++++++++
* DISPLAY FREE FEES ON FRONT END
* ++++++++++++++
*/
array(
'form_id' => 'display_free_fees',
'id' => 'display_free_fees',
'element' => 'checkbox',
'label' => $this->_('Display Free Fees on User End'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish for free fees to be displayed on the front end.'),
),
/**
* ++++++++++++++
* CUSTOM START/END TIME OPTIONS
* ++++++++++++++
*/
array(
'form_id' => 'custom_start_end_times',
'id' => 'enable_custom_start_time',
'element' => 'checkbox',
'label' => $this->_('Enable Custom Start Time'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the custom start time option for listings.'),
),
array(
'form_id' => 'custom_start_end_times',
'id' => 'enable_custom_end_time',
'element' => 'checkbox',
'label' => $this->_('Enable Custom End Time'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the custom end time option for listings.'),
),
/**
* ++++++++++++++
* LISTINGS SEARCH SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'listings_search_settings',
'id' => 'search_title',
'element' => 'checkbox',
'label' => $this->_('By Title'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('This setting cannot be disabled, searching by listing titles is mandatory.'),
'attributes' => array(
'checked' => true,
'disabled' => true,
),
),
array(
'form_id' => 'listings_search_settings',
'id' => 'search_subtitle',
'element' => 'checkbox',
'label' => $this->_('By Subtitle'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow searching for keywords in listing subtitles.'),
),
array(
'form_id' => 'listings_search_settings',
'id' => 'search_description',
'element' => 'checkbox',
'label' => $this->_('By Description'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow searching for keywords in listing descriptions.'),
),
array(
'form_id' => 'listings_search_settings',
'id' => 'search_category_name',
'element' => 'checkbox',
'label' => $this->_('By Category Names'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow searching for keywords in category names.'),
),
/**
* ++++++++++++++
* LISTING SETUP PROCESS
* ++++++++++++++
*/
array(
'form_id' => 'listing_setup',
'id' => 'listing_setup_process',
'element' => 'radio',
'label' => $this->_('Listing Setup Process'),
'multiOptions' => array(
'full' => array(
$translate->_('Full'),
$translate->_('Use the standard 4 steps form - details, settings, shipping and preview.'),
),
'quick' => array(
$translate->_('Quick'),
$translate->_('Use the quick 2 steps form - setup and preview.'),
),
),
'description' => $this->_('Choose the type of listing creation form to use in the front end.'),
),
/**
* ++++++++++++++
* CURRENCY SETTINGS
* ++++++++++++++
*/
array(
'subtitle' => $translate->_('Current Display Format:') . ' ' . $this->getView()->amount(3999) . '',
'form_id' => 'currency_settings',
'id' => 'currency',
'element' => 'select',
'label' => $this->_('Default Currency'),
'multiOptions' => $this->getCurrencies()->getMultiOptions(),
'description' => sprintf(
$translate->_('Select the site\'s default currency.
'
. 'Important: Please click here to define which currencies will be available on the site.'),
$this->_view->url(array('module' => 'admin', 'controller' => 'tables', 'action' => 'index', 'table' => 'currencies'))),
'required' => true,
'attributes' => array(
'class' => 'form-control input-large',
),
),
array(
'form_id' => 'currency_settings',
'id' => 'currency_format',
'element' => 'radio',
'label' => $this->_('Amount Display Format'),
'multiOptions' => array(
1 => array(
$translate->_('US Format: 9,999.95'),
),
2 => array(
$translate->_('EU Format: 9.999,95'),
),
),
'description' => $this->_('Select the amount display format that will be applied for when displaying currency amounts on your website.'),
'required' => true,
),
array(
'form_id' => 'currency_settings',
'id' => 'currency_decimals',
'element' => 'text',
'label' => $this->_('Decimal Digits'),
'description' => $this->_('Enter the number of decimal digits that will be shown when displaying a currency amount.'),
'required' => true,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'currency_settings',
'id' => 'currency_position',
'element' => 'radio',
'label' => $this->_('Symbol Position'),
'multiOptions' => array(
1 => array(
$translate->_('Symbol before amount:') . ' ' . $this->getCurrencies()->getSymbol($settings['currency']) . ' 199',
),
2 => array(
$translate->_('Amount before symbol:') . ' 199 ' . $this->getCurrencies()->getSymbol($settings['currency']),
),
),
'description' => $this->_('Select the amount display format that will be applied for when displaying currency amounts on your website.'),
'required' => true,
),
/**
* ++++++++++++++
* TITLE CHARACTER LENGTH
* ++++++++++++++
*/
array(
'form_id' => 'character_length',
'id' => 'character_length',
'element' => 'text',
'label' => $this->_('Title Character Length'),
'description' => $this->_('Enter the maximum character length allowed for the listing title field.'),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
/**
* ++++++++++++++
* LISTINGS APPROVAL
* ++++++++++++++
*/
array(
'form_id' => 'listings_approval',
'id' => 'enable_listings_approval',
'element' => 'checkbox',
'label' => $this->_('Enable Listings Approval'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish for listings to require admin approval before they are displayed '
. 'on your website. Listings will require approval after being edited as well.'),
),
/**
* ++++++++++++++
* SUBTITLE
* ++++++++++++++
*/
array(
'form_id' => 'listing_subtitle',
'id' => 'enable_subtitle',
'element' => 'checkbox',
'label' => $this->_('Enable Listing Subtitle'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish to allow sellers to add subtitles to their listings.'),
),
/**
* ++++++++++++++
* IMAGES SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'images_settings',
'id' => 'images_max',
'element' => 'text',
'label' => $this->_('Number of Images'),
'description' => $this->_('Enter the maximum number of images that can be added to a listing.'),
'required' => true,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'images_settings',
'id' => 'mandatory_images',
'element' => 'checkbox',
'label' => $this->_('Mandatory Images'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to require for at least one image to be added when a listing is created.'),
),
array(
'form_id' => 'images_settings',
'id' => 'images_size',
'element' => 'text',
'label' => $this->_('Maximum Size Allowed'),
'suffix' => $this->_('KB'),
'description' => sprintf($this->_('Enter the maximum size an uploaded image can have.
'
. 'Note: The maximum allowed size of a file that can be uploaded on your server is %s.
'
. 'If needing to have the limit increased, please contact your hosting provider.'), $maximumFileUploadSize),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'images_settings',
'id' => 'crop_images',
'element' => 'checkbox',
'label' => $this->_('Crop to Aspect Ratio'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish for uploaded images to be cropped when thumbnails are generated.'),
),
array(
'form_id' => 'images_settings',
'id' => 'lazy_load_images',
'element' => 'checkbox',
'label' => $this->_('Lazy Load'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the lazy load javascript for listing images (improves website loading speed).'),
),
array(
'form_id' => 'images_settings',
'id' => 'remote_uploads',
'element' => 'checkbox',
'label' => $this->_('Allow Remote Images'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow adding images from remote locations by entering the direct link.'),
),
array(
'form_id' => 'images_settings',
'id' => 'images_watermark',
'element' => 'text',
'label' => $this->_('Watermark Text'),
'description' => $this->_('Enter a watermark text that will be applied to uploaded images, or leave empty for no watermark.'),
'attributes' => array(
'class' => 'form-control input-medium',
),
'required' => false,
),
/**
* ++++++++++++++
* MEDIA UPLOAD SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'media_upload',
'id' => 'videos_max',
'element' => 'text',
'label' => $this->_('Number of Videos'),
'description' => $this->_('Enter the maximum number of videos that can be added to a listing.
'
. 'Important: To disable this feature, enter 0 in the above field.'),
'required' => true,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'media_upload',
'id' => 'videos_size',
'element' => 'text',
'label' => $this->_('Maximum Size Allowed'),
'suffix' => $this->_('KB'),
'description' => sprintf($this->_('Enter the maximum size an uploaded video can have.
'
. 'Note: The maximum allowed size of a file that can be uploaded on your server is %s.
'
. 'If needing to have the limit increased, please contact your hosting provider.'), $maximumFileUploadSize),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'media_upload',
'id' => 'embedded_code',
'element' => 'checkbox',
'label' => $this->_('Allow Embedded Code'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow adding remote videos using embedded code.
'
. 'Eg: For YouTube use the code provided by accessing "share" -> "embed" on any youtube video.'),
),
/**
* ++++++++++++++
* DIGITAL DOWNLOADS SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'digital_downloads',
'id' => 'digital_downloads_max',
'element' => 'text',
'label' => $this->_('Digital Downloads'),
'description' => $this->_('Enter the maximum number of downloadable files that can be added to a listing.
'
. 'Important: To disable this feature, enter 0 in the above field.'),
'required' => true,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'digital_downloads',
'id' => 'digital_downloads_folder',
'element' => 'text',
'label' => $this->_('Digital Downloads Folder'),
'description' => $translate->_('Please enter a folder relative to your document root, where the files will be stored.
'
. 'Your document root path is:') . ' ' . $basePath,
'attributes' => array(
'class' => 'form-control input-medium',
),
),
array(
'form_id' => 'digital_downloads',
'id' => 'digital_downloads_size',
'element' => 'text',
'label' => $this->_('Maximum Size Allowed'),
'suffix' => $this->_('KB'),
'description' => sprintf($this->_('Enter the maximum size an uploaded file can have.
'
. 'Note: The maximum allowed size of a file that can be uploaded on your server is %s.
'
. 'If needing to have the limit increased, please contact your hosting provider.'), $maximumFileUploadSize),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-small',
),
),
array(
'form_id' => 'digital_downloads',
'id' => 'digital_downloads_disclaimer',
'element' => 'textarea',
'label' => $this->_('Downloads Disclaimer'),
'description' => $this->_('Enter a disclaimer paragraph which will be shown to users that will be downloading files from the website before proceeding with the download.'),
'validators' => array(
'NoHtml',
),
'attributes' => array(
'rows' => '6',
'class' => 'form-control',
),
),
/**
* ++++++++++++++
* SALE TRANSACTION FEE REFUNDS
* ++++++++++++++
*/
array(
'form_id' => 'sale_fee_refunds',
'id' => 'enable_sale_fee_refunds',
'element' => 'checkbox',
'label' => $this->_('Enable Sale Transaction Fee Refunds'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish to allow your users to request refunds for sale transaction fees.
'
. 'The refunded amounts will be credited to the site account balances of the users.'),
),
array(
'form_id' => 'sale_fee_refunds',
'id' => 'sale_fee_refunds_range',
'element' => '\Ppb\Form\Element\Range',
'label' => $this->_('Interval'),
'description' => $this->_('Enter the interval when the payer is able to request a refund for a sale transaction fee, or leave both fields empty if you don\'t want to set an interval.'),
'suffix' => $this->_('days'),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
/**
* ++++++++++++++
* SOCIAL NETWORK LINKS
* ++++++++++++++
*/
array(
'form_id' => 'social_network_links',
'id' => 'enable_social_network_links',
'element' => 'checkbox',
'label' => $this->_('Enable Social Network Links'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish for social network links to be enabled throughout your website.'),
),
/**
* ++++++++++++++
* COOKIE USAGE CONFIRMATION
* ++++++++++++++
*/
array(
'form_id' => 'cookie_usage',
'id' => 'enable_cookie_usage_confirmation',
'element' => 'checkbox',
'label' => $this->_('Enable Cookie Usage Confirmation'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the cookie usage confirmation option.
'
. 'If this feature is enabled, users will be notified that the site uses cookies and will need to agree in order to hide the message.'),
),
array(
'form_id' => 'cookie_usage',
'id' => 'cookie_usage_message',
'element' => 'textarea',
'label' => $this->_('Cookie Usage Confirmation Message'),
'description' => $this->_('Enter the cookie confirmation message that will be displayed.'),
'required' => ($this->getData('enable_cookie_usage_confirmation')) ? true : false,
'attributes' => array(
'rows' => '3',
'class' => 'form-control',
),
),
/**
* ++++++++++++++
* GOOGLE RECAPTCHA
* ++++++++++++++
*/
array(
'form_id' => 'google_recaptcha',
'id' => 'enable_recaptcha',
'element' => 'checkbox',
'label' => $this->_('Enable reCAPTCHA'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the Google reCAPTCHA plugin.
'
. 'To enable the plugin for your site, you will need to create an account '
. 'here.'),
),
array(
'form_id' => 'google_recaptcha',
'id' => 'recaptcha_public_key',
'element' => 'text',
'label' => $this->_('reCAPTCHA Public Key'),
'required' => ($this->getData('enable_recaptcha')) ? true : false,
'validators' => array(
'NoHtml',
),
'attributes' => array(
'class' => 'form-control input-xlarge',
),
),
array(
'form_id' => 'google_recaptcha',
'id' => 'recaptcha_private_key',
'element' => 'text',
'label' => $this->_('reCAPTCHA Private Key'),
'required' => ($this->getData('enable_recaptcha')) ? true : false,
'validators' => array(
'NoHtml',
),
'attributes' => array(
'class' => 'form-control input-xlarge',
),
),
array(
'form_id' => 'google_recaptcha',
'subtitle' => $this->_('reCAPTCHA Usage'),
'id' => 'recaptcha_registration',
'element' => 'checkbox',
'label' => $this->_('Registration Process'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable reCAPTCHA for the registration process.'),
),
array(
'form_id' => 'google_recaptcha',
'id' => 'recaptcha_contact_us',
'element' => 'checkbox',
'label' => $this->_('Contact Us Page'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable reCAPTCHA for the contact us page.'),
),
array(
'form_id' => 'google_recaptcha',
'id' => 'recaptcha_email_friend',
'element' => 'checkbox',
'label' => $this->_('Email Listing to Friend Page'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable reCAPTCHA for the email listing to friend page.'),
),
/**
* ++++++++++++++
* BCC EMAILS TO ADMIN
* ++++++++++++++
*/
array(
'form_id' => 'bcc_emails',
'id' => 'bcc_emails',
'element' => 'checkbox',
'label' => $this->_('Enable BCC Emails to Admin'),
'multiOptions' => array(
1 => null,
),
'description' => sprintf(
$this->_('Check the above checkbox in order for emails sent between site users, together with sale notification emails to be sent '
. 'to the main admin email address as well (%s).'), $settings['admin_email']),
),
/**
* ++++++++++++++
* RECENTLY VIEWED LISTINGS BOX
* ++++++++++++++
*/
array(
'form_id' => 'recently_viewed_listings',
'id' => 'enable_recently_viewed_listings',
'element' => 'checkbox',
'label' => $this->_('Enable Recently Viewed Listings Box'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the recently viewed listings box, which will appear for users '
. 'by default in the footer of your website.'),
),
array(
'form_id' => 'recently_viewed_listings',
'id' => 'enable_recently_viewed_listings_expiration',
'element' => 'text',
'label' => $this->_('Expiration Time'),
'suffix' => $this->_('hours'),
'description' => $this->_('Enter the number of hours after a listing will be removed from the recently viewed table.'),
'required' => $this->getData('enable_recently_viewed_listings') ? true : false,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
/**
* ++++++++++++++
* BULK LISTER
* ++++++++++++++
*/
array(
'form_id' => 'bulk_lister',
'id' => 'enable_bulk_lister',
'element' => 'checkbox',
'label' => $this->_('Enable Bulk Lister'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the bulk lister tool. The bulk lister will parse CSV files.'),
),
/**
* ++++++++++++++
* NEWSLETTER SUBSCRIPTION BOX
* ++++++++++++++
*/
array(
'form_id' => 'newsletter_subscription_box',
'id' => 'newsletter_subscription_box',
'element' => 'checkbox',
'label' => $this->_('Enable Newsletter Subscription Box'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the newsletter subscription box from the footer.'),
),
/**
* ++++++++++++++
* ADULT CATEGORIES
* ++++++++++++++
*/
array(
'form_id' => 'adult_categories',
'id' => 'enable_adult_categories',
'element' => 'checkbox',
'label' => $this->_('Enable Adult Categories'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the adult categories module.'),
),
array(
'form_id' => 'adult_categories',
'id' => 'adult_categories_splash_page',
'element' => 'checkbox',
'label' => $this->_('Splash Page Custom Content'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you wish to use custom content for the adult categories splash page.'),
'attributes' => array(
'class' => 'field-changeable',
),
'bodyCode' => "
"
),
array(
'form_id' => 'adult_categories',
'id' => 'adult_categories_splash_page_content',
'element' => '\\Ppb\\Form\\Element\\Wysiwyg',
'label' => $this->_('Custom Content'),
'description' => $this->_('Enter the custom content that will be displayed on the adult categories splash page.'),
'required' => ($this->getData('adult_categories_splash_page')) ? true : false,
'attributes' => array(
'rows' => '12',
'class' => 'form-control',
),
),
/**
* ++++++++++++++
* AUCTIONS SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'auctions_settings',
'id' => 'enable_auctions',
'element' => 'checkbox',
'label' => $this->_('Enable Auctions'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the listing of auctions on your website.'),
'required' => (!$settings['enable_products']) ? true : false,
),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Auctions Editing Time Limit'),
'id' => 'auctions_editing_hours',
'element' => 'text',
'label' => $this->_('Time Limit'),
'suffix' => $this->_('hours'),
'description' => $this->_('If the remaining duration of an auction will be less than the above set time limit, the seller will not be allowed to edit it.'),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Auctions Sniping Feature'),
'id' => 'enable_auctions_sniping',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If this feature is enabled, the duration of an auction will be extended if a bid is placed when the auction is about to close. '),
),
array(
'form_id' => 'auctions_settings',
'id' => 'auctions_sniping_minutes',
'element' => 'text',
'label' => $this->_('Sniping Duration'),
'suffix' => $this->_('minutes'),
'description' => $this->_('If the remaining duration of an auction will be less than the above set duration, the time will be extended to the above setting.'),
'required' => $this->getData('enable_auctions_sniping') ? true : false,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Bid Retraction'),
'id' => 'enable_bid_retraction',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox in order to allow bidders to retract their bids from auctions.'),
),
array(
'form_id' => 'auctions_settings',
'id' => 'bid_retraction_hours',
'element' => 'text',
'label' => $this->_('Bid Retraction Limit'),
'suffix' => $this->_('hours'),
'description' => $this->_('Enter the minimum required time left on an auction for the bid retraction feature to be allowed.'),
'required' => $this->getData('enable_auctions_sniping') ? true : false,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Change Auction Duration when a Bid is Placed'),
'id' => 'enable_change_duration',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox if you want for the auction duration to be changed after the first bid has been placed.'),
),
array(
'form_id' => 'auctions_settings',
'id' => 'change_duration_days',
'element' => 'text',
'label' => $this->_('New Duration'),
'suffix' => $this->_('days'),
'description' => $this->_('If the duration left on the auction is over the value above, then it will be automatically reset to the value above.'),
'required' => $this->getData('enable_change_duration') ? true : false,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
// array(
// 'form_id' => 'auctions_settings',
// 'subtitle' => $this->_('Second Chance Purchasing'),
// 'id' => 'second_chance_purchasing',
// 'element' => 'checkbox',
// 'label' => $this->_('Enable Feature'),
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => $this->_('With second chance purchasing, sellers will be able to manually select a winner if the '
// . 'automatically appointed winner didn\'t complete the purchase.
'
// . 'Important: This feature will be available for standard auctions not marked as paid only.'),
// ),
// array(
// 'form_id' => 'auctions_settings',
// 'id' => 'second_chance_purchasing_days',
// 'element' => 'text',
// 'label' => $this->_('Enter Interval'),
// 'suffix' => 'days',
// 'description' => $this->_('You can set a number of days after which the "Second Chance" feature will become available '
// . 'for sold items, or enter 0 if you wish for this feature to be available right away.'),
// 'validators' => array(
// 'Digits',
// ),
// 'attributes' => array(
// 'class' => 'form-control input-mini',
// ),
// ),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Close Auctions Before End Time'),
'id' => 'close_auctions_end_time',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If this setting is enabled, sellers will be able to close their auctions early even if there is a high bid placed.
'
. 'By default, auctions can be closed ahead of the closing date only if there are no bids or if the high bid is '
. 'lower than the reserve price.'),
),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Proxy Bidding'),
'id' => 'proxy_bidding',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If this setting is enabled, bidders will be able to place a maximum bid on an auction, but the active bid set will be the '
. 'minimum amount required for them to be high bidders.
'
. 'Click here for more information on this feature.'),
),
array(
'form_id' => 'auctions_settings',
'subtitle' => $this->_('Limit Number of Bids / Offers per User'),
'id' => 'enable_limit_bids',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If you enable this feature, your sellers will be able to limit the number of bids and/or offers a bidder can '
. 'place on an auction (proxy bids are not taken into consideration).'),
),
/**
* ++++++++++++++
* PRODUCTS SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'products_settings',
'id' => 'enable_products',
'element' => 'checkbox',
'label' => $this->_('Enable Products'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the listing of products (items with fixed price) on your website.'),
'required' => (!$settings['enable_auctions']) ? true : false,
),
array(
'form_id' => 'products_settings',
'subtitle' => $this->_('Unlimited Duration'),
'id' => 'enable_unlimited_duration',
'element' => 'checkbox',
'label' => $this->_('Enable Unlimited Duration'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If unlimited duration is enabled, sellers will be able to list products without a closing date.'),
),
array(
'form_id' => 'products_settings',
'id' => 'force_unlimited_duration',
'element' => 'checkbox',
'label' => $this->_('Force Unlimited Duration'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('With this option enabled, sellers will only be able to list products with no closing date.'),
),
array(
'form_id' => 'products_settings',
'subtitle' => $this->_('Shopping Cart'),
'id' => 'enable_shopping_cart',
'element' => 'checkbox',
'label' => $this->_('Enable Shopping Cart'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the shopping cart feature.'),
),
array(
'form_id' => 'products_settings',
'id' => 'shopping_cart_applies',
'element' => 'radio',
'label' => $this->_('Shopping Cart Applies'),
'multiOptions' => array(
'global' => array(
$translate->_('Globally'),
$translate->_('The shopping cart will be used for all products listed on the site.'),
),
'store_owners' => array(
$translate->_('Store Owners'),
$translate->_('The shopping cart will be used for products listed by store owners only.')
),
'store_listings' => array(
$translate->_('Store Listings'),
$translate->_('The shopping cart will be used only for products listed in stores.'),
),
),
'description' => $this->_('Select when the shopping cart module will be used.'),
),
array(
'form_id' => 'products_settings',
'id' => 'pending_sales_listings_expire_hours',
'element' => 'text',
'label' => $this->_('Reserve Stock'),
// 'prefix' => $this->_('after'),
'suffix' => $this->_('minutes'),
'description' => $this->_('Enter the duration for which products added in a shopping cart have their stock reserved, or leave empty to disable this feature.'),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'products_settings',
'subtitle' => $this->_('Force Payment'),
'id' => ($settings['enable_products']) ? 'enable_force_payment' : false,
'element' => 'checkbox',
'label' => $this->_('Enable Force Payment'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If enabled, a sale will be completed only when the sale is marked as paid.'),
),
array(
'form_id' => 'products_settings',
'id' => 'force_payment_limit',
'element' => 'text',
'label' => $this->_('Force Payment Time Limit'),
'suffix' => $this->_('minutes'),
'description' => $this->_('Enter the time limit after which unpaid sales are reverted.'),
'required' => true,
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
/**
* ++++++++++++++
* BUY OUT FEATURE
* ++++++++++++++
*/
array(
'form_id' => 'buy_out',
'id' => 'enable_buyout',
'element' => 'checkbox',
'label' => $this->_('Enable Buy Out'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable buy out feature for auctions.'),
'required' => (!$settings['enable_auctions'] && !$settings['enable_make_offer']) ? true : false,
),
array(
'form_id' => 'buy_out',
'id' => 'always_show_buyout',
'element' => 'checkbox',
'label' => $this->_('Always Show Buy Out Button'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('If this setting is enabled, when listing an auction with buy out enabled, the option will remain active even if there are bids above the reserve price posted.'),
),
/**
* ++++++++++++++
* MAKE OFFER FEATURE
* ++++++++++++++
*/
array(
'form_id' => 'make_offer',
'id' => 'enable_make_offer',
'element' => 'checkbox',
'label' => $this->_('Enable Make Offer'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the make offer feature for auctions and products.'),
),
array(
'form_id' => 'make_offer',
'id' => 'show_make_offer_ranges',
'element' => 'checkbox',
'label' => $this->_('Show Offer Ranges'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('With this option enabled, the allowed offer ranges set by the seller will be displayed on the listing details page.'),
),
/**
* ++++++++++++++
* ITEMS SWAPPING FEATURE
* ++++++++++++++
*/
array(
'form_id' => 'items_swapping',
'id' => 'enable_swap',
'element' => 'checkbox',
'label' => $this->_('Enable Items Swapping Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the items swapping feature for auctions and products.'),
),
/**
* ++++++++++++++
* SHIPPING SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'shipping_settings',
'id' => 'enable_shipping',
'element' => 'checkbox',
'label' => $this->_('Enable Shipping Module'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the shipping module on the site.'),
'attributes' => array(
'id' => 'enable_shipping',
'onclick' => 'javascript:checkShippingFields();',
),
'bodyCode' => "
",
),
array(
'form_id' => 'shipping_settings',
'id' => 'enable_pickups',
'element' => 'checkbox',
'label' => $this->_('Enable Pick-ups Option'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow sellers to enable the pick-up option for their items.'),
'attributes' => array(
'class' => 'shipping-options',
),
),
array(
'form_id' => 'shipping_settings',
'id' => 'enable_returns',
'element' => 'checkbox',
'label' => $this->_('Enable Returns Option'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow sellers to specify a returns policy for their items.'),
'attributes' => array(
'class' => 'shipping-options',
),
),
/**
* ++++++++++++++
* AUTO RELISTS SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'auto_relists',
'id' => 'auto_relist',
'element' => 'checkbox',
'label' => $this->_('Enable Auto Relists'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the auto relists feature.'),
),
array(
'form_id' => 'auto_relists',
'id' => 'max_auto_relists',
'element' => 'text',
'label' => $this->_('Maximum Auto Relists Allowed'),
'description' => $this->_('Enter the maximum number of auto relists that can be entered when a listing is created.'),
'validators' => array(
'Digits',
),
'attributes' => array(
'class' => 'form-control input-mini',
),
),
array(
'form_id' => 'auto_relists',
'id' => 'relist_method',
'element' => 'select',
'label' => $this->_('Relist Method'),
'description' => $this->_('Select the method of relisting that will be applied for your listings:
'
. '- New: a new record will be created, and the old listing will be marked deleted
'
. '- Same: the same listing will be re-opened, and any sales, bids etc will be removed'),
'multiOptions' => array(
'new' => 'New',
'same' => 'Same',
),
'attributes' => array(
'class' => 'form-control input-small',
),
),
/**
* ++++++++++++++
* MARKED DELETED LISTINGS REMOVAL
* ++++++++++++++
*/
array(
'form_id' => 'marked_deleted',
'id' => 'marked_deleted_listings_removal',
'element' => 'checkbox',
'label' => $this->_('Automatic Marked Deleted Listings Removal'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the automatic removal of marked deleted listings.
'
. 'Note: The process will be run using the cron service.'),
),
/**
* ++++++++++++++
* CLOSED LISTINGS DELETION
* ++++++++++++++
*/
array(
'form_id' => 'closed_listings_deletion',
'id' => 'closed_listings_deletion_days',
'element' => 'text',
'label' => $this->_('Closed Listings Deletion'),
'suffix' => $this->_('days'),
'description' => $this->_('Enter a duration in days after which closed listings should be automatically marked deleted, or leave empty to disable this feature.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
),
/**
* ++++++++++++++
* USERS MESSAGING
* ++++++++++++++
*/
array(
'form_id' => 'users_messaging',
'id' => 'enable_messaging',
'element' => 'checkbox',
'label' => $this->_('Enable Messaging'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the users messaging module.
'
. 'Note: All messages sent through the site can be read/managed by the administrator from the Tools -> Messages page.'),
),
array(
'form_id' => 'users_messaging',
'id' => 'enable_public_questions',
'element' => 'checkbox',
'label' => $this->_('Enable Public Questions'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('To enable the posting of public questions on listings, you can check the checkbox above.
'
. 'By default, only private questions on listings will be allowed.'),
),
/**
* ++++++++++++++
* ADDITIONAL CATEGORY LISTING
* ++++++++++++++
*/
array(
'form_id' => 'additional_category_listing',
'id' => 'addl_category_listing',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the listing of items in an additional category.'),
),
/**
* ++++++++++++++
* LISTINGS COUNTERS
* ++++++++++++++
*/
array(
'form_id' => 'listings_counters',
'id' => 'category_counters',
'element' => 'checkbox',
'label' => $this->_('Category Counters'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the display of category counters on selected pages.
'
. 'Counters are updated only using the cron job. If they are out of sync, please use the initialization tool below.'),
),
// array(
// 'form_id' => 'listings_counters',
// 'id' => 'search_counters',
// 'element' => 'checkbox',
// 'label' => $this->_('Search Filter Counters'),
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => $this->_('Check the above checkbox to enable the display of listings counters on the search browse pages. The counters will '
// . 'display for categories and any custom fields for which this setting can be applied.
'
// . 'Important: This functionality may increase your server load on larger sites, VPS or dedicated hosting is highly recommended.'),
// ),
array(
'form_id' => 'listings_counters',
'id' => 'hide_empty_categories',
'element' => 'checkbox',
'label' => $this->_('Hide Empty Categories/Options'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to hide categories or filtering options that do not contain any listings.'),
),
array(
'form_id' => 'listings_counters',
'id' => 'init_category_counters',
'element' => 'button',
'label' => $this->_('Initialize Counters'),
'value' => $this->_('Initialize'),
'description' => sprintf(
$translate->_('Click on the button above to initialize your site\'s category counters.'
. 'There are a total of %s listings to be counted.
'), $totalListings)
. '',
'attributes' => array(
'class' => 'btn btn-default',
),
),
/**
* ++++++++++++++
* LISTINGS TERMS & CONDITIONS BOX
* ++++++++++++++
*/
array(
'form_id' => 'listing_terms_box',
'id' => 'listing_terms_box',
'element' => 'checkbox',
'label' => $this->_('Show Listing Terms & Conditions Box'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to display the listing terms and conditions box on the listing setup process.'),
),
array(
'form_id' => 'listing_terms_box',
'id' => 'listing_terms_content',
'element' => 'textarea',
'label' => $this->_('Content'),
'description' => $this->_('Enter the terms and conditions that will be displayed in the box.'),
'validators' => array(
'NoHtml',
),
'attributes' => array(
'rows' => '12',
'class' => 'form-control',
),
),
/**
* ++++++++++++++
* USERS PHONE NUMBERS ON SUCCESSFUL SALES
* ++++++++++++++
*/
array(
'form_id' => 'user_phone_numbers',
'id' => 'sale_phone_numbers',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to show the phone numbers of users when displaying their full addresses.'),
),
/**
* ++++++++++++++
* SELLER'S OTHER ITEMS BOX
* ++++++++++++++
*/
array(
'form_id' => 'other_items_seller',
'id' => 'other_items_seller',
'element' => 'checkbox',
'label' => $this->_('Enable Feature'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the display of the other items from the seller box on the listing details pages.'),
),
// /**
// * ++++++++++++++
// * REVERSE AUCTIONS
// * ++++++++++++++
// */
// array(
// 'form_id' => 'reverse_auctions_settings',
// 'id' => 'enable_reverse_auctions',
// 'element' => 'checkbox',
// 'label' => 'Enable Reverse Auctions',
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => 'Check the above checkbox to display the listing of reverse auctions on your website.
// Explanation
// In a reverse auction, the roles of the buyer and seller are inversed.
// Sellers can make a single bid on a reverse auction, the bid amount however can be edited at any time until the auction closes.
// After the auction has closed, the buyer will manually award the winning bid.',
// ),
// /**
// * ++++++++++++++
// * WANTED ADS
// * ++++++++++++++
// */
// array(
// 'form_id' => 'wanted_ads_settings',
// 'id' => 'enable_wanted_ads',
// 'element' => 'checkbox',
// 'label' => 'Enable Wanted Ads',
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => 'Check the above checkbox to display the listing of wanted ads on your website.',
// ),
// /**
// * ++++++++++++++
// * FIRST BIDDER AUCTIONS
// * ++++++++++++++
// */
// array(
// 'form_id' => 'first_bidder_auctions_settings',
// 'id' => 'enable_first_bidder_auctions',
// 'element' => 'checkbox',
// 'label' => 'Enable First Bidder Auctions',
// 'multiOptions' => array(
// 1 => null,
// ),
// 'description' => 'Check the above checkbox to display the listing of first bidder auctions on your website.
// Explanation
// In a first bidder auction, the bid decreases automatically periodically, with an amount set by the poster.
// The first user who bids on the auction will win. Users can only bid the current active bid amount, which is set automatically.',
// ),
/**
* ++++++++++++++
* STORES SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'stores_settings',
'id' => 'enable_stores',
'element' => 'checkbox',
'label' => $this->_('Enable Stores'),
'multiOptions' => array(
1 => null,
),
'disabled' => ($settings['enable_products']) ? false : true,
'description' => $this->_('Check the above checkbox to enable the stores module on your website.
'
. 'Important: Only products can be listed in store. If the listing of products is disabled, stores will be disabled as well.'),
),
array(
'form_id' => 'stores_settings',
'id' => 'hide_empty_stores',
'element' => 'checkbox',
'label' => $this->_('Hide Empty Stores'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox in order for stores with no items to be hidden when accessing the stores browse page.'),
),
array(
'form_id' => 'stores_settings',
'id' => 'store_only_mode',
'element' => 'checkbox',
'label' => $this->_('Enable Store Only Mode'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable the store only mode functionality.
'
. 'With this mode enabled, users will need to open a store in order to be able to list items.'),
),
array(
'form_id' => 'stores_settings',
'id' => 'custom_stores_categories',
'element' => 'checkbox',
'label' => $this->_('Custom Stores Categories'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable allow your users to create their own custom categories.'),
),
array(
'form_id' => 'stores_settings',
'id' => 'enable_auctions_in_stores',
'element' => 'checkbox',
'label' => $this->_('Allow Auctions in Stores'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow your users to list auctions in their stores. '
. 'By default, only products can be listed in stores.'),
),
array(
'form_id' => 'stores_settings',
'id' => 'stores_force_list_in_both',
'element' => 'checkbox',
'label' => $this->_('Disable List In Select Box'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to disable the "List In" selector. '
. 'All listings in this case will be listed in both the site and store.'),
),
array(
'form_id' => 'stores_settings',
'id' => 'force_stores',
'element' => 'text',
'label' => $this->_('Force Stores'),
'suffix' => $this->_('listings'),
'description' => $this->_('Enter a number of listings that a seller is allowed to list before being required to open a store, or leave empty to disable this feature.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
),
/**
* ++++++++++++++
* TAX SETTINGS
* ++++++++++++++
*/
array(
'form_id' => 'tax_settings',
'id' => 'enable_tax_fees',
'element' => 'checkbox',
'label' => $this->_('Enable Tax on Site Fees'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to enable tax for site fees.'),
),
array(
'form_id' => 'tax_settings',
'id' => 'tax_fees_type',
'element' => 'select',
'label' => $this->_('Tax Type'),
'description' => $this->_('Select the tax that will be applied for site fees.'),
'multiOptions' => $this->getTaxTypes()->getMultiOptions(),
'attributes' => array(
'class' => 'form-control input-large',
),
),
array(
'form_id' => 'tax_settings',
'id' => 'enable_tax_listings',
'element' => 'checkbox',
'label' => $this->_('Allow Sellers to Apply Tax'),
'multiOptions' => array(
1 => null,
),
'description' => $this->_('Check the above checkbox to allow sellers to apply tax on their listings.'),
),
/**
* --------------
* SITE FEES MANAGEMENT
* --------------
*/
array(
'form_id' => 'fees_category',
'id' => 'category_id',
'element' => 'select',
'label' => $this->_('Select Category'),
'multiOptions' => $this->getCategories()->getMultiOptions("parent_id IS NULL AND custom_fees='1'", null,
$translate->_('Default')),
'attributes' => array(
'class' => 'form-control input-medium',
'id' => 'category-selector',
),
'bodyCode' => "
",
),
/**
* ++++++++++++++
* USER SIGN-UP
* ++++++++++++++
*/
array(
'form_id' => 'signup',
'id' => Fees::SIGNUP,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('User Signup Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter an amount in the box above if you wish to charge your users for signing up on the site.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* SALE FEE PAYER RADIO BUTTON
* ++++++++++++++
*/
array(
'form_id' => 'sale',
'id' => 'sale_fee_payer',
'element' => 'radio',
'label' => $this->_('Paid By'),
'multiOptions' => array(
'buyer' => array(
$translate->_('Buyer'),
),
'seller' => array(
$translate->_('Seller'),
),
),
'description' => $this->_('Select which party would pay for the sale transaction fee.'),
),
/**
* ++++++++++++++
* TIERS FEES TABLES
* ++++++++++++++
*/
array(
'form_id' => 'tiers',
'id' => 'id',
'element' => 'hidden',
'multiple' => true,
),
array(
'form_id' => 'tiers',
'id' => 'delete',
'element' => 'checkbox',
'multiple' => true,
),
array(
'form_id' => 'tiers',
'id' => 'amount',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Fee Amount'),
'multiple' => true,
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(// 'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'tiers',
'id' => 'calculation_type',
'element' => 'select',
'label' => $this->_('Calculation Type'),
'multiple' => true,
'multiOptions' => array(
'flat' => $settings['currency'],
'percent' => '%',
),
'attributes' => array(
'class' => 'form-control input-small',
'size' => 1,
),
),
array(
'form_id' => 'tiers',
'id' => 'tier_from',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Range From'),
'multiple' => true,
'prefix' => $settings['currency'],
'attributes' => array(
'class' => 'form-control input-small',
),
'validators' => array(// 'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'tiers',
'id' => 'tier_to',
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Range To'),
'multiple' => true,
'prefix' => $settings['currency'],
'attributes' => array(
'class' => 'form-control input-small',
),
'validators' => array(// 'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* HOME PAGE FEATURED LISTINGS
* ++++++++++++++
*/
array(
'form_id' => 'hpfeat',
'id' => Fees::HPFEAT,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Home Page Featured Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when listing home page featured items.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* CATEGORY PAGES FEATURED LISTINGS
* ++++++++++++++
*/
array(
'form_id' => 'catfeat',
'id' => Fees::CATFEAT,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Category Pages Featured Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when listing category pages featured items.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* HIGHLIGHTED LISTINGS
* ++++++++++++++
*/
array(
'form_id' => 'highlighted',
'id' => Fees::HIGHLIGHTED,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Highlighted Listing Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when enabling the highlighted listing feature.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* LISTING SUBTITLE
* ++++++++++++++
*/
array(
'form_id' => 'subtitle',
'id' => Fees::SUBTITLE,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Listing Subtitle Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when adding a subtitle for a listing.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* LISTING IMAGES
* ++++++++++++++
*/
array(
'form_id' => 'images',
'id' => Fees::IMAGES,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Images Upload Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will be charged for each image uploaded with a listing.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'images',
'id' => Fees::NB_FREE_IMAGES,
'element' => 'text',
'label' => $this->_('Free Images'),
'description' => $this->_('Enter the number of free images that can be uploaded with a listing.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
'filters' => array(
'Digits',
),
),
/**
* ++++++++++++++
* MEDIA UPLOAD
* ++++++++++++++
*/
array(
'form_id' => 'media',
'id' => Fees::MEDIA,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Media Upload Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when adding media to a listing.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'media',
'id' => Fees::NB_FREE_MEDIA,
'element' => 'text',
'label' => $this->_('Free Media Items'),
'description' => $this->_('Enter the number of free media items that can be uploaded with a listing.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
'filters' => array(
'Digits',
),
),
/**
* ++++++++++++++
* DIGITAL DOWNLOADS
* ++++++++++++++
*/
array(
'form_id' => 'digital_downloads_fee',
'id' => Fees::DIGITAL_DOWNLOADS,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Digital Downloads Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when creating a listing having digital download option enabled.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
array(
'form_id' => 'digital_downloads_fee',
'id' => Fees::NB_FREE_DOWNLOADS,
'element' => 'text',
'label' => $this->_('Free Digital Downloads'),
'description' => $this->_('Enter the number of free digital downloads that can be uploaded with a listing.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Digits',
),
'filters' => array(
'Digits',
),
),
/**
* ++++++++++++++
* ADDITIONAL CATEGORY LISTING
* ++++++++++++++
*/
array(
'form_id' => 'addl_category',
'id' => Fees::ADDL_CATEGORY,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Additional Category Listing Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when listing an item in more than one category.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* BUY OUT FEE
* ++++++++++++++
*/
array(
'form_id' => 'buyout',
'id' => Fees::BUYOUT,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Buy Out Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when listing an item with buy out enabled.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* RESERVE PRICE FEE
* ++++++++++++++
*/
array(
'form_id' => 'reserve_price',
'id' => Fees::RESERVE,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Reserve Price Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when enabling reserve price on an auction.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
/**
* ++++++++++++++
* MAKE OFFER FEE
* ++++++++++++++
*/
array(
'form_id' => 'make_offer_fee',
'id' => Fees::MAKE_OFFER,
'element' => '\\Ppb\\Form\\Element\\LocalizedNumeric',
'label' => $this->_('Make Offer Fee'),
'prefix' => $settings['currency'],
'description' => $this->_('Enter a fee that will apply when listing an item with make offer enabled.'),
'attributes' => array(
'class' => 'form-control input-mini',
),
'validators' => array(
'Numeric',
),
'filters' => array(
'\\Ppb\\Filter\\LocalizedNumeric',
),
),
);
}
protected function _cachingEngineMultiOptions()
{
$translate = $this->getTranslate();
$result = array(
'' => array(
$translate->_('Off'),
$translate->_('Disables the caching engine. Metadata caching will still be enabled, using the Files adapter.')
),
'Files' => array(
$translate->_('Files'),
$translate->_('Uses static files for caching.')
),
'Table' => array(
$translate->_('Table'),
$translate->_('Uses the database for caching (slower than the Files adapter).'),
),
);
$result['Memcache'] = array(
$translate->_('Memcache'),
);
if (!CacheAdapter\Memcache::enabled()) {
$result['Memcache'][] = '' . $translate->_('Memcache is not available on your server. Please contact your server admin for information on how to enable the module.') . '';
$result['Memcache'][] = array(
'disabled' => 'disabled'
);
}
else {
$result['Memcache'][] = $translate->_('Uses the memcache module for caching (recommended).');
}
if (CacheAdapter\Apc::enabled()) {
$result['Apc'] = array(
$translate->_('Apc'),
$translate->_('Uses the Alternative PHP Cache (APC) module for caching.'),
);
}
return $result;
}
}