public function run() { $type = DataType::getInputType($this->column->dbType); $this->htmlOptions += $this->fixedHtmlOptions[$type]; $column = $this->column->name; $name = isset($this->htmlOptions['name']) ? $this->htmlOptions['name'] : 'Row[' . $column . ']'; switch ($type) { case 'number': echo CHtml::activeTextField($this->row, $column, $this->htmlOptions); break; case 'select': echo CHtml::activeDropDownList($this->row, $column, $this->getEnumValues(), $this->htmlOptions); break; case 'select-multiple': #echo CHtml::activeListBox($this->row, $column, $this->getSetValues(), $this->htmlOptions); echo CHtml::listBox($name, $this->row->getAttributeAsArray($column), $this->getSetValues(), $this->htmlOptions); break; case 'text': echo CHtml::activeTextArea($this->row, $column, $this->htmlOptions); break; case 'file': echo '<script type="text/javascript"> $(document).ready(function() { $("# echo CHtml::$idPrefix; ?>").submit(function() { alert("ok1"); }); }); </script>'; echo CHtml::activeFileField($this->row, $column, $this->htmlOptions); break; case 'date': $this->SetDateTimeHtmlOptions($column); echo CHtml::activeTextField($this->row, $column, $this->htmlOptions); echo '<script type="text/javascript"> $(document).ready(function() { $("#' . $this->htmlOptions['id'] . '").datepicker({showOn: "button", dateFormat: "yy-mm-dd", buttonImage: "' . ICONPATH . '/16/calendar.png' . '", buttonImageOnly: true, buttonText: "' . Yii::t('core', 'showCalendar') . '"}); }); </script>'; break; case 'datetime': $this->SetDateTimeHtmlOptions($column); echo CHtml::activeTextField($this->row, $column, $this->htmlOptions); echo '<script type="text/javascript"> $(document).ready(function() { now = new Date(); $("#' . $this->htmlOptions['id'] . '").datepicker({showOn: "button", dateFormat: "yy-mm-dd " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds(), buttonImage: "' . ICONPATH . '/16/calendar.png' . '", buttonImageOnly: true, buttonText: "' . Yii::t('core', 'showCalendar') . '"}); }); </script>'; break; default: echo CHtml::activeTextField($this->row, $column, $this->htmlOptions); break; } }
echo '</div>'; echo CHtml::endForm(); ?> <?php $this->endWidget(); ?> </div> <div class="span6"> <?php $this->beginWidget('zii.widgets.CPortlet', array('title' => "Text fields")); ?> <?php echo CHtml::label('List box', 'name'); echo CHtml::listBox('name', '', array('1' => 'One', '2' => 'Two', '3' => 'Three', '4' => 'Four', '5' => 'Five')); echo CHtml::label('Text Area', 'name'); echo CHtml::textArea('name'); echo CHtml::label('File field', 'name'); echo CHtml::fileField('name', '', array('class' => 'btn')); echo CHtml::label('Radio button', 'name'); echo CHtml::radioButton('name'); echo '<br><br>'; echo CHtml::label('Check box', 'name'); echo CHtml::checkBox('name'); ?> <?php $this->endWidget(); ?> </div> </div>
public function __toString() { $input = ""; if (is_string($this->field)) { return "[{$this->field}]"; } if (!isset($this->dateformat) || $this->dateformat == '') { $this->dateformat = 'dd/mm/yy'; } if (!in_array($this->field->uicomponent, array("textbox", "textarea", "listbox", "combobox", "checkbox", "datebox"))) { return "[invalid: " . $this->field->uicomponent . "]"; } if (!in_array($this->descriptionLocation, array('visible', 'title'))) { $this->descriptionLocation = 'title'; } $descrVisibleTag = ''; if ($this->descriptionLocation == 'visible') { $descrVisibleTag = "<div class='descr'>{$this->descr}</div>"; } if ($this->descriptionLocation == 'title') { if (!isset($this->htmlOptions['title'])) { $this->htmlOptions['title'] = CHtml::encode($this->descr); } } $name = $this->getName(); if ($this->getValue() == '') { $this->setValue(CHtml::encode($this->default)); } $value = $this->getValue(); $htmlOptions = array(); if (isset($this->htmlOptions)) { $htmlOptions += $this->htmlOptions; } if (isset($this->field->htmlOptions)) { $htmlOptions += $this->field->htmlOptions; } // clear empty attributes // if (isset($htmlOptions)) { foreach ($htmlOptions as $opt => $val) { if (empty($val)) { unset($htmlOptions[$opt]); } } } // // IMPORTANT: // every input field must have 'alt' signature stablished to 'input' or it wont be recognized // by eyuiform.js when post. if (!isset($htmlOptions['alt'])) { $htmlOptions['alt'] = 'input'; } $inputName = $this->modelName . "[" . $name . "]"; $htmlOptions['id'] = $this->getName(); $req = $this->required == true ? '*' : ''; $reqClass = $this->required == true ? 'required' : ''; if ($this->field->uicomponent == 'textbox') { $input = CHtml::textField($inputName, $value, $htmlOptions); } if ($this->field->uicomponent == 'textarea') { $input = CHtml::textArea($inputName, $value, $htmlOptions); } if ($this->field->uicomponent == 'listbox') { $input = CHtml::listBox($inputName, $value, $this->checkOptions($this->field->options), $htmlOptions); } if ($this->field->uicomponent == 'combobox') { $prompt = array(); if ($this->field->prompt != null) { $prompt = $this->field->prompt; } $input = CHtml::dropDownList($inputName, $value, $prompt + $this->checkOptions($this->field->options), $htmlOptions); } if ($this->field->uicomponent == 'checkbox') { if (!isset($htmlOptions['class'])) { $htmlOptions['class'] = 'checkbox'; } $input = CHtml::checkBox($inputName, $this->getValue() > 0, $htmlOptions); } if ($this->field->uicomponent == 'datebox') { $id = $this->getName(); $language = Yii::app()->language; $dp_options = CJavaScript::encode(array('constrainInput' => true, 'dateFormat' => $this->dateformat, 'showOn' => "both", 'showButtonPanel' => true, 'changeMonth' => true, 'changeYear' => true)); if ($language == 'en' || $language == "" || $language == 'en-US' || $language == 'en_us') { $language = 'en-GB'; } $js = "jQuery('#{$id}').datepicker(jQuery.extend({showMonthAfterYear:false}, jQuery.datepicker.regional['{$language}'], {$dp_options}));"; $input = CHtml::textField($inputName, $value, $htmlOptions); Yii::app()->getClientScript()->registerScript(__CLASS__ . '#' . $id, $js); } if ($this->field->uicomponent == 'checkboxlist') { /* $input = "<div class='checkboxes'>"; foreach($this->field->options as $_key=>$_val){ $_id = $this->id."_".$_key; $input .= "<span class='checkbox'><label for='{$_id}'>{$_val}</label>".CHtml::checkBox( $name,false,array('id'=>$_id))."</span>"; } $input .= "</div>"; */ } return "\n<li class='{$reqClass}'>\n\t<label>{$req}{$this->label}:</label><br/>\n\t<span class='fieldspan'>{$input}</span><span class='loader'></span>\n\t<div class='info'>\n\t\t{$descrVisibleTag}\n\t\t<div class='error'></div>\n\t</div>\n</li>\n"; }
/** * Render widget input. */ public function run() { if (isset($this->options['ajax'])) { if ($this->hasModel()) { echo CHtml::activeTextField($this->model, $this->attribute, $this->htmlOptions); } else { echo CHtml::textField($this->name, $this->value, $this->htmlOptions); } } else { if (isset($this->htmlOptions['multiple']) && $this->htmlOptions['multiple'] == 'true') { if ($this->hasModel()) { echo CHtml::activeListBox($this->model, $this->attribute, $this->data, $this->htmlOptions); } else { echo CHtml::listBox($this->model, $this->attribute, $this->data, $this->htmlOptions); } } else { if ($this->hasModel()) { echo CHtml::activeDropDownList($this->model, $this->attribute, $this->data, $this->htmlOptions); } else { echo CHtml::dropDownList($this->name, $this->value, $this->data, $this->htmlOptions); } } } }
<br /> </fieldset> <fieldset class='popupgroup'> <legend> <?php eT("Survey"); ?> </legend> <p> <?php if (!empty($tokensurveynames)) { //$option[''] = gT("Select..."); foreach ($tokensurveynames as $row) { $option[$row['surveyls_survey_id']] = $row['surveyls_title']; } echo CHtml::listBox('survey_id', 'id="survey_id"', $option, array('style' => 'width: 400px; border: 0px; cursor: pointer', 'size' => 10)); } ?> </p><br /> </fieldset> <fieldset class='popupgroup'> <legend> <?php eT("Options"); ?> </legend> <?php $data = array('id' => 'redirect', 'value' => 'TRUE', 'style' => 'margin:10px'); echo CHtml::checkBox('redirect', TRUE, $data); ?> <label for='redirect'><?php
<div class="col-sm-10"> <?php echo CHtml::checkBox('filterduplicatetoken', true); ?> </div> </div> <!-- Duplicates are determined by --> <div class="form-group" id='lifilterduplicatefields'> <label class="col-sm-2 control-label" for='filterduplicatefields'><?php eT("Duplicates are determined by:"); ?> </label> <div class="col-sm-10"> <?php echo CHtml::listBox('filterduplicatefields', array('firstname', 'lastname', 'email'), $aTokenTableFields, array('multiple' => 'multiple', 'size' => '7')); ?> </div> </div> <!-- Buttons --> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <?php echo CHtml::htmlButton(gT("Upload"), array('type' => 'submit', 'name' => 'upload', 'value' => 'import', 'class' => 'btn btn-default')); ?> </div> </div> </form> <!-- Infos -->
</div> <div class="col-lg-2" style="overflow-x: hidden"> <div> <?php eT("Other files:"); ?> <br/> <?php // TODO printf(gT("(path for css: %s)"), $filespath) ?> <?php echo CHtml::form(array('admin/templates/sa/templatefiledelete'), 'post'); echo CHtml::listBox('otherfile', '', array_combine($otherfiles, $otherfiles), array('size' => 11, 'class' => "form-control")); ?> <br> <?php if (Permission::model()->hasGlobalPermission('templates', 'delete')) { ?> <input type='submit' class='btn btn-default' value='<?php eT("Delete"); ?> ' onclick="javascript:return confirm('<?php eT("Are you sure you want to delete this file?", "js"); ?> ')"/> <?php }
</div> <div class="grid-9-12"> <?php echo CHtml::listBox('tasks', isset($_POST['tasks']) ? $_POST['tasks'] : isset($items_selected[CAuthItem::TYPE_TASK]) ? $items_selected[CAuthItem::TYPE_TASK] : '', $items[CAuthItem::TYPE_TASK], array('size' => 20, 'multiple' => 'multiple')); ?> </div> <div class="clear"></div> <hr /> <div class="grid-3-12"><?php echo CHtml::label(at('Additional Operations'), 'operations'); ?> </div> <div class="grid-9-12"> <?php echo CHtml::listBox('operations', isset($_POST['operations']) ? $_POST['operations'] : isset($items_selected[CAuthItem::TYPE_OPERATION]) ? $items_selected[CAuthItem::TYPE_OPERATION] : '', $items[CAuthItem::TYPE_OPERATION], array('size' => 20, 'multiple' => 'multiple')); ?> </div> <div class="clear"></div> <hr /> </div> <div id="tabs-5"> <div class="grid-6-12"> <?php echo at('Type in the zipcode and fill in the billing information if the information exists in our databases.'); ?> <div class="clear"></div> <div class="grid-6-12">
<br /> </fieldset> <fieldset class='popupgroup'> <legend> <?php eT("Survey"); ?> </legend> <p> <?php if (!empty($tokensurveynames)) { //$option[''] = gT("Select..."); foreach ($tokensurveynames as $row) { $option[$row['surveyls_survey_id']] = $row['surveyls_title']; } echo CHtml::listBox('survey_id', 'id="survey_id"', $option, array('class' => 'form-control', 'size' => 8)); } ?> </p><br /> </fieldset> <fieldset class='popupgroup'> <legend> <?php eT("Options"); ?> </legend> <div class='form-group'> <label class='control-label col-sm-8' for='redirect'><?php eT("Display survey participants after adding?"); ?> </label>
public function run() { echo "<table style=\"width:100%;\" border=\"1\">"; echo "<tr>"; echo "<td style=\"text-align:center;\">"; if (isset($this->leftTitle)) { echo CHtml::label($this->leftTitle, "leftTitle"); } $this->LeftListHtmlOptions = array_merge($this->LeftListHtmlOptions, array('id' => 'select_left', 'multiple' => 'multiple')); echo CHtml::listBox($this->listName . "1[]", '', $this->LeftDataList, $this->LeftListHtmlOptions); echo "</td>"; echo "<td style=\"text-align:center;\">"; echo CHtml::button('<', array('id' => 'options_left')) . "<br /><br />"; echo CHtml::button('>', array('id' => 'options_right')) . "<br /><br />"; echo CHtml::button('<<', array('id' => 'options_left_all')) . "<br /><br />"; echo CHtml::button('>>', array('id' => 'options_right_all')) . "<br /><br />"; echo "</td>"; echo "<td style=\"text-align:center;\">"; if (isset($this->rightTitle)) { echo CHtml::label($this->rightTitle, "rightTitle"); } $this->RightListHtmlOptions = array_merge($this->RightListHtmlOptions, array('id' => 'select_right', 'multiple' => 'multiple')); echo CHtml::listBox($this->listName . "2[]", '', $this->RightDataList, $this->RightListHtmlOptions); echo "</td>"; echo "</tr>"; echo "</table>"; $this->registerClientScript(); Yii::app()->clientScript->registerScript('jQueryOptionTransfer', ' $(function() { $("#select_left").multiSelect("#select_right", {trigger:"#options_right"}); $("#select_right").multiSelect("#select_left", {trigger:"#options_left"}); $("#select_left").multiSelect("#select_right", {allTrigger:"#options_right_all"}); $("#select_right").multiSelect("#select_left", {allTrigger:"#options_left_all"}); }); '); parent::init(); }
$.fn.yiiGridView.update("menu-grid"); } }); return false; }')), 'template' => '{up}{down}{update}{delete}', 'header' => CHtml::dropDownList('pageSize', $pageSize, array(5 => 5, 20 => 20, 50 => 50, 100 => 100), array('class' => 'change-pagesize')))))); Yii::app()->clientScript->registerScript('initPageSize', <<<EOD \$('.change-pagesize').live('change', function() { \$.fn.yiiGridView.update('menu-grid',{ data:{ pageSize: \$(this).val() }}) }); EOD , CClientScript::POS_READY); ?> <?php echo CHtml::beginForm(); echo CHtml::hiddenField('tree', 'manage'); echo CHtml::listBox('node', '1', $data, array('size' => '10')); ?> <br /><br /> <?php echo CHtml::textField('name'); echo CHtml::submitButton('Добавить пункт', array('name' => 'add')); ?> <br /><br /> <br /><br /> <?php echo CHtml::dropDownList('nodeto', '1', $data); ?> <br /> <?php
if (in_array($value->matrix_param->alias, array('role'))) { ?> <?php echo CHtml::listBox('MatrixTypeActionParamValue[' . $value->matrix_param->id . '][]', array(), $roles, array('size' => 0)); ?> <?php } elseif (in_array($value->matrix_param->alias, array('matrix_type'))) { ?> <?php echo CHtml::listBox('MatrixTypeActionParamValue[' . $value->matrix_param->id . '][]', array(), $matrixtypes, array('size' => 0)); ?> <?php } elseif (in_array($value->matrix_param->alias, array('spec_alias_bonus_in', 'spec_alias_money_out'))) { ?> <?php echo CHtml::listBox('MatrixTypeActionParamValue[' . $value->matrix_param->id . '][]', array(), $specalias, array('size' => 0)); ?> <?php } else { ?> <?php echo CHtml::textField('MatrixTypeActionParamValue[' . $value->matrix_param->id . '][]'); ?> <?php } ?> </td> <td></td> <td></td> </tr> <?php
/** * Parse each setting */ public function getSettingForm($setting) { $setting = $this->parseSetting($setting); $name = 'setting_' . $setting->id; $value = $setting->value !== null ? $setting->value : $setting->default_value; switch ($setting->type) { case 'textarea': echo CHtml::textArea($name, $value, array('rows' => 5, 'class' => 'textbox', 'disabled' => $setting->disabled ? 'disabled' : '')); break; case 'dropdown': echo CHtml::dropDownList($name, $value, $this->convertExtraToArray($setting->extra), array('class' => 'chzn-select', 'disabled' => $setting->disabled ? 'disabled' : '')); break; case 'multi': echo CHtml::listBox($name, $value ? explode(',', $value) : '', $this->convertExtraToArray($setting->extra), array('size' => 20, 'multiple' => 'multiple', 'class' => 'chosen', 'disabled' => $setting->disabled ? 'disabled' : '')); break; case 'checkbox': echo CHtml::checkbox($name, $setting->value != '' ? $setting->value : $setting->default_value, array('class' => '', 'disabled' => $setting->disabled ? 'disabled' : '')); break; case 'yesno': echo CHtml::dropDownList($name, $value, array('0' => Yii::t('global', 'No'), '1' => Yii::t('global', 'Yes')), array('class' => 'chzn-select', 'disabled' => $setting->disabled ? 'disabled' : '')); break; case 'editor': Yii::app()->customEditor->getEditor(array('name' => $name, 'value' => $value)); break; case 'text': default: echo CHtml::textField($name, $value, array('class' => 'textbox', 'disabled' => $setting->disabled ? 'disabled' : '')); break; } }
/** * Generates a list box. * @param string $name the input name * @param mixed $select the selected value(s). This can be either a string for single selection or an array for multiple selections. * @param array $data data for generating the list options (value=>display) * You may use {@link listData} to generate this data. * Please refer to {@link listOptions} on how this data is used to generate the list options. * Note, the values and labels will be automatically HTML-encoded by this method. * @param array $htmlOptions additional HTML attributes. Besides normal HTML attributes, a few special * attributes are also recognized. See {@link clientChange} and {@link tag} for more details. * In addition, the following options are also supported specifically for list box: * <ul> * <li>encode: boolean, specifies whether to encode the values. Defaults to true.</li> * <li>prompt: string, specifies the prompt text shown as the first list option. Its value is empty. Note, the prompt text will NOT be HTML-encoded.</li> * <li>empty: string, specifies the text corresponding to empty selection. Its value is empty. * The 'empty' option can also be an array of value-label pairs. * Each pair will be used to render a list option at the beginning. Note, the text label will NOT be HTML-encoded.</li> * <li>options: array, specifies additional attributes for each OPTION tag. * The array keys must be the option values, and the array values are the extra * OPTION tag attributes in the name-value pairs. For example, * <pre> * array( * 'value1'=>array('disabled'=>true, 'label'=>'value 1'), * 'value2'=>array('label'=>'value 2'), * ); * </pre> * </li> * </ul> * @return string the generated list box * @see clientChange * @see inputField * @see listData */ public static function listBox($name, $select, $data, $htmlOptions = array()) { $help = self::getHelp($htmlOptions); ob_start(); echo CHtml::listBox($name, $select, $data, $htmlOptions); echo $help; return ob_get_clean(); }
</div> <div id="fieldTypeStat_<?php echo $field->id; ?> "> <?php echo $field->getCurrentFilltype(); ?> </div> <div id="fieldTypeDyn_<?php echo $field->id; ?> " style="display: none;"> <?php echo CHtml::listBox('Fields[is_user_filltype]', $field->is_user_filltype || $field->filltype == NULL ? (int) FALSE : $field->filltype->type, Fields::getFilltypesArray($field->field), array('id' => 'fieldTypeText_' . $field->id, 'size' => 1, 'onChange' => 'getFieldListForDuplicate(' . $field->id . ', this)')); ?> <span id="fieldCopy_<?php echo $field->id; ?> " style="display: none;"></span> <div style="float: right; width: 60px; margin-top: 5px;"> <?php echo CHtml::link('<span class="apply" title="Сохранить тип"> </span>', 'javascript: void(0)', array('onClick' => 'saveFieldType(' . $field->id . ')')); ?> <?php echo CHtml::link('<span class="cancel" title="Отмена"> </span>', 'javascript: void(0)', array('onClick' => 'hideFieldType(' . $field->id . ')')); ?> </div> </div>
echo CHTML::label(gT("Full answers"),'answers-long');?> </ul></fieldset> </div> <div class='right'> <fieldset> <legend><?php eT("Column control");?></legend> <input type='hidden' name='sid' value='<?php echo $surveyid; ?>' /> <?php if ($SingleResponse) { ?> <input type='hidden' name='response_id' value="<?php echo $SingleResponse;?>" /> <?php } eT("Choose columns");?>: <br /> <?php echo CHtml::listBox('colselect[]',array_keys($aFields),$aFields,array('multiple'=>'multiple','size'=>'20','style'=>'width:370px;','options'=>$aFieldsOptions)); echo "\t<img src='$imageurl/help.gif' alt='".gT("Help")."' onclick='javascript:alert(\"".gT("Please note: The export to Excel is currently limited to loading no more than 255 columns.","js")."\")'>";?> <span id='columncount'> </span> </fieldset> <?php if ($thissurvey['anonymized'] == "N" && tableExists("{{tokens_$surveyid}}") && Permission::model()->hasSurveyPermission($surveyid,'tokens','read')) { ?> <fieldset><legend><?php eT("Token control");?></legend> <?php eT("Choose token fields");?>: <img src='<?php echo $imageurl;?>/help.gif' alt='<?php eT("Help");?>' onclick='javascript:alert("<?php gT("Your survey can export associated token data with each response. Select any additional fields you would like to export.","js");?>")' /><br /> <select name='attribute_select[]' multiple size='20'> <option value='first_name' id='first_name'><?php eT("First name");?></option> <option value='last_name' id='last_name'><?php eT("Last name");?></option> <option value='email_address' id='email_address'><?php eT("Email address");?></option> <?php $attrfieldnames=getTokenFieldsAndNames($surveyid,true); foreach ($attrfieldnames as $attr_name=>$attr_desc) {
</a> </h3> </div> <div class="portlet-body form-horizontal form form-bordered"> <?php $form = $this->beginWidget('CActiveForm', array('action' => $this->createUrl('outmoney/outtowarehouse/wallet/' . $wallet->id))); ?> <div class="form-body"> <div class="form-group"> <label class="col-sm-3 control-label"><?php echo Yii::t('app', 'Название склад'); ?> </label> <div class="col-sm-4"> <?php echo CHtml::listBox('Form[warehouse]', array(), $nameWarehouse, array('size' => (int) TRUE)); ?> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label"><?php echo Yii::t('app', 'Сумма которую хотите перевести'); ?> </label> <div class="col-sm-4"> <input type="text" name="Form[transfer_amount]" value="" /> </div> </div> <?php if (isset($error) && !empty($error)) { ?>
</label> <input type='text' maxlength='255' size='50' id='urldescrip' name='urldescrip' value='' /></li> <li><label for='dateformat'><?php $clang->eT("Date format:"); ?> </label> <?php echo CHtml::listBox('dateformat', $sDateFormatDefault, $aDateFormatData, array('id' => 'dateformat', 'size' => '1')); ?> </li> <li><label for='numberformat'><?php $clang->eT("Decimal mark:"); ?> </label> <?php echo CHtml::listBox('numberformat', $sRadixDefault, $aRadixPointData, array('id' => 'numberformat', 'size' => '1')); ?> </li> <li><label for='admin'><?php $clang->eT("Administrator:"); ?> </label> <input type='text' size='50' id='admin' name='admin' value='<?php echo $owner['full_name']; ?> ' /></li> <li><label for='adminemail'><?php $clang->eT("Admin email:"); ?>
<br /> </div> <div class='popupgroup'> <h4> <?php $clang->eT("Survey"); ?> </h4> <p> <?php if (!empty($tokensurveynames)) { //$option[''] = $clang->gT("Select..."); foreach ($tokensurveynames as $row) { $option[$row['surveyls_survey_id']] = $row['surveyls_title']; } echo CHtml::listBox('survey_id', 'id="survey_id"', $option, array('style'=>'width: 350px; border: 0px; font-size: 1.2em; cursor: pointer', 'size'=>7)); } ?> </p><br /> </div> <div class='popupgroup'> <h4> <?php $clang->eT("Options") ?> </h4> <p> <?php $data = array( 'id' => 'redirect', 'value' => 'TRUE', 'style' => 'margin:10px', );
/** * Parse each setting */ public function buildFormField($field, $userId) { $name = 'UserCustomField[' . $field->getKey() . ']'; $value = UserCustomFieldData::model()->getFieldValue($field, $userId); switch ($field->type) { case 'textarea': echo CHtml::textArea($name, $value, array('rows' => 5, 'class' => 'textbox')); break; case 'dropdown': echo CHtml::dropDownList($name, $value, $this->convertExtraToArray($field->extra), array('class' => 'chosen')); break; case 'multi': echo CHtml::listBox($name, $value ? explode(',', $value) : '', $this->convertExtraToArray($field->extra), array('multiple' => 'multiple', 'class' => 'chosen')); break; case 'checkbox': echo CHtml::checkbox($name, $value, array('class' => '')); break; case 'yesno': echo CHtml::dropDownList($name, $value, array('0' => Yii::t('global', 'No'), '1' => Yii::t('global', 'Yes')), array('class' => 'chosen')); break; case 'editor': Yii::app()->customEditor->getEditor(array('name' => $name, 'value' => $value)); break; case 'text': default: echo CHtml::textField($name, $value, array('class' => 'textbox')); break; } }
?> <?php echo CHtml::listBox('view-permission', $viewPermission, $names, array('class' => 'user-permission', 'multiple' => 'multiple', 'onChange' => 'giveSaveButtonFocus();')); ?> <br> </div> <div class="page-title rounded-top"><h2><?php echo Yii::t('calendar', 'Edit Permission'); ?> </h2></div> <div class="form"> <?php echo Yii::t('calendar', "These {users} can edit {fullname}'s {calendar}.", array('{users}' => lcfirst($modTitles['users']), '{fullname}' => $fullname, '{calendar}' => $modTitles['calendar'])); ?> <?php echo CHtml::listBox('edit-permission', $editPermission, $names, array('class' => 'user-permission', 'multiple' => 'multiple', 'onChange' => 'giveSaveButtonFocus();')); ?> <br> <div class="row buttons"> <?php echo CHtml::submitButton(Yii::t('app', 'Save'), array('class' => 'x2-button', 'id' => 'save-button', 'name' => 'save-button', 'tabindex' => 24)); ?> <?php echo CHtml::link(Yii::t('calendar', 'Back To {user} List', array('{user}' => $modTitles['user'])), $this->createUrl(''), array('class' => 'x2-button')); ?> </div> </div> <?php $this->endWidget(); ?>
<?php $this->menu = array(array('label' => ProjectModule::t('Create Project Field'), 'url' => array('create')), array('label' => ProjectModule::t('View Project Field'), 'url' => array('view', 'id' => $model->id)), array('label' => ProjectModule::t('Update Project Field'), 'url' => array('update', 'id' => $model->id)), array('label' => ProjectModule::t('Manage Project Fields'), 'url' => array('admin'))); $this->widget('zii.widgets.CMenu', array('items' => $this->menu, 'htmlOptions' => array('class' => 'operations'))); $form = $this->beginWidget('UActiveForm', array('id' => 'work-types-form', 'action' => Yii::app()->createUrl('/project/projectField/update', array('id' => $model->id)))); ?> <div class="form-group col-md-offset-3 col-md-8"> <?php echo '<p>' . UserModule::t('Use Ctrl for multiply') . '</p>'; $htmlOptions = array('size' => '10', 'multiple' => 'true', 'style' => 'width:100%;', 'size' => '10', 'empty' => '(' . UserModule::t('All') . ')'); $data = Catalog::model()->performCatsTree('specials2'); $selected = explode(',', $model->work_types); echo '<div class="col-md-8">' . CHtml::listBox('ProjectField[work_types]', $selected, $data, $htmlOptions) . '</div>'; ?> </div> <div class="form-group col-md-offset-3 col-md-8"> <?php echo CHtml::submitButton(UserModule::t('Save'), array('class' => 'btn btn-primary btn-save')); ?> </div> <?php $this->endWidget();
?> <input type='hidden' name='response_id' value="<?php echo $SingleResponse; ?> " /> <?php } ?> <label for='colselect' class="col-sm-3 control-label"> <?php eT("Select columns:"); ?> </label> <div class="col-sm-9"> <?php echo CHtml::listBox('colselect[]', array_keys($aFields), $aFields, array('multiple' => 'multiple', 'size' => '20', 'options' => $aFieldsOptions, 'class' => 'form-control')); ?> </div> <div class="col-sm-8 col-sm-offset-4"> <br/> <strong id='columncount'> </strong> </div> </div> </div> <!-- Token control --> <?php if ($thissurvey['anonymized'] == "N" && tableExists("{{tokens_{$surveyid}}}") && Permission::model()->hasSurveyPermission($surveyid, 'tokens', 'read')) { ?> <div class="panel panel-primary" id="pannel-7"> <div class="panel-heading">
<?php $profileFields = $profile->getFields(); if ($profileFields) { $attributes = $profile->getAttributes(); foreach ($profileFields as $field) { ?> <div class="form-group"> <?php echo $form->labelEx($profile, $field->varname, array('class' => 'col-md-4 control-label')); if ($field->field_type == "LIST") { $htmlOptions = array('size' => '10', 'multiple' => 'true', 'style' => 'width:400px;', 'size' => '10', 'empty' => UserModule::t('Use Ctrl for multiply')); $data = Catalog::model()->performCatsTree($field->varname); $varname = $field->varname; $selected = explode(',', $profile->{$varname}); echo '<div class="col-md-8">' . CHtml::listBox('Profile[' . $field->varname . ']', $selected, $data, $htmlOptions) . '</div>'; /*} elseif ($widgetEdit = $field->widgetEdit($profile,array('htmlOptions'=>array('class'=>'form-control')))) { echo '<div class="col-md-8">'.$widgetEdit.'</div>'; } elseif ($field->range) { echo '<div class="col-md-8">'.$form->dropDownList($profile,$field->varname,Profile::range($field->range),array('class'=>'form-control')).'</div>';*/ } elseif ($field->field_type == "TEXT") { // echo '<div class="col-md-8"><textarea name="Profile['.$field->varname.']" rows="6" cols="50" class="form-control">'.$attributes[$field->varname].'</textarea></div>'; echo '<div class="col-md-8">' . $form->textArea($profile, $field->varname, array('rows' => 6, 'cols' => 50, 'class' => 'form-control')) . '</div>'; } else { // echo '<div class="col-md-8"><input type="text" name="Profile['.$field->varname.']" class="form-control" size="60" maxlength="'.(($field->field_size)?$field->field_size:255).'" value="'.$attributes[$field->varname].'"></div>'; echo '<div class="col-md-8">' . $form->textField($profile, $field->varname, array('class' => 'form-control', 'size' => 60, 'maxlength' => $field->field_size ? $field->field_size : 255)) . '</div>'; } echo $form->error($profile, $field->varname); ?> </div><?php }
<?php echo CHtml::button('Добавить поле', array('class' => 'btn green', 'onClick' => 'showManageBlock()')); ?> </div> <div class="report-manage-dynamic"> <?php echo CHtml::beginForm(); ?> <div class="listBox"> <?php echo CHtml::listBox(SettingsControllerBase::ReportAliasFirstline, 0, $allColumns, array('size' => 0, 'class' => 'form-control input-small input-inline')); ?> <?php echo CHtml::button('Добавить поле', array('class' => 'btn green', 'onClick' => 'addColumn("' . SettingsControllerBase::ReportAliasFirstline . '")')); ?> </div> <div class="listBoxDescription"> </div> <?php echo CHtml::endForm();
</div> </div> <!-- Date format --> <div class="form-group"> <label class="col-sm-3 control-label" for='dateformat'><?php eT("Date format:") ; ?></label> <div class="col-sm-3"> <?php echo CHtml::listBox('dateformat',$sDateFormatDefault, $aDateFormatData, array('id'=>'dateformat','size'=>'1', 'class'=>'form-control')); ?> </div> </div> <!-- Decimal mark --> <div class="form-group"> <label class="col-sm-3 control-label" for='numberformat'><?php eT("Decimal mark:"); ?></label> <div class="col-sm-3"> <?php echo CHtml::listBox('numberformat',$sRadixDefault, $aRadixPointData, array('id'=>'numberformat','size'=>'1', 'class'=>'form-control')); ?> </div> </div> <!-- Administrator --> <div class="form-group"> <label class="col-sm-3 control-label" for='admin'><?php eT("Administrator:") ; ?></label> <div class="col-sm-9"> <input type='text' size='50' id='admin' name='admin' class="form-control" value='<?php echo $owner['full_name'] ; ?>' /> </div> </div> <!-- Admin email --> <div class="form-group"> <label class="col-sm-3 control-label" for='adminemail'><?php eT("Admin email:") ; ?></label> <div class="col-sm-9">
/** * dataentry::editdata() * Edit dataentry. * @param mixed $subaction * @param mixed $id * @param mixed $surveyid * @param mixed $language * @return */ public function editdata($subaction, $id, $surveyid, $language = '') { if ($language == '') { $language = Survey::model()->findByPk($surveyid)->language; } $surveyid = sanitize_int($surveyid); $id = sanitize_int($id); $aViewUrls = array(); if (!isset($sDataEntryLanguage)) { $sDataEntryLanguage = Survey::model()->findByPk($surveyid)->language; } $surveyinfo = getSurveyInfo($surveyid); if (Permission::model()->hasSurveyPermission($surveyid, 'responses', 'update')) { $surveytable = "{{survey_" . $surveyid . '}}'; $aData['display']['menu_bars']['browse'] = gT("Data entry"); Yii::app()->loadHelper('database'); //FIRST LETS GET THE NAMES OF THE QUESTIONS AND MATCH THEM TO THE FIELD NAMES FOR THE DATABASE $fnquery = "SELECT * FROM {{questions}}, {{groups}} g, {{surveys}} WHERE\n {{questions}}.gid=g.gid AND\n {{questions}}.language = '{$sDataEntryLanguage}' AND g.language = '{$sDataEntryLanguage}' AND\n {{questions}}.sid={{surveys}}.sid AND {{questions}}.sid='{$surveyid}'\n order by group_order, question_order"; $fnresult = dbExecuteAssoc($fnquery); $fnresult = $fnresult->readAll(); $fncount = count($fnresult); $fnrows = array(); //Create an empty array in case FetchRow does not return any rows foreach ($fnresult as $fnrow) { $fnrows[] = $fnrow; $private = $fnrow['anonymized']; $datestamp = $fnrow['datestamp']; $ipaddr = $fnrow['ipaddr']; } // Get table output into array // Perform a case insensitive natural sort on group name then question title of a multidimensional array // $fnames = (Field Name in Survey Table, Short Title of Question, Question Type, Field Name, Question Code, Predetermined Answer if exist) $fnames['completed'] = array('fieldname' => "completed", 'question' => gT("Completed"), 'type' => 'completed'); $fnames = array_merge($fnames, createFieldMap($surveyid, 'full', false, false, $sDataEntryLanguage)); // Fix private if disallowed to view token if (!Permission::model()->hasSurveyPermission($surveyid, 'tokens', 'read')) { unset($fnames['token']); } $nfncount = count($fnames) - 1; //SHOW INDIVIDUAL RECORD if ($subaction == "edit" && Permission::model()->hasSurveyPermission($surveyid, 'responses', 'update')) { $idquery = "SELECT * FROM {$surveytable} WHERE id={$id}"; $idresult = dbExecuteAssoc($idquery) or safeDie("Couldn't get individual record<br />{$idquery}<br />"); foreach ($idresult->readAll() as $idrow) { $results[] = $idrow; } } elseif ($subaction == "editsaved" && Permission::model()->hasSurveyPermission($surveyid, 'responses', 'update')) { if (isset($_GET['public']) && $_GET['public'] == "true") { $password = md5(Yii::app()->request->getParam('accesscode')); } else { $password = Yii::app()->request->getParam('accesscode'); } $svresult = SavedControl::model()->findAllByAttributes(array('sid' => $surveyid, 'identifier' => Yii::app()->request->getParam('identifier'), 'access_code' => $password)); foreach ($svresult as $svrow) { $saver['email'] = $svrow['email']; $saver['scid'] = $svrow['scid']; $saver['ip'] = $svrow['ip']; } $svresult = SavedControl::model()->findAllByAttributes(array('scid' => $saver['scid'])); foreach ($svresult as $svrow) { $responses[$svrow['fieldname']] = $svrow['value']; } // while $fieldmap = createFieldMap($surveyid, 'full', false, false, getBaseLanguageFromSurveyID($surveyid)); foreach ($fieldmap as $fm) { if (isset($responses[$fm['fieldname']])) { $results1[$fm['fieldname']] = $responses[$fm['fieldname']]; } else { $results1[$fm['fieldname']] = ""; } } $results1['id'] = ""; $results1['datestamp'] = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", Yii::app()->getConfig('timeadjust')); $results1['ipaddr'] = $saver['ip']; $results[] = $results1; } $aData = array('id' => $id, 'surveyid' => $surveyid, 'subaction' => $subaction, 'part' => 'header'); $aViewUrls[] = 'dataentry_header_view'; $aViewUrls[] = 'edit'; $highlight = FALSE; unset($fnames['lastpage']); // unset timings foreach ($fnames as $fname) { if ($fname['type'] == "interview_time" || $fname['type'] == "page_time" || $fname['type'] == "answer_time") { unset($fnames[$fname['fieldname']]); $nfncount--; } } $aDataentryoutput = ''; foreach ($results as $idrow) { $fname = reset($fnames); do { if (isset($idrow[$fname['fieldname']])) { $answer = $idrow[$fname['fieldname']]; } $question = $fname['question']; $aDataentryoutput .= "\t<tr"; if ($highlight) { $aDataentryoutput .= " class='odd'"; } else { $aDataentryoutput .= " class='even'"; } $highlight = !$highlight; $aDataentryoutput .= ">\n" . "<td>" . "\n"; $aDataentryoutput .= stripJavaScript($question); $aDataentryoutput .= "</td>\n" . "<td>\n"; //$aDataentryoutput .= "\t-={$fname[3]}=-"; //Debugging info if (isset($fname['qid']) && isset($fname['type'])) { $qidattributes = getQuestionAttributeValues($fname['qid']); } switch ($fname['type']) { case "completed": // First compute the submitdate if ($private == "Y") { // In case of anonymized responses survey with no datestamp // then the the answer submitdate gets a conventional timestamp // 1st Jan 1980 $mysubmitdate = date("Y-m-d H:i", mktime(0, 0, 0, 1, 1, 1980)); // Note that the completed field only supports 17 chars (so no seconds!) } else { $mysubmitdate = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i", Yii::app()->getConfig('timeadjust')); // Note that the completed field only supports 17 chars (so no seconds!) } $completedate = empty($idrow['submitdate']) ? $mysubmitdate : $idrow['submitdate']; $selected = empty($idrow['submitdate']) ? 'N' : $completedate; $select_options = array('N' => gT('No', 'unescaped'), $completedate => gT('Yes', 'unescaped')); $aDataentryoutput .= CHtml::dropDownList('completed', $selected, $select_options, array('class' => 'form-control')); break; case "X": //Boilerplate question $aDataentryoutput .= ""; break; case "Q": case "K": $aDataentryoutput .= $fname['subquestion'] . ' '; $aDataentryoutput .= CHtml::textField($fname['fieldname'], $idrow[$fname['fieldname']]); break; case "id": $aDataentryoutput .= CHtml::tag('span', array('style' => 'font-weight: bold;'), ' ' . $idrow[$fname['fieldname']]); break; case "5": //5 POINT CHOICE radio-buttons for ($i = 1; $i <= 5; $i++) { $checked = FALSE; if ($idrow[$fname['fieldname']] == $i) { $checked = TRUE; } $aDataentryoutput .= '<span class="five-point">'; $aDataentryoutput .= CHtml::radioButton($fname['fieldname'], $checked, array('class' => '', 'value' => $i, 'id' => '5-point-choice-' . $i)); $aDataentryoutput .= '<label for="5-point-choice-' . $i . '">' . $i . '</label>'; $aDataentryoutput .= '</span> '; } break; case "D": //DATE $thisdate = ''; $dateformatdetails = getDateFormatDataForQID($qidattributes, $surveyid); if ($idrow[$fname['fieldname']] != '') { $datetimeobj = new Date_Time_Converter($idrow[$fname['fieldname']], "Y-m-d H:i:s"); $thisdate = $datetimeobj->convert($dateformatdetails['phpdate']); } else { $thisdate = ''; } if (canShowDatePicker($dateformatdetails)) { $goodchars = str_replace(array("m", "d", "y", "H", "M"), "", $dateformatdetails['dateformat']); $goodchars = "0123456789" . $goodchars[0]; $aDataentryoutput .= CHtml::textField($fname['fieldname'], $thisdate, array('class' => 'popupdate', 'size' => '12', 'onkeypress' => 'return goodchars(event,\'' . $goodchars . '\')')); $aDataentryoutput .= CHtml::hiddenField('dateformat' . $fname['fieldname'], $dateformatdetails['jsdate'], array('id' => "dateformat{$fname['fieldname']}")); // $aDataentryoutput .= "\t<input type='text' class='popupdate' size='12' name='{$fname['fieldname']}' value='{$thisdate}' onkeypress=\"return goodchars(event,'".$goodchars."')\"/>\n"; // $aDataentryoutput .= "\t<input type='hidden' name='dateformat{$fname['fieldname']}' id='dateformat{$fname['fieldname']}' value='{$dateformatdetails['jsdate']}' />\n"; } else { $aDataentryoutput .= CHtml::textField($fname['fieldname'], $thisdate); } break; case "G": //GENDER drop-down list $select_options = array('' => gT("Please choose") . '...', 'F' => gT("Female"), 'M' => gT("Male")); $aDataentryoutput .= CHtml::listBox($fname['fieldname'], $idrow[$fname['fieldname']], $select_options); break; case "L": //LIST drop-down //LIST drop-down case "!": //List (Radio) $qidattributes = getQuestionAttributeValues($fname['qid']); if (isset($qidattributes['category_separator']) && trim($qidattributes['category_separator']) != '') { $optCategorySeparator = $qidattributes['category_separator']; } else { unset($optCategorySeparator); } if (substr($fname['fieldname'], -5) == "other") { $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n"; } else { $lquery = "SELECT * FROM {{answers}} WHERE qid={$fname['qid']} AND language = '{$sDataEntryLanguage}' ORDER BY sortorder, answer"; $lresult = dbExecuteAssoc($lquery); $aDataentryoutput .= "\t<select name='{$fname['fieldname']}' class='form-control'>\n" . "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("Please choose") . "..</option>\n"; if (!isset($optCategorySeparator)) { foreach ($lresult->readAll() as $llrow) { $aDataentryoutput .= "<option value='{$llrow['code']}'"; if ($idrow[$fname['fieldname']] == $llrow['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$llrow['answer']}</option>\n"; } } else { $defaultopts = array(); $optgroups = array(); foreach ($lresult->readAll() as $llrow) { list($categorytext, $answertext) = explode($optCategorySeparator, $llrow['answer']); if ($categorytext == '') { $defaultopts[] = array('code' => $llrow['code'], 'answer' => $answertext); } else { $optgroups[$categorytext][] = array('code' => $llrow['code'], 'answer' => $answertext); } } foreach ($optgroups as $categoryname => $optionlistarray) { $aDataentryoutput .= "<optgroup class=\"dropdowncategory\" label=\"" . $categoryname . "\">\n"; foreach ($optionlistarray as $optionarray) { $aDataentryoutput .= "\t<option value='{$optionarray['code']}'"; if ($idrow[$fname['fieldname']] == $optionarray['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$optionarray['answer']}</option>\n"; } $aDataentryoutput .= "</optgroup>\n"; } foreach ($defaultopts as $optionarray) { $aDataentryoutput .= "<option value='{$optionarray['code']}'"; if ($idrow[$fname['fieldname']] == $optionarray['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$optionarray['answer']}</option>\n"; } } $oquery = "SELECT other FROM {{questions}} WHERE qid={$fname['qid']} AND {{questions}}.language = '{$sDataEntryLanguage}'"; $oresult = dbExecuteAssoc($oquery) or safeDie("Couldn't get other for list question<br />" . $oquery . "<br />"); foreach ($oresult->readAll() as $orow) { $fother = $orow['other']; } if ($fother == "Y") { $aDataentryoutput .= "<option value='-oth-'"; if ($idrow[$fname['fieldname']] == "-oth-") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("Other") . "</option>\n"; } $aDataentryoutput .= "\t</select>\n"; } break; case "O": //LIST WITH COMMENT drop-down/radio-button list + textarea $lquery = "SELECT * FROM {{answers}} WHERE qid={$fname['qid']} AND language = '{$sDataEntryLanguage}' ORDER BY sortorder, answer"; $lresult = dbExecuteAssoc($lquery); $aDataentryoutput .= "\t<select name='{$fname['fieldname']}' class='form-control'>\n" . "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("Please choose") . "..</option>\n"; foreach ($lresult->readAll() as $llrow) { $aDataentryoutput .= "<option value='{$llrow['code']}'"; if ($idrow[$fname['fieldname']] == $llrow['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$llrow['answer']}</option>\n"; } $fname = next($fnames); $aDataentryoutput .= "\t</select>\n" . "\t<br />\n" . "\t<textarea cols='45' rows='5' name='{$fname['fieldname']}'>" . htmlspecialchars($idrow[$fname['fieldname']]) . "</textarea>\n"; break; case "R": //RANKING TYPE QUESTION $thisqid = $fname['qid']; $currentvalues = array(); $myfname = $fname['sid'] . 'X' . $fname['gid'] . 'X' . $fname['qid']; $aDataentryoutput .= '<div id="question' . $thisqid . '" class="ranking-answers"><ul class="answers-list">'; while (isset($fname['type']) && $fname['type'] == "R" && $fname['qid'] == $thisqid) { //Let's get all the existing values into an array if ($idrow[$fname['fieldname']]) { $currentvalues[] = $idrow[$fname['fieldname']]; } $fname = next($fnames); } $ansquery = "SELECT * FROM {{answers}} WHERE language = '{$sDataEntryLanguage}' AND qid={$thisqid} ORDER BY sortorder, answer"; $ansresult = Yii::app()->db->createCommand($ansquery)->query()->readAll(); //Checked $anscount = count($ansresult); $answers = array(); foreach ($ansresult as $ansrow) { $answers[] = $ansrow; } for ($i = 1; $i <= $anscount; $i++) { $aDataentryoutput .= "\n<li class=\"select-item\">"; $aDataentryoutput .= "<label for=\"answer{$myfname}{$i}\">"; if ($i == 1) { $aDataentryoutput .= gT('First choice'); } else { $aDataentryoutput .= gT('Next choice'); } $aDataentryoutput .= "</label>"; $aDataentryoutput .= "<select name=\"{$myfname}{$i}\" id=\"answer{$myfname}{$i}\" class='form-control'>\n"; !isset($currentvalues[$i - 1]) ? $selected = " selected=\"selected\"" : ($selected = ""); $aDataentryoutput .= "\t<option value=\"\" {$selected}>" . gT('None') . "</option>\n"; foreach ($answers as $ansrow) { isset($currentvalues[$i - 1]) && $currentvalues[$i - 1] == $ansrow['code'] ? $selected = " selected=\"selected\"" : ($selected = ""); $aDataentryoutput .= "\t<option value=\"" . $ansrow['code'] . "\" {$selected}>" . flattenText($ansrow['answer']) . "</option>\n"; } $aDataentryoutput .= "</select\n"; $aDataentryoutput .= "</li>"; } $aDataentryoutput .= '</ul>'; $aDataentryoutput .= "<div style='display:none' id='ranking-{$thisqid}-maxans'>{$anscount}</div>" . "<div style='display:none' id='ranking-{$thisqid}-minans'>0</div>" . "<div style='display:none' id='ranking-{$thisqid}-name'>javatbd{$myfname}</div>"; $aDataentryoutput .= "<div style=\"display:none\">"; foreach ($answers as $ansrow) { $aDataentryoutput .= "<div id=\"htmlblock-{$thisqid}-{$ansrow['code']}\">{$ansrow['answer']}</div>"; } $aDataentryoutput .= "</div>"; $aDataentryoutput .= '</div>'; App()->getClientScript()->registerPackage('jquery-actual'); App()->getClientScript()->registerScriptFile(App()->getAssetManager()->publish(SCRIPT_PATH . 'ranking.js')); App()->getClientScript()->registerCssFile(App()->getAssetManager()->publish(dirname(Yii::app()->request->scriptFile) . '/styles-public/ranking.css')); $aDataentryoutput .= "<script type='text/javascript'>\n" . " <!--\n" . "var aRankingTranslations = {\n choicetitle: '" . gT("Your Choices", 'js') . "',\n ranktitle: '" . gT("Your Ranking", 'js') . "'\n };\n" . "function checkconditions(){};" . "\$(function() {" . " doDragDropRank({$thisqid},0,true,true);\n" . "});\n" . " -->\n" . "</script>\n"; unset($answers); $fname = prev($fnames); break; case "M": //Multiple choice checkbox $qidattributes = getQuestionAttributeValues($fname['qid']); if (trim($qidattributes['display_columns']) != '') { $dcols = $qidattributes['display_columns']; } else { $dcols = 0; } // while ($fname[3] == "M" && $question != "" && $question == $fname['type']) $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); //$aDataentryoutput .= substr($fname['fieldname'], strlen($fname['fieldname'])-5, 5)."<br />\n"; if (substr($fname['fieldname'], -5) == "other") { $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n"; } else { $aDataentryoutput .= "<div class='checkbox'>\t<input type='checkbox' class='checkboxbtn' name='{$fname['fieldname']}' id='{$fname['fieldname']}' value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " /><label for='{$fname['fieldname']}'>{$fname['subquestion']}</label></div>\n"; } $fname = next($fnames); } $fname = prev($fnames); break; case "I": //Language Switch $lquery = "SELECT * FROM {{answers}} WHERE qid={$fname['qid']} AND language = '{$sDataEntryLanguage}' ORDER BY sortorder, answer"; $lresult = dbExecuteAssoc($lquery); $slangs = Survey::model()->findByPk($surveyid)->additionalLanguages; $baselang = Survey::model()->findByPk($surveyid)->language; array_unshift($slangs, $baselang); $aDataentryoutput .= "<select name='{$fname['fieldname']}' class='form-control'>\n"; $aDataentryoutput .= "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("Please choose") . "..</option>\n"; foreach ($slangs as $lang) { $aDataentryoutput .= "<option value='{$lang}'"; if ($lang == $idrow[$fname['fieldname']]) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . getLanguageNameFromCode($lang, false) . "</option>\n"; } $aDataentryoutput .= "</select>"; break; case "P": //Multiple choice with comments checkbox + text $aDataentryoutput .= "<table>\n"; while (isset($fname) && $fname['type'] == "P") { $thefieldname = $fname['fieldname']; if (substr($thefieldname, -7) == "comment") { $aDataentryoutput .= "<td><input type='text' name='{$fname['fieldname']}' size='50' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' /></td>\n" . "\t</tr>\n"; } elseif (substr($fname['fieldname'], -5) == "other") { $aDataentryoutput .= "\t<tr>\n" . "<td>\n" . "\t<input type='text' name='{$fname['fieldname']}' size='30' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n" . "</td>\n" . "<td>\n"; $fname = next($fnames); $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' size='50' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n" . "</td>\n" . "\t</tr>\n"; } else { $aDataentryoutput .= "\t<tr>\n" . "<td><div class='checkbox'><input type='checkbox' class='checkboxbtn' name=\"{$fname['fieldname']}\" id=\"{$fname['fieldname']}\" value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " /><label for=\"{$fname['fieldname']}\">{$fname['subquestion']}</label></div></td>\n"; } $fname = next($fnames); } $aDataentryoutput .= "</table>\n"; $fname = prev($fnames); break; case "|": //FILE UPLOAD $aDataentryoutput .= "<table>\n"; if ($fname['aid'] !== 'filecount' && isset($idrow[$fname['fieldname'] . '_filecount']) && $idrow[$fname['fieldname'] . '_filecount'] > 0) { //file metadata $metadata = json_decode($idrow[$fname['fieldname']], true); $qAttributes = getQuestionAttributeValues($fname['qid']); for ($i = 0; $i < $qAttributes['max_num_of_files'] && isset($metadata[$i]); $i++) { if ($qAttributes['show_title']) { $aDataentryoutput .= '<tr><td>Title </td><td><input type="text" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_title_' . $i . '" name="title" size=50 value="' . htmlspecialchars($metadata[$i]["title"]) . '" /></td></tr>'; } if ($qAttributes['show_comment']) { $aDataentryoutput .= '<tr><td >Comment </td><td><input type="text" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_comment_' . $i . '" name="comment" size=50 value="' . htmlspecialchars($metadata[$i]["comment"]) . '" /></td></tr>'; } $aDataentryoutput .= '<tr><td> File name</td><td><input class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_name_' . $i . '" name="name" size=50 value="' . htmlspecialchars(rawurldecode($metadata[$i]["name"])) . '" /></td></tr>' . '<tr><td></td><td><input type="hidden" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_size_' . $i . '" name="size" size=50 value="' . htmlspecialchars($metadata[$i]["size"]) . '" /></td></tr>' . '<tr><td></td><td><input type="hidden" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_ext_' . $i . '" name="ext" size=50 value="' . htmlspecialchars($metadata[$i]["ext"]) . '" /></td></tr>' . '<tr><td></td><td><input type="hidden" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_filename_' . $i . '" name="filename" size=50 value="' . htmlspecialchars(rawurldecode($metadata[$i]["filename"])) . '" /></td></tr>'; } $aDataentryoutput .= '<tr><td></td><td><input type="hidden" id="' . $fname['fieldname'] . '" name="' . $fname['fieldname'] . '" size=50 value="' . htmlspecialchars($idrow[$fname['fieldname']]) . '" /></td></tr>'; $aDataentryoutput .= '</table>'; $aDataentryoutput .= '<script type="text/javascript"> $(function() { $(".' . $fname['fieldname'] . '").keyup(function() { var filecount = $("#' . $fname['fieldname'] . '_filecount").val(); var jsonstr = "["; var i; for (i = 0; i < filecount; i++) { if (i != 0) jsonstr += ","; jsonstr += \'{"title":"\'+$("#' . $fname['fieldname'] . '_title_"+i).val()+\'",\'; jsonstr += \'"comment":"\'+$("#' . $fname['fieldname'] . '_comment_"+i).val()+\'",\'; jsonstr += \'"size":"\'+$("#' . $fname['fieldname'] . '_size_"+i).val()+\'",\'; jsonstr += \'"ext":"\'+$("#' . $fname['fieldname'] . '_ext_"+i).val()+\'",\'; jsonstr += \'"filename":"\'+$("#' . $fname['fieldname'] . '_filename_"+i).val()+\'",\'; jsonstr += \'"name":"\'+encodeURIComponent($("#' . $fname['fieldname'] . '_name_"+i).val())+\'"}\'; } jsonstr += "]"; $("#' . $fname['fieldname'] . '").val(jsonstr); }); }); </script>'; } else { //file count $aDataentryoutput .= '<input readonly id="' . $fname['fieldname'] . '" name="' . $fname['fieldname'] . '" value ="' . htmlspecialchars($idrow[$fname['fieldname']]) . '" /></td></table>'; } break; case "N": //NUMERICAL TEXT $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='{$idrow[$fname['fieldname']]}' " . "onkeypress=\"return goodchars(event,'0123456789.,')\" />\n"; break; case "S": //SHORT FREE TEXT $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n"; break; case "T": //LONG FREE TEXT $aDataentryoutput .= "\t<textarea rows='5' cols='45' name='{$fname['fieldname']}'>" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "</textarea>\n"; break; case "U": //HUGE FREE TEXT $aDataentryoutput .= "\t<textarea rows='50' cols='70' name='{$fname['fieldname']}'>" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "</textarea>\n"; break; case "Y": //YES/NO radio-buttons $aDataentryoutput .= "\t<select name='{$fname['fieldname']}' class='form-control'>\n" . "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("Please choose") . "..</option>\n" . "<option value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("Yes") . "</option>\n" . "<option value='N'"; if ($idrow[$fname['fieldname']] == "N") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . gT("No") . "</option>\n" . "\t</select>\n"; break; case "A": //ARRAY (5 POINT CHOICE) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n"; for ($j = 1; $j <= 5; $j++) { $aDataentryoutput .= '<span class="five-point">'; $aDataentryoutput .= "\t<input type='radio' class='' name='{$fname['fieldname']}' id='5-point-radio-{$fname['fieldname']}' value='{$j}'"; if ($idrow[$fname['fieldname']] == $j) { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " /><label for='5-point-radio-{$fname['fieldname']}'>{$j}</label> \n"; $aDataentryoutput .= '</span>'; } $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $aDataentryoutput .= "</table>\n"; $fname = prev($fnames); break; case "B": //ARRAY (10 POINT CHOICE) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n"; for ($j = 1; $j <= 10; $j++) { $aDataentryoutput .= '<span class="ten-point">'; $aDataentryoutput .= "\t<input type='radio' class='' name='{$fname['fieldname']}' id='ten-point-{$fname['fieldname']}-{$j}' value='{$j}'"; if ($idrow[$fname['fieldname']] == $j) { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " /><label for='ten-point-{$fname['fieldname']}-{$j}'>{$j}</label> \n"; $aDataentryoutput .= '</span>'; } $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "C": //ARRAY (YES/UNCERTAIN/NO) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n" . "\t<input type='radio' class='' name='{$fname['fieldname']}' value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . gT("Yes") . " \n" . "\t<input type='radio' class='' name='{$fname['fieldname']}' value='U'"; if ($idrow[$fname['fieldname']] == "U") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . gT("Uncertain") . " \n" . "\t<input type='radio' class='' name='{$fname['fieldname']}' value='N'"; if ($idrow[$fname['fieldname']] == "N") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . gT("No") . " \n" . "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "E": //ARRAY (Increase/Same/Decrease) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n" . "\t<input type='radio' class='' name='{$fname['fieldname']}' value='I'"; if ($idrow[$fname['fieldname']] == "I") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />Increase \n" . "\t<input type='radio' class='' name='{$fname['fieldname']}' value='S'"; if ($idrow[$fname['fieldname']] == "I") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />Same \n" . "\t<input type='radio' class='' name='{$fname['fieldname']}' value='D'"; if ($idrow[$fname['fieldname']] == "D") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />Decrease \n" . "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "F": //ARRAY (Flexible Labels) //ARRAY (Flexible Labels) case "H": case "1": $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while (isset($fname['qid']) && $fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td>{$fname['subquestion']}"; if (isset($fname['scale'])) { $aDataentryoutput .= " (" . $fname['scale'] . ')'; } $aDataentryoutput .= "</td>\n"; $scale_id = 0; if (isset($fname['scale_id'])) { $scale_id = $fname['scale_id']; } $fquery = "SELECT * FROM {{answers}} WHERE qid='{$fname['qid']}' and scale_id={$scale_id} and language='{$sDataEntryLanguage}' order by sortorder, answer"; $fresult = dbExecuteAssoc($fquery); $aDataentryoutput .= "<td>\n"; foreach ($fresult->readAll() as $frow) { $aDataentryoutput .= "\t<input type='radio' class='' name='{$fname['fieldname']}' value='{$frow['code']}'"; if ($idrow[$fname['fieldname']] == $frow['code']) { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . $frow['answer'] . " \n"; } //Add 'No Answer' $aDataentryoutput .= "\t<input type='radio' class='' name='{$fname['fieldname']}' value=''"; if ($idrow[$fname['fieldname']] == '') { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . gT("No answer") . " \n"; $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case ":": //ARRAY (Multi Flexi) (Numbers) $qidattributes = getQuestionAttributeValues($fname['qid']); if (trim($qidattributes['multiflexible_max']) != '' && trim($qidattributes['multiflexible_min']) == '') { $maxvalue = $qidattributes['multiflexible_max']; $minvalue = 1; } if (trim($qidattributes['multiflexible_min']) != '' && trim($qidattributes['multiflexible_max']) == '') { $minvalue = $qidattributes['multiflexible_min']; $maxvalue = $qidattributes['multiflexible_min'] + 10; } if (trim($qidattributes['multiflexible_min']) == '' && trim($qidattributes['multiflexible_max']) == '') { $minvalue = 1; $maxvalue = 10; } if (trim($qidattributes['multiflexible_min']) != '' && trim($qidattributes['multiflexible_max']) != '') { if ($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']) { $minvalue = $qidattributes['multiflexible_min']; $maxvalue = $qidattributes['multiflexible_max']; } } if (trim($qidattributes['multiflexible_step']) != '') { $stepvalue = $qidattributes['multiflexible_step']; } else { $stepvalue = 1; } if ($qidattributes['multiflexible_checkbox'] != 0) { $minvalue = 0; $maxvalue = 1; $stepvalue = 1; } $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while (isset($fname['qid']) && $fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td>{$fname['subquestion1']}:{$fname['subquestion2']}</td>\n"; $aDataentryoutput .= "<td>\n"; if ($qidattributes['input_boxes'] != 0) { $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='"; if (!empty($idrow[$fname['fieldname']])) { $aDataentryoutput .= $idrow[$fname['fieldname']]; } $aDataentryoutput .= "' size=4 />"; } else { $aDataentryoutput .= "\t<select name='{$fname['fieldname']}' class='form-control'>\n"; $aDataentryoutput .= "<option value=''>...</option>\n"; for ($ii = $minvalue; $ii <= $maxvalue; $ii += $stepvalue) { $aDataentryoutput .= "<option value='{$ii}'"; if ($idrow[$fname['fieldname']] == $ii) { $aDataentryoutput .= " selected"; } $aDataentryoutput .= ">{$ii}</option>\n"; } } $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case ";": //ARRAY (Multi Flexi) $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while (isset($fname['qid']) && $fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td>{$fname['subquestion1']}:{$fname['subquestion2']}</td>\n"; $aDataentryoutput .= "<td>\n"; $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='"; if (!empty($idrow[$fname['fieldname']])) { $aDataentryoutput .= $idrow[$fname['fieldname']]; } $aDataentryoutput .= "' /></td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "token": if (Permission::model()->hasSurveyPermission($surveyid, 'tokens', 'update')) { $aDataentryoutput .= CHtml::textField($fname['fieldname'], $idrow[$fname['fieldname']]); } else { $aDataentryoutput .= CHtml::textField($fname['fieldname'], $idrow[$fname['fieldname']], array('disabled' => 'disabled')); } break; case "submitdate": case "startlanguage": default: $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . $idrow[$fname['fieldname']] . "' />\n"; break; } $aDataentryoutput .= " </td>\n </tr>\n"; } while ($fname = next($fnames)); } $aDataentryoutput .= "</table>\n" . "<p>\n"; $aData['sDataEntryLanguage'] = $sDataEntryLanguage; if (!Permission::model()->hasSurveyPermission($surveyid, 'responses', 'update')) { // if you are not survey owner or super admin you cannot modify responses $aDataentryoutput .= "<p><input type='button' value='" . gT("Save") . "' disabled='disabled'/></p>\n"; } elseif ($subaction == "edit" && Permission::model()->hasSurveyPermission($surveyid, 'responses', 'update')) { $aData['part'] = 'edit'; $aDataentryoutput .= $this->getController()->renderPartial('/admin/dataentry/edit', $aData, TRUE); } elseif ($subaction == "editsaved" && Permission::model()->hasSurveyPermission($surveyid, 'responses', 'update')) { $aData['part'] = 'editsaved'; $aDataentryoutput .= $this->getController()->renderPartial('/admin/dataentry/edit', $aData, TRUE); } $aDataentryoutput .= "</form>\n"; $aViewUrls['output'] = $aDataentryoutput; $aData['sidemenu']['state'] = false; $aData['menu']['edition'] = true; $aData['menu']['save'] = true; $aData['menu']['close'] = true; //$aData['menu']['savebutton'] = 'frmeditgroup'; $this->_renderWrappedTemplate('dataentry', $aViewUrls, $aData); } }
<div class="form-group right w190" > <?php echo CHtml::textField($field['alias'] . '_end', array_key_exists($field['alias'] . '_end', $filter) ? $filter[$field['alias'] . '_end'] : '', array('id' => "datepicker2", 'style' => 'width: 99%', 'class' => 'form-control date datepicker form-input', 'readonly' => 'readonly')); ?> </div> </div> </div> <?php } ?> <?php } elseif (($field['alias'] == 'sex' || $field['alias'] == 'register_status' || $field['alias'] == 'user_business_types__id') && ((bool) $field['used'] || Yii::app()->user->checkAccess('OfficeStatsSettingsIndex') && (bool) $field['used'])) { ?> <?php echo CHtml::listBox($field['alias'], array_key_exists($field['alias'], $filter) ? $filter[$field['alias']] : (int) FALSE, $filterselects[$field['alias']], array('class' => 'form-control', 'size' => 0)); ?> <?php } else { ?> <?php echo CHtml::textField($field['alias'], array_key_exists($field['alias'], $filter) ? $filter[$field['alias']] : '', array('style' => 'width: 99%', 'class' => 'form-control form-input')); ?> <?php } ?> </td> </tr> <?php } ?>
/** * dataentry::editdata() * Edit dataentry. * @param mixed $subaction * @param mixed $id * @param mixed $surveyid * @param mixed $language * @return */ public function editdata($subaction, $id, $surveyid, $language = '') { if ($language == '') { $language = Survey::model()->findByPk($surveyid)->language; } $surveyid = sanitize_int($surveyid); $id = sanitize_int($id); $aViewUrls = array(); if (!isset($sDataEntryLanguage)) { $sDataEntryLanguage = Survey::model()->findByPk($surveyid)->language; } $surveyinfo = getSurveyInfo($surveyid); if (hasSurveyPermission($surveyid, 'responses', 'update')) { $surveytable = "{{survey_" . $surveyid . '}}'; $aData['clang'] = $clang = $this->getController()->lang; $aData['display']['menu_bars']['browse'] = $clang->gT("Data entry"); Yii::app()->loadHelper('database'); //FIRST LETS GET THE NAMES OF THE QUESTIONS AND MATCH THEM TO THE FIELD NAMES FOR THE DATABASE $fnquery = "SELECT * FROM {{questions}}, {{groups}} g, {{surveys}} WHERE\n {{questions}}.gid=g.gid AND\n {{questions}}.language = '{$sDataEntryLanguage}' AND g.language = '{$sDataEntryLanguage}' AND\n {{questions}}.sid={{surveys}}.sid AND {{questions}}.sid='{$surveyid}'\n order by group_order, question_order"; $fnresult = dbExecuteAssoc($fnquery); $fnresult = $fnresult->readAll(); $fncount = count($fnresult); $fnrows = array(); //Create an empty array in case FetchRow does not return any rows foreach ($fnresult as $fnrow) { $fnrows[] = $fnrow; $private = $fnrow['anonymized']; $datestamp = $fnrow['datestamp']; $ipaddr = $fnrow['ipaddr']; } // Get table output into array // Perform a case insensitive natural sort on group name then question title of a multidimensional array // $fnames = (Field Name in Survey Table, Short Title of Question, Question Type, Field Name, Question Code, Predetermined Answers if exist) $fnames['completed'] = array('fieldname' => "completed", 'question' => $clang->gT("Completed"), 'type' => 'completed'); $fnames = array_merge($fnames, createFieldMap($surveyid, 'full', false, false, $sDataEntryLanguage)); $nfncount = count($fnames) - 1; //SHOW INDIVIDUAL RECORD if ($subaction == "edit" && hasSurveyPermission($surveyid, 'responses', 'update')) { $idquery = "SELECT * FROM {$surveytable} WHERE id={$id}"; $idresult = dbExecuteAssoc($idquery) or safeDie("Couldn't get individual record<br />{$idquery}<br />"); foreach ($idresult->readAll() as $idrow) { $results[] = $idrow; } } elseif ($subaction == "editsaved" && hasSurveyPermission($surveyid, 'responses', 'update')) { if (isset($_GET['public']) && $_GET['public'] == "true") { $password = md5(Yii::app()->request->getParam('accesscode')); } else { $password = Yii::app()->request->getParam('accesscode'); } $svresult = Saved_control::model()->findAllByAttributes(array('sid' => $surveyid, 'identifier' => Yii::app()->request->getParam('identifier'), 'access_code' => $password)); foreach ($svresult as $svrow) { $saver['email'] = $svrow['email']; $saver['scid'] = $svrow['scid']; $saver['ip'] = $svrow['ip']; } $svresult = Saved_control::model()->findAllByAttributes(array('scid' => $saver['scid'])); foreach ($svresult as $svrow) { $responses[$svrow['fieldname']] = $svrow['value']; } // while $fieldmap = createFieldMap($surveyid, 'full', false, false, getBaseLanguageFromSurveyID($surveyid)); foreach ($fieldmap as $fm) { if (isset($responses[$fm['fieldname']])) { $results1[$fm['fieldname']] = $responses[$fm['fieldname']]; } else { $results1[$fm['fieldname']] = ""; } } $results1['id'] = ""; $results1['datestamp'] = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", Yii::app()->getConfig('timeadjust')); $results1['ipaddr'] = $saver['ip']; $results[] = $results1; } $aData = array('id' => $id, 'surveyid' => $surveyid, 'subaction' => $subaction, 'part' => 'header', 'clang' => $clang); $aViewUrls[] = 'dataentry_header_view'; $aViewUrls[] = 'edit'; $highlight = FALSE; unset($fnames['lastpage']); // unset timings foreach ($fnames as $fname) { if ($fname['type'] == "interview_time" || $fname['type'] == "page_time" || $fname['type'] == "answer_time") { unset($fnames[$fname['fieldname']]); $nfncount--; } } $aDataentryoutput = ''; foreach ($results as $idrow) { $fname = reset($fnames); do { if (isset($idrow[$fname['fieldname']])) { $answer = $idrow[$fname['fieldname']]; } $question = $fname['question']; $aDataentryoutput .= "\t<tr"; if ($highlight) { $aDataentryoutput .= " class='odd'"; } else { $aDataentryoutput .= " class='even'"; } $highlight = !$highlight; $aDataentryoutput .= ">\n" . "<td>" . "\n"; $aDataentryoutput .= stripJavaScript($question); $aDataentryoutput .= "</td>\n" . "<td>\n"; //$aDataentryoutput .= "\t-={$fname[3]}=-"; //Debugging info if (isset($fname['qid']) && isset($fname['type'])) { $qidattributes = getQuestionAttributeValues($fname['qid'], $fname['type']); } switch ($fname['type']) { case "completed": // First compute the submitdate if ($private == "Y") { // In case of anonymized responses survey with no datestamp // then the the answer submitdate gets a conventional timestamp // 1st Jan 1980 $mysubmitdate = date("Y-m-d H:i:s", mktime(0, 0, 0, 1, 1, 1980)); } else { $mysubmitdate = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", Yii::app()->getConfig('timeadjust')); } $completedate = empty($idrow['submitdate']) ? $mysubmitdate : $idrow['submitdate']; $selected = empty($idrow['submitdate']) ? 'N' : $completedate; $select_options = array('N' => $clang->gT('No'), $completedate => $clang->gT('Yes')); $aDataentryoutput .= CHtml::dropDownList('completed', $selected, $select_options); break; case "X": //Boilerplate question $aDataentryoutput .= ""; break; case "Q": case "K": $aDataentryoutput .= $fname['subquestion'] . ' '; $aDataentryoutput .= CHtml::textField($fname['fieldname'], $idrow[$fname['fieldname']]); break; case "id": $aDataentryoutput .= CHtml::tag('span', array('style' => 'font-weight: bold;'), ' ' . $idrow[$fname['fieldname']]); break; case "5": //5 POINT CHOICE radio-buttons for ($i = 1; $i <= 5; $i++) { $checked = FALSE; if ($idrow[$fname['fieldname']] == $i) { $checked = TRUE; } $aDataentryoutput .= CHtml::radioButton($fname['fieldname'], $checked, array('class' => 'radiobtn', 'value' => $i)); $aDataentryoutput .= $i; } break; case "D": //DATE $thisdate = ''; $dateformatdetails = getDateFormatDataForQID($qidattributes, $surveyid); if ($idrow[$fname['fieldname']] != '') { $thisdate = DateTime::createFromFormat("Y-m-d H:i:s", $idrow[$fname['fieldname']])->format($dateformatdetails['phpdate']); } else { $thisdate = ''; } if (canShowDatePicker($dateformatdetails)) { $goodchars = str_replace(array("m", "d", "y", "H", "M"), "", $dateformatdetails['dateformat']); $goodchars = "0123456789" . $goodchars[0]; $aDataentryoutput .= CHtml::textField($fname['fieldname'], $thisdate, array('class' => 'popupdate', 'size' => '12', 'onkeypress' => 'return goodchars(event,\'' . $goodchars . '\')')); $aDataentryoutput .= CHtml::hiddenField('dateformat' . $fname['fieldname'], $dateformatdetails['jsdate'], array('id' => "dateformat{$fname['fieldname']}")); // $aDataentryoutput .= "\t<input type='text' class='popupdate' size='12' name='{$fname['fieldname']}' value='{$thisdate}' onkeypress=\"return goodchars(event,'".$goodchars."')\"/>\n"; // $aDataentryoutput .= "\t<input type='hidden' name='dateformat{$fname['fieldname']}' id='dateformat{$fname['fieldname']}' value='{$dateformatdetails['jsdate']}' />\n"; } else { $aDataentryoutput .= CHtml::textField($fname['fieldname'], $thisdate); } break; case "G": //GENDER drop-down list $select_options = array('' => $clang->gT("Please choose") . '...', 'F' => $clang->gT("Female"), 'G' => $clang->gT("Male")); $aDataentryoutput .= CHtml::listBox($fname['fieldname'], $idrow[$fname['fieldname']], $select_options); break; case "L": //LIST drop-down //LIST drop-down case "!": //List (Radio) $qidattributes = getQuestionAttributeValues($fname['qid']); if (isset($qidattributes['category_separator']) && trim($qidattributes['category_separator']) != '') { $optCategorySeparator = $qidattributes['category_separator']; } else { unset($optCategorySeparator); } if (substr($fname['fieldname'], -5) == "other") { $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n"; } else { $lquery = "SELECT * FROM {{answers}} WHERE qid={$fname['qid']} AND language = '{$sDataEntryLanguage}' ORDER BY sortorder, answer"; $lresult = dbExecuteAssoc($lquery); $aDataentryoutput .= "\t<select name='{$fname['fieldname']}'>\n" . "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("Please choose") . "..</option>\n"; if (!isset($optCategorySeparator)) { foreach ($lresult->readAll() as $llrow) { $aDataentryoutput .= "<option value='{$llrow['code']}'"; if ($idrow[$fname['fieldname']] == $llrow['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$llrow['answer']}</option>\n"; } } else { $defaultopts = array(); $optgroups = array(); foreach ($lresult->readAll() as $llrow) { list($categorytext, $answertext) = explode($optCategorySeparator, $llrow['answer']); if ($categorytext == '') { $defaultopts[] = array('code' => $llrow['code'], 'answer' => $answertext); } else { $optgroups[$categorytext][] = array('code' => $llrow['code'], 'answer' => $answertext); } } foreach ($optgroups as $categoryname => $optionlistarray) { $aDataentryoutput .= "<optgroup class=\"dropdowncategory\" label=\"" . $categoryname . "\">\n"; foreach ($optionlistarray as $optionarray) { $aDataentryoutput .= "\t<option value='{$optionarray['code']}'"; if ($idrow[$fname['fieldname']] == $optionarray['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$optionarray['answer']}</option>\n"; } $aDataentryoutput .= "</optgroup>\n"; } foreach ($defaultopts as $optionarray) { $aDataentryoutput .= "<option value='{$optionarray['code']}'"; if ($idrow[$fname['fieldname']] == $optionarray['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$optionarray['answer']}</option>\n"; } } $oquery = "SELECT other FROM {{questions}} WHERE qid={$fname['qid']} AND {{questions}}.language = '{$sDataEntryLanguage}'"; $oresult = dbExecuteAssoc($oquery) or safeDie("Couldn't get other for list question<br />" . $oquery . "<br />"); foreach ($oresult->readAll() as $orow) { $fother = $orow['other']; } if ($fother == "Y") { $aDataentryoutput .= "<option value='-oth-'"; if ($idrow[$fname['fieldname']] == "-oth-") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("Other") . "</option>\n"; } $aDataentryoutput .= "\t</select>\n"; } break; case "O": //LIST WITH COMMENT drop-down/radio-button list + textarea $lquery = "SELECT * FROM {{answers}} WHERE qid={$fname['qid']} AND language = '{$sDataEntryLanguage}' ORDER BY sortorder, answer"; $lresult = dbExecuteAssoc($lquery); $aDataentryoutput .= "\t<select name='{$fname['fieldname']}'>\n" . "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("Please choose") . "..</option>\n"; foreach ($lresult->readAll() as $llrow) { $aDataentryoutput .= "<option value='{$llrow['code']}'"; if ($idrow[$fname['fieldname']] == $llrow['code']) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">{$llrow['answer']}</option>\n"; } $fname = next($fnames); $aDataentryoutput .= "\t</select>\n" . "\t<br />\n" . "\t<textarea cols='45' rows='5' name='{$fname['fieldname']}'>" . htmlspecialchars($idrow[$fname['fieldname']]) . "</textarea>\n"; break; case "R": //RANKING TYPE QUESTION $thisqid = $fname['qid']; $currentvalues = array(); $myfname = $fname['sid'] . 'X' . $fname['gid'] . 'X' . $fname['qid']; while (isset($fname['type']) && $fname['type'] == "R" && $fname['qid'] == $thisqid) { //Let's get all the existing values into an array if ($idrow[$fname['fieldname']]) { $currentvalues[] = $idrow[$fname['fieldname']]; } $fname = next($fnames); } $ansquery = "SELECT * FROM {{answers}} WHERE language = '{$sDataEntryLanguage}' AND qid={$thisqid} ORDER BY sortorder, answer"; $ansresult = dbExecuteAssoc($ansquery); $anscount = 0; $aDataentryoutput .= "\t<script type='text/javascript'>\n" . "\t<!--\n" . "function rankthis_{$thisqid}(\$code, \$value)\n" . "\t{\n" . "\t\$index=document.editresponse.CHOICES_{$thisqid}.selectedIndex;\n" . "\tfor (i=1; i<={$anscount}; i++)\n" . "{\n" . "\$b=i;\n" . "\$b += '';\n" . "\$inputname=\"RANK_{$thisqid}\"+\$b;\n" . "\$hiddenname=\"d{$myfname}\"+\$b;\n" . "\$cutname=\"cut_{$thisqid}\"+i;\n" . "document.getElementById(\$cutname).style.display='none';\n" . "if (!document.getElementById(\$inputname).value)\n" . "\t{\n" . "\tdocument.getElementById(\$inputname).value=\$value;\n" . "\tdocument.getElementById(\$hiddenname).value=\$code;\n" . "\tdocument.getElementById(\$cutname).style.display='';\n" . "\tfor (var b=document.getElementById('CHOICES_{$thisqid}').options.length-1; b>=0; b--)\n" . "{\n" . "if (document.getElementById('CHOICES_{$thisqid}').options[b].value == \$code)\n" . "\t{\n" . "\tdocument.getElementById('CHOICES_{$thisqid}').options[b] = null;\n" . "\t}\n" . "}\n" . "\ti={$anscount};\n" . "\t}\n" . "}\n" . "\tif (document.getElementById('CHOICES_{$thisqid}').options.length == 0)\n" . "{\n" . "document.getElementById('CHOICES_{$thisqid}').disabled=true;\n" . "}\n" . "\tdocument.editresponse.CHOICES_{$thisqid}.selectedIndex=-1;\n" . "\t}\n" . "function deletethis_{$thisqid}(\$text, \$value, \$name, \$thisname)\n" . "\t{\n" . "\tvar qid='{$thisqid}';\n" . "\tvar lngth=qid.length+4;\n" . "\tvar cutindex=\$thisname.substring(lngth, \$thisname.length);\n" . "\tcutindex=parseFloat(cutindex);\n" . "\tdocument.getElementById(\$name).value='';\n" . "\tdocument.getElementById(\$thisname).style.display='none';\n" . "\tif (cutindex > 1)\n" . "{\n" . "\$cut1name=\"cut_{$thisqid}\"+(cutindex-1);\n" . "\$cut2name=\"d{$myfname}\"+(cutindex);\n" . "document.getElementById(\$cut1name).style.display='';\n" . "document.getElementById(\$cut2name).value='';\n" . "}\n" . "\telse\n" . "{\n" . "\$cut2name=\"d{$myfname}\"+(cutindex);\n" . "document.getElementById(\$cut2name).value='';\n" . "}\n" . "\tvar i=document.getElementById('CHOICES_{$thisqid}').options.length;\n" . "\tdocument.getElementById('CHOICES_{$thisqid}').options[i] = new Option(\$text, \$value);\n" . "\tif (document.getElementById('CHOICES_{$thisqid}').options.length > 0)\n" . "{\n" . "document.getElementById('CHOICES_{$thisqid}').disabled=false;\n" . "}\n" . "\t}\n" . "\t//-->\n" . "\t</script>\n"; foreach ($ansresult->readAll() as $ansrow) { $answers[] = array($ansrow['code'], $ansrow['answer']); $anscount++; } //now find out how many existing values there are $chosen[] = ""; //create array if (!isset($ranklist)) { $ranklist = ""; } if (isset($currentvalues)) { $existing = count($currentvalues); } else { $existing = 0; } for ($j = 1; $j <= $anscount; $j++) { $k = $j - 1; if (isset($currentvalues) && isset($currentvalues[$k]) && $currentvalues[$k]) { foreach ($answers as $ans) { if ($ans[0] == $currentvalues[$k]) { $thiscode = $ans[0]; $thistext = $ans[1]; } } } $ranklist .= "{$j}: <input class='ranklist' id='RANK_{$thisqid}{$j}'"; if (isset($currentvalues) && isset($currentvalues[$k]) && $currentvalues[$k]) { $ranklist .= " value='" . $thistext . "'"; } $ranklist .= " onFocus=\"this.blur()\" />\n" . "<input type='hidden' id='d{$myfname}{$j}' name='{$myfname}{$j}' value='"; if (isset($currentvalues) && isset($currentvalues[$k]) && $currentvalues[$k]) { $ranklist .= $thiscode; $chosen[] = array($thiscode, $thistext); } $ranklist .= "' />\n" . "<img src='" . Yii::app()->getConfig('imageurl') . "/cut.gif' alt='" . $clang->gT("Remove this item") . "' title='" . $clang->gT("Remove this item") . "' "; if ($j != $existing) { $ranklist .= "style='display:none'"; } $ranklist .= " id='cut_{$thisqid}{$j}' onclick=\"deletethis_{$thisqid}(document.editresponse.RANK_{$thisqid}{$j}.value, document.editresponse.d{$myfname}{$j}.value, document.editresponse.RANK_{$thisqid}{$j}.id, this.id)\" /><br />\n\n"; } if (!isset($choicelist)) { $choicelist = ""; } $choicelist .= "<select class='choicelist' size='{$anscount}' name='CHOICES' id='CHOICES_{$thisqid}' onclick=\"rankthis_{$thisqid}(this.options[this.selectedIndex].value, this.options[this.selectedIndex].text)\" >\n"; foreach ($answers as $ans) { if (!in_array($ans, $chosen)) { $choicelist .= "\t<option value='{$ans[0]}'>{$ans[1]}</option>\n"; } } $choicelist .= "</select>\n"; $aDataentryoutput .= "\t<table>\n" . "<tr>\n" . "\t<td>\n" . "<strong>" . $clang->gT("Your Choices") . ":</strong><br />\n" . $choicelist . "\t</td>\n" . "\t<td align='left'>\n" . "<strong>" . $clang->gT("Your Ranking") . ":</strong><br />\n" . $ranklist . "\t</td>\n" . "</tr>\n" . "\t</table>\n" . "\t<input type='hidden' name='multi' value='{$anscount}' />\n" . "\t<input type='hidden' name='lastfield' value='"; if (isset($multifields)) { $aDataentryoutput .= $multifields; } $aDataentryoutput .= "' />\n"; $choicelist = ""; $ranklist = ""; unset($answers); $fname = prev($fnames); break; case "M": //Multiple choice checkbox $qidattributes = getQuestionAttributeValues($fname['qid']); if (trim($qidattributes['display_columns']) != '') { $dcols = $qidattributes['display_columns']; } else { $dcols = 0; } // while ($fname[3] == "M" && $question != "" && $question == $fname['type']) $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); //$aDataentryoutput .= substr($fname['fieldname'], strlen($fname['fieldname'])-5, 5)."<br />\n"; if (substr($fname['fieldname'], -5) == "other") { $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n"; } else { $aDataentryoutput .= "\t<input type='checkbox' class='checkboxbtn' name='{$fname['fieldname']}' value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />{$fname['subquestion']}<br />\n"; } $fname = next($fnames); } $fname = prev($fnames); break; case "I": //Language Switch $lquery = "SELECT * FROM {{answers}} WHERE qid={$fname['qid']} AND language = '{$sDataEntryLanguage}' ORDER BY sortorder, answer"; $lresult = dbExecuteAssoc($lquery); $slangs = Survey::model()->findByPk($surveyid)->additionalLanguages; $baselang = Survey::model()->findByPk($surveyid)->language; array_unshift($slangs, $baselang); $aDataentryoutput .= "<select name='{$fname['fieldname']}'>\n"; $aDataentryoutput .= "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("Please choose") . "..</option>\n"; foreach ($slangs as $lang) { $aDataentryoutput .= "<option value='{$lang}'"; if ($lang == $idrow[$fname['fieldname']]) { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . getLanguageNameFromCode($lang, false) . "</option>\n"; } $aDataentryoutput .= "</select>"; break; case "P": //Multiple choice with comments checkbox + text $aDataentryoutput .= "<table>\n"; while (isset($fname) && $fname['type'] == "P") { $thefieldname = $fname['fieldname']; if (substr($thefieldname, -7) == "comment") { $aDataentryoutput .= "<td><input type='text' name='{$fname['fieldname']}' size='50' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' /></td>\n" . "\t</tr>\n"; } elseif (substr($fname['fieldname'], -5) == "other") { $aDataentryoutput .= "\t<tr>\n" . "<td>\n" . "\t<input type='text' name='{$fname['fieldname']}' size='30' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n" . "</td>\n" . "<td>\n"; $fname = next($fnames); $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' size='50' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n" . "</td>\n" . "\t</tr>\n"; } else { $aDataentryoutput .= "\t<tr>\n" . "<td><input type='checkbox' class='checkboxbtn' name=\"{$fname['fieldname']}\" value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />{$fname['subquestion']}</td>\n"; } $fname = next($fnames); } $aDataentryoutput .= "</table>\n"; $fname = prev($fnames); break; case "|": //FILE UPLOAD $aDataentryoutput .= "<table>\n"; if ($fname['aid'] !== 'filecount' && isset($idrow[$fname['fieldname'] . '_filecount']) && $idrow[$fname['fieldname'] . '_filecount'] > 0) { //file metadata $metadata = json_decode($idrow[$fname['fieldname']], true); $qAttributes = getQuestionAttributeValues($fname['qid']); for ($i = 0; $i < $qAttributes['max_num_of_files'], isset($metadata[$i]); $i++) { if ($qAttributes['show_title']) { $aDataentryoutput .= '<tr><td>Title </td><td><input type="text" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_title_' . $i . '" name="title" size=50 value="' . htmlspecialchars($metadata[$i]["title"]) . '" /></td></tr>'; } if ($qAttributes['show_comment']) { $aDataentryoutput .= '<tr><td >Comment </td><td><input type="text" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_comment_' . $i . '" name="comment" size=50 value="' . htmlspecialchars($metadata[$i]["comment"]) . '" /></td></tr>'; } $aDataentryoutput .= '<tr><td> File name</td><td><input class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_name_' . $i . '" name="name" size=50 value="' . htmlspecialchars(rawurldecode($metadata[$i]["name"])) . '" /></td></tr>' . '<tr><td></td><td><input type="hidden" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_size_' . $i . '" name="size" size=50 value="' . htmlspecialchars($metadata[$i]["size"]) . '" /></td></tr>' . '<tr><td></td><td><input type="hidden" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_ext_' . $i . '" name="ext" size=50 value="' . htmlspecialchars($metadata[$i]["ext"]) . '" /></td></tr>' . '<tr><td></td><td><input type="hidden" class="' . $fname['fieldname'] . '" id="' . $fname['fieldname'] . '_filename_' . $i . '" name="filename" size=50 value="' . htmlspecialchars(rawurldecode($metadata[$i]["filename"])) . '" /></td></tr>'; } $aDataentryoutput .= '<tr><td></td><td><input type="hidden" id="' . $fname['fieldname'] . '" name="' . $fname['fieldname'] . '" size=50 value="' . htmlspecialchars($idrow[$fname['fieldname']]) . '" /></td></tr>'; $aDataentryoutput .= '</table>'; $aDataentryoutput .= '<script type="text/javascript"> $(function() { $(".' . $fname['fieldname'] . '").keyup(function() { var filecount = $("#' . $fname['fieldname'] . '_filecount").val(); var jsonstr = "["; var i; for (i = 0; i < filecount; i++) { if (i != 0) jsonstr += ","; jsonstr += \'{"title":"\'+$("#' . $fname['fieldname'] . '_title_"+i).val()+\'",\'; jsonstr += \'"comment":"\'+$("#' . $fname['fieldname'] . '_comment_"+i).val()+\'",\'; jsonstr += \'"size":"\'+$("#' . $fname['fieldname'] . '_size_"+i).val()+\'",\'; jsonstr += \'"ext":"\'+$("#' . $fname['fieldname'] . '_ext_"+i).val()+\'",\'; jsonstr += \'"filename":"\'+$("#' . $fname['fieldname'] . '_filename_"+i).val()+\'",\'; jsonstr += \'"name":"\'+encodeURIComponent($("#' . $fname['fieldname'] . '_name_"+i).val())+\'"}\'; } jsonstr += "]"; $("#' . $fname['fieldname'] . '").val(jsonstr); }); }); </script>'; } else { //file count $aDataentryoutput .= '<input readonly id="' . $fname['fieldname'] . '" name="' . $fname['fieldname'] . '" value ="' . htmlspecialchars($idrow[$fname['fieldname']]) . '" /></td></table>'; } break; case "N": //NUMERICAL TEXT $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='{$idrow[$fname['fieldname']]}' " . "onkeypress=\"return goodchars(event,'0123456789.,')\" />\n"; break; case "S": //SHORT FREE TEXT $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "' />\n"; break; case "T": //LONG FREE TEXT $aDataentryoutput .= "\t<textarea rows='5' cols='45' name='{$fname['fieldname']}'>" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "</textarea>\n"; break; case "U": //HUGE FREE TEXT $aDataentryoutput .= "\t<textarea rows='50' cols='70' name='{$fname['fieldname']}'>" . htmlspecialchars($idrow[$fname['fieldname']], ENT_QUOTES) . "</textarea>\n"; break; case "Y": //YES/NO radio-buttons $aDataentryoutput .= "\t<select name='{$fname['fieldname']}'>\n" . "<option value=''"; if ($idrow[$fname['fieldname']] == "") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("Please choose") . "..</option>\n" . "<option value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("Yes") . "</option>\n" . "<option value='N'"; if ($idrow[$fname['fieldname']] == "N") { $aDataentryoutput .= " selected='selected'"; } $aDataentryoutput .= ">" . $clang->gT("No") . "</option>\n" . "\t</select>\n"; break; case "A": //ARRAY (5 POINT CHOICE) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n"; for ($j = 1; $j <= 5; $j++) { $aDataentryoutput .= "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='{$j}'"; if ($idrow[$fname['fieldname']] == $j) { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />{$j} \n"; } $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $aDataentryoutput .= "</table>\n"; $fname = prev($fnames); break; case "B": //ARRAY (10 POINT CHOICE) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n"; for ($j = 1; $j <= 10; $j++) { $aDataentryoutput .= "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='{$j}'"; if ($idrow[$fname['fieldname']] == $j) { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />{$j} \n"; } $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "C": //ARRAY (YES/UNCERTAIN/NO) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n" . "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='Y'"; if ($idrow[$fname['fieldname']] == "Y") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . $clang->gT("Yes") . " \n" . "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='U'"; if ($idrow[$fname['fieldname']] == "U") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . $clang->gT("Uncertain") . " \n" . "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='N'"; if ($idrow[$fname['fieldname']] == "N") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . $clang->gT("No") . " \n" . "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "E": //ARRAY (Increase/Same/Decrease) radio-buttons $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while ($fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td align='right'>{$fname['subquestion']}</td>\n" . "<td>\n" . "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='I'"; if ($idrow[$fname['fieldname']] == "I") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />Increase \n" . "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='S'"; if ($idrow[$fname['fieldname']] == "I") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />Same \n" . "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='D'"; if ($idrow[$fname['fieldname']] == "D") { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />Decrease \n" . "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case "F": //ARRAY (Flexible Labels) //ARRAY (Flexible Labels) case "H": case "1": $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while (isset($fname['qid']) && $fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td>{$fname['subquestion']}"; if (isset($fname['scale'])) { $aDataentryoutput .= " (" . $fname['scale'] . ')'; } $aDataentryoutput .= "</td>\n"; $scale_id = 0; if (isset($fname['scale_id'])) { $scale_id = $fname['scale_id']; } $fquery = "SELECT * FROM {{answers}} WHERE qid='{$fname['qid']}' and scale_id={$scale_id} and language='{$sDataEntryLanguage}' order by sortorder, answer"; $fresult = dbExecuteAssoc($fquery); $aDataentryoutput .= "<td>\n"; foreach ($fresult->readAll() as $frow) { $aDataentryoutput .= "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value='{$frow['code']}'"; if ($idrow[$fname['fieldname']] == $frow['code']) { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . $frow['answer'] . " \n"; } //Add 'No Answer' $aDataentryoutput .= "\t<input type='radio' class='radiobtn' name='{$fname['fieldname']}' value=''"; if ($idrow[$fname['fieldname']] == '') { $aDataentryoutput .= " checked"; } $aDataentryoutput .= " />" . $clang->gT("No answer") . " \n"; $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case ":": //ARRAY (Multi Flexi) (Numbers) $qidattributes = getQuestionAttributeValues($fname['qid']); if (trim($qidattributes['multiflexible_max']) != '' && trim($qidattributes['multiflexible_min']) == '') { $maxvalue = $qidattributes['multiflexible_max']; $minvalue = 1; } if (trim($qidattributes['multiflexible_min']) != '' && trim($qidattributes['multiflexible_max']) == '') { $minvalue = $qidattributes['multiflexible_min']; $maxvalue = $qidattributes['multiflexible_min'] + 10; } if (trim($qidattributes['multiflexible_min']) == '' && trim($qidattributes['multiflexible_max']) == '') { $minvalue = 1; $maxvalue = 10; } if (trim($qidattributes['multiflexible_min']) != '' && trim($qidattributes['multiflexible_max']) != '') { if ($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']) { $minvalue = $qidattributes['multiflexible_min']; $maxvalue = $qidattributes['multiflexible_max']; } } if (trim($qidattributes['multiflexible_step']) != '') { $stepvalue = $qidattributes['multiflexible_step']; } else { $stepvalue = 1; } if ($qidattributes['multiflexible_checkbox'] != 0) { $minvalue = 0; $maxvalue = 1; $stepvalue = 1; } $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while (isset($fname['qid']) && $fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td>{$fname['subquestion1']}:{$fname['subquestion2']}</td>\n"; $aDataentryoutput .= "<td>\n"; if ($qidattributes['input_boxes'] != 0) { $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='"; if (!empty($idrow[$fname['fieldname']])) { $aDataentryoutput .= $idrow[$fname['fieldname']]; } $aDataentryoutput .= "' size=4 />"; } else { $aDataentryoutput .= "\t<select name='{$fname['fieldname']}'>\n"; $aDataentryoutput .= "<option value=''>...</option>\n"; for ($ii = $minvalue; $ii <= $maxvalue; $ii += $stepvalue) { $aDataentryoutput .= "<option value='{$ii}'"; if ($idrow[$fname['fieldname']] == $ii) { $aDataentryoutput .= " selected"; } $aDataentryoutput .= ">{$ii}</option>\n"; } } $aDataentryoutput .= "</td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; case ";": //ARRAY (Multi Flexi) $aDataentryoutput .= "<table>\n"; $thisqid = $fname['qid']; while (isset($fname['qid']) && $fname['qid'] == $thisqid) { $fieldn = substr($fname['fieldname'], 0, strlen($fname['fieldname'])); $aDataentryoutput .= "\t<tr>\n" . "<td>{$fname['subquestion1']}:{$fname['subquestion2']}</td>\n"; $aDataentryoutput .= "<td>\n"; $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='"; if (!empty($idrow[$fname['fieldname']])) { $aDataentryoutput .= $idrow[$fname['fieldname']]; } $aDataentryoutput .= "' /></td>\n" . "\t</tr>\n"; $fname = next($fnames); } $fname = prev($fnames); $aDataentryoutput .= "</table>\n"; break; default: //This really only applies to tokens for non-private surveys $aDataentryoutput .= "\t<input type='text' name='{$fname['fieldname']}' value='" . $idrow[$fname['fieldname']] . "' />\n"; break; } $aDataentryoutput .= "\t\t</td>\n </tr>\n"; } while ($fname = next($fnames)); } $aDataentryoutput .= "</table>\n" . "<p>\n"; $aData['sDataEntryLanguage'] = $sDataEntryLanguage; if (!hasSurveyPermission($surveyid, 'responses', 'update')) { // if you are not survey owner or super admin you cannot modify responses $aDataentryoutput .= "<p><input type='button' value='" . $clang->gT("Save") . "' disabled='disabled'/></p>\n"; } elseif ($subaction == "edit" && hasSurveyPermission($surveyid, 'responses', 'update')) { $aData['part'] = 'edit'; $aDataentryoutput .= $this->getController()->render('/admin/dataentry/edit', $aData, TRUE); } elseif ($subaction == "editsaved" && hasSurveyPermission($surveyid, 'responses', 'update')) { $aData['part'] = 'editsaved'; $aDataentryoutput .= $this->getController()->render('/admin/dataentry/edit', $aData, TRUE); } $aDataentryoutput .= "</form>\n"; $aViewUrls['output'] = $aDataentryoutput; $this->_renderWrappedTemplate('dataentry', $aViewUrls, $aData); } }
<?php echo CHtml::label(Yii::t('app', 'Комментарий'), 'body', array('class' => 'col-md-3 control-label')); ?> <div class="col-md-9"> <?php echo CHtml::textField('filtercomment', array_key_exists('filtercomment', $filter) ? $filter['filtercomment'] : (string) FALSE, array('class' => 'form-control input-large')); ?> </div> </div> <div class="form-group"> <?php echo CHtml::label(Yii::t('app', 'Статус'), 'body', array('class' => 'col-md-3 control-label')); ?> <div class="col-md-9"> <?php echo CHtml::listBox('filterstatus', array_key_exists('filterstatus', $filter) ? $filter['filterstatus'] : (string) FALSE, Comments::LabelStatus(), array('empty' => '-', 'size' => (int) TRUE, 'class' => 'form-control input-large')); ?> </div> </div> </div> <div class="form-actions"> <?php echo CHtml::submitbutton(Yii::t('app', 'Применить'), array('name' => 'btn_filter', 'class' => 'btn green', 'onClick' => 'saveFilter()')); ?> <?php echo CHtml::button(Yii::t('app', 'Сбросить фильтр'), array('name' => 'btn_filter', 'class' => 'btn red', 'onClick' => 'location.href="' . $this->createUrl('/admin/comments/comments/index') . '"')); ?> </div> </div> </div> <?php