public function testIsValEnabled() { $arr = new NiceArray(); $values = array('on', 'On', 1, '1', 22, 'true', true); foreach ($values as $v) { $arr['prop'] = $v; $this->assertEquals(true, $arr->isValEnabled("prop")); } unset($arr['prop']); $this->assertEquals(false, $arr->isValEnabled("prop")); $values = array(0, 'Off', 'off', 'false', false, '', -1); foreach ($values as $v) { $arr['prop'] = $v; $this->assertEquals(false, $arr->isValEnabled("prop")); } }
public function validatePaySettings($form, &$errors) { $form = new NiceArray($form); $activeMode = $form['mode']; if ($activeMode == TPPaySettings::MODE_OFF) { $storage = new TPStorage(); $ps = $storage->getPaywall($form['resource_id']); $ps->setMode(TPPaySettings::MODE_OFF); return $ps; } else { if ($activeMode != TPPaySettings::MODE_OFF) { if ($activeMode != TPPaySettings::MODE_METERED_LIGHT) { if (empty($form['resource_name'])) { $errors['resource_name'] = "Paywall name must no be empty"; } } if (!is_array($form['tags'])) { $form['tags'] = array(); } $form['tags'] = array_unique($form['tags']); $tags = array(); foreach ($form['tags'] as $tag) { if (term_exists($tag)) { $tags[] = $tag; } else { $errors['tags' . $tag] = "Tag '{$tag}' does not exist."; } } $form['tags'] = $tags; if (count($form['tags']) == 0) { $errors['tags'] = "Tinypass should be configured for at least 1 tag. No tags have been specified!"; } for ($i = 1; $i <= 3; $i++) { if ($form['po_en' . $i] == 0) { unset($form["po_en{$i}"]); unset($form["po_p{$i}"]); unset($form["po_ap{$i}"]); unset($form["po_ap_type{$i}"]); unset($form["po_cap{$i}"]); unset($form["po_st{$i}"]); unset($form["po_et{$i}"]); continue; } $p = $form['po_p' . $i]; if (!TPValidate::validatePrice($p)) { $errors["po_p{$i}"] = _(TPValidate::PRICE_FAILED_MSG); } $ap = $form['po_ap' . $i]; if (!TPValidate::validateAccessPeriod($ap)) { $errors["po_ap{$i}"] = _(TPValidate::ACCESS_PERIOD_FAILED_MSG); } } if ($form['metered'] && $form->isValEnabled('metered')) { if (!TPValidate::validateNumber($form['m_lp'])) { $errors['m_lp'] = _('Lockout period' . TPValidate::NUMBER_FAILED_MSG); } } //validate metered options if ($form['metered'] == 'time') { if (!TPValidate::validateNumber($form['m_tp'])) { $errors['m_tp'] = _('Preview trial period' . TPValidate::NUMBER_FAILED_MSG); } if (!TPValidate::validateNumber($form['m_lp'])) { $errors['m_lp'] = _('Preview lockout period' . TPValidate::NUMBER_FAILED_MSG); } } else { if ($form['metered'] == 'count') { if (!TPValidate::validateNumber($form['m_maa'])) { $errors['m_maa'] = _('Preview number of views' . TPValidate::NUMBER_FAILED_MSG); } if (!TPValidate::validateNumber($form['m_lp'])) { $errors['m_lp'] = _('Preview trial period' . TPValidate::NUMBER_FAILED_MSG); } } } if (isset($form['sub_page']) && $form['sub_page'] != '') { foreach (array('sub_page', 'sub_page_success') as $name) { $sub_path = $form[$name]; $page = get_page_by_path($sub_path, OBJECT, 'page'); if ($page == null) { $errors[$name] = _(esc_js('Could not find valid page for "' . $sub_path . '"')); $form[$name] = ''; } else { $form[$name . "_ref"] = $page->ID; } } if (isset($form['sub_page_ref']) && !isset($form['sub_page_success_ref'])) { $errors['sub_page_success'] = "Confirmation page must be defined if dedicated page is created"; } if (isset($form['sub_page_ref']) && isset($form['sub_page_success_ref'])) { if ($form['sub_page_ref'] == $form['sub_page_success_ref']) { $errors['sub_page_success'] = "Dedicated sign page and confirmation page must be different"; } } } } } $ps = new TPPaySettings($form->toArray()); return $ps; }