Example #1
0
 public static function editToWiki($data)
 {
     $nudata = array();
     $len = 0;
     foreach ($data['data'] as $field) {
         if ($field['title'] === '') {
             continue;
         }
         $s = syntax_plugin_data_entry::_normalize($field['title']);
         if (trim($field['type']) !== '' || substr($s, -1, 1) === 's' && $field['multi'] === '') {
             $s .= '_' . syntax_plugin_data_entry::_normalize($field['type']);
         }
         if ($field['multi'] === '1') {
             $s .= 's';
         }
         if (is_array($field['value'])) {
             $field['value'] = join(', ', $field['value']);
         }
         $nudata[] = array($s, syntax_plugin_data_entry::_normalize($field['value']), isset($field['comment']) ? trim($field['comment']) : '');
         $len = max($len, utf8_strlen($nudata[count($nudata) - 1][0]));
     }
     $ret = '---- dataentry ' . trim($data['classes']) . ' ----' . DOKU_LF;
     foreach ($nudata as $field) {
         $ret .= $field[0] . str_repeat(' ', $len + 1 - utf8_strlen($field[0])) . ': ' . $field[1];
         if ($field[2] !== '') {
             $ret .= ' #' . $field[2];
         }
         $ret .= DOKU_LF;
     }
     $ret .= '----';
     return $ret;
 }
 /**
  * Handles the data posted from the editor to recreate the entry syntax
  *
  * @param array $data data given via POST
  * @return string
  */
 public static function editToWiki($data)
 {
     $nudata = array();
     $len = 0;
     // we check the maximum lenght for nice alignment later
     foreach ($data['data'] as $field) {
         if (is_array($field['value'])) {
             $field['value'] = join(', ', $field['value']);
         }
         $field = array_map('trim', $field);
         if ($field['title'] === '') {
             continue;
         }
         $name = syntax_plugin_data_entry::_normalize($field['title']);
         if ($field['type'] !== '') {
             $name .= '_' . syntax_plugin_data_entry::_normalize($field['type']);
         } elseif (substr($name, -1, 1) === 's') {
             $name .= '_';
             // when the field name ends in 's' we need to secure it against being assumed as multi
         }
         if ($field['multi'] === '1') {
             $name .= 's';
         }
         // 's' is added to either type or name for multi
         $nudata[] = array($name, syntax_plugin_data_entry::_normalize($field['value']), $field['comment']);
         $len = max($len, utf8_strlen($nudata[count($nudata) - 1][0]));
     }
     $ret = '---- dataentry ' . trim($data['classes']) . ' ----' . DOKU_LF;
     foreach ($nudata as $field) {
         $ret .= $field[0] . str_repeat(' ', $len + 1 - utf8_strlen($field[0])) . ': ' . $field[1];
         if ($field[2] !== '') {
             $ret .= ' # ' . $field[2];
         }
         $ret .= DOKU_LF;
     }
     $ret .= "----\n";
     return $ret;
 }