Example #1
0
 private function getEditStatRow($stat_id, $stat_data, $stat, $fate_game, $results, $new_count = 0)
 {
     $new = '';
     $oninput = '';
     $onchange = '';
     if (is_array($stat)) {
         $new = 'new_';
         if (!$stat_data['unique']) {
             if ($stat_data['modeskill']) {
                 $oninput = "oninput='addNewRow({$stat_id}, {$new_count}, \"" . $stat_data['fields']['label']['label'] . "\", " . $stat_data['mode_value'] . ");'";
                 $onchange = "onchange='addNewRow({$stat_id}, {$new_count}, \"" . $stat_data['fields']['label']['label'] . "\", " . $stat_data['mode_value'] . ");'";
             } else {
                 $oninput = "oninput='addNewRow({$stat_id}, {$new_count});'";
                 $onchange = "onchange='addNewRow({$stat_id}, {$new_count});'";
             }
         }
     }
     $row = '<tr>';
     foreach ($stat_data['fields'] as $field => $field_data) {
         $value = htmlspecialchars($stat->{'stat_' . $field}, ENT_QUOTES);
         $error = '';
         if (!is_array($stat) && $results['error']['required'][$stat->{fractal_stat_id}] && in_array($field, $results['error']['required'][$stat->{fractal_stat_id}])) {
             $error = "class='formerror'";
         }
         $name = $stat_id . '_' . $new . $field . '_' . (is_array($stat) ? $new_count : $stat->{fractal_stat_id});
         $row .= "<td class='mw-label'><label for='ef{$name}'>" . $field_data['label'] . ($field_data['type'] == 'display' ? '' : ':') . "</label></td>";
         // If we have results, then show values that were submitted
         if (count($results) > 0 && $field_data['type'] != 'display' && array_key_exists($name, $results['form'])) {
             if ($stat_id == FateGameGlobals::STAT_MODE && $field_data['type'] == 'select') {
                 $value = $fate_game->modes_by_id[$results['form'][$name]]['label'];
             } else {
                 $value = htmlspecialchars($results['form'][$name], ENT_QUOTES);
             }
         }
         if ($stat_id == FateGameGlobals::STAT_CONDITION && $field_data['type'] == 'select') {
             $conditions = FateGameGlobals::getConditionCategories();
             $row .= "<td class='mw-input'><select id='ef{$name}' name='{$name}' {$onchange} {$error}>";
             foreach ($conditions as $key => $category) {
                 $selected = $value == $key ? 'selected' : '';
                 $row .= "<option value='{$key}' {$selected}>{$category}</option>";
             }
             $row .= "</select></td>";
         } elseif ($stat_id == FateGameGlobals::STAT_MODE && $field_data['type'] == 'select') {
             $row .= "<td class='mw-input'><select id='ef{$name}' name='{$name}' {$onchange} {$error}>";
             foreach ($fate_game->modes as $mode) {
                 $selected = $value == $mode['label'] ? 'selected' : '';
                 $row .= "<option value='" . $mode['mode_id'] . "' {$selected}>" . $mode['label'] . "</option>";
             }
             $row .= "</select></td>";
         } elseif ($stat_id == FateGameGlobals::STAT_SKILL && $field_data['type'] == 'select') {
             $row .= "<td class='mw-input'><select id='ef{$name}' name='{$name}' {$onchange} {$error}>";
             foreach ($fate_game->skills as $skill) {
                 $selected = $value == $skill['label'] ? 'selected' : '';
                 $row .= "<option value='" . $skill['skill_id'] . "' {$selected}>" . $skill['label'] . "</option>";
             }
             $row .= "</select></td>";
         } elseif ($stat_id == FateGameGlobals::STAT_MOOK && $field_data['type'] == 'select') {
             $levels = FateGameGlobals::getMookLevels();
             $row .= "<td class='mw-input'><select id='ef{$name}' name='{$name}' {$onchange} {$error}>";
             foreach ($levels as $rating => $label) {
                 $selected = $value == $rating ? 'selected' : '';
                 $row .= "<option value='{$rating}' {$selected}>{$label}</option>";
             }
             $row .= "</select></td>";
         } elseif ($stat_id == FateGameGlobals::STAT_SKILL && $field_data['type'] == 'rankselect') {
             $levels = array_reverse(FateGameGlobals::getModeLevels(), true);
             $row .= "<td class='mw-input'><select id='ef{$name}' name='{$name}' {$onchange} {$error}>";
             foreach ($levels as $rating => $label) {
                 $total = $rating + $stat_data['mode_value'];
                 $selected = $total == $value ? 'selected' : '';
                 $row .= "<option value='{$total}' {$selected}>{$label} (+{$rating})</option>";
             }
             $row .= "</select>";
             if ($new) {
                 $hidden_name = $stat_id . '_' . $new . 'mode_' . (is_array($stat) ? $new_count : $stat->{fractal_stat_id});
                 $row .= "<input type='hidden' name='{$hidden_name}' value='" . $stat_data['mode_id'] . "'/>";
             }
             $row .= "</td>";
         } elseif ($field_data['type'] == 'display') {
             $row .= "<td class='mw-input'>{$value}</td>";
         } elseif ($field_data['type'] == 'textarea') {
             $row .= "<td class='mw-input'><textarea {$error} id='ef{$name}' name='{$name}' {$oninput} rows=" . $field_data['rows'] . " cols=" . $field_data['cols'] . ">{$value}</textarea></td>";
         } else {
             $row .= "<td class='mw-input'><input {$error} id='ef{$name}' name='{$name}' type='text' size='" . $field_data['size'] . "' value='{$value}' {$oninput}/></td>";
         }
     }
     if ($stat_data['modeskill'] && $stat_data['fields']['label']['label'] == '') {
         $row .= $this->getDeleteCells(array(), $results);
     } else {
         $row .= $this->getDeleteCells($stat, $results);
     }
     $row .= '</tr>';
     if (!is_array($stat) && $results['error']['required'][$stat->{fractal_stat_id}]) {
         $row .= $this->getFormErrorCells($stat_data, $results['error']['required'][$stat->{fractal_stat_id}]);
     }
     return $row;
 }