public function paramRules() { if (Yii::app()->isInSession) { $credOptsDict = Credentials::getCredentialOptions(null, true); $credOpts = $credOptsDict['credentials']; $selectedOpt = $credOptsDict['selectedOption']; foreach ($credOpts as $key => $val) { if ($key == $selectedOpt) { $credOpts = array($key => $val) + $credOpts; // move to beginning of array break; } } } else { $credOpts = array(); } return array_merge(parent::paramRules(), array('title' => Yii::t('studio', $this->title), 'info' => Yii::t('studio', $this->info), 'options' => array(array('name' => 'from', 'label' => Yii::t('studio', 'Send As:'), 'type' => 'dropdown', 'options' => $credOpts)))); }
/** * Gets possible values for a field. * * Note, this is meant to be a stripped-down imitation of what is in * {@link X2Model} already. I know this is code duplication, but considering * * Note, does not yet handle multiple choice (selecting more than one). * * @param Fields $field */ public function fieldOptions(Fields $field) { switch ($field->type) { case 'assignment': return X2Model::getAssignmentOptions(true, true, false); case 'credentials': $typeArr = explode(':', $field->linkType); $type = $typeArr[0]; if (count($typeAlias) > 1) { $uid = Credentials::$sysUseId[$typeAlias[1]]; } else { $uid = Yii::app()->getSuId(); } if (count($typeArr > 0)) { $uid = $typeArr[1]; } $config = Credentials::getCredentialOptions($this->staticModel, $field->fieldName, $type, $uid); return $config['credentials']; case 'dropdown': // Dropdown options $dropdown = Dropdowns::model()->findByPk($field->linkType); if ($dropdown instanceof Dropdowns) { return json_decode($dropdown->options, 1); } break; case 'optionalAssignment': $options = X2Model::getAssignmentOptions(true, true, false); unset($options['Anyone']); $options[''] = ''; return $options; case 'rating': return range(Fields::RATING_MIN, Fields::RATING_MAX); case 'varchar': // Special kludge for actions priority dropdown mapping if ($field->modelName == 'Actions' && $field->fieldName == 'priority') { return Actions::getPriorityLabels(); } break; case 'visibility': $permissionsBehavior = Yii::app()->params->modelPermissions; return $permissionsBehavior::getVisibilityOptions(); } return array(); }