[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/templates/default/admin/ -> media_upload.tpl (source)

   1  <div class="image_add_form">{$CONST.ADD_MEDIA_BLAHBLAH}</div>
   2  
   3  <script type="text/javascript">
   4  // Function prototype inspired by http://molily.de/javascript-nodelist
   5  function showNodes(n) {ldelim}
   6      var html;
   7      html = '<!--nodeset--><li>';
   8  
   9      switch (n.nodeType) {ldelim}
  10          case 1:
  11              html += 'Type is <em>' + n.nodeName + '<\/em>';
  12              if (n.hasChildNodes()) {ldelim}
  13                  ausgabe += ' - childNodes: ' + n.childNodes.length;
  14              {rdelim}
  15              break;
  16  
  17          case 3:
  18              var nval = n.nodeValue.replace(/</g, '&lt;').replace(/\n/g, '\\n');
  19              html += 'Content: <strong>' + nval + '<\/strong>';
  20              break;
  21  
  22          case 8:
  23              var nval = n.nodeValue.replace(/</g, '&lt;').replace(/\n/g, '\\n');
  24              html += 'Hidden: <em>' + nval + '<\/em>';
  25              break;
  26  
  27          default:
  28              html += 'Type is ' + n.nodeType + ', Content is <strong>' + n.nodeValue + '<\/strong>';
  29      }
  30  
  31      if (n.hasChildNodes()) {ldelim}
  32          html += '\n<ol>\n';
  33          for (i=0; i < n.childNodes.length; i++) {ldelim}
  34              j = n.childNodes[i];
  35              html += showNodes(j);
  36          {rdelim}
  37          html += '</ol>\n';
  38      {rdelim}
  39      html += '</li>\n';
  40  
  41      return html;
  42  {rdelim}
  43  
  44  function getfilename(value) {ldelim}
  45      re = /^.+[\/\\]+?(.+)$/;
  46      return value.replace(re, "$1");
  47  {rdelim}
  48  
  49  isFileUpload = true;
  50  function hideForeign() {ldelim}
  51      document.getElementById('foreign_upload').style.display = 'none';
  52      document.getElementById('imageurl').value = '';
  53      isFileUpload = false;
  54  {rdelim}
  55  
  56  var fieldcount = 1;
  57  function addField() {ldelim}
  58      fieldcount++;
  59  
  60      fields = document.getElementById('upload_template').cloneNode(true);
  61      fields.id = 'upload_form_' + fieldcount;
  62      fields.style.display = 'block';
  63  
  64      // Get the DOM outline be uncommenting this:
  65      //document.getElementById('debug').innerHTML = showNodes(fields);
  66  
  67      // garvin: This gets a bit weird. Opera, Mozilla and IE all have their own numbering.
  68      // We cannot operate on "ID" basis, since a unique ID is not yet set before instancing.
  69      if (fields.childNodes[0].nodeValue == null) {ldelim}
  70          // This is Internet Explorer, it does not have a linebreak as first element.
  71          userfile       = fields.childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0];
  72          targetfilename = fields.childNodes[0].childNodes[0].childNodes[2].childNodes[1].childNodes[0];
  73          targetdir      = fields.childNodes[0].childNodes[0].childNodes[3].childNodes[1].childNodes[0];
  74          columncount    = fields.childNodes[1].childNodes[0];
  75      {rdelim} else {ldelim}
  76          // We have a browser which has \n's as their own nodes. Don't ask me. Now let's check if it's Opera or Mozilla.
  77          if (fields.childNodes[1].childNodes[0].nodeValue == null) {ldelim}
  78              // This is Opera.
  79              userfile       = fields.childNodes[1].childNodes[0].childNodes[0].childNodes[1].childNodes[0];
  80              targetfilename = fields.childNodes[1].childNodes[0].childNodes[2].childNodes[1].childNodes[0];
  81              targetdir      = fields.childNodes[1].childNodes[0].childNodes[3].childNodes[1].childNodes[0];
  82              columncount    = fields.childNodes[3].childNodes[0];
  83          {rdelim} else if (fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3] == null) {ldelim}
  84              // This is Safari.
  85              userfile       = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[1].childNodes[0];
  86              targetfilename = fields.childNodes[1].childNodes[1].childNodes[2].childNodes[1].childNodes[0];
  87              targetdir      = fields.childNodes[1].childNodes[1].childNodes[3].childNodes[1].childNodes[0];
  88              columncount    = fields.childNodes[3].childNodes[0];
  89          {rdelim} else {ldelim}
  90              // This is Mozilla.
  91              userfile       = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3].childNodes[0];
  92              targetfilename = fields.childNodes[1].childNodes[1].childNodes[4].childNodes[3].childNodes[0];
  93              targetdir      = fields.childNodes[1].childNodes[1].childNodes[6].childNodes[3].childNodes[0];
  94              columncount    = fields.childNodes[3].childNodes[0];
  95          {rdelim}
  96      {rdelim}
  97  
  98      userfile.id   = 'userfile_' + fieldcount;
  99      userfile.name = 'serendipity[userfile][' + fieldcount + ']';
 100  
 101      targetfilename.id   = 'target_filename_' + fieldcount;
 102      targetfilename.name = 'serendipity[target_filename][' + fieldcount + ']';
 103  
 104      targetdir.id   = 'target_directory_' + fieldcount;
 105      targetdir.name = 'serendipity[target_directory][' + fieldcount + ']';
 106  
 107      columncount.id   = 'column_count_' + fieldcount;
 108      columncount.name = 'serendipity[column_count][' + fieldcount + ']';
 109  
 110      iNode = document.getElementById('upload_form');
 111      iNode.parentNode.insertBefore(fields, iNode);
 112  
 113      document.getElementById(targetdir.id).selectedIndex = document.getElementById('target_directory_' + (fieldcount - 1)).selectedIndex;
 114  {rdelim}
 115  
 116  var inputStorage = new Array();
 117  function checkInputs() {ldelim}
 118      for (i = 1; i <= fieldcount; i++) {ldelim}
 119          if (!inputStorage[i]) {ldelim}
 120              fillInput(i, i);
 121          {rdelim} else if (inputStorage[i] == document.getElementById('target_filename_' + i).value) {ldelim}
 122              fillInput(i, i);
 123          {rdelim}
 124      {rdelim}
 125  
 126  {rdelim}
 127  
 128  function debugFields() {ldelim}
 129      for (i = 1; i <= fieldcount; i++) {ldelim}
 130          debugField('target_filename_' + i);
 131          debugField('userfile_' + i);
 132      {rdelim}
 133  {rdelim}
 134  
 135  function rememberOptions() {ldelim}
 136      td     = document.getElementById('target_directory_2');
 137      td_val = td.options[td.selectedIndex].value;
 138      SetCookie("addmedia_directory", td_val);
 139  {rdelim}
 140  
 141  function debugField(id) {ldelim}
 142      alert(id + ': ' + document.getElementById(id).value);
 143  {rdelim}
 144  
 145  function fillInput(source, target) {ldelim}
 146      useDuplicate = false;
 147  
 148      // First field is a special value for foreign URLs instead of uploaded files
 149      if (source == 1 && document.getElementById('imageurl').value != "") {ldelim}
 150          sourceval = getfilename(document.getElementById('imageurl').value);
 151          useDuplicate = true;
 152      {rdelim} else {ldelim}
 153          sourceval = getfilename(document.getElementById('userfile_' + source).value);
 154      {rdelim}
 155  
 156      if (sourceval.length > 0) {ldelim}
 157          document.getElementById('target_filename_' + target).value = sourceval;
 158          inputStorage[target] = sourceval;
 159      {rdelim}
 160  
 161      // Display filename in duplicate form as well!
 162      if (useDuplicate) {ldelim}
 163          tkey = target + 1;
 164  
 165          if (!inputStorage[tkey] || inputStorage[tkey] == document.getElementById('target_filename_' + tkey).value) {ldelim}
 166              document.getElementById('target_filename_' + (target+1)).value = sourceval;
 167              inputStorage[target + 1] = '~~~';
 168          {rdelim}
 169      {rdelim}
 170  {rdelim}
 171  </script>
 172  
 173  <form action="?" method="POST" id="uploadform" enctype="multipart/form-data" onsubmit="rememberOptions()">
 174      <div>
 175          {if $media.max_file_size}
 176          <input type="hidden" name="MAX_FILE_SIZE" value="{$max_file_size}" />
 177          {/if}
 178          {$media.token}
 179          <input type="hidden" name="serendipity[action]"      value="admin" />
 180          <input type="hidden" name="serendipity[adminModule]" value="images" />
 181          <input type="hidden" name="serendipity[adminAction]" value="add" />
 182          {$media.form_hidden}
 183          <table id="foreign_upload" class="image_add_foreign">
 184              <tr>
 185                  <td nowrap="nowrap">{$CONST.ENTER_MEDIA_URL}</td>
 186                  <td><input class="input_textbox" type="text" id="imageurl" name="serendipity[imageurl]"
 187                           onchange="checkInputs()"
 188                            value=""
 189                             size="40" /></td>
 190              </tr>
 191              <tr>
 192                  <td nowrap="nowrap">{$CONST.ENTER_MEDIA_URL_METHOD}</td>
 193                  <td>
 194                      <select name="serendipity[imageimporttype]">
 195                          <option value="image">{$CONST.FETCH_METHOD_IMAGE}</option>
 196                          <option value="hotlink">{$CONST.FETCH_METHOD_HOTLINK}</option>
 197                      </select>
 198                  </td>
 199              </tr>
 200  
 201              <tr>
 202                  <td align="center" colspan="2"><b> - {$CONST.WORD_OR} - </b></td>
 203              </tr>
 204          </table>
 205  
 206          <!-- WARNING: Do not change spacing or breaks below. If you do, the JavaScript childNodes need to be edited. Newlines count as nodes! -->
 207          <div id="upload_template">
 208          <table style="margin-top: 35px" id="upload_table" class="image_add_local">
 209              <tr>
 210                  <td nowrap='nowrap'>{$CONST.ENTER_MEDIA_UPLOAD}</td>
 211                  <td><input class="input_file" id="userfile_1" name="serendipity[userfile][1]"
 212                           onchange="checkInputs();"
 213                             type="file" /></td>
 214              </tr>
 215  
 216              <tr>
 217                  <td align="center" colspan="2"><br /></td>
 218              </tr>
 219  
 220              <tr>
 221                  <td>{$CONST.SAVE_FILE_AS}</td>
 222                  <td><input class="input_textbox" type="text" id="target_filename_1" name="serendipity[target_filename][1]" value="" size="40" /></td>
 223              </tr>
 224  
 225              <tr>
 226                  <td>{$CONST.STORE_IN_DIRECTORY}</td>
 227                  <td><select id="target_directory_1" name="serendipity[target_directory][1]">
 228                      <option value="">{$CONST.BASE_DIRECTORY}</option>
 229                      {foreach from=$media.folders item="folder"}
 230                      <option {if $media.only_path == $folder.relpath}selected="selected"{/if} value="{$folder.relpath}">{'&nbsp;'|@str_repeat:$folder.depth*2} {$folder.name}</option>
 231                      {/foreach}
 232                      </select>
 233                  </td>
 234              </tr>
 235         </table>
 236         <div id="ccounter"><input type="hidden" name="serendipity[column_count][1]" id="column_count_1" value="true" /></div>
 237         </div>
 238  
 239         <div id="debug">
 240         </div>
 241  
 242         <script type="text/javascript">
 243              document.getElementById('upload_template').style.display  = 'none';
 244              document.write('<span id="upload_form"><' + '/span>');
 245              addField();
 246         </script>
 247  
 248          {serendipity_hookPlugin hook="backend_image_addform" hookAll=true}
 249  
 250          <div style="text-align: center; margin-top: 15px; margin-bottom: 15px">
 251              <script type="text/javascript">
 252                  document.write('<input class="serendipityPrettyButton input_button" type="button" value="{$CONST.IMAGE_MORE_INPUT}" onclick="hideForeign(); addField()"' + '/><br' + '/>');
 253              </script>
 254              <input type="hidden" name="serendipity[all_authors]" value="true" checked="checked" id="all_authors" />
 255              <br />
 256              <input onclick="checkInputs();" type="submit" value="{$CONST.GO}" class="serendipityPrettyButton input_button" />
 257              - {$CONST.WORD_OR} -
 258              <input onclick="checkInputs();" name="go_properties" type="submit" value="{$CONST.GO_ADD_PROPERTIES|@escape}" class="serendipityPrettyButton input_button" />
 259          </div>
 260      </div>
 261      <div class="image_add_note">{$CONST.ADD_MEDIA_BLAHBLAH_NOTE}</div>
 262  </form>
 263  


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics