Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
This commit is contained in:
commit
eb19d461fe
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
require_once 'customvalidators/ConditionalNotEmpty.php';
|
||||||
|
|
||||||
class Application_Form_SoundcloudPreferences extends Zend_Form_SubForm
|
class Application_Form_SoundcloudPreferences extends Zend_Form_SubForm
|
||||||
{
|
{
|
||||||
|
@ -43,12 +44,19 @@ class Application_Form_SoundcloudPreferences extends Zend_Form_SubForm
|
||||||
$this->addElement('text', 'SoundCloudUser', array(
|
$this->addElement('text', 'SoundCloudUser', array(
|
||||||
'class' => 'input_text',
|
'class' => 'input_text',
|
||||||
'label' => 'SoundCloud Email',
|
'label' => 'SoundCloud Email',
|
||||||
'required' => true,
|
|
||||||
'filters' => array('StringTrim'),
|
'filters' => array('StringTrim'),
|
||||||
'autocomplete' => 'off',
|
'autocomplete' => 'off',
|
||||||
'value' => Application_Model_Preference::GetSoundCloudUser(),
|
'value' => Application_Model_Preference::GetSoundCloudUser(),
|
||||||
'decorators' => array(
|
'decorators' => array(
|
||||||
'ViewHelper'
|
'ViewHelper'
|
||||||
|
),
|
||||||
|
|
||||||
|
// By default, 'allowEmpty' is true. This means that our custom
|
||||||
|
// validators are going to be skipped if this field is empty,
|
||||||
|
// which is something we don't want
|
||||||
|
'allowEmpty' => false,
|
||||||
|
'validators' => array(
|
||||||
|
new ConditionalNotEmpty(array('UploadToSoundcloudOption'=>'1'))
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -56,12 +64,19 @@ class Application_Form_SoundcloudPreferences extends Zend_Form_SubForm
|
||||||
$this->addElement('password', 'SoundCloudPassword', array(
|
$this->addElement('password', 'SoundCloudPassword', array(
|
||||||
'class' => 'input_text',
|
'class' => 'input_text',
|
||||||
'label' => 'SoundCloud Password',
|
'label' => 'SoundCloud Password',
|
||||||
'required' => true,
|
|
||||||
'filters' => array('StringTrim'),
|
'filters' => array('StringTrim'),
|
||||||
'autocomplete' => 'off',
|
'autocomplete' => 'off',
|
||||||
'value' => Application_Model_Preference::GetSoundCloudPassword(),
|
'value' => Application_Model_Preference::GetSoundCloudPassword(),
|
||||||
'decorators' => array(
|
'decorators' => array(
|
||||||
'ViewHelper'
|
'ViewHelper'
|
||||||
|
),
|
||||||
|
|
||||||
|
// By default, 'allowEmpty' is true. This means that our custom
|
||||||
|
// validators are going to be skipped if this field is empty,
|
||||||
|
// which is something we don't want
|
||||||
|
'allowEmpty' => false,
|
||||||
|
'validators' => array(
|
||||||
|
new ConditionalNotEmpty(array('UploadToSoundcloudOption'=>'1'))
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a field is empty but only when specific fields have specific values
|
||||||
|
*/
|
||||||
|
class ConditionalNotEmpty extends Zend_Validate_Abstract {
|
||||||
|
|
||||||
|
const KEY_IS_EMPTY = 'keyIsEmpty';
|
||||||
|
|
||||||
|
protected $_messageTemplates = array(
|
||||||
|
self::KEY_IS_EMPTY => 'Value is required and can\'t be empty'
|
||||||
|
);
|
||||||
|
|
||||||
|
protected $_fieldValues;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new ConditionalNotEmpty validator.
|
||||||
|
*
|
||||||
|
* @param array $fieldValues - the names and expected values of the fields we're depending on;
|
||||||
|
* E.g., if we have a field that should only be validated when two other
|
||||||
|
* fields PARENT_1 and PARENT_2 have values of '1' and '0' respectively, then
|
||||||
|
* $fieldValues should contain ('PARENT_1'=>'1', 'PARENT_2'=>'0')
|
||||||
|
*/
|
||||||
|
public function __construct($fieldValues)
|
||||||
|
{
|
||||||
|
$this->_fieldValues = $fieldValues;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements Zend_Validate_Abstract.
|
||||||
|
* Given names and expected values of the fields we're depending on ($_fieldValues),
|
||||||
|
* this function returns true if the expected values doesn't match the actual user input,
|
||||||
|
* or if $value is not empty. Returns false otherwise.
|
||||||
|
*
|
||||||
|
* @param String $value - this field's value
|
||||||
|
* @param array $context - names and values of the rest of the fields in this form
|
||||||
|
* @return boolean - true if valid; false otherwise
|
||||||
|
*/
|
||||||
|
public function isValid($value, $context = null)
|
||||||
|
{
|
||||||
|
if ($value != "") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($context)) {
|
||||||
|
foreach($this->_fieldValues as $fieldName=>$fieldValue) {
|
||||||
|
if (!isset($context[$fieldName]) || $context[$fieldName] != $fieldValue) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif (is_string($context)) {
|
||||||
|
if (!isset($context) || $context != $fieldValue) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_error(self::KEY_IS_EMPTY);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -11,5 +11,3 @@ RewriteCond %{REQUEST_FILENAME} -d
|
||||||
RewriteRule ^.*$ - [NC,L]
|
RewriteRule ^.*$ - [NC,L]
|
||||||
RewriteRule ^.*$ index.php [NC,L]
|
RewriteRule ^.*$ index.php [NC,L]
|
||||||
RewriteBase /
|
RewriteBase /
|
||||||
|
|
||||||
SetEnv APPLICATION_ENV development
|
|
||||||
|
|
Loading…
Reference in New Issue