Beispiel #1
0
 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;
 }